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)); }
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); }
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); }