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));
            }
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
        /// <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));
            }
        }