示例#1
0
        public ActionResult Index(FrontEndCmsPage page, FrontEndSubscriptionSignIn frontEndSubscriptionSignIn)
        {
            if (ModelState.IsValidOrRefresh())
            {
                Subscription subscription = new Subscriptions().GetSubscriptionActiveByEmailAndPassword(frontEndSubscriptionSignIn.Email, frontEndSubscriptionSignIn.Password);
                if (subscription.IsNotNull())
                {
                    FrontEndSessions.CurrentSubscription = subscription;

                    if (frontEndSubscriptionSignIn.ReturnUrl.IsNotEmptyOrWhiteSpace())
                    {
                        //return Content("<script>window.location.href='" + frontEndSubscriptionSignIn.ReturnUrl + "';</script>");
                        return(ChildActionRedirect(frontEndSubscriptionSignIn.ReturnUrl));
                    }
                    else
                    {
                        //return Content("<script>window.location.href='/" + page.LanguageCode + "';</script>");
                        return(ChildActionRedirect("~/" + page.LanguageCode + "/"));
                    }
                }
                else
                {
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings_Subscription.SubscriptionEmailOrPasswordNotValid);
                }
            }

            return(View(frontEndSubscriptionSignIn));
        }
示例#2
0
        public static IHtmlString GetMainMenu(this HtmlHelper htmlHelper, FrontEndCmsPage model, string className = "nav")
        {
            string mainMenu = string.Empty;

            BuildMainMenu(new CmsPages().GetAllPages(), 1, null, ref mainMenu, string.Empty, className, model.LanguageCode);
            return(htmlHelper.Raw(mainMenu));
        }
示例#3
0
        public ActionResult Index(FrontEndCmsPage page)
        {
            FrontEndSubscriptionProfile frontEndSubscriptionProfile = new FrontEndSubscriptionProfile();

            Subscription subscription = new Subscriptions().GetSubscriptionByEmail(FrontEndSessions.CurrentSubscription.Email);

            if (subscription.IsNotNull())
            {
                frontEndSubscriptionProfile.LanguageCode    = page.LanguageCode;
                frontEndSubscriptionProfile.Email           = subscription.Email;
                frontEndSubscriptionProfile.FirstName       = subscription.FirstName;
                frontEndSubscriptionProfile.LastName        = subscription.LastName;
                frontEndSubscriptionProfile.Birthdate       = subscription.BirthDate.ToDateTimeString();
                frontEndSubscriptionProfile.PhoneNumber     = subscription.PhoneNumber;
                frontEndSubscriptionProfile.Address         = subscription.Address;
                frontEndSubscriptionProfile.City            = subscription.City;
                frontEndSubscriptionProfile.PostCode        = subscription.PostCode;
                frontEndSubscriptionProfile.CountryCode     = subscription.CountryCode;
                frontEndSubscriptionProfile.WantsNewsletter = subscription.WantsNewsletter;
                frontEndSubscriptionProfile.JoinDate        = subscription.JoinDate.ToDateTimeString();
            }
            else
            {
                ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.ItemDoesNotExist);
                ViewData.IsFormVisible(false);
            }

            return(View(frontEndSubscriptionProfile));
        }
示例#4
0
        public ActionResult Index(FrontEndCmsPage page, FrontEndSubscriptionPasswordReset frontEndSubscriptionPasswordReset)
        {
            ViewBag.IsPasswordResetKeyValid = true;
            if (ModelState.IsValidOrRefresh())
            {
                Subscriptions subscriptions = new Subscriptions();
                int?          result        = subscriptions.ResetPassword(frontEndSubscriptionPasswordReset.PasswordResetKey, frontEndSubscriptionPasswordReset.NewPassword);
                switch (result)
                {
                case 0:
                    ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings.PasswordSuccessfullyChanged);
                    ViewData.IsFormVisible(false);
                    break;

                case 2:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings_Subscription.PasswordResetUrlNotValid);
                    break;

                default:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError);
                    break;
                }
            }

            return(View(frontEndSubscriptionPasswordReset));
        }
示例#5
0
        public ActionResult Summary(FrontEndCmsPage page)
        {
            News news = new News();

            NewsConfiguration newsConfiguration = new NewsConfigurations().GetNewsConfiguration();

            FrontEndNews frontEndNews = new FrontEndNews()
            {
                LanguageCode = page.LanguageCode,
                NewsList     = news
                               .GetNews(page.LanguageCode, isActive: true, isCategoryActive: true)
                               .OrderByDescending(i => i.NewsDate)
                               .ToBootstrapPagedList(0, newsConfiguration.NumberOfNewsInSummary),
                FilterCategoryId  = null,
                FilterNewsDate    = null,
                NewsId            = null,
                NewsDate          = null,
                UserName          = null,
                CategoryId        = null,
                CategoryName      = null,
                MainImageFilePath = null,
                NewsTitle         = null,
                NewsContent       = null
            };

            return(View(frontEndNews));
        }
示例#6
0
        public static IHtmlString GetSitemap(this HtmlHelper htmlHelper, FrontEndCmsPage model, string className = "")
        {
            string         sitemap = string.Empty;
            PagesLanguages backEndCmsPagesLanguages = new PagesLanguages();

            BuildSitemap(new CmsPages().GetAllPages(), backEndCmsPagesLanguages, 1, null, ref sitemap, className, model.LanguageCode);
            return(htmlHelper.Raw(sitemap));
        }
示例#7
0
        public static IHtmlString GetFooterMenu(this HtmlHelper htmlHelper, FrontEndCmsPage model, string className = "nav nav-pills")
        {
            string         footerMenu = string.Empty;
            List <CmsPage> pagesObj   = new CmsPages().GetAllPages();

            if (pagesObj != null)
            {
                pagesObj = (from page in pagesObj
                            where page.ShowInBottomMenu && page.IsActive
                            select page).ToList();
                if (pagesObj != null && pagesObj.Count > 0)
                {
                    footerMenu += "<ul class=\"" + className + "\">";
                    string url;
                    GlobalConfiguration globalConfiguration    = new GlobalConfigurations().GetGlobalConfiguration();
                    PagesLanguages      backEndCmsPagesContent = new PagesLanguages();
                    PageLanguage        backEndCmsPageLanguage;
                    string pageTitle = string.Empty;
                    foreach (CmsPage pageObj in pagesObj)
                    {
                        backEndCmsPageLanguage = backEndCmsPagesContent.GetPageLanguage(pageObj.PageId, model.LanguageCode);

                        if (backEndCmsPageLanguage.IsNotNull() && backEndCmsPageLanguage.MenuName.IsNotEmptyOrWhiteSpace())
                        {
                            pageTitle = backEndCmsPageLanguage.MenuName;
                        }
                        else
                        {
                            pageTitle = pageObj.PageName;
                        }

                        if (pageObj.PageTemplateId.IsNull())
                        {
                            url = pageObj.Url;
                        }
                        else
                        {
                            url = "/";
                            if (!pageObj.IsHomePage || model.LanguageCode != globalConfiguration.DefaultLanguageCode)
                            {
                                if (pageObj.IsHomePage)
                                {
                                    url += model.LanguageCode + "/";
                                }
                                else
                                {
                                    url += model.LanguageCode + "/" + pageObj.FullSegment + "/";
                                }
                            }
                        }
                        footerMenu += "<li><a href=\"" + url + "\" target=\"" + pageObj.Target + "\" title=\"" + pageTitle + "\">" + pageTitle + "</a></li>";
                    }
                    footerMenu += "</ul>";
                }
            }
            return(htmlHelper.Raw(footerMenu));
        }
示例#8
0
        public ActionResult Index(FrontEndCmsPage page)
        {
            FrontEndSubscriptionPasswordForgot frontEndSubscriptionPasswordForgot = new FrontEndSubscriptionPasswordForgot()
            {
                LanguageCode = page.LanguageCode
            };

            return(View(frontEndSubscriptionPasswordForgot));
        }
示例#9
0
        public ActionResult Index(FrontEndCmsPage page)
        {
            GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();
            FrontEndError       error = new FrontEndError()
            {
                LanguageFolder = page.LanguageFolder,
                StatusCode     = page.StatusCode.ConvertTo <int>(),
                ErroMessage    = ("Error" + page.StatusCode.ConvertTo <int>().ToString()).GetStringFromResource()
            };

            return(View(error));
        }
示例#10
0
        public ActionResult Index(FrontEndCmsPage page, string k)
        {
            FrontEndSubscriptionRegister frontEndSubscriptionRegister = new FrontEndSubscriptionRegister()
            {
                LangugeCode = page.LanguageCode
            };

            ViewBag.IsActivationPage = false;
            if (k.IsNotEmptyOrWhiteSpace())
            {
                ViewBag.IsActivationPage = true;
                Subscriptions subscriptions = new Subscriptions();
                int?          result        = subscriptions.ActivativateSubscription(k);
                switch (result)
                {
                case 0:
                    Subscription subscription = subscriptions.GetSubscriptionByActivationKey(k);

                    GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();

                    CultureInfoHelper.ForceBackEndLanguage();

                    string subject = Resources.Strings_Subscription.EmailSubscriptionAddedSubject.Replace("{$Url}", globalConfiguration.DomainName.ToUrl());
                    string body    = Resources.Strings_Subscription.EmailSubscriptionAddedBody
                                     .Replace("{$Url}", globalConfiguration.DomainName.ToUrl())
                                     .Replace("{$subscriptionEmail}", subscription.Email)
                                     .Replace("{$ipAddress}", Request.UserHostAddress);

                    CultureInfoHelper.RestoreFrontEndLanguage();

                    EmailHelper email = new EmailHelper(globalConfiguration.NotificationEmail, globalConfiguration.NotificationEmail, subject, body);
                    email.Send();

                    ViewBag.ActivationResult = Resources.Strings_Subscription.ActivationKeySuccess;
                    break;

                case 2:
                    ViewBag.ActivationResult = Resources.Strings_Subscription.ActivationKeyInvalid;
                    break;

                case 3:
                    ViewBag.ActivationResult = Resources.Strings_Subscription.ActivationKeyAlreadyUsed;
                    break;

                default:
                    ViewBag.ActivationResult = Resources.Strings.UnexpectedError;
                    break;
                }
            }

            return(View(frontEndSubscriptionRegister));
        }
示例#11
0
        public static IHtmlString GetSubscriptionPanel(this HtmlHelper htmlHelper, FrontEndCmsPage model)
        {
            StringBuilder result = new StringBuilder();

            SubscriptionConfiguration subscriptionConfiguration = new SubscriptionConfigurations().GetSubscriptionConfiguration();

            if (subscriptionConfiguration.IsSubscriptionActive)
            {
                CmsPages cmsPages = new CmsPages();
                result.AppendLine("<ul class=\"nav navbar-nav navbar-right navbar-underline-hover\">");
                if (FrontEndSessions.CurrentSubscription.IsNull())
                {
                    if (subscriptionConfiguration.RegisterPageId.IsNotNull())
                    {
                        CmsPageActionlink cmsPageActionlink = cmsPages.GetCmsPageActionlink(subscriptionConfiguration.RegisterPageId, model.LanguageCode);
                        result.AppendLine("    <li><a href=\"" + cmsPageActionlink.Url + "\"><i class=\"fa fa-check-square-o\"></i> " + cmsPageActionlink.Title + "</a></li>");
                    }
                    if (subscriptionConfiguration.SignInPageId.IsNotNull())
                    {
                        CmsPageActionlink cmsPageActionlink = cmsPages.GetCmsPageActionlink(subscriptionConfiguration.SignInPageId, model.LanguageCode);
                        result.AppendLine("    <li><a href=\"" + cmsPageActionlink.Url + "\"><i class=\"fa fa-sign-in\"></i> " + cmsPageActionlink.Title + "</a></li>");
                    }
                }
                else
                {
                    result.AppendLine("    <li class=\"dropdown\">");
                    result.AppendLine("        <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\">" + FrontEndSessions.CurrentSubscription.FirstName + " <i class=\"fa fa-user\"></i> <b class=\"caret\"></b></a>");
                    result.AppendLine("        <ul class=\"dropdown-menu\">");
                    if (subscriptionConfiguration.ProfilePageId.IsNotNull())
                    {
                        CmsPageActionlink cmsPageActionlink = cmsPages.GetCmsPageActionlink(subscriptionConfiguration.ProfilePageId, model.LanguageCode);
                        result.AppendLine("            <li><a href=\"" + cmsPageActionlink.Url + "\"><i class=\"fa fa-cog\"></i> " + cmsPageActionlink.Title + "</a></li>");
                    }
                    if (subscriptionConfiguration.ChangePasswordPageId.IsNotNull())
                    {
                        CmsPageActionlink cmsPageActionlink = cmsPages.GetCmsPageActionlink(subscriptionConfiguration.ChangePasswordPageId, model.LanguageCode);
                        result.AppendLine("            <li><a href=\"" + cmsPageActionlink.Url + "\"><i class=\"fa fa-lock\"></i> " + cmsPageActionlink.Title + "</a></li>");
                    }
                    if (subscriptionConfiguration.SignInPageId.IsNotNull())
                    {
                        CmsPageActionlink cmsPageActionlink = cmsPages.GetCmsPageActionlink(subscriptionConfiguration.SignInPageId, model.LanguageCode);
                        result.AppendLine("            <li class=\"divider\"></li>");
                        result.AppendLine("            <li><a href=\"" + cmsPageActionlink.Url + "?a=sign-out\"><i class=\"fa fa-sign-out\"></i> " + Event304.Resources.Strings.SignOut + "</a></li>");
                    }
                    result.AppendLine("        </ul>");
                    result.AppendLine("    </li>");
                }
                result.AppendLine("</ul>");
            }

            return(htmlHelper.Raw(result.ToString()));
        }
示例#12
0
        public ActionResult Index(FrontEndCmsPage page, FrontEndSubscriptionPasswordForgot frontEndSubscriptionPasswordForgot)
        {
            if (ModelState.IsValidOrRefresh())
            {
                Subscriptions subscriptions = new Subscriptions();
                Subscription  subscription  = subscriptions.GetSubscriptionByEmail(frontEndSubscriptionPasswordForgot.Email);
                if (subscription.IsNotNull())
                {
                    string PasswordResetKey = DateTime.Now.Ticks.ToBase36() + frontEndSubscriptionPasswordForgot.Email.EncodeBase64() + Session.SessionID;

                    int?result = subscriptions.EditPasswordResetKey(frontEndSubscriptionPasswordForgot.Email, PasswordResetKey);
                    switch (result)
                    {
                    case 0:
                        GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();

                        string subject = Resources.Strings_Subscription.EmailPwForgotSubject.Replace("{$SiteName}", globalConfiguration.SiteName);
                        string body    = Resources.Strings_Subscription.EmailPwForgotBody
                                         .Replace("{$FirstName}", subscription.FirstName)
                                         .Replace("{$SiteName}", globalConfiguration.SiteName)
                                         .Replace("{$PasswordResetUrl}", globalConfiguration.DomainName.ToUrl() + page.LanguageCode + "/reset-password?PasswordResetKey=" + PasswordResetKey)
                                         .Replace("{$Url}", globalConfiguration.DomainName.ToUrl());

                        EmailHelper email = new EmailHelper("subscription-pw-reset@" + globalConfiguration.DomainName, frontEndSubscriptionPasswordForgot.Email, subject, body);
                        if (email.Send())
                        {
                            ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings.FormSuccessfullySubmitted);
                            ViewData.IsFormVisible(false);
                        }
                        else
                        {
                            ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError + " (Email)");
                        }
                        break;

                    case 2:
                        ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings_Subscription.SubscriptionEmailNotValid);
                        break;

                    default:
                        ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError + " (Database)");
                        break;
                    }
                }
                else
                {
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings_Subscription.SubscriptionEmailNotValid);
                }
            }

            return(View(frontEndSubscriptionPasswordForgot));
        }
示例#13
0
        public string GetContent(HtmlHelper htmlHelper, FrontEndCmsPage model, string id)
        {
            string result = string.Empty;

            SharedContent sharedContent = new SharedContents().GetSharedContent(id, model.LanguageCode, true);

            if (sharedContent.IsNotNull())
            {
                //include any extra modules, excluding {$Content} and other {$SharedContent-...} to avoid recursion
                string   controllerAction;
                string[] controllerActionArray;

                bool isModuleFound;

                foreach (string sharedContentPart in ExtensionsHelper.GetHtmlCodeParts(sharedContent.HtmlCode))
                {
                    isModuleFound = false;
                    foreach (IModuleConnector moduleConnector in ModuleConnectorsHelper.GetModuleConnectors())
                    {
                        foreach (SelectListItem module in moduleConnector.GetSelectItemList())
                        {
                            if (!sharedContentPart.StartsWith("{$SharedContent") && sharedContentPart.ToLower() == module.Value.ToLower())
                            {
                                isModuleFound         = true;
                                controllerAction      = sharedContentPart.Substring(2, sharedContentPart.Length - 3);
                                controllerActionArray = controllerAction.Split('-');
                                result += moduleConnector.GetContent(htmlHelper, model, controllerActionArray[1]);
                            }
                        }
                    }

                    if (!isModuleFound)
                    {
                        if (sharedContentPart != "{$Content}" && !sharedContentPart.StartsWith("{$SharedContent") && sharedContentPart.StartsWith("{$") && sharedContentPart.EndsWith("}") && sharedContentPart.Contains('-'))
                        {
                            controllerAction      = sharedContentPart.Substring(2, sharedContentPart.Length - 3);
                            controllerActionArray = controllerAction.Split('-');
                            result += htmlHelper.Action(controllerActionArray[1], "FrontEnd" + controllerActionArray[0], model).ToString();
                        }
                        else
                        {
                            result += sharedContentPart;
                        }
                    }
                }
            }

            return(result);
        }
示例#14
0
        public static IHtmlString GetBreadCrumbs(this HtmlHelper htmlHelper, FrontEndCmsPage model, string className = "breadcrumb", string label = "", string separator = "/")
        {
            string         breadCrumbs    = string.Empty;
            CmsPages       pages          = new CmsPages();
            PagesLanguages pagesLanguages = new PagesLanguages();

            BuildBreadCrumbs(pages, pagesLanguages, ref breadCrumbs, model.PageId, model.LanguageCode, separator, false);
            if (breadCrumbs.IsNotEmptyOrWhiteSpace())
            {
                if (label.IsNotEmptyOrWhiteSpace())
                {
                    label = "<span>" + label + "</span>";
                }
                breadCrumbs = "<ul class=\"" + className + "\">" + breadCrumbs.Insert(breadCrumbs.IndexOf('>') + 1, label) + "</ul>";
            }
            return(htmlHelper.Raw(breadCrumbs));
        }
示例#15
0
        public ActionResult Index(FrontEndCmsPage page, FrontEndContact frontEndContact)
        {
            if (ModelState.IsValidOrRefresh())
            {
                if (frontEndContact.Notes.IsEmpty()) //Honey pot to avoid spammers
                {
                    GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();

                    CultureInfoHelper.ForceBackEndLanguage();

                    string subject = Resources.Strings_Contact.EmailSubject.Replace("{$Url}", globalConfiguration.DomainName.ToUrl());
                    string body    = Resources.Strings_Contact.EmailBody
                                     .Replace("{$fullName}", frontEndContact.FullName)
                                     .Replace("{$companyName}", frontEndContact.CompanyName)
                                     .Replace("{$phoneNumber}", frontEndContact.PhoneNumber)
                                     .Replace("{$email}", frontEndContact.Email)
                                     .Replace("{$message}", frontEndContact.Message)
                                     .Replace("{$ipAddress}", Request.UserHostAddress)
                                     .Replace("{$Url}", globalConfiguration.DomainName.ToUrl());

                    CultureInfoHelper.RestoreFrontEndLanguage();

                    EmailHelper email = new EmailHelper(globalConfiguration.NotificationEmail, globalConfiguration.NotificationEmail, subject, body);
                    email.ReplyToList.Add(frontEndContact.Email);
                    if (email.Send())
                    {
                        ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings_Contact.Thanks);
                        ViewData.IsFormVisible(false);
                    }
                    else
                    {
                        ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError);
                    }
                }
                else
                {
                    ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings_Contact.Thanks);
                    ViewData.IsFormVisible(false);
                }
            }

            return(View(frontEndContact));
        }
示例#16
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            FrontEndCmsPage page = filterContext.ActionParameters["page"] as FrontEndCmsPage;

            if (page.IsNotNull())
            {
                CmsPages cmsPages = new CmsPages();

                if (FrontEndSessions.CurrentSubscription.IsNull())
                {
                    SubscriptionConfiguration subscriptionConfiguration = new SubscriptionConfigurations().GetSubscriptionConfiguration();
                    CmsPageActionlink         cmsPageActionlink         = cmsPages.GetCmsPageActionlink(subscriptionConfiguration.SignInPageId, page.LanguageCode);
                    if (cmsPageActionlink.IsNotNull())
                    {
                        filterContext.Result = new ChildActionRedirectResult(cmsPageActionlink.Url + "?ReturnUrl=" + HttpUtility.UrlEncode(filterContext.RequestContext.HttpContext.Request.Url.AbsoluteUri));
                    }
                }
            }
        }
示例#17
0
        public ActionResult Index(FrontEndCmsPage page, FrontEndSubscriptionProfile frontEndSubscriptionProfile)
        {
            if (ModelState.IsValidOrRefresh())
            {
                Subscriptions subscriptions = new Subscriptions();
                int?          result        = subscriptions.EditProfile(FrontEndSessions.CurrentSubscription.Email,
                                                                        frontEndSubscriptionProfile.FirstName,
                                                                        frontEndSubscriptionProfile.LastName,
                                                                        frontEndSubscriptionProfile.Birthdate.ToDateTime(),
                                                                        frontEndSubscriptionProfile.PhoneNumber,
                                                                        frontEndSubscriptionProfile.Address,
                                                                        frontEndSubscriptionProfile.City,
                                                                        frontEndSubscriptionProfile.PostCode,
                                                                        frontEndSubscriptionProfile.CountryCode,
                                                                        frontEndSubscriptionProfile.WantsNewsletter);
                switch (result)
                {
                case 0:
                    FrontEndSessions.CurrentSubscription = subscriptions.GetSubscriptionByEmail(FrontEndSessions.CurrentSubscription.Email);

                    ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings_Subscription.ProfileEditSuccess);
                    ViewData.IsFormVisible(false);
                    break;

                case 2:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.ItemDoesNotExist);
                    ViewData.IsFormVisible(false);
                    break;

                case 3:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.EmailAlreadyExists);
                    break;

                default:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError);
                    break;
                }
            }

            return(View(frontEndSubscriptionProfile));
        }
示例#18
0
        public static IHtmlString GetLanguagePicker(this HtmlHelper htmlHelper, FrontEndCmsPage model, string className = "")
        {
            StringBuilder result = new StringBuilder();

            Languages           languages           = new Languages();
            Language            language            = languages.GetLanguageByCode(model.LanguageCode);
            GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();

            result.AppendLine("<ul class=\"nav " + className + "\">");
            result.AppendLine("    <li class=\"dropdown\">");
            result.AppendLine("        <a class=\"dropdown-toggle\" data-toggle=\"dropdown\" href=\"#\"><i class=\"fa fa-flag\"></i> " + language.LanguageNameOriginal + " <i class=\"fa fa-caret-down\"></i></a>");
            result.AppendLine("        <ul class=\"dropdown-menu dropdown-user\">");
            foreach (Language l in languages.GetAllLanguages(isActive: true))
            {
                result.AppendLine("            <li><a href=\"/" + (l.LanguageCode == globalConfiguration.DefaultLanguageCode ? "" : l.LanguageCode) + "\">" + l.LanguageNameOriginal + "</a></li>");
            }
            result.AppendLine("        </ul>");
            result.AppendLine("    </li>");
            result.AppendLine("</ul>");

            return(htmlHelper.Raw(result.ToString()));
        }
示例#19
0
        public ActionResult Index(FrontEndCmsPage page, string a, string ReturnUrl)
        {
            if (a.IfEmpty("").ToLower() == "sign-out")
            {
                FrontEndSessions.CurrentSubscription = null;

                //return Content("<script>window.location.href='/" + page.LanguageCode + "';</script>");
                return(ChildActionRedirect("~/" + page.LanguageCode + "/"));
            }

            FrontEndSubscriptionSignIn frontEndSubscriptionSignIn = new FrontEndSubscriptionSignIn()
            {
                LanguageCode = page.LanguageCode
            };

            if (ReturnUrl.IsNotEmptyOrWhiteSpace())
            {
                frontEndSubscriptionSignIn.ReturnUrl = ReturnUrl;
            }

            return(View(frontEndSubscriptionSignIn));
        }
示例#20
0
        public ActionResult Index(FrontEndCmsPage page, FrontEndSubscriptionPasswordChange frontEndSubscriptionPasswordChange)
        {
            if (ModelState.IsValidOrRefresh())
            {
                Subscriptions subscriptions = new Subscriptions();
                int?          result        = subscriptions.ChangePassword(FrontEndSessions.CurrentSubscription, frontEndSubscriptionPasswordChange.CurrentPassword, frontEndSubscriptionPasswordChange.NewPassword);
                switch (result)
                {
                case 0:
                    //Refresh the CurrentSubscription
                    FrontEndSessions.CurrentSubscription = subscriptions.GetSubscriptionByEmail(FrontEndSessions.CurrentSubscription.Email);

                    ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings.PasswordSuccessfullyChanged);
                    ViewData.IsFormVisible(false);
                    break;

                case 2:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.ItemDoesNotExist);
                    ViewData.IsFormVisible(false);
                    break;

                case 3:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.EmailAlreadyExists);
                    break;

                case 4:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.CurrentPasswordNotValid);
                    break;

                default:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError);
                    break;
                }
            }

            return(View(frontEndSubscriptionPasswordChange));
        }
示例#21
0
        public ActionResult Index(FrontEndCmsPage page, string PasswordResetKey)
        {
            FrontEndSubscriptionPasswordReset frontEndSubscriptionPasswordReset = new FrontEndSubscriptionPasswordReset()
            {
                LanguageCode = page.LanguageCode
            };

            if (PasswordResetKey.IsNotEmptyOrWhiteSpace())
            {
                if (!(new Subscriptions().IsPasswordResetKeyValid(PasswordResetKey)))
                {
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings_Subscription.PasswordResetUrlNotValid);
                    ViewData.IsFormVisible(false);
                }
                frontEndSubscriptionPasswordReset.PasswordResetKey = PasswordResetKey;
            }
            else
            {
                ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings_Subscription.PasswordResetUrlNotValid);
                ViewData.IsFormVisible(false);
            }

            return(View(frontEndSubscriptionPasswordReset));
        }
示例#22
0
        public ActionResult Index(string languageCode, string segments)
        {
            GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();

            if (!globalConfiguration.IsOffline || Request["OfflineCode"] == globalConfiguration.OfflineCode || Session["OfflineCode"].ConvertTo <string>(null, true) == globalConfiguration.OfflineCode)
            {
                if (Session["OfflineCode"].IsNull())
                {
                    Session["OfflineCode"] = Request["OfflineCode"];
                }

                FrontEndCmsPage page = new FrontEndCmsPage()
                {
                    PageId             = null,
                    LanguageCode       = globalConfiguration.DefaultLanguageCode,
                    LanguageFolder     = "",
                    Parameter          = string.Empty,
                    MetaTagTitle       = globalConfiguration.MetaTitle,
                    MetaTagKeywords    = globalConfiguration.MetaKeywords,
                    MetaTagDescription = globalConfiguration.MetaDescription,
                    Robots             = globalConfiguration.Robots,
                    PageTemplateId     = null,
                    StatusCode         = null
                };

                CmsPages cmsPages          = new CmsPages();
                CmsPage  cmsPage           = cmsPages.GetHomePage();
                bool     isHomePageDefined = cmsPage.IsNotNull();

                if (segments.IsNotEmptyOrWhiteSpace())
                {
                    segments = segments.TrimEnd('/');

                    cmsPage = cmsPages.GetPageBySegments(segments);
                    if (cmsPage.IsNull() && segments.Contains('/'))
                    {
                        cmsPage        = cmsPages.GetPageBySegments(segments.Remove(segments.LastIndexOf('/')));
                        page.Parameter = segments.Substring(segments.LastIndexOf('/') + 1); //the parameter can be a dash separated list of parameters. E.g. 2-today_the_weather_is_nice
                    }
                }

                Language language = new Languages().GetLanguageByCode(languageCode);

                if (
                    cmsPage.IsNotNull() &&                                                                             //The page exists
                    (cmsPage.IsActive || (Request["preview"] == "true" && BackEndSessions.CurrentUser.IsNotNull())) && //The page is active or the page is in preview mode with a user logged in the admin area
                    language.IsNotNull() &&                                                                            //The language exists
                    language.IsActive                                                                                  //The language is active
                    )
                {
                    if (cmsPage.IsAccessRestricted && FrontEndSessions.CurrentSubscription.IsNull())
                    {
                        SubscriptionConfiguration subscriptionConfiguration = new SubscriptionConfigurations().GetSubscriptionConfiguration();
                        CmsPageActionlink         cmsPageActionlink         = cmsPages.GetCmsPageActionlink(subscriptionConfiguration.SignInPageId, language.LanguageCode);
                        if (cmsPageActionlink.IsNotNull())
                        {
                            return(Redirect(cmsPageActionlink.Url + "?ReturnUrl=" + HttpUtility.UrlEncode(Request.Url.AbsoluteUri)));
                        }
                    }

                    page.PageId         = cmsPage.PageId;
                    page.LanguageCode   = language.LanguageCode;
                    page.LanguageFolder = language.LanguageCode == globalConfiguration.DefaultLanguageCode ? "" : language.LanguageCode;
                    page.PageTemplateId = cmsPage.PageTemplateId;

                    PageLanguage pageLanguage = new PagesLanguages().GetPageLanguage(cmsPage.PageId, language.LanguageCode);
                    if (pageLanguage.IsNotNull())
                    {
                        if (pageLanguage.MetaTagTitle.IsNotEmptyOrWhiteSpace())
                        {
                            page.MetaTagTitle = pageLanguage.MetaTagTitle.ReplaceGlobalTokens();
                        }

                        if (pageLanguage.MetaTagKeywords.IsNotEmptyOrWhiteSpace())
                        {
                            page.MetaTagKeywords = pageLanguage.MetaTagKeywords.ReplaceGlobalTokens();
                        }

                        if (pageLanguage.MetaTagDescription.IsNotEmptyOrWhiteSpace())
                        {
                            page.MetaTagDescription = pageLanguage.MetaTagDescription.ReplaceGlobalTokens();
                        }

                        if (pageLanguage.Robots.IsNotEmptyOrWhiteSpace())
                        {
                            page.Robots = pageLanguage.Robots;
                        }
                    }
                }
                else
                {
                    if (language.IsNotNull())
                    {
                        page.LanguageCode   = language.LanguageCode;
                        page.LanguageFolder = language.LanguageCode == globalConfiguration.DefaultLanguageCode ? "" : language.LanguageCode;
                    }

                    page.PageTemplateId = globalConfiguration.DefaultErrorPageTemplateId;
                    if (isHomePageDefined)
                    {
                        page.StatusCode = 404;
                    }
                    else
                    {
                        page.StatusCode = 501; //Home page not defined in the database table tb_cms_pages
                    }
                }

                Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture((language.IsNotNull() && language.IsActive) ? language.LanguageCode : page.LanguageCode);

                return(View(page));
            }
            else
            {
                return(Redirect("~/_app_offline.htm"));
            }
        }
示例#23
0
        public ActionResult Index(FrontEndCmsPage page, FrontEndSubscriptionRegister frontEndSubscriptionRegister)
        {
            ViewBag.IsActivationPage = false;
            if (ModelState.IsValidOrRefresh())
            {
                if (frontEndSubscriptionRegister.Notes.IsEmpty()) //Honey pot to avoid spammers
                {
                    GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();

                    //Add the subscription to the database and generate the {$VerificationUrl}
                    string        ActivationKey = DateTime.Now.Ticks.ToBase36() + Session.SessionID;
                    Subscriptions subscriptions = new Subscriptions();
                    int?          result        = subscriptions.Add(frontEndSubscriptionRegister.Email,
                                                                    frontEndSubscriptionRegister.Password,
                                                                    frontEndSubscriptionRegister.FirstName,
                                                                    frontEndSubscriptionRegister.LastName,
                                                                    frontEndSubscriptionRegister.Birthdate.ToDateTime(),
                                                                    frontEndSubscriptionRegister.PhoneNumber,
                                                                    frontEndSubscriptionRegister.Address,
                                                                    frontEndSubscriptionRegister.City,
                                                                    frontEndSubscriptionRegister.PostCode,
                                                                    frontEndSubscriptionRegister.CountryCode,
                                                                    1, //Not verified
                                                                    frontEndSubscriptionRegister.WantsNewsletter,
                                                                    DateTime.Now,
                                                                    Request.UserHostAddress,
                                                                    ActivationKey,
                                                                    null);
                    switch (result)
                    {
                    case 0:
                        //Send the email to the subscriber to confirm his identity
                        string subject = Resources.Strings_Subscription.EmailVerifyAccountSubject.Replace("{$SiteName}", globalConfiguration.SiteName);
                        string body    = Resources.Strings_Subscription.EmailVerifyAccountBody
                                         .Replace("{$FirstName}", frontEndSubscriptionRegister.FirstName)
                                         .Replace("{$SiteName}", globalConfiguration.SiteName)
                                         .Replace("{$VerificationUrl}", globalConfiguration.DomainName.ToUrl() + page.LanguageCode + "/register?k=" + ActivationKey)
                                         .Replace("{$Url}", globalConfiguration.DomainName.ToUrl());

                        EmailHelper email = new EmailHelper("subscription-activation@" + globalConfiguration.DomainName, frontEndSubscriptionRegister.Email, subject, body);
                        if (email.Send())
                        {
                            ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings_Subscription.Thanks);
                            ViewData.IsFormVisible(false);
                        }
                        else
                        {
                            subscriptions.Delete(frontEndSubscriptionRegister.Email);
                            ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError + " (Email)");
                        }

                        break;

                    case 2:
                        ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.EmailAlreadyExists);
                        break;

                    default:
                        ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError + " (Database)");
                        break;
                    }
                }
                else
                {
                    ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings_Subscription.Thanks);
                    ViewData.IsFormVisible(false);
                }
            }

            return(View(frontEndSubscriptionRegister));
        }
示例#24
0
 public ActionResult Index(FrontEndCmsPage page)
 {
     return(View(page));
 }
示例#25
0
        public static IHtmlString GetPageContent(this HtmlHelper htmlHelper, FrontEndCmsPage model)
        {
            string result = string.Empty;

            PageLanguage backEndCmsPageLanguage = new PagesLanguages().GetPageLanguage(model.PageId, model.LanguageCode);

            string controllerAction;

            string[] controllerActionArray;

            if (model.PageTemplateId.IsNotNull())
            {
                PageTemplate pageTemplate = new PageTemplates().GetPageTemplateById(model.PageTemplateId);

                IEnumerable <IModuleConnector> moduleConnectors = ModuleConnectorsHelper.GetModuleConnectors();

                bool isModuleFound;

                foreach (string templatePart in ExtensionsHelper.GetHtmlCodeParts(pageTemplate.HtmlCode))
                {
                    isModuleFound = false;
                    foreach (IModuleConnector moduleConnector in moduleConnectors)
                    {
                        foreach (SelectListItem module in moduleConnector.GetSelectItemList())
                        {
                            if (templatePart.ToLower() == module.Value.ToLower())
                            {
                                isModuleFound         = true;
                                controllerAction      = templatePart.Substring(2, templatePart.Length - 3);
                                controllerActionArray = controllerAction.Split('-');
                                result += moduleConnector.GetContent(htmlHelper, model, controllerActionArray[1]);
                            }
                        }
                    }

                    if (!isModuleFound)
                    {
                        if (templatePart == "{$Content}")
                        {
                            if (backEndCmsPageLanguage.IsNotNull())
                            {
                                //include any extra modules
                                foreach (string pageLanguagePart in ExtensionsHelper.GetHtmlCodeParts(backEndCmsPageLanguage.HtmlCode))
                                {
                                    isModuleFound = false;
                                    foreach (IModuleConnector moduleConnector in moduleConnectors)
                                    {
                                        foreach (SelectListItem module in moduleConnector.GetSelectItemList())
                                        {
                                            if (pageLanguagePart.ToLower() == module.Value.ToLower())
                                            {
                                                isModuleFound         = true;
                                                controllerAction      = pageLanguagePart.Substring(2, pageLanguagePart.Length - 3);
                                                controllerActionArray = controllerAction.Split('-');
                                                result += moduleConnector.GetContent(htmlHelper, model, controllerActionArray[1]);
                                            }
                                        }
                                    }

                                    if (!isModuleFound)
                                    {
                                        if (pageLanguagePart.StartsWith("{$") && pageLanguagePart.EndsWith("}") && pageLanguagePart.Contains('-'))
                                        {
                                            controllerAction      = pageLanguagePart.Substring(2, pageLanguagePart.Length - 3);
                                            controllerActionArray = controllerAction.Split('-');
                                            try
                                            {
                                                result += htmlHelper.Action(controllerActionArray[1], "FrontEnd" + controllerActionArray[0], model).ToString();
                                            }
                                            catch (Exception ex)
                                            {
                                                Elmah.ErrorSignal.FromCurrentContext().Raise(ex);
                                            }
                                        }
                                        else
                                        {
                                            result += pageLanguagePart;
                                        }
                                    }
                                }
                            }
                        }
                        else if (templatePart.StartsWith("{$") && templatePart.EndsWith("}") && templatePart.Contains('-'))
                        {
                            controllerAction      = templatePart.Substring(2, templatePart.Length - 3);
                            controllerActionArray = controllerAction.Split('-');
                            result += htmlHelper.Action(controllerActionArray[1], "FrontEnd" + controllerActionArray[0], model).ToString();
                        }
                        else
                        {
                            result += templatePart;
                        }
                    }
                }
            }

            return(htmlHelper.Raw(result.ReplaceGlobalTokens()));
        }
示例#26
0
        public ActionResult Index(FrontEndCmsPage page, FrontEndNews frontEndNews)
        {
            News news = new News();

            if (page.Parameter.IsNotEmptyOrWhiteSpace())
            {
                SingleNews singleNews = news.GetSingleNews(page.Parameter.Split('-').FirstOrDefault().ConvertTo <int?>(null, true), page.LanguageCode);

                if (singleNews.IsNotNull())
                {
                    NewsComments newsComments = new NewsComments();

                    frontEndNews.LanguageCode      = page.LanguageCode;
                    frontEndNews.NewsList          = null;
                    frontEndNews.FilterCategoryId  = null;
                    frontEndNews.FilterNewsDate    = null;
                    frontEndNews.NewsId            = singleNews.NewsId;
                    frontEndNews.NewsDate          = singleNews.NewsDate;
                    frontEndNews.UserName          = singleNews.UserName;
                    frontEndNews.CategoryId        = singleNews.CategoryId;
                    frontEndNews.CategoryName      = singleNews.CategoryName;
                    frontEndNews.MainImageFilePath = singleNews.MainImageFilePath;
                    frontEndNews.NewsTitle         = singleNews.NewsTitle;
                    frontEndNews.NewsContent       = singleNews.NewsContent;
                    frontEndNews.NewsCommentList   = (newsComments.IsNotNull() ? newsComments.GetNewsComments(singleNews.NewsId, true) : null);
                }
                else
                {
                    frontEndNews = null;
                }
            }

            if (ModelState.IsValidOrRefresh() && frontEndNews.IsNotNull())
            {
                NewsConfiguration newsConfiguration = new NewsConfigurations().GetNewsConfiguration();

                NewsComments newsComments = new NewsComments();
                int?         result       = newsComments.Add((int)frontEndNews.NewsId,
                                                             newsConfiguration.IsCommentAutoApproved,
                                                             frontEndNews.NewsComment,
                                                             DateTime.Now,
                                                             FrontEndSessions.CurrentSubscription.Email);
                switch (result)
                {
                case 0:
                    ModelState.AddResult(ViewData, ModelStateResult.Success, Resources.Strings_News.CommentAdded);
                    ViewData.IsFormVisible(false);

                    GlobalConfiguration globalConfiguration = new GlobalConfigurations().GetGlobalConfiguration();

                    CultureInfoHelper.ForceBackEndLanguage();

                    string subject = Resources.Strings_News.EmailSubject.Replace("{$Url}", globalConfiguration.DomainName.ToUrl());
                    string body    = Resources.Strings_News.EmailBody
                                     .Replace("{$Url}", globalConfiguration.DomainName.ToUrl())
                                     .Replace("{$subscriptionEmail}", FrontEndSessions.CurrentSubscription.Email)
                                     .Replace("{$comment}", frontEndNews.NewsComment)
                                     .Replace("{$ipAddress}", Request.UserHostAddress);

                    CultureInfoHelper.RestoreFrontEndLanguage();

                    EmailHelper email = new EmailHelper(globalConfiguration.NotificationEmail, globalConfiguration.NotificationEmail, subject, body);
                    email.Send();
                    break;

                default:
                    ModelState.AddResult(ViewData, ModelStateResult.Error, Resources.Strings.UnexpectedError + " (Database)");
                    break;
                }
            }

            return(View(frontEndNews));
        }
示例#27
0
        public ActionResult Index(FrontEndCmsPage page, int?p, string c, string d)
        {
            News news = new News();

            FrontEndNews frontEndNews;

            if (page.Parameter.IsEmptyOrWhiteSpace())
            {
                int?   filterCategoryId = c.ConvertTo <int?>(null, true);
                string filterNewsDate   = d;

                List <SingleNews> newsList = news.GetNews(
                    page.LanguageCode,
                    isActive: true,
                    isCategoryActive: true,
                    categoryId: filterCategoryId,
                    newsDate: (filterNewsDate.IsNotEmptyOrWhiteSpace() ? ("1-" + d).ConvertTo <DateTime?>(null, true) : null)
                    ).OrderByDescending(i => i.NewsDate).ToList();

                if (newsList.IsNotNull())
                {
                    frontEndNews = new FrontEndNews()
                    {
                        LanguageCode      = page.LanguageCode,
                        NewsList          = newsList.ToBootstrapPagedList(p, 5),
                        FilterCategoryId  = filterCategoryId,
                        FilterNewsDate    = filterNewsDate,
                        NewsId            = null,
                        NewsDate          = null,
                        UserName          = null,
                        CategoryId        = null,
                        CategoryName      = null,
                        MainImageFilePath = null,
                        NewsTitle         = null,
                        NewsContent       = null
                    };
                }
                else
                {
                    frontEndNews = new FrontEndNews();
                }
            }
            else
            {
                if (page.Parameter.ToLower() == "rss")
                {
                    Server.TransferRequest("~/OutputNews/Rss/?langCode=" + page.LanguageCode);
                    return(null);
                }
                else if (page.Parameter.ToLower() == "atom10")
                {
                    Server.TransferRequest("~/OutputNews/Atom10/?langCode=" + page.LanguageCode);
                    return(null);
                }
                else
                {
                    SingleNews singleNews = news.GetSingleNews(page.Parameter.Split('-').FirstOrDefault().ConvertTo <int?>(null, true), page.LanguageCode);

                    if (singleNews.IsNotNull())
                    {
                        NewsComments newsComments = new NewsComments();

                        frontEndNews = new FrontEndNews()
                        {
                            LanguageCode      = page.LanguageCode,
                            NewsList          = null,
                            FilterCategoryId  = null,
                            FilterNewsDate    = null,
                            NewsId            = singleNews.NewsId,
                            NewsDate          = singleNews.NewsDate,
                            UserName          = singleNews.UserName,
                            CategoryId        = singleNews.CategoryId,
                            CategoryName      = singleNews.CategoryName,
                            MainImageFilePath = singleNews.MainImageFilePath,
                            NewsTitle         = singleNews.NewsTitle,
                            NewsContent       = singleNews.NewsContent,
                            NewsCommentList   = (newsComments.IsNotNull() ? newsComments.GetNewsComments(singleNews.NewsId, true) : null)
                        };
                    }
                    else
                    {
                        frontEndNews = null;
                    }
                }
            }

            return(View(frontEndNews));
        }