示例#1
0
        public async Task <IActionResult> GetExpenseTypeList([FromBody] GetExpenseTypeListRequest req)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken);

            if (user == null)
            {
                return(NotFound());
            }

            GetExpenseTypeListResponse resp = new GetExpenseTypeListResponse()
            {
                ExpenseTypes = (await repository.GetAllExpenseTypes()).Select(x => LoadExpenseType(x)).ToList()
            };

            return(Ok(resp));
        }
示例#2
0
        public async Task <IActionResult> SaveExpenseTypeList([FromBody] SaveExpenseTypeListRequest req)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var user = await repository.AuthenticateUserToken(req.CurrentUser.UserId, req.CurrentUser.UserToken);

            if (user == null)
            {
                return(NotFound());
            }

            GetExpenseTypeListResponse resp = new GetExpenseTypeListResponse();

            resp.ExpenseTypes = new List <ExpenseTypeModel>();

            using (var transaction = await repository.StartTransaction())
            {
                try
                {
                    foreach (var model in req.ExpenseTypes)
                    {
                        resp.ExpenseTypes.Add(await SaveExpenseType(user, model, repository));
                    }

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    return(NotFound(e));
                }
            }

            return(Ok(resp));
        }