This commit is contained in:
2023-07-20 21:38:05 +03:00
parent 4bac59f322
commit 2f108bef4f
35 changed files with 1863 additions and 909 deletions
+42 -1
View File
@@ -6,9 +6,11 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Models.Account;
using Models.Item;
using Models.Motion;
using Services.Account;
using Services.Account.Domain;
using Services.Item;
[Authorize]
[ApiController]
@@ -17,14 +19,17 @@ public class AccountController : BaseApiController
{
private readonly ILogger<AccountController> _logger;
private readonly AccountService _accountService;
private readonly ItemService _itemService;
public AccountController(
ILogger<AccountController> logger,
AccountService accountService
AccountService accountService,
ItemService itemService
)
{
_logger = logger;
_accountService = accountService;
_itemService = itemService;
}
[HttpGet("~/api/accounts")]
@@ -131,4 +136,40 @@ public class AccountController : BaseApiController
throw new NotSupportedException(exec.Status.ToString());
}
}
[HttpGet("~/api/items")]
public object FindItems(string term)
{
var items = _itemService
.FindItems(UserId, term)
.Select(x => x.ToModel())
.ToList();
if (term.StartsWith("+") && term.Length > 1)
{
var accounts = _accountService.FindAccounts(UserId, term.Substring(1));
foreach (var account in accounts)
{
var accountName = $"+{account.Name}";
var item = items.FirstOrDefault(x => x.Name == accountName);
if (item == null)
{
items.Add(new ItemViewModel
{
Name = accountName,
AccountId = account.Id.ToShort(),
});
}
else
{
item.AccountId = account.Id.ToShort();
}
}
}
return items
.OrderBy(x => x.AccountId)
.ThenBy(x => x.Name);
}
}
@@ -0,0 +1,34 @@
namespace MyOffice.Web.Controllers;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using MyOffice.Services.Account;
using MyOffice.Services.Item;
[Authorize]
[ApiController]
[Route("api/[controller]")]
public class DashboardController : BaseApiController
{
private readonly ILogger<DashboardController> _logger;
public DashboardController(
ILogger<DashboardController> logger
)
{
_logger = logger;
}
[HttpGet("~/api/accounts")]
public object Index()
{
return new
{
IncomeLastWeek = 100m,
IncomePreviousWeek = 100m,
OutcomeLastWeek = 100m,
OutcomePreviousWeek = 100m,
};
}
}
@@ -17,13 +17,17 @@ using Services.Item.Domain;
[Route("api/[controller]")]
public class SettingsItemController : BaseApiController
{
private ILogger<SettingsItemController> _logger;
private ItemService _itemService;
public SettingsItemController(
ILogger<SettingsItemController> logger,
ItemService itemService
)
{
_itemService = itemService;
_logger = logger;
}
[HttpGet("~/api/settings/item-categories")]
@@ -40,7 +44,8 @@ public class SettingsItemController : BaseApiController
[HttpPost("~/api/settings/item-categories")]
public object ItemCategoriesAdd(ItemCategoryViewModel request)
{
var exec = _itemService.CategoryAdd(UserId, new ItemCategory { Name = request.Name! });
var exec = _itemService.CategoryAdd(UserId, request.FromModel());
switch (exec.Status)
{
case GeneralExecStatus.success:
@@ -58,7 +63,8 @@ public class SettingsItemController : BaseApiController
[HttpPut("~/api/settings/item-categories/{id}")]
public object ItemCategoriesEdit(string id, ItemCategoryViewModel request)
{
var exec = _itemService.CategoryUpdate(UserId, id.AsGuid(), new ItemCategory { Name = request.Name! });
var exec = _itemService.CategoryUpdate(UserId, id.AsGuid(), request.FromModel());
switch (exec.Status)
{
case GeneralExecStatus.success: