Пример #1
0
        public async Task <MoneyType> Edit(MoneyTypeViewModel model)
        {
            try
            {
                var response = await client.PutProtectedAsync <HttpSingleResponse <MoneyType> >($"{url}/moneytypes", model);

                if (response != null && response.IsSuccess)
                {
                    return(response.Value);
                }
                return(null);
            }
            catch (Exception ex)
            {
                //TODO: Implement error logging for future anaylysis and fixes

                return(null);
            }
        }
        public async Task <IActionResult> Put(MoneyTypeViewModel model)
        {
            if (ModelState.IsValid)
            {
                //Get type
                var type = db.MoneyTypes.Find(model.MoneyTypeId);

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

                var account = await getAccount();

                var oldType = db.MoneyTypes
                              .SingleOrDefault(t => t.Name == model.Name.Trim() && t.Id != model.MoneyTypeId && t.AccountId == account.Id);

                if (oldType != null)
                {
                    return(this.FixedBadRequest($"Type already exists with the name: {oldType.Name}."));
                }

                //Edit type info
                type.Name        = model.Name.Trim();
                type.Description = model.Description == null ? null : model.Description.Trim();

                await db.SaveChangesAsync();

                return(Ok(new HttpSingleResponse <MoneyType>
                {
                    IsSuccess = true,
                    Message = "Money type has been edited successfully.",
                    Value = type
                }));
            }

            return(this.FixedBadRequest("Model sent has some errors."));
        }
        public async Task <IActionResult> Post(MoneyTypeViewModel model)
        {
            if (ModelState.IsValid)
            {
                //Get the account
                var account = await getAccount();

                var oldType = db.MoneyTypes.SingleOrDefault(t => t.Name == model.Name.Trim() && t.AccountId == account.Id);

                if (oldType != null)
                {
                    return(this.FixedBadRequest("Type already exists."));
                }

                //Create new Money type
                var newType = new MoneyType
                {
                    Id          = Guid.NewGuid().ToString(),
                    Name        = model.Name.Trim(),
                    Description = model.Description == null ? null : model.Description.Trim(),
                    AccountId   = account.Id
                };

                await db.MoneyTypes.AddAsync(newType);

                await db.SaveChangesAsync();

                return(Ok(new HttpSingleResponse <MoneyType>
                {
                    IsSuccess = true,
                    Message = "Type has been added successfully.",
                    Value = newType
                }));
            }
            return(this.FixedBadRequest("Model sent has some errors."));
        }