public async Task <IActionResult> AddNewExpense([FromBody] AddNewExpenseRequest newExpenseRequest) { if (newExpenseRequest == null) { return(StatusCode(400, "Expense not provided")); } try { BudgetExpensesModel coreExpensesModel = new BudgetExpensesModel() { UserId = (long)newExpenseRequest.UserId, ExpenseAmount = (decimal)newExpenseRequest.ExpenseAmount, ExpenseType = newExpenseRequest.ExpenseType }; await _expenseServices.AddNewExpense(coreExpensesModel); return(StatusCode(201)); } catch (ArgumentException ae) { return(StatusCode(400, ae.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }
public async Task <IActionResult> AddExpense(BudgetExpensesModel Model) { using (var client = new HttpClient()) { client.BaseAddress = new Uri("https://expensestrackerservices3.azurewebsites.net"); var request = Model.AsNewExpenseRequest(); var content = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var responseTask = client.PostAsync("/api/Expenses/add", content); responseTask.Wait(); var result = responseTask.Result; if (result.IsSuccessStatusCode) { var readTask = await result.Content.ReadAsStringAsync(); var response = JsonConvert.DeserializeObject <ExpensesResponse>(readTask); if (response.IsValid()) { return(RedirectToAction("Index", "Home")); } else { ModelState.AddModelError("ErrorMessage", response.ValidationMessage); } } else //web api sent error response { ModelState.AddModelError("ErrorMessage", "Server error. Please contact administrator."); } } return(RedirectToAction("Index", "Home")); }
public IActionResult Index() { BudgetExpensesModel model = new BudgetExpensesModel(); if (TempData["BudgetExpensesModel"] is string s) { model = JsonConvert.DeserializeObject <BudgetExpensesModel>(s); // use newUser object now as needed } return(View(model)); }
/// <summary> /// Service method to add new expense record /// </summary> /// <param name="expensesModel"></param> /// <returns>Task complete</returns> public async Task AddNewExpense(BudgetExpensesModel expensesModel) { if (expensesModel == null) { throw new ArgumentException("Expense not found"); } //convert core expense model to db expense entity var dbExpenseEntity = AdoExpensesMapper.CoreModelToDbEntityNew(expensesModel); await _expensesRepository.AddNewExpense(dbExpenseEntity); }
public async Task <IActionResult> UpsertExpenses([FromBody] UpsertExpensesRequest upsertExpensesRequest) { if (upsertExpensesRequest.Expenses.Count <= 0) { return(StatusCode(400, "Bad Request")); } try { List <BudgetExpensesModel> budgetExpenses = new List <BudgetExpensesModel>(); foreach (var expense in upsertExpensesRequest.Expenses) { if (expense.UserId == 0) { return(StatusCode(400, "Bad Request")); } BudgetExpensesModel coreModel = new BudgetExpensesModel() { Id = expense.Id, UserId = expense.UserId, ExpenseAmount = expense.Amount, ExpenseType = expense.ExpenseType }; budgetExpenses.Add(coreModel); } await _expenseServices.UpsertExpenses(budgetExpenses); return(Ok()); } catch (ArgumentException ae) { return(StatusCode(400, ae.Message)); } catch (Exception e) { return(StatusCode(500, e.Message)); } }