Пример #1
0
        public async Task <IActionResult> EditTariff([FromForm] EditTariffViewModel model)
        {
            if (!ModelState.IsValid)
            {
                var errors = ModelState.Values.SelectMany(x => x.Errors.Select(xx => xx.ErrorMessage)).ToList();
                errors.ForEach(x => ModelState.AddModelError("", x));
                return(View(model));
            }

            if (model.Id is null)
            {
                await _tariffService.CreateAsync(model);

                return(RedirectToAction("TariffManager"));
            }

            var tariffUpdated = await _tariffService.UpdateAsync(model);

            if (tariffUpdated is null)
            {
                return(View("SomethingWentWrong", "on updating existing tariff"));
            }


            tariffUpdated.AllOptions      = _tariffOptionDescriptionService.GetAll();
            tariffUpdated.AssignedOptions = _tariffOptionsService.GetAllOptionsAssignedToATariffById((int)model.Id);
            return(View(tariffUpdated));
        }
Пример #2
0
        public async Task <EditTariffViewModel> CreateAsync(EditTariffViewModel model)
        {
            var newTariff = new Domain.Entries.Tariff.Tariff
            {
                Name        = model.Name,
                Price       = model.Price,
                DaysActive  = model.DaysActive,
                Description = model.Description
            };

            _context.Tariffs.Add(newTariff);
            await _context.SaveChangesAsync();

            var userForLog = await _userManager.FindByEmailAsync(_httpContext.User.Identity.Name);

            _logger.LogInformation("UserName: {0} | UserId: {1} | Request: {2} | PostMessage: {3}",
                                   userForLog.UserName,
                                   userForLog.Id,
                                   _httpContext.Request.GetRawTarget(),
                                   $"Tariff: {JsonConvert.SerializeObject(newTariff)} was successfully created.");

            return(model);
        }
Пример #3
0
        public async Task <EditTariffViewModel> UpdateAsync(EditTariffViewModel model)
        {
            var tariff = _context.Tariffs.First(x => x.Id == model.Id);

            if (tariff is null)
            {
                return(null);
            }

            tariff.Name        = model.Name;
            tariff.Price       = model.Price;
            tariff.DaysActive  = model.DaysActive;
            tariff.Description = model.Description;

            _context.Update(tariff);
            await _context.SaveChangesAsync();

            var updatedTariff = new EditTariffViewModel
            {
                Id          = tariff.Id,
                Name        = tariff.Name,
                Price       = tariff.Price,
                DaysActive  = tariff.DaysActive,
                Description = tariff.Description
            };

            var userForLog = await _userManager.FindByEmailAsync(_httpContext.User.Identity.Name);

            _logger.LogInformation("UserName: {0} | UserId: {1} | Request: {2} | PostMessage: {3}",
                                   userForLog.UserName,
                                   userForLog.Id,
                                   _httpContext.Request.GetRawTarget(),
                                   $"Tariff: {JsonConvert.SerializeObject(updatedTariff)} was successfully updated.");

            return(updatedTariff);
        }