Example #1
0
        private void CopyProperties(CmsPage page, EditPageModel editPage)
        {
            editPage.Id = page.Id;
            //TODO HARD CODED
            if (page.Type.Title == "BLOG HOME")
            {
                editPage.Title = page.NaviNode.NodeName;
            }
            else
            {
                editPage.Title = page.Title;
            }
            editPage.NaviTitle = String.IsNullOrEmpty(page.NaviTitle) ? page.Title : page.NaviTitle;
            editPage.Layout    = page.Layout;

            if (page.Html != null)
            {
                editPage.Content = page.Html.Content;
                editPage.Sidebar = page.Html.Sidebar;
                editPage.Header  = page.Html.Header;
                editPage.Summary = page.Html.Summary;
            }

            editPage.Description = page.Description;
            editPage.Keywords    = page.Keywords;
            editPage.NaviNodeId  = page.NaviNode.Id;

            editPage.IsPublished = page.IsPublished;

            editPage.Created       = page.Created;
            editPage.Type          = page.Type == null? "PAGE" : page.Type.Title;
            editPage.IsCommentable = page.Commentable;
        }
Example #2
0
        public ActionResult Edit(EditPageModel editPage)
        {
            CmsPage        page       = _db.Set <CmsPage>().Single(e => e.Id == editPage.Id);
            PermissionType accessMode = SecurityHelper.PageAccessMode(_db, page);

            if (accessMode < PermissionType.Edit)
            {
                throw new Exception("Access Denided.");
            }

            // TODO Check config to see what the page content format is
            if (!editPage.Content.StartsWith("{"))
            {
                ModelState.AddModelError("Error", "Content format does not match. Please refresh your page.");
            }

            if (ModelState.IsValid)
            {
                CopyProperties(editPage, page);
                page.Status = CmsPage.STATUS_CHANGE_SAVED;

                if (editPage.Layout == 8)
                {
                    //TODO HARD CODED
                    page.Title = "Summary";
                }

                // Only save the page when it has a unique URL.
                CmsPage pageWithDuplicateUrl = _db.Set <CmsPage>().SingleOrDefault(e => e.Url.Equals(page.Url, StringComparison.InvariantCultureIgnoreCase));
                if (pageWithDuplicateUrl == null || pageWithDuplicateUrl.Id == editPage.Id)
                {
                    _db.SaveChanges();
                    return(Redirect("/" + page.Url));
                }
                else
                {
                    ModelState.AddModelError("NaviTitle", "Cannot have same page URL in the same navigation section.");
                }
                //return RedirectToAction("Page", "Cms", new { id = page.FriendlyId });
            }

            var naviNode = page.NaviNode;

            ViewBag.NaviNode   = naviNode;
            ViewBag.BaseNode   = CmsPageBase.FindBaseNode(naviNode);
            ViewBag.AccessMode = accessMode;
            ViewBag.Status     = CmsPage.STATUS_EDITING_START;
            ViewBag.Modified   = DateTime.Now;

            bool havingWebPart = false;

            editPage.Content = _pageEngine.ReplaceTokens(
                page: page,
                webpartHeaders: new StringBuilder(),
                havingWebPart: out havingWebPart,
                controllerContext: this.ControllerContext,
                isEditState: true);

            return(View(editPage));
        }
Example #3
0
        public ActionResult Edit(int IDpage, string username)
        {
            EditPageModel model = new EditPageModel();

            model.Username = username;
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                model.IDpage = IDpage;
                var selPage = db.Page.FirstOrDefault(u => u.IDpage.Equals(IDpage));
                var query   = (from p in db.Privacy
                               orderby p.Description
                               select p).ToList();
                model.PageTitle = selPage.name;
                model.Privacy   = new SelectList(query, "IDprivacy", "description", selPage.IDprivacy);

                var tagList = (from t in db.PageTag
                               join a in db.Tag on t.IDtag equals a.ID
                               where t.IDpage == IDpage
                               orderby a.name
                               select t).Include(t => t.Tag).ToList();
                model.TagList = tagList;

                var contribList = (from c in db.Contributor
                                   join u in db.User on c.IDuser equals u.IDuser
                                   orderby u.Username
                                   where c.IDpage == IDpage
                                   select c).Include(c => c.User).ToList();
                model.ContributorList = contribList;
            }
            return(View(model));
        }
Example #4
0
        public ActionResult Edit(EditPageModel model, bool IsPopup)
        {
            if (ModelState.IsValidField("MenuItemName"))
            {
                if (Request["Submit"] == "Save")
                {
                    Page page = _pageRepository.GetPageById(model.Id);
                    model.IsView   = HttpContext.Request["IsView"] != null ? true : false;
                    model.IsAdd    = HttpContext.Request["IsAdd"] != null ? true : false;
                    model.IsEdit   = HttpContext.Request["IsEdit"] != null ? true : false;
                    model.IsDelete = HttpContext.Request["IsDelete"] != null ? true : false;
                    model.IsImport = HttpContext.Request["IsImport"] != null ? true : false;
                    model.IsExport = HttpContext.Request["IsExport"] != null ? true : false;
                    model.IsPrint  = HttpContext.Request["IsPrint"] != null ? true : false;

                    // always update the parent bevore children
                    AutoMapper.Mapper.Map(model, page);
                    _pageRepository.UpdatePage(page);
                }
                else if (Request["Submit"] == "Delete")
                {
                    Page page = _pageRepository.GetPageById(model.Id);

                    TempData["AlertMessage"] = "MenuPage was delete successfully";
                }

                //Reset cache for pagerightaccess & pagemenu
                Erp.BackOffice.Helpers.CacheHelper.PagesAccessRight = null;
                Erp.BackOffice.Helpers.CacheHelper.PagesMenu        = null;

                if (IsPopup)
                {
                    return(RedirectToAction("_ClosePopup", "Home", new { area = "", FunctionCallback = "ClosePopupAndReloadPage" }));
                }
                else
                {
                    TempData[Globals.SuccessMessageKey] = App_GlobalResources.Wording.InsertSuccess;
                    return(RedirectToAction("Index"));
                }
            }
            string errors = string.Empty;

            foreach (var modalState in ModelState.Values)
            {
                errors += modalState.Value + ": ";
                foreach (var error in modalState.Errors)
                {
                    errors += error.ErrorMessage;
                }
            }

            ViewBag.errors = errors;

            if (Request.UrlReferrer != null)
            {
                return(Redirect(Request.UrlReferrer.AbsoluteUri));
            }
            return(RedirectToAction("Index"));
        }
Example #5
0
        protected override async Task OnParametersSetAsync()
        {
            var requestUri = string.IsNullOrWhiteSpace(IdentityUserId)
                ? $"api/admin/users/edit/{Id}"
                : $"api/admin/users/edit-by-identity-user-Id/{IdentityUserId}";

            Model = await ApiService.GetFromJsonAsync <EditPageModel>(requestUri);
        }
Example #6
0
        //
        // GET: /Administration/Page/Edit/5

        public ActionResult Edit(int id, string languageId)
        {
            var  editPage = new EditPageModel();
            Page page     = _pageRepository.GetPageById(id);

            if (page != null)
            {
                AutoMapper.Mapper.Map(page, editPage);
            }

            return(View("Edit", editPage));
        }
Example #7
0
        public ActionResult Edit(int filmID)
        {
            var model = new EditPageModel()
            {
                Film              = _db.FilmSet.Where(f => f.FilmID == filmID).FirstOrDefault(),
                Genres            = _db.GenreSet.AsEnumerable().ToList(),
                AgeRatings        = _db.AgeRatingSet.AsEnumerable().ToList(),
                SelectedAgeRating = null,
                SelectedGenre     = null
            };

            return(View(model));
        }
Example #8
0
        private void CopyProperties(EditPageModel editPage, CmsPage page)
        {
            //page.MenuOrder = editPage.MenuOrder;

            page.Title     = editPage.Title;
            page.NaviTitle = String.IsNullOrEmpty(editPage.NaviTitle) ? editPage.Title : editPage.NaviTitle;
            page.Layout    = editPage.Layout;

            if (page.Html == null)
            {
                page.Html         = new CmsPageHtml();
                page.Html.Content = editPage.Content;
                page.Html.Sidebar = editPage.Sidebar;
                page.Html.Header  = editPage.Header;
                page.Html.Summary = editPage.Summary;
            }
            else
            {
                page.Html.Content = editPage.Content;
                page.Html.Sidebar = editPage.Sidebar;
                page.Html.Header  = editPage.Header;
                page.Html.Summary = editPage.Summary;
            }

            page.Description = editPage.Description;
            page.Keywords    = string.Join(",", editPage.Keywords);

            //TODO HARD CODED
            if (page.NaviNode == null)
            {
                page.NaviNode = _db.Set <NaviNode>().Single(e => e.Id == (editPage.Layout == 8 ? 33 : editPage.NaviNodeId));
            }

            page.Modified   = DateTime.Now;
            page.ModifiedBy = User.Identity.Name.ToUpper();

            if (page.CreatedBy == null)
            {
                page.Created   = DateTime.Now;
                page.CreatedBy = User.Identity.Name.ToUpper();
            }

            if (editPage.Type == "BLOG" && editPage.Created.HasValue)
            {
                page.Created = editPage.Created.Value;
            }
            page.Type = _db.Set <ContentType>().SingleOrDefault(e => e.Title == editPage.Type) ??
                        _db.Set <ContentType>().Single(e => e.Title == "PAGE");
            page.Commentable = editPage.IsCommentable;
            _urlHelper.UpdatePageUrl(page);
        }
Example #9
0
        private async Task <EditPageModel> BuildEditPageModelAsync(User user)
        {
            if (user == null)
            {
                return(null);
            }

            var result = new EditPageModel
            {
                User = new EditPageModel.UserModel
                {
                    Id          = user.Id,
                    DisplayName = user.DisplayName
                },
                Info = new EditPageModel.InfoModel
                {
                    UserId = user.IdentityUserId,
                    Email  = user.Email,
                    Status = user.Status
                }
            };

            var identityUser = await _userManager.FindByIdAsync(user.IdentityUserId);

            if (identityUser != null)
            {
                foreach (var role in await _roleManager.Roles.ToListAsync())
                {
                    var selected = await _userManager.IsInRoleAsync(identityUser, role.Name);

                    result.Roles.Add(new EditPageModel.RoleModel
                    {
                        Name     = role.Name,
                        Selected = selected
                    });
                }

                result.Info.UserName             = identityUser.UserName;
                result.Info.EmailConfirmed       = identityUser.EmailConfirmed;
                result.Info.PhoneNumber          = identityUser.PhoneNumber;
                result.Info.PhoneNumberConfirmed = identityUser.PhoneNumberConfirmed;
                result.Info.TwoFactorEnabled     = identityUser.TwoFactorEnabled;
                result.Info.LockoutEnabled       = identityUser.LockoutEnabled;
                result.Info.AccessFailedCount    = identityUser.AccessFailedCount;
                result.Info.LockoutEnd           = identityUser.LockoutEnd;
            }

            return(result);
        }
Example #10
0
        public ActionResult Edit(string id)
        {
            int     internalId = CmsPage.FromFriendlyId(id);
            CmsPage page       = _db.Set <CmsPage>().Single(e => e.Id == internalId);

            PermissionType accessMode = SecurityHelper.PageAccessMode(_db, page);

            if (accessMode < PermissionType.Edit)
            {
                //return RedirectToAction("Page", "Cms", new { id = id });
                return(Redirect("/" + page.Url));
            }

            if ((page.Status == CmsPage.STATUS_EDITING_START ||
                 page.Status == CmsPage.STATUS_EDITING_AGAIN) &&
                page.ModifiedBy != User.Identity.Name.ToUpper())
            {
                //return RedirectToAction("Page", "Cms", new { id = page.FriendlyId });
                return(Redirect("/" + page.Url));
            }

            EditPageModel editPage = new EditPageModel();

            CopyProperties(page, editPage);

            bool havingWebPart = false;

            StringBuilder webpartHeaders = new StringBuilder();

            editPage.Content = _pageEngine.ReplaceTokens(
                page: page,
                webpartHeaders: webpartHeaders,
                havingWebPart: out havingWebPart,
                controllerContext: this.ControllerContext,
                isEditState: true);

            ViewBag.HavingWebPart  = havingWebPart;
            ViewBag.WebpartHeaders = webpartHeaders.ToString();

            ViewBag.NaviNode   = page.NaviNode;
            ViewBag.BaseNode   = CmsPageBase.FindBaseNode(page);
            ViewBag.ModifiedBy = HttpContext.User.Identity.Name;
            ViewBag.AccessMode = accessMode;
            ViewBag.Modified   = DateTime.Now;
            ViewBag.Status     = CmsPage.STATUS_EDITING_START;
            editPage.Status    = CmsPage.STATUS_EDITING_START;
            return(View(editPage));
        }
Example #11
0
        public virtual ActionResult Edit(int id)
        {
            EditPageModel selectedPage = _pageSerivce.GetEditingData(id);

            IList <PageDropDownList> lstPages = _pageSerivce.DropDownListData(selectedPage.Id);

            lstPages.Insert(0, new PageDropDownList {
                Id = -1, Title = "بدون مادر"
            });
            ViewBag.ParentPagesList = new SelectList(lstPages, "Id", "Title", selectedPage.ParentId);

            ViewBag.PageStatus    = DropDownList.Status(selectedPage.Status);
            ViewBag.CommentStatus = DropDownList.CommentStatus(selectedPage.CommentStatus);

            return(PartialView(MVC.Admin.Page.Views._Edit, selectedPage));
        }
Example #12
0
        public virtual ActionResult Edit(EditPageModel pageModel)
        {
            var selectedPage = new Page
            {
                Body          = pageModel.Body.ToSafeHtml(),
                CommentStatus = pageModel.CommentStatus,
                Description   = pageModel.Description,
                EditedByUser  = _userService.Find(User.Identity.Name),
                Keyword       = pageModel.Keyword,
                ModifiedDate  = DateAndTime.GetDateTime(),
                Id            = pageModel.Id,
                Order         = pageModel.Order,
                Parent        = _pageService.Find(pageModel.ParentId.Value),
                Status        = pageModel.Status,
                Title         = pageModel.Title,
                SubTitle      = pageModel.SubTitle,
                IconClass     = pageModel.IconClass,
                FeatureImage  = pageModel.FeatureImage,
                ExternalLink  = pageModel.ExternalLink,
            };

            _pageService.Update(selectedPage);
            _uow.SaveChanges();
            #region Indexing updated book by Lucene.NET

            //Index updated book lucene.NET
            new LucenePageSearch(_pageService);
            LucenePageSearch.ClearLuceneIndexRecord(pageModel.Id);
            Page currentPage = _pageService.Find(pageModel.Id);
            LucenePageSearch.AddUpdateLuceneIndex(new LucenePageModel
            {
                SubTitle    = currentPage.SubTitle,
                Body        = HtmlUtility.RemoveHtmlTags(currentPage.Body),
                Description = currentPage.Description,
                Keywords    = currentPage.Keyword,
                PageId      = currentPage.Id,
                Title       = currentPage.Title
            });

            #endregion
            return(PartialView(MVC.Admin.Shared.Views._Alert,
                               new Alert {
                Message = "صفحه مورد نظر با موفقیت ویرایش شد", Mode = AlertMode.Success
            }));
        }
Example #13
0
        public async Task <ActionResult> Update(EditPageModel model)
        {
            var site = await _contextService.CurrentSiteAsync();

            var user = await _contextService.CurrentUserAsync();

            var identityUser = await _userManager.FindByIdAsync(model.Info.UserId);

            if (identityUser != null && model.Roles.Count > 0)
            {
                foreach (var role in model.Roles)
                {
                    if (role.Selected)
                    {
                        if (!await _userManager.IsInRoleAsync(identityUser, role.Name))
                        {
                            await _userManager.AddToRoleAsync(identityUser, role.Name);
                        }
                    }
                    else
                    {
                        if (await _userManager.IsInRoleAsync(identityUser, role.Name))
                        {
                            await _userManager.RemoveFromRoleAsync(identityUser, role.Name);
                        }
                    }
                }
            }

            var command = new UpdateUser
            {
                Id          = model.User.Id,
                DisplayName = model.User.DisplayName,
                SiteId      = site.Id,
                UserId      = user.Id,
                Roles       = model.Roles.Where(x => x.Selected).Select(x => x.Name).ToList()
            };

            await _userService.UpdateAsync(command);

            return(Ok());
        }
Example #14
0
        public async Task <IActionResult> Edit([FromRoute] int id, [FromBody] EditPageModel model)
        {
            if (model == null)
            {
                return(this.InvalidRequest());
            }

            model.ID = id;

            var result = await this.PageService.Edit(model);

            if (result.Success)
            {
                return(this.Success(result.Data));
            }
            else
            {
                return(this.Error(result.ErrorMessage));
            }
        }
Example #15
0
        public ActionResult EditPage(int?pageId)
        {
            var wikiPage = _db.WikiPages.Find(pageId) ?? new WikiPage();

            if (pageId.HasValue && !CanEditPage(wikiPage))
            {
                return(this.HttpNotFound());
            }

            var selectList = _db.WikiPages.Where(x => x.IsLayout).Select(x => new SelectListItem()
            {
                Text     = x.PageTitle,
                Value    = x.Id.ToString(),
                Selected = x.Id == wikiPage.LayoutPageId,
            }).ToList();

            selectList.Insert(0, new SelectListItem()
            {
                Value = "",
                Text  = "-",
            });
            var model = new EditPageModel()
            {
                WikiPage = wikiPage,
                LayoutPagesSelectList = selectList,
                IsAdmin = IsWikiAdmin,
                Form    = new EditPageFormModel()
                {
                    Content       = ParseContentForEditor(wikiPage.Content ?? ""),
                    Id            = wikiPage.Id,
                    Title         = wikiPage.PageTitle,
                    IsLayout      = wikiPage.IsLayout,
                    StickCategory = wikiPage.StickCategory,
                    StickGlobal   = wikiPage.StickGlobal,
                    IsSystemPage  = wikiPage.IsSystemPage,
                    Tags          = string.Join(", ", wikiPage.Tags.Select(x => x.TagForLink)),
                }
            };

            return(View(model));
        }
Example #16
0
        public ActionResult Edit(Guid?id)
        {
            if (userId == null)
            {
                throw new HttpException(403, "Brak dostepu");
            }
            KsiazkaModel ksiazka;

            if (id != null)
            {
                ksiazka = ksiazki.Get((Guid)id);
            }
            else
            {
                ksiazka = new KsiazkaModel();
            }

            EditPageModel model = new EditPageModel(ksiazka, autorzy.GetList());

            return(View(model));
        }
Example #17
0
        public ActionResult Edited(EditPageModel model1)
        {
            var editedFilm = model1.Film;

            editedFilm.AgeRating = _db.AgeRatingSet.Where(r => r.Title == model1.SelectedAgeRating).FirstOrDefault();
            editedFilm.Genre     = _db.GenreSet.Where(r => r.Title == model1.SelectedGenre).FirstOrDefault();


            var uneditedFilm = _db.FilmSet.Where(t => t.FilmID == editedFilm.FilmID).FirstOrDefault();

            #region params

            uneditedFilm.Title         = editedFilm.Title;
            uneditedFilm.Country       = editedFilm.Country;
            uneditedFilm.TimeLength    = editedFilm.TimeLength;
            uneditedFilm.ImagePath     = editedFilm.ImagePath;
            uneditedFilm.Description   = editedFilm.Description;
            uneditedFilm.MoreGenres    = editedFilm.MoreGenres;
            uneditedFilm.Actors        = editedFilm.Actors;
            uneditedFilm.Producer      = editedFilm.Producer;
            uneditedFilm.KinopoiskLink = editedFilm.KinopoiskLink;

            uneditedFilm.Genre     = editedFilm.Genre;
            uneditedFilm.AgeRating = editedFilm.AgeRating;

            #endregion


            _db.SaveChanges();



            var model = new SessionsPageModel()
            {
                Films        = _db.FilmSet.AsEnumerable().ToList(),
                FilmSessions = _db.FilmSessionSet.AsEnumerable().ToList()
            };

            return(View("Sessions", model));
        }
Example #18
0
        public ActionResult Edit(Guid?id, EditPageModel model)
        {
            model.AutorModelList = autorzy.GetList();
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (id == null)
            {
                ksiazki.Add(model.KsiazkaModel);
            }
            else
            {
                EditPageModel lmodel = new EditPageModel(ksiazki.Get((Guid)id), autorzy.GetList());
                lmodel.KsiazkaModel.Tytul      = model.KsiazkaModel.Tytul;
                lmodel.KsiazkaModel.AutorId    = model.KsiazkaModel.AutorId;
                lmodel.KsiazkaModel.IloscStron = model.KsiazkaModel.IloscStron;
                lmodel.KsiazkaModel.Okladka    = model.KsiazkaModel.Okladka;
            }
            return(RedirectToAction("Index"));
        }
Example #19
0
        public async Task <OperationResult <PageModel> > Edit(EditPageModel model)
        {
            var entity = await this.BlogContext.Pages.SingleOrDefaultAsync(t => t.ID == model.ID);

            if (entity == null)
            {
                return(OperationResult <PageModel> .Failure(L["The page does not exists anymore"].Value));
            }

            if (model.Parent.HasValue)
            {
                if (model.Parent.Value == entity.ID)
                {
                    return(OperationResult <PageModel> .Failure(L["You cannot set as parent"].Value));
                }

                var parent = await this.BlogContext.Pages.SingleOrDefaultAsync(t => t.ID == model.Parent.Value);

                if (parent == null || parent.ParentID.HasValue)
                {
                    return(OperationResult <PageModel> .Failure(L["Parent does not exists"].Value));
                }
            }

            model.Alias = await this.GenerateAlias(model.ID, model.Alias, model.Title);

            Mapper.Map(model, entity);
            entity.EditDate = model.Date ?? DateTime.Now;
            entity.ParentID = model.Parent;

            await this.BlogContext.SaveChangesAsync();

            this.Cache.Remove(CACHE_KEY);

            var pageModel = (await this.Transform(entity)).First();

            return(new OperationResult <PageModel>(pageModel));
        }
Example #20
0
        public virtual ActionResult Edit(EditPageModel pageModel)
        {
            var selectedPage = new Page
            {
                Body          = pageModel.Body.ToSafeHtml(),
                CommentStatus = pageModel.CommentStatus,
                Description   = pageModel.Description,
                EditedByUser  = _userService.Find(User.Identity.Name),
                Keyword       = pageModel.Keyword,
                ModifiedDate  = DateAndTime.GetDateTime(),
                Id            = pageModel.Id,
                Order         = pageModel.Order,
                Parent        = _pageSerivce.Find(pageModel.ParentId.Value),
                Status        = pageModel.Status,
                Title         = pageModel.Title
            };

            _pageSerivce.Update(selectedPage);
            _uow.SaveChanges();
            return(PartialView(MVC.Admin.Shared.Views._Alert,
                               new Alert {
                Message = "برگه مورد نظر با موفقیت ویرایش شد", Mode = AlertMode.Success
            }));
        }
Example #21
0
 public virtual ActionResult Edit(EditPageModel pageModel)
 {
     var selectedPage = new Page
     {
         Body = pageModel.Body.ToSafeHtml(),
         CommentStatus = pageModel.CommentStatus,
         Description = pageModel.Description,
         EditedByUser = _userService.Find(User.Identity.Name),
         Keyword = pageModel.Keyword,
         ModifiedDate = DateAndTime.GetDateTime(),
         Id = pageModel.Id,
         Order = pageModel.Order,
         Parent = _pageSerivce.Find(pageModel.ParentId.Value),
         Status = pageModel.Status,
         Title = pageModel.Title
     };
     _pageSerivce.Update(selectedPage);
     _uow.SaveChanges();
     return PartialView(MVC.Admin.Shared.Views._Alert,
         new Alert { Message = "برگه مورد نظر با موفقیت ویرایش شد", Mode = AlertMode.Success });
 }
Example #22
0
        public async Task <ActionResult> EditPage(int IDpage, string username, EditPageModel model)
        {
            using (ZavrsniEFentities db = new ZavrsniEFentities())
            {
                var selPage = db.Page.FirstOrDefault(u => u.IDpage.Equals(IDpage));
                if (ModelState.IsValid)
                {
                    var user = db.User.FirstOrDefault(u => u.Username.Equals(username));
                    selPage.name = model.PageTitle;

                    if (model.PageTitle == null)
                    {
                        return(Content("Page title cannot be empty!", "text/html"));
                    }

                    if (Request["PrivacyDropDown"].Any())
                    {
                        var privSel = Request["PrivacyDropDown"];
                        var privacy = Convert.ToInt32(privSel);

                        selPage.IDprivacy = privacy;
                    }

                    selPage.IDeditor    = user.IDuser;
                    selPage.TimeChanged = DateTime.Now;

                    if (model.Tag != null)
                    {
                        var tagModel     = model.Tag.ToLower();
                        var existsInPage = from p in db.PageTag
                                           join t in db.Tag on p.IDtag equals t.ID
                                           where t.name == tagModel
                                           select t;
                        var existsTag = from t in db.Tag
                                        where t.name == tagModel
                                        select t;

                        if (!existsTag.Any())
                        {
                            var newTag = db.Tag.Create();
                            newTag.name = tagModel;
                            db.Tag.Add(newTag);
                            db.SaveChanges();
                        }
                        if (!existsInPage.Any())
                        {
                            var newPageTag = db.PageTag.Create();
                            newPageTag.IDtag  = existsTag.First().ID;
                            newPageTag.IDpage = IDpage;
                            db.PageTag.Add(newPageTag);
                            db.SaveChanges();
                        }
                    }

                    if (model.Contributor != null)
                    {
                        var userExists = from u in db.User
                                         where u.Username == model.Contributor
                                         select u;

                        if (!userExists.Any())
                        {
                            //return RedirectToAction("Edit", new { IDpage = IDpage, Username = username });
                            return(Content("User does not exist, please try again!", "text/html"));
                        }

                        var exists = from t in db.Contributor
                                     join u in db.User on t.IDuser equals u.IDuser
                                     where u.Username == model.Contributor &&
                                     t.IDpage == IDpage
                                     select t;

                        if (!exists.Any())
                        {
                            var contribUser    = db.User.FirstOrDefault(u => u.Username.Equals(model.Contributor));
                            var newContributor = db.Contributor.Create();
                            newContributor.IDpage   = IDpage;
                            newContributor.IDuser   = contribUser.IDuser;
                            newContributor.IsAuthor = false;
                            db.Contributor.Add(newContributor);
                            db.SaveChanges();
                        }
                    }

                    db.Entry(selPage).State = EntityState.Modified;
                    db.SaveChanges();
                    //return RedirectToAction("Edit", new { IDpage = IDpage, Username = username });
                    return(Content("Changes were successfully saved!", "text/html"));
                }
            }
            return(Content("Edit failed, please try again!", "text/html"));
            //return RedirectToAction("Edit", new { IDpage = IDpage, Username = username });
        }
Example #23
0
        public ActionResult Create(EditPageModel editPage, string isCreateNewSection, string newSectionName)
        {
            NaviNode currentNode = _db.Set <NaviNode>().Single(e => e.Id == editPage.NaviNodeId);

            PermissionType accessMode = SecurityHelper.NaviAccessMode(_db, currentNode);

            if (accessMode < PermissionType.Create)
            {
                throw new Exception("Access Denided.");
            }

            // TODO: add site specical chc
            if (CmsHelper.Site == "fratalk")
            {
                if (string.IsNullOrEmpty(editPage.Keywords))
                {
                    ModelState.AddModelError("keywords", "The topics field is required.");
                }
            }


            if (ModelState.IsValid)
            {
                CmsPage page = new CmsPage();
                CopyProperties(editPage, page);

                page.Status = CmsPage.STATUS_CHANGE_SAVED;

                if (editPage.Layout == 8)
                {
                    //TODO HARD CODED
                    isCreateNewSection = "1";
                    newSectionName     = editPage.Title;
                    page.Title         = "Summary";
                    page.NaviTitle     = "Summary";
                }

                if (isCreateNewSection == "1" && newSectionName != null && newSectionName.Length > 0)
                {
                    NaviNode naviNode = new NaviNode();
                    naviNode.NodeName  = newSectionName;
                    naviNode.Parent    = page.NaviNode;
                    naviNode.MenuOrder = CountChildren(page.NaviNode.Id);
                    naviNode.Type      = page.NaviNode.Type;

                    naviNode.Modified   = DateTime.Now;
                    naviNode.ModifiedBy = User.Identity.Name.ToUpper();
                    naviNode.Created    = DateTime.Now;
                    naviNode.CreatedBy  = User.Identity.Name.ToUpper();

                    page.NaviNode  = naviNode;
                    page.MenuOrder = 0;
                    page.Type      = _db.Set <ContentType>().SingleOrDefault(e => e.Title == "BLOG HOME") ?? naviNode.Type;
                }
                else
                {
                    page.MenuOrder = CountChildren(page.NaviNode.Id);
                    page.Type      = page.NaviNode.Type;
                }
                _urlHelper.UpdatePageUrl(page);

                // Only save the page when it has a unique URL.
                CmsPage pageWithDuplicateUrl = _db.Set <CmsPage>().SingleOrDefault(e => e.Url.Equals(page.Url, StringComparison.InvariantCultureIgnoreCase));
                if (pageWithDuplicateUrl == null)
                {
                    _db.Set <CmsPage>().Add(page);
                    _db.SaveChanges();
                    return(Redirect("/" + page.Url));
                }
                else
                {
                    ModelState.AddModelError("NaviTitle", "Cannot have same page URL in the same navigation section.");
                }
            }
            // The first page in the menu is the return page
            // if create page action is canceled.
            CmsPage returnPage = currentNode.Pages.OrderBy(e => e.MenuOrder).FirstOrDefault();

            ViewBag.ReturnUrl = "/" + (returnPage == null ? "" : returnPage.Url);

            ViewBag.NaviNode   = currentNode;
            ViewBag.BaseNode   = CmsPageBase.FindBaseNode(currentNode);
            ViewBag.AccessMode = accessMode;

            bool havingWebPart = false;

            editPage.Content = _pageEngine.ReplaceTokens(
                page: new CmsPage
            {
                Id   = editPage.Id,
                Html = new CmsPageHtml
                {
                    Content = editPage.Content
                },
                NaviNode = currentNode,
                Layout   = editPage.Layout
            },
                webpartHeaders: new StringBuilder(),
                havingWebPart: out havingWebPart,
                controllerContext: this.ControllerContext,
                isEditState: true);

            return(View(editPage));
        }
Example #24
0
        //
        // GET: /Page/Create
        //id is the navigation id
        public ActionResult Create(int id, int layoutId = 1)
        {
            NaviNode naviNode = _db.Set <NaviNode>().Single(e => e.Id == id);

            PermissionType accessMode = SecurityHelper.NaviAccessMode(_db, naviNode);

            if (accessMode < PermissionType.Create)
            {
                throw new Exception("Access Denided.");
            }

            ViewBag.NaviNode   = naviNode;
            ViewBag.AccessMode = accessMode;
            ViewBag.BaseNode   = CmsPageBase.FindBaseNode(naviNode);

            EditPageModel editPageModel = new EditPageModel();

            editPageModel.NaviNodeId = naviNode.Id;

            var layout = _db.Set <PageLayout>().SingleOrDefault(e => e.Id == layoutId);

            if (layout == null)
            {
                layout = _db.Set <PageLayout>().First();
            }

            bool havingWebPart = false;

            StringBuilder webpartHeaders = new StringBuilder();
            string        template       = layout.Template;
            var           tempPage       = new CmsPage
            {
                Id   = id,
                Html = new CmsPageHtml
                {
                    Content = layout.Template
                },
                Layout   = layout.Id,
                NaviNode = naviNode
            };

            // hack
            if (tempPage.Layout == 10)
            {
                tempPage.Html.Content = new JavaScriptSerializer().Serialize(new
                {
                    Summaryregion = "Post Summary",
                    region1       = "Post Content"
                });
            }
            editPageModel.Content = _pageEngine.ReplaceTokens(
                page: tempPage,
                webpartHeaders: webpartHeaders,
                havingWebPart: out havingWebPart,
                controllerContext: ControllerContext,
                isEditState: true);
            editPageModel.Layout   = layout.Id;
            editPageModel.Type     = layout.Type.Title;
            ViewBag.HavingWebPart  = havingWebPart;
            ViewBag.WebpartHeaders = webpartHeaders.ToString();

            // The first page in the menu is the return page
            // if create page action is canceled.
            CmsPage returnPage = naviNode.Pages.OrderBy(e => e.MenuOrder).FirstOrDefault();

            ViewBag.ReturnUrl = "/" + (returnPage == null ? "" : returnPage.Url);

            editPageModel.Status        = CmsPage.STATUS_EDITING_START;
            editPageModel.IsCommentable = true;
            return(View(editPageModel));
        }