public ActionResult _CreateArea(AreaCreateModel model) { if (areaService.Get(model.AreaCode) == null) { areaService.Create(model.AsArea()); return Json(new StatusMessageData(StatusMessageType.Success, "创建成功!")); } else { return Json(new StatusMessageData(StatusMessageType.Error, "行政区号有重复,创建失败!")); } }
public async Task <IActionResult> Create(AreaCreateModel areaCreateModel) { if (ModelState.IsValid) { IDbContextTransaction transaction = null; try { transaction = await lawyerDbContext.Database.BeginTransactionAsync(); Area area = new Area { NameKey = DbContextService.GenerateKey("area_name"), DescriptionKey = DbContextService.GenerateKey("desc"), MeetingMinute = areaCreateModel.MeetingMinute, }; IEnumerable <Text> areaNameForAllLangueges = areaCreateModel.Areas.Select(m => new Text { Key = area.NameKey, TextContent = m.Name, LanguageId = m.LanguageId }); await lawyerDbContext.Texts.AddRangeAsync(areaNameForAllLangueges); IEnumerable <Text> areaDescriptionForAllLangueges = areaCreateModel.Areas.Select(m => new Text { Key = area.DescriptionKey, TextContent = m.Description, LanguageId = m.LanguageId }); await lawyerDbContext.Areas.AddAsync(area); await lawyerDbContext.Texts.AddRangeAsync(areaDescriptionForAllLangueges); await lawyerDbContext.SaveChangesAsync(); transaction.Commit(); return(RedirectToAction(nameof(Index))); } catch { transaction.Rollback(); ModelState.AddModelError("", "Some error occured ! Please try again ."); } finally { if (transaction != null) { transaction.Dispose(); } } } AreaViewModel areaViewModel = new AreaViewModel { Languages = await lawyerDbContext.Languages .AsNoTracking() .ToListAsync(), Areas = areaCreateModel.Areas, MeetingMinute = areaCreateModel.MeetingMinute }; return(View(areaViewModel)); }