Esempio n. 1
0
        public ActionResult Edit(string subName, StylesEditModel model, bool shouldSave, bool shouldPreview)
        {
            var sub = _subDao.GetSubByName(subName);

            if (sub == null)
            {
                throw new NotFoundException();
            }

            model.Sub = sub;
            model.StyledEnabledForUser = _userContext.CurrentUser.EnableStyles;

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (!_permissionDao.CanUserManageSubStyles(_userContext.CurrentUser, sub.Id))
            {
                throw new UnauthorizedException();
            }

            if (shouldSave)
            {
                var response = _commandBus.Send <EditSubStylesCommand, EditSubStylesCommandResponse>(new EditSubStylesCommand
                {
                    EditedByUserId        = _userContext.CurrentUser.Id,
                    SubId                 = sub.Id,
                    CssType               = model.CssType,
                    Embedded              = model.Embedded,
                    ExternalCss           = model.ExternalCss,
                    GitHubCssProjectName  = model.GitHubCssProjectName,
                    GitHubCssProjectTag   = model.GitHubCssProjectTag,
                    GitHubLessProjectName = model.GitHubLessProjectName,
                    GitHubLessProjectTag  = model.GitHubLessProjectTag
                });

                if (string.IsNullOrEmpty(response.Error))
                {
                    AddSuccessMessage("The styles have succesfully been updated.");
                    CancelPreview(sub.Name, string.Empty); // this will clearly any preview session that may be going on
                }
                else
                {
                    AddErrorMessage(response.Error);
                }
            }
            else if (shouldPreview)
            {
                HttpContext.Session.Set("preview-" + sub.Name.ToLower(), _mapper.Map <StylesEditModel, StylesPreviewModel>(model));
                Response.Cookies.Append("preview-" + sub.Name.ToLower(), string.Empty);
            }

            return(View(model));
        }
Esempio n. 2
0
        public ActionResult Edit(string subName)
        {
            var sub = _subDao.GetSubByName(subName);

            if (sub == null)
            {
                throw new NotFoundException();
            }

            if (!_permissionDao.CanUserManageSubStyles(_userContext.CurrentUser, sub.Id))
            {
                throw new UnauthorizedException();
            }

            var model = new StylesEditModel();

            model.Sub = sub;
            model.StyledEnabledForUser = _userContext.CurrentUser.EnableStyles;

            if (Request.Cookies.ContainsKey("preview-" + sub.Name.ToLower()))
            {
                var preview = HttpContext.Session.Get <StylesPreviewModel>("preview-" + sub.Name.ToLower());
                if (preview != null)
                {
                    _mapper.Map(preview, model);
                    return(View(model));
                }
            }

            var styles = _subStylesDao.GetStylesForSub(sub.Id);

            if (styles == null)
            {
                styles         = new SubCss();
                styles.CssType = CssType.None;
            }

            _mapper.Map(styles, model);

            return(View(model));
        }