public async Task <IActionResult> Edit(JobTitleViewModel model, string returnUrl = null) { if (!ModelState.IsValid) { await BindControls(model); Title = HrResources.JobTitle; ReturnUrl = returnUrl; return(View(model)); } if (model.Id.GetValueOrDefault() <= 0) { return(NotFound()); } var jobTitle = await Uow.JobTitles.Where(t => t.Id == model.Id && !t.IsDeleted).SingleOrDefaultAsync(); if (jobTitle == null) { return(NotFound()); } jobTitle.DepartmentId = model.DepartmentId.GetValueOrDefault(); jobTitle.ModifierId = UserId; jobTitle.ModifiedDate = DateTime.Now; var translates = await Uow.JobTitleTranslates.Where(t => t.Id == model.Id).ToListAsync(); for (var i = 0; i < model.Texts.Count; i++) { var translate = new JobTitleTranslate { Id = model.Id.GetValueOrDefault(), CultureId = model.Texts[i].Key, Text = model.Texts[i].Value }; if (await Uow.JobTitleTranslates.Where(t => t.Text == translate.Text && t.Id != model.Id).AnyAsync()) { ModelState.AddModelError($"{nameof(JobTitleViewModel.Texts)}[{i}].Value", string.Format(ValidationResources.DuplicatedValidationError, "ტექსტი")); continue; } var dbTranslate = translates.SingleOrDefault(t => t.CultureId == translate.CultureId); if (dbTranslate == null) { dbTranslate = translate; Uow.JobTitleTranslates.Add(dbTranslate); } else { dbTranslate.Text = translate.Text; } } await Uow.SaveAsync(); return(!string.IsNullOrEmpty(returnUrl) ? RedirectToLocal(returnUrl) : RedirectToAction(nameof(Index))); }
public async Task <IActionResult> Create(JobTitleViewModel model, string returnUrl = null) { if (!ModelState.IsValid) { await BindControls(model); Title = HrResources.JobTitle; ReturnUrl = returnUrl; return(View(model)); } var jobTitle = new JobTitle { DepartmentId = model.DepartmentId.GetValueOrDefault(), CreatorId = UserId }; var translates = new List <JobTitleTranslate>();// model.Texts.Select(x => ); for (var i = 0; i < model.Texts.Count; i++) { var translate = new JobTitleTranslate { Dictionary = jobTitle, CultureId = model.Texts[i].Key, Text = model.Texts[i].Value }; if (await Uow.JobTitleTranslates.Where(t => t.Text == translate.Text).AnyAsync()) { ModelState.AddModelError($"{nameof(JobTitleViewModel.Texts)}[{i}].Value", string.Format(ValidationResources.DuplicatedValidationError, "ტექსტი")); continue; } translates.Add(translate); } if (!ModelState.IsValid) { await BindControls(model); Title = HrResources.JobTitle; ReturnUrl = returnUrl; return(View(model)); } Uow.JobTitles.Add(jobTitle); Uow.JobTitleTranslates.AddRange(translates); await Uow.SaveAsync(); return(!string.IsNullOrEmpty(returnUrl) ? RedirectToLocal(returnUrl) : RedirectToAction(nameof(Index))); }