Пример #1
0
        public ActionResult Edit(PageCreateOrEditViewModel vmObj)
        {
            return(UpdateUsingViewModel(vmObj, (o) =>
            {
                //Convert the ViewModel to DB Object (Model)
                var dbObj = db.Set <Page>().Where(x => x.Id == vmObj.Id).FirstOrDefault();

                var newPermalink = ValidatePermalinkName(vmObj.PermalinkName, dbObj.Permalink.Name);
                dbObj.Permalink.Name = !string.IsNullOrEmpty(newPermalink) ? newPermalink : dbObj.Permalink.Name;
                dbObj.Name = vmObj.Name;
                dbObj.Title = vmObj.Title;
                dbObj.Description = vmObj.Description;
                dbObj.Keywords = vmObj.Keywords;
                dbObj.Tags = vmObj.Tags;
                dbObj.ParentId = !string.IsNullOrEmpty(vmObj.ParentName) ? vmObj.ParentId : null;
                dbObj.TemplateName = vmObj.TemplateName;
                dbObj.IncludeInMenu = vmObj.IncludeInMenu;
                dbObj.IsDraft = vmObj.IsDraft;
                dbObj.IsPublished = vmObj.IsPublished;
                dbObj.ActiveFrom = vmObj.ActiveFrom;
                dbObj.ActiveTo = vmObj.ActiveTo;
                dbObj.IsRssFeed = vmObj.IsRssFeed;
                dbObj.ChangeEvent = UpdateChangeEvent(dbObj.ChangeEventId);

                return dbObj;
            }, null, "CreateOrEdit"));
        }
Пример #2
0
        public ActionResult Create()
        {
            IViewModelBase viewModel = null;

            AddViewBagCreateEdit(null);
            viewModel = new PageCreateOrEditViewModel()
            {
                IsDraft     = false,
                IsPublished = true,
                IsRssFeed   = false
            };
            return(Create <Page>("CreateOrEdit", viewModel));
        }
Пример #3
0
 public ActionResult Create(PageCreateOrEditViewModel vmObj)
 {
     return(CreateUsingViewModel(vmObj, (parent) =>
     {
         var permalinkName = ValidatePermalinkName(vmObj.PermalinkName, "");
         if (string.IsNullOrEmpty(permalinkName))
         {
             return null;
         }
         else
         {
             var permalink = new Permalink()
             {
                 Name = permalinkName,
                 Type = null,
                 ChangeEvent = CreateChangeEvent()
             };
             db.Permalinks.Add(permalink);
             //Convert the ViewModel to DB Object (Model)
             var dbObj = new Page()
             {
                 Id = vmObj.Id,
                 Name = vmObj.Name,
                 Title = vmObj.Title,
                 Description = vmObj.Description,
                 Keywords = vmObj.Keywords,
                 Tags = vmObj.Tags,
                 //Content = vmObj.Content.ToList(),
                 Parent = vmObj.Parent,
                 //Pages = vmObj.Pages.ToList(),
                 PermalinkId = vmObj.PermalinkId,
                 Permalink = permalink,
                 TemplateName = vmObj.TemplateName,
                 IncludeInMenu = vmObj.IncludeInMenu,
                 IsDraft = vmObj.IsDraft,
                 IsPublished = vmObj.IsPublished,
                 ActiveFrom = vmObj.ActiveFrom,
                 ActiveTo = vmObj.ActiveTo,
                 IsRssFeed = vmObj.IsRssFeed,
                 ChangeEventId = vmObj.ChangeEventId,
                 ChangeEvent = vmObj.ChangeEvent
             };
             return dbObj;
         }
     }, null, "CreateOrEdit"));
 }
Пример #4
0
        public ActionResult Edit(int?id)
        {
            var            o         = db.Set <Page>().Where(x => x.Id == id).FirstOrDefault();
            IViewModelBase viewModel = null;

            if (o != null)
            {
                AddViewBag(o);

                viewModel = new PageCreateOrEditViewModel()
                {
                    Id          = o.Id,
                    Name        = o.Name,
                    Title       = o.Title,
                    Description = o.Description,
                    Keywords    = o.Keywords,
                    Tags        = o.Tags,
                    //Content = o.Content,
                    Parent     = o.Parent,
                    ParentId   = o.Parent != null ? new Nullable <int>(o.Parent.Id) : null,
                    ParentName = o.Parent != null ? o.Parent.Name : string.Empty,
                    //Pages = o.Pages,
                    PermalinkId   = o.PermalinkId,
                    Permalink     = o.Permalink,
                    PermalinkName = o.Permalink != null ? o.Permalink.Name : string.Empty,
                    TemplateName  = o.TemplateName,
                    IncludeInMenu = o.IncludeInMenu,
                    IsDraft       = o.IsDraft,
                    IsPublished   = o.IsPublished,
                    ActiveFrom    = o.ActiveFrom,
                    ActiveTo      = o.ActiveTo,
                    IsRssFeed     = o.IsRssFeed,
                    ChangeEventId = o.ChangeEventId,
                    ChangeEvent   = o.ChangeEvent
                };
            }
            return(Edit <Page>("CreateOrEdit", viewModel));
        }
Пример #5
0
        public IActionResult CreateOrEdit([FromBody] PageCreateOrEditViewModel viewModel)
        {
            if (!ModelState.IsValid)
            {
                return(Json(new WebResult(resultState: ResultState.Error)));
            }

            var repo = UnitOfWork.Repository <Page>();

            if (viewModel.IsNew)
            {
                var newPage = new Page
                {
                    Created     = DateTime.Now,
                    ObjectState = ObjectState.Added,
                    State       = viewModel.State,
                    Title       = viewModel.Title,
                    Content     = viewModel.Content,
                    Tags        = viewModel.Tags,
                };
                repo.SaveAllChanges(newPage);
            }
            else
            {
                var data = repo.First(k => k.Id == viewModel.Id);
                data.Modified    = DateTime.Now;
                data.ObjectState = ObjectState.Modified;
                data.State       = viewModel.State;
                data.Title       = viewModel.Title;
                data.Content     = viewModel.Content;
                data.Tags        = viewModel.Tags;

                repo.SaveAllChanges(data);
            }

            return(Json(new WebResult(redirectUrl: Url.Action(nameof(Index), nameof(HomeController).ControllerName()))));
        }