예제 #1
0
        public ActionResult EditBlock(Guid?id, Guid?FormId, MetaFormBlockModel model, string button)
        {
            if (string.IsNullOrEmpty(button))
            {
                return(View(model));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (DBEntities context = Settings.CreateDataContext())
            {
                MetaFormBlock target = null;
                if (model.Id != Guid.Empty)
                {
                    target = MetaFormHelper.GetBlock(model.Id, context);
                    if (target == null)
                    {
                        ModelState.AddModelError("", Resources.Resource.RowNotFound);
                        return(View(model));
                    }
                }
                else
                {
                    target    = new MetaFormBlock();
                    target.Id = model.Id = Guid.NewGuid();
                    context.AddToMetaFormBlock(target);
                }

                MetaFormBlockModel.CreateMap();
                target = Mapper.Map(model, target);

                try
                {
                    context.SaveChanges();
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", Resources.Resource.SaveError + ": " + ex.Message);
                }
            }

            if (button == "SaveAndExit")
            {
                return(RedirectToAction("Edit", new { id = model.MetaFormId }));
            }
            else
            {
                return(RedirectToAction("EditBlock", new { id = model.Id }));
            }
        }