public async Task <IActionResult> AddExpense([FromBody] NewExpenseDTO data) { if (await Task.Run(() => dv.isExpenseValidAsync(data))) { if (await Task.Run(() => exp.AddExpense(data))) { return(Ok("Expense added")); } else { BadRequest("Expense not added"); } } return(BadRequest("Expense is too big")); }
public async Task <bool> isExpenseValidAsync(NewExpenseDTO expense) { var allExpenses = await exc.GetExpenses(new GetExpensesDTO { ownerId = expense.ownerId, maxNumberOfExpensesToShow = -1, numberOfDaysToShow = -1 }); var allIncomes = await inc.GetAllIncomes(new GetAllDTO { ownerId = expense.ownerId, maxNumberOfIncomesToShow = -1, numberOfDaysToShow = -1 }); var expensesSum = allExpenses.Sum(x => x.Moneyused); var incomesSum = allIncomes.Sum(x => x.Moneyrecieved); return(incomesSum - expensesSum > expense.moneyUsed); }
public Task <bool> AddExpense(NewExpenseDTO data) => Task.Run(() => { try { var expense = new Expense { Ownerid = data.ownerId, Userid = data.userId, Expenseid = Guid.NewGuid().ToString(), Moneyused = data.moneyUsed, Expensetime = DateTime.Now, Expensename = data.expenseName, Expensecategory = (int)data.expenseCategory }; context.Expense.Add(expense); context.SaveChanges(); return(true); } catch (Exception ex) { return(false); } });
public async Task <string> AddExpense(string userId, string ownerId, string expenseName, float moneyUsed, int expenseCategory) { NewExpenseDTO data = new NewExpenseDTO { userId = userId, ownerId = ownerId, expenseName = expenseName, moneyUsed = moneyUsed, expenseCategory = expenseCategory }; var json = JsonConvert.SerializeObject(data); var stringContent = new StringContent(json, Encoding.UTF8, "application/json"); try { var response = await client.PostAsync("http://194.5.157.98:88/api/Expenses", stringContent); response.EnsureSuccessStatusCode(); var responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); return(responseBody); } catch (Exception ex) { Logger.Log(string.Format("AddExpense: {0}", ex.ToString())); } return("Unexpected error"); }