public static string PageTitle <TModel>(this HtmlHelper <TModel> htmlHelper, params string[] items) where TModel : OxiteViewModel
        {
            OxiteViewModel model = htmlHelper.ViewData.Model;

            if (items == null || items.Length == 0)
            {
                return(model.Site.DisplayName);
            }

            StringBuilder sb       = new StringBuilder(50);
            List <string> itemList = new List <string>(items);

            itemList.RemoveAll(s => s == null);

            itemList.Insert(0, model.Site.DisplayName);

            for (int i = itemList.Count - 1; i >= 0; i--)
            {
                sb.Append(itemList[i]);

                if (i > 0)
                {
                    sb.Append(model.Site.PageTitleSeparator);
                }
            }

            return(htmlHelper.Encode(sb.ToString()));
        }
Beispiel #2
0
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            if (model != null)
            {
                IEnumerable <IOxiteAuthenticationModule> authenticationModules = modules.GetModules <IOxiteAuthenticationModule>().Reverse();
                IUser user = null;

                foreach (IOxiteAuthenticationModule module in authenticationModules)
                {
                    user = module.GetUser(filterContext.RequestContext);

                    if (user.IsAuthenticated)
                    {
                        break;
                    }
                }

                if (user.IsAuthenticated)
                {
                    model.User       = new UserViewModel(user);
                    model.SignInUrl  = null;
                    model.SignOutUrl = authenticationModules.First().GetSignOutUrl(filterContext.RequestContext);
                }
                else
                {
                    model.User       = new UserViewModel(filterContext.HttpContext.Request.Cookies.GetAnonymousUser());
                    model.SignInUrl  = authenticationModules.First().GetSignInUrl(filterContext.RequestContext);
                    model.SignOutUrl = null;
                }
            }
        }
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            if (model != null)
            {
                UserAuthenticated user = model.User.ToUserAuthenticated();

                if (user != null)
                {
                    UserRegistration registration = pdc09Service.GetUserRegistration(user);
                    bool             isRegistered = registration.IsRegistered;

                    if (!isRegistered && (!registration.LastRegistrationCheck.HasValue || registration.LastRegistrationCheck.Value.AddMinutes(15) < DateTime.UtcNow))
                    {
                        using (RegistrationService.PDC09Service service = new RegistrationService.PDC09Service())
                        {
                            service.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["PDCRegistration.Username"], ConfigurationManager.AppSettings["PDCRegistration.Password"]);

                            try
                            {
                                isRegistered = service.IsRegistered((string)user.AuthenticationValues["PUID"]);
                            }
                            catch {}
                        }

                        pdc09Service.SetUserRegistration(user, isRegistered);
                    }

                    user.AuthenticationValues["IsRegistered"] = isRegistered;
                }
            }
        }
 private void setModel(OxiteViewModel model)
 {
     if (model != null)
     {
         model.Site = new SiteViewModel(context.Site, config.InstanceName);
     }
 }
Beispiel #5
0
 private void setModel(OxiteViewModel model)
 {
     if (model != null)
     {
         model.Site = new SiteViewModel(context.Site, appSettings.GetInstanceName());
     }
 }
 private void setLocalization(OxiteViewModel model)
 {
     if (model != null)
     {
         model.AddModelItem(locService.GetTranslations());
     }
 }
Beispiel #7
0
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            if (model != null)
            {
                IEnumerable <IOxiteAuthenticationModule> authenticationModules = modules.GetModules <IOxiteAuthenticationModule>().Reverse();
                IUser user = null;

                foreach (IOxiteAuthenticationModule module in authenticationModules)
                {
                    user = module.GetUser(filterContext.RequestContext);

                    if (user.IsAuthenticated)
                    {
                        break;
                    }
                }

                if (user.IsAuthenticated)
                {
                    model.AddModelItem(new UserViewModel(user));
                    //TODO: (erikpo) Change this to call the sign out url of the auth module that retrieved the user
                    model.AddModelItem(new MembershipUrlViewModel(null, authenticationModules.First().GetSignOutUrl(filterContext.RequestContext)));
                }
                else
                {
                    model.AddModelItem(new UserViewModel(filterContext.HttpContext.Request.Cookies.GetAnonymousUser()));
                    //TODO: (erikpo) Change the following so if there's more than one auth module show a generic sign in page, if there's only one auth module, then use its sign in url
                    model.AddModelItem(new MembershipUrlViewModel(authenticationModules.First().GetSignInUrl(filterContext.RequestContext), null));
                }
            }
        }
 public static string Gravatar(this HtmlHelper htmlHelper, OxiteViewModel model, UserAnonymous user, string size)
 {
     return(htmlHelper.Gravatar(
                !string.IsNullOrEmpty(user.EmailHash) ? user.EmailHash.CleanAttribute() : null,
                !string.IsNullOrEmpty(user.Name) ? user.Name.CleanAttribute() : null,
                size,
                model.Site.GravatarDefault
                ));
 }
        internal static string OxiteAntiForgeryToken(this HtmlHelper htmlHelper, OxiteViewModel model)
        {
            if (model != null)
            {
                return(htmlHelper.AntiForgeryToken(model.Site.ID.ToString()));
            }

            return("");
        }
Beispiel #10
0
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            if (model != null)
            {
                model.AddModelItem(new PageListViewModel(pageService.GetPages()));
            }
        }
 public static string Gravatar <TModel>(this HtmlHelper <TModel> htmlHelper, OxiteViewModel model, PostComment comment, string size) where TModel : OxiteViewModel
 {
     return(htmlHelper.Gravatar(
                comment.CreatorEmailHash.CleanAttribute(),
                comment.CreatorName.CleanAttribute(),
                size,
                htmlHelper.ViewData.Model.Site.GravatarDefault
                ));
 }
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            if (model != null)
            {
                model.AddModelItem(new PluginTemplatesViewModel(pluginTemplateRegistry));
            }
        }
        public void SignInSetsContainerToSignIn()
        {
            UserController controller = new UserController(null, null, null);

            OxiteViewModel result = controller.SignIn();

            Assert.NotNull(result);
            Assert.IsType <SignInPageContainer>(result.Container);
        }
 public static string Gravatar(this HtmlHelper htmlHelper, OxiteViewModel model, UserAnonymous user, string size)
 {
     return(htmlHelper.Gravatar(
                user.IsAuthenticated ? user.EmailHash.CleanAttribute() : null,
                user.IsAuthenticated ? user.Name.CleanAttribute() : null,
                size,
                model.Site.GravatarDefault
                ));
 }
 public static string Gravatar(this HtmlHelper htmlHelper, OxiteViewModel model, string size)
 {
     return(htmlHelper.Gravatar(
                model.User.IsAuthenticated ? model.User.EmailHash.CleanAttribute() : null,
                model.User.IsAuthenticated ? model.User.DisplayName.CleanAttribute() : null,
                size,
                model.Site.GravatarDefault
                ));
 }
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            //TODO: (erikpo) Change the following call to get just the blogs the current user has explicit permission to
            if (model != null)
            {
                model.AddModelItem(new BlogListViewModel(blogService.GetBlogs(0, 10000)));
            }
        }
        public static IEnumerable <PluginTemplate> GetPluginTemplates(this OxiteViewModel model)
        {
            PluginTemplatesViewModel viewModel = model.GetModelItem <PluginTemplatesViewModel>();

            if (viewModel != null)
            {
                return(viewModel.PluginTemplates);
            }

            return(Enumerable.Empty <PluginTemplate>());
        }
        public static string Gravatar <TModel>(this HtmlHelper <TModel> htmlHelper, string size) where TModel : OxiteViewModel
        {
            OxiteViewModel model = htmlHelper.ViewData.Model;

            return(htmlHelper.Gravatar(
                       model.User.IsAuthenticated ? (model.User.EmailHash ?? model.User.Email.ComputeEmailHash()).CleanAttribute() : null,
                       model.User.IsAuthenticated ? (model.User.DisplayName ?? model.User.Name).CleanAttribute() : null,
                       size,
                       model.Site.GravatarDefault
                       ));
        }
Beispiel #19
0
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            string blogAddress = appSettings.GetString("Last3Blog");

            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            if (model != null)
            {
                model.AddModelItem(new Last3HeadlinesViewModel(postService.GetPosts(0, 3, new BlogAddress(blogAddress))));
            }
        }
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            if (model != null)
            {
                model.PluginTemplates.Clear();

                pluginTemplateRegistry.ForEach(pt => model.PluginTemplates.Add(pt));
            }
        }
        public static void RenderOpenSearch <TModel>(this HtmlHelper <TModel> htmlHelper) where TModel : OxiteViewModel
        {
            OxiteViewModel model = htmlHelper.ViewData.Model;

            if (model.Site.IncludeOpenSearch)
            {
                UrlHelper urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);

                htmlHelper.ViewContext.HttpContext.Response.Write(htmlHelper.HeadLink("search", urlHelper.AbsolutePath(urlHelper.OpenSearch()), "application/opensearchdescription+xml", string.Format(model.Localize("SearchFormat", "{0} Search"), model.Site.DisplayName)));
            }
        }
        public static void RenderFavIcon <TModel>(this HtmlHelper <TModel> htmlHelper) where TModel : OxiteViewModel
        {
            OxiteViewModel model = htmlHelper.ViewData.Model;

            if (!string.IsNullOrEmpty(model.Site.FavIconUrl))
            {
                UrlHelper urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);

                htmlHelper.ViewContext.HttpContext.Response.Write(htmlHelper.HeadLink("shortcut icon", urlHelper.AppPath(model.Site.FavIconUrl), null, null));
            }
        }
        public static string Gravatar(this HtmlHelper htmlHelper, OxiteViewModel model, string size)
        {
            UserViewModel user = model.GetUser();

            return(htmlHelper.Gravatar(
                       !string.IsNullOrEmpty(user.EmailHash) ? user.EmailHash.CleanAttribute() : null,
                       !string.IsNullOrEmpty(user.Name) ? user.DisplayName.CleanAttribute() : null,
                       size,
                       model.Site.GravatarDefault
                       ));
        }
        public static string Gravatar <TModel>(this HtmlHelper <TModel> htmlHelper, UserAnonymous user, string size) where TModel : OxiteViewModel
        {
            OxiteViewModel model = htmlHelper.ViewData.Model;

            return(htmlHelper.Gravatar(
                       !string.IsNullOrEmpty(user.EmailHash) ? user.EmailHash.CleanAttribute() : null,
                       !string.IsNullOrEmpty(user.Name) ? user.Name.CleanAttribute() : null,
                       size,
                       model.Site.GravatarDefault
                       ));
        }
Beispiel #25
0
        public void AddModelItemThenGetModelItemReturnsItem()
        {
            OxiteViewModel model = new OxiteViewModel();

            OxiteViewModelTests modelItem = new OxiteViewModelTests();

            model.AddModelItem(modelItem);

            var actualItem = model.GetModelItem <OxiteViewModelTests>();

            Assert.Same(modelItem, actualItem);
        }
Beispiel #26
0
        public void OnException(ExceptionContext filterContext)
        {
            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            filterContext.Controller.ViewData.Model = new ExceptionOxiteViewModel(model, filterContext.Exception);

#if DEBUG
            filterContext.HttpContext.AddError(filterContext.Exception);
#endif
            filterContext.ExceptionHandled = true;

            filterContext.Result = new ErrorResult();
        }
        public static string OpenSearchOSDXLink <TModel>(this HtmlHelper <TModel> htmlHelper) where TModel : OxiteViewModel
        {
            OxiteViewModel model = htmlHelper.ViewData.Model;

            if (model.Site.IncludeOpenSearch && htmlHelper.ViewContext.HttpContext.Request.UserAgent.Contains("Windows NT 6.1"))
            {
                UrlHelper urlHelper = new UrlHelper(htmlHelper.ViewContext.RequestContext);

                return(htmlHelper.Link(string.Format(model.Localize("Search.WindowsSearch", "Search {0} from Windows"), model.Site.DisplayName), urlHelper.AppPath(urlHelper.OpenSearchOSDX()), new { @class = "windowsSearch" }));
            }

            return("");
        }
        public void OnActionExecuted(ActionExecutedContext filterContext)
        {
            OxiteViewModel model = filterContext.Controller.ViewData.Model as OxiteViewModel;

            if (model != null)
            {
                string eventName = filterContext.RouteData.Values["eventName"] as string;

                if (eventName != null)
                {
                    model.AddModelItem(new TagListViewModel(scheduleItemService.GetScheduleItemTags(new EventAddress(eventName))));
                }
            }
        }
Beispiel #29
0
        public static string GetSignOutUrl(this OxiteViewModel model)
        {
            MembershipUrlViewModel viewModel = model.GetModelItem <MembershipUrlViewModel>();

            if (viewModel != null)
            {
                if (!string.IsNullOrEmpty(viewModel.SignOutUrl))
                {
                    return(viewModel.SignOutUrl);
                }
            }

            return("");
        }
        public static string Gravatar <TModel>(this HtmlHelper <TModel> htmlHelper, string size) where TModel : OxiteViewModel
        {
            OxiteViewModel model = htmlHelper.ViewData.Model;
            UserViewModel  user  = model.GetUser();

            string emailHash = user.EmailHash ?? user.Email.ComputeHash();
            string name      = user.DisplayName ?? user.Name;

            return(htmlHelper.Gravatar(
                       !string.IsNullOrEmpty(emailHash) ? emailHash.CleanAttribute() : null,
                       !string.IsNullOrEmpty(name) ? name.CleanAttribute() : null,
                       size,
                       model.Site.GravatarDefault
                       ));
        }