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, "行政区号有重复,创建失败!"));
            }
        }
Ejemplo n.º 2
0
        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));
        }