public async Task <BaseResponse> AddIncomeOrExpenseAsync([FromBody] ChangeMoneyRequest request) => await Task.Run(() => _changeMoneyService.AddIncomeOrExpense(request));
public async Task <BaseResponse> AddIncomeOrExpenseAsync(ChangeMoneyRequest request) => await TryCallApiAsync <BaseResponse>("changemoneys/add", request);
public BaseResponse AddIncomeOrExpense(ChangeMoneyRequest request) { return(GetResponse(() => { var response = new BaseResponse(); try { using (FamilyFinanceContext db = new FamilyFinanceContext()) { if (request.FamilyId == null && request.PersonId == null) { response.BaseIsSuccess = false; response.BaseMessage = Shared.Constants.NEED_AUTHORIZE; } else { var category = db.Categories.Where(x => x.Name == request.Category.Name && x.FamilyId == request.FamilyId).FirstOrDefault(); var currency = db.Currencies.Where(x => x.Name == request.Currency.Name).FirstOrDefault(); var purse = db.Purses.Where(x => x.Name == request.Purse.Name && x.FamilyId == request.FamilyId).FirstOrDefault(); if (request.Type == "I") { purse.Size += request.Size; } else { if (request.Size <= purse.Size) { purse.Size -= request.Size; } else { response.BaseIsSuccess = false; response.BaseMessage = "Недостатньо коштів для операції"; } } db.Purses.Update(purse); var model = new ChangeMoney { Name = request.Name, Size = request.Size, Date = request.Date, Type = request.Type, Category = category, Currency = currency, FamilyId = request.FamilyId, PersonId = request.PersonId }; db.ChangeMoneys.Add(model); db.SaveChanges(); } } } catch (Exception ex) { response.BaseIsSuccess = false; response.BaseMessage = ex.Message + "; Inner: " + ex.InnerException.Message; } return response; })); }