예제 #1
0
        public ActionResult SavePageHtmlContent(PageContentViewModel model)
        {
            var result = GetCommand <SavePageHtmlContentCommand>().ExecuteCommand(model);

            if (result != null)
            {
                return(Json(
                           new WireJson
                {
                    Success = true,
                    Data = new
                    {
                        PageContentId = result.PageContentId,
                        ContentId = result.ContentId,
                        RegionId = result.RegionId,
                        PageId = result.PageId,
                        DesirableStatus = model.DesirableStatus
                    }
                }));
            }

            return(Json(new WireJson {
                Success = false
            }));
        }
예제 #2
0
        public ActionResult DeletePage(int id)
        {
            var deletePage = _pageContentEssenceManager.Get(id);

            try {
                _pageContentEssenceManager.Delete(id);
                _pageSeoEssenceManager.Delete(deletePage.PageSeoModel.Id);

                return(RedirectToAction("ManagementPage"));
            }
            catch (ValidationException ex) {
                ModelState.AddModelError(ex.Property, ex.Message);

                var pageContent = new PageContentViewModel {
                    Id           = deletePage.Id,
                    Header       = deletePage.Header,
                    Url          = deletePage.Url,
                    IsPublished  = deletePage.IsPublished,
                    SeoID        = deletePage.SeoID,
                    Title        = deletePage.PageSeoModel.Title,
                    Descriptions = deletePage.PageSeoModel.Descriptions,
                    KeyWords     = deletePage.PageSeoModel.KeyWords,
                    HtmlContent  = deletePage.HtmlContentModel.HtmlContent,
                    UniqueCode   = deletePage.HtmlContentModel.UniqueCode
                };

                return(View(pageContent));
            }
        }
예제 #3
0
        public ActionResult CreatePage(PageContentViewModel pageContent)
        {
            try {
                if (ModelState.IsValid)
                {
                    var pageSeoModel = new PageSeoModel {
                        Title        = pageContent.Title,
                        KeyWords     = pageContent.KeyWords,
                        Descriptions = pageContent.Descriptions
                    };

                    var htmlContentModel = new HtmlContentModel {
                        HtmlContent = pageContent.HtmlContent,
                        UniqueCode  = System.Guid.NewGuid().ToString()
                    };

                    var pageContentModel = new PageContentModel {
                        Header           = pageContent.Header,
                        Url              = pageContent.Url,
                        IsPublished      = false,
                        PageSeoModel     = pageSeoModel,
                        HtmlContentModel = htmlContentModel
                    };
                    _pageContentEssenceManager.CreatePage(pageContentModel);

                    return(RedirectToAction("ManagementPage"));
                }
            }
            catch (ValidationException ex) {
                ModelState.AddModelError(ex.Property, ex.Message);
            }

            return(View(pageContent));
        }
예제 #4
0
        public void SaveCMSPageContent(PageContentViewModel model)
        {
            var websitePageDb = _unitOfWork.WebsitePages.GetPageById(model.Id);

            websitePageDb.Content1 = model.Content1;

            _unitOfWork.Complete();
        }
예제 #5
0
 public async Task <object> CreatePageContent(PageContentViewModel model)
 {
     if (!model.Logo.StartsWith("fa"))
     {
         model.Logo = "data:image/jpeg;base64," + model.Logo;
     }
     repo.Repository <PageContentViewModel>().Add(model);
     repo.Repository <PageContentViewModel>().Save();
     return(new { sucess = true });
 }
예제 #6
0
        public async Task <object> DeletPageContent(PageContentViewModel model)
        {
            var result = repo.Repository <PageContentViewModel>().FindBy(x => x.Id == model.Id);

            if (result == null)
            {
                return(new { sucess = false, error = "notfound" });
            }
            repo.Repository <PageContentViewModel>().Delete(result);
            repo.Repository <PageContentViewModel>().Save();
            return(new { sucess = true });
        }
예제 #7
0
        public ActionResult Index(string permalink, string codeMenu)
        {
            var page = _pageContentEssenceManager.FindUrl(permalink);

            if (!page.IsPublished)
            {
                return(new HttpStatusCodeResult(404));
            }

            var pageContent = new PageContentViewModel {
                Id            = page.Id,
                Header        = page.Header,
                Url           = page.Url,
                SeoID         = page.SeoID,
                Title         = page.PageSeoModel.Title,
                Descriptions  = page.PageSeoModel.Descriptions,
                KeyWords      = page.PageSeoModel.KeyWords,
                HtmlContentID = page.HtmlContentID,
                HtmlContent   = page.HtmlContentModel.HtmlContent,
                UniqueCode    = page.HtmlContentModel.UniqueCode
            };

            // Has menu
            if (!String.IsNullOrEmpty(codeMenu))
            {
                var menu          = _menuManager.RenderMenu(codeMenu);
                var menuViewModel = new MenuViewModel {
                    Id        = menu.Id,
                    TitleMenu = menu.TitleMenu,
                    Code      = menu.Code
                };

                var listMenuItem = new List <MenuItemViewModel>();
                foreach (var menuItems in menu.MenuItemsModel)
                {
                    var menuItem = new MenuItemViewModel {
                        Id            = menuItems.Id,
                        MenuID        = menuItems.MenuID,
                        PageID        = menuItems.PageID,
                        TitleMenuItem = menuItems.TitleMenuItem,
                        Url           = menuItems.Url
                    };
                    listMenuItem.Add(menuItem);
                }
                menuViewModel.MenuItems = listMenuItem;


                ViewBag.Menu = menuViewModel;
            }

            return(View(pageContent));
        }
예제 #8
0
        public ActionResult AddPageHtmlContent(string pageId, string regionId)
        {
            var viewModel = new PageContentViewModel
            {
                PageId = Guid.Parse(pageId),
                RegionId = Guid.Parse(regionId),
                LiveFrom = DateTime.Today
            };

            var request = new GetWidgetCategoryRequest();
            viewModel.WidgetCategories = GetCommand<GetWidgetCategoryCommand>().ExecuteCommand(request).WidgetCategories;            

            return View(viewModel);
        }
예제 #9
0
        public async Task <object> EditPageContent(PageContentViewModel model)
        {
            var result = repo.Repository <PageContentViewModel>().FindBy(x => x.Id == model.Id);

            result.Title       = model.Title;
            result.Description = model.Description;
            if (model.Logo != null && !model.Logo.StartsWith("fa"))
            {
                model.Logo = "data:image/jpeg;base64," + model.Logo;
            }
            result.More = model.More;
            repo.Repository <PageContentViewModel>().Edit(result);
            repo.Repository <PageContentViewModel>().Save();
            return(new { sucess = true });
        }
예제 #10
0
        public IActionResult Index(Guid repositoryid)
        {
            IRepository repository = new CmsManager().GetRepositoryById(repositoryid);

            if (repository == null)
            {
                return(Redirect("/fcmsmanager/page"));
            }
            PageContentViewModel model = new PageContentViewModel();

            model.RepositoryId       = repositoryid;
            model.RepositoryName     = repository.Name;
            model.ContentDefinitions = repository.ContentDefinitions;

            return(View("Index", model));
        }
예제 #11
0
        public ActionResult DetailsPage(int?id)
        {
            var page        = _pageContentEssenceManager.Get(id.Value);
            var pageContent = new PageContentViewModel {
                Id            = page.Id,
                Header        = page.Header,
                Url           = page.Url,
                IsPublished   = page.IsPublished,
                SeoID         = page.SeoID,
                HtmlContentID = page.HtmlContentID,
                Title         = page.PageSeoModel.Title,
                Descriptions  = page.PageSeoModel.Descriptions,
                KeyWords      = page.PageSeoModel.KeyWords,
                HtmlContent   = page.HtmlContentModel.HtmlContent,
                UniqueCode    = page.HtmlContentModel.UniqueCode
            };

            return(View(pageContent));
        }
예제 #12
0
        public async Task <IActionResult> Delete(String Page, Guid?id)
        {
            PageContentViewModel PageContentView = null;

            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri("https://myportalagency.azurewebsites.net/");
                client.DefaultRequestHeaders.Accept.Clear();
                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                // New code:
                HttpResponseMessage response = await client.GetAsync("api/PageView/GetPageContent/?id=" + id.Value);

                if (response.IsSuccessStatusCode)
                {
                    PageContentView = await response.Content.ReadAsAsync <PageContentViewModel>();
                }
            }
            PageContentView.Page = Page;
            return(View(PageContentView));
        }
예제 #13
0
        public IActionResult GetPageDetail(long pageId)
        {
            var client = GetProjectClient();
            var model  = new PageContentViewModel();

            try
            {
                model.Text = client.GetPageText(pageId, TextFormatEnumContract.Html);
            }
            catch (HttpErrorCodeException e)
            {
                if (e.StatusCode != HttpStatusCode.NotFound)
                {
                    throw;
                }
            }

            model.HasImage = client.HasPageImage(pageId);
            model.PageId   = pageId;

            return(PartialView("../Project/Work/SubView/_PageListDetail", model));
        }
예제 #14
0
        public ActionResult EditPage(PageContentViewModel pageContent)
        {
            try {
                if (ModelState.IsValid)
                {
                    var htmlContentModel = new HtmlContentModel {
                        HtmlContent = pageContent.HtmlContent,
                        UniqueCode  = System.Guid.NewGuid().ToString()
                    };
                    _htmlContentEssenceManager.SaveHtmlContent(htmlContentModel);
                    int htmlContentId = _htmlContentEssenceManager.GetId(htmlContentModel.UniqueCode);

                    var pageSeoModel = new PageSeoModel {
                        Id           = pageContent.SeoID.Value,
                        Title        = pageContent.Title,
                        KeyWords     = pageContent.KeyWords,
                        Descriptions = pageContent.Descriptions
                    };
                    _pageSeoEssenceManager.EditSeo(pageSeoModel);

                    var pageContentModel = new PageContentModel {
                        Id            = pageContent.Id,
                        Header        = pageContent.Header,
                        Url           = pageContent.Url,
                        IsPublished   = false,
                        SeoID         = pageSeoModel.Id,
                        HtmlContentID = htmlContentId
                    };
                    _pageContentEssenceManager.EditPage(pageContentModel);

                    return(RedirectToAction("ManagementPage"));
                }
            }
            catch (ValidationException ex) {
                ModelState.AddModelError(ex.Property, ex.Message);
            }

            return(View(pageContent));
        }
예제 #15
0
        public ActionResult ReturnCMSPage()
        {
            var websitePageDB = HttpContext.Items["cmspage"] as WebsitePage;

            var websitePageToRedirectTo = new PageContentViewModel()
            {
                Id              = websitePageDB.Id,
                Content1        = websitePageDB.Content1,
                Content2        = websitePageDB.Content2,
                Content3        = websitePageDB.Content3,
                Content4        = websitePageDB.Content4,
                Content5        = websitePageDB.Content5,
                MetaDescription = websitePageDB.MetaDescription,
                MetaKeywords    = websitePageDB.MetaKeywords,
                PageUrl         = websitePageDB.PageUrl,
                MenuName        = websitePageDB.MenuName,
                PageTitle       = websitePageDB.PageTitle,
                BlogPages       = _unitOfWork.WebsitePages.GetBlogPages(0).ToList()
            };

            string template = websitePageDB.Template;

            return(View(template, websitePageToRedirectTo));
        }
예제 #16
0
        public ActionResult SavePageHtmlContent(PageContentViewModel model)
        {
            try
            {
                var result = GetCommand <SavePageHtmlContentCommand>().ExecuteCommand(model);

                if (result != null)
                {
                    return
                        (Json(
                             new WireJson
                    {
                        Success = true,
                        Data =
                            new
                        {
                            PageContentId = result.PageContentId,
                            ContentId = result.ContentId,
                            RegionId = result.RegionId,
                            PageId = result.PageId,
                            DesirableStatus = model.DesirableStatus
                        }
                    }));
                }

                return(Json(new WireJson {
                    Success = false
                }));
            }
            catch (ConfirmationRequestException exc)
            {
                return(Json(new WireJson {
                    Success = false, Data = new { ConfirmationMessage = exc.Resource() }
                }));
            }
        }
예제 #17
0
        public ActionResult SavePageContent(PageContentViewModel viewModel)
        {
            if (this.ModelState.IsValid)
            {
                Page page = this._pageService.GetPageById(viewModel.PageId);
                PageContent content = page.Content.First(o => o.ContentId == viewModel.ContentId);

                content.Html = viewModel.Html;

                this._pageService.SavePageContent(content, this._memberProvider.GetLoggedInMember().Name);

                return this.RedirectToRoute(AdminRoutes.Cms.Page.View);
            }

            return this.EditPageContent(viewModel.PageId, viewModel.ContentId);
        }
예제 #18
0
        //[HtmlActionFilter]
        public ActionResult ReturnCMSPage(string url)
        {
            //IF WE'RE CALLING FOR HOMEPAGE, URL WOULD BE NULL, SO WE'RE SETTING IT TO JUST AN EMPTY STRING
            //if (String.IsNullOrEmpty(url))
            //{
            //    url = "";
            //}

            //ENABLING URL'S WITH AND WITHOUT TRAILING SLASH,
            //SECOND CONDITION IS IF WE'RE CALLING FOR HOMEPAGE THEN
            //DON'T ADD TRAILING SLASH BECAUSE WE'RE ADDING IT IN THE REPOSITORY
            //if (!url.EndsWith("/") && !String.IsNullOrEmpty(url))
            //{
            //    url = url + "/";
            //}
            //var websitePageDB = _unitOfWork.WebsitePages.GetPageByUrl(url);

            var websitePageDB = HttpContext.Items["cmspage"] as WebsitePage;

            //IF WE CAN'T FIND PAGE IN DATABASE WITH THE PROVIDED URL, REDIRECT TO HOMEPAGE
            //if (websitePageDB == null)
            //{
            //    return Redirect("/");
            //}

            //if (!string.IsNullOrEmpty(websitePageDB.Content1))
            //{
            //    //replace non-ascii with empty string
            //    websitePageDB.Content1 = Regex.Replace(websitePageDB.Content1, @"[^\u0000-\u007F]", string.Empty);

            //    //replace 3 or more BR with one BR
            //    websitePageDB.Content1 = Regex.Replace(websitePageDB.Content1, "(?:\\s*<br[/\\s]*>\\s*){3,}", "");

            //    //remove any style attributes
            //    websitePageDB.Content1 = Regex.Replace(websitePageDB.Content1, " style=(\"|')[^(\"|')]*(\"|')", "");

            //    //remove empty p tags
            //    websitePageDB.Content1 = Regex.Replace(websitePageDB.Content1, "(<p>\\s*</p>|<p>\\s*​\\?</p>|<p>&nbsp;</p>)", "<br>");

            //    //remove font tags
            //    websitePageDB.Content1 = Regex.Replace(websitePageDB.Content1, "</?(font)[^>]*>", "");
            //}

            var websitePageToRedirectTo = new PageContentViewModel()
            {
                Content1        = websitePageDB.Content1,
                Content2        = websitePageDB.Content2,
                Content3        = websitePageDB.Content3,
                Content4        = websitePageDB.Content4,
                Content5        = websitePageDB.Content5,
                ImageToShow     = string.IsNullOrEmpty(websitePageDB.ImagePath) ? "Content/images/bioreg-page-bg.jpg" : websitePageDB.ImagePath + "/" + websitePageDB.ImageName,
                MetaDescription = websitePageDB.MetaDescription,
                MetaKeywords    = websitePageDB.MetaKeywords,
                PageUrl         = websitePageDB.PageUrl,
                PageTitle       = websitePageDB.PageTitle,
                RelatedPages    = _unitOfWork.WebsitePages.GetRelatedPages(websitePageDB.Id, websitePageDB.ParentId).ToList()
            };

            string template = websitePageDB.Template;

            return(View(template, websitePageToRedirectTo));
        }
예제 #19
0
 public ActionResult DetailsPage(PageContentViewModel pageContent)
 {
     return(View(pageContent));
 }