Esempio n. 1
0
        public void UpdateStylesForSub(SubCss styles)
        {
            _conn.Perform(conn =>
            {
                var existing = conn.Single <SubCss>(x => x.SubId == styles.SubId);

                if (existing != null)
                {
                    existing.CssType               = styles.CssType;
                    existing.Embedded              = styles.Embedded;
                    existing.ExternalCss           = styles.ExternalCss;
                    existing.GitHubCssProjectName  = styles.GitHubCssProjectName;
                    existing.GitHubCssProjectTag   = styles.GitHubCssProjectTag;
                    existing.GitHubLessProjectName = styles.GitHubLessProjectName;
                    existing.GitHubLessProjectTag  = styles.GitHubLessProjectTag;
                    conn.Update(existing);
                }
                else
                {
                    existing                       = new SubCss();
                    existing.Id                    = Guid.NewGuid();
                    existing.SubId                 = styles.SubId;
                    existing.CssType               = styles.CssType;
                    existing.Embedded              = styles.Embedded;
                    existing.ExternalCss           = styles.ExternalCss;
                    existing.GitHubCssProjectName  = styles.GitHubCssProjectName;
                    existing.GitHubCssProjectTag   = styles.GitHubCssProjectTag;
                    existing.GitHubLessProjectName = styles.GitHubLessProjectName;
                    existing.GitHubLessProjectTag  = styles.GitHubLessProjectTag;
                    conn.Insert(existing);

                    styles.Id = existing.Id;
                }
            });
        }
Esempio n. 2
0
 public void UpdateStylesForSub(SubCss styles)
 {
     _conn.Perform(conn =>
     {
         var existing = conn.Single<SubCss>(x => x.SubId == styles.SubId);
         if (existing != null)
         {
             existing.CssType = styles.CssType;
             existing.Embedded = styles.Embedded;
             existing.ExternalCss = styles.ExternalCss;
             existing.GitHubCssProjectName = styles.GitHubCssProjectName;
             existing.GitHubCssProjectTag = styles.GitHubCssProjectTag;
             existing.GitHubLessProjectName = styles.GitHubLessProjectName;
             existing.GitHubLessProjectTag = styles.GitHubLessProjectTag;
             conn.Update(existing);
         }
         else
         {
             existing = new SubCss();
             existing.Id = GuidUtil.NewSequentialId();
             existing.SubId = styles.SubId;
             existing.CssType = styles.CssType;
             existing.Embedded = styles.Embedded;
             existing.ExternalCss = styles.ExternalCss;
             existing.GitHubCssProjectName = styles.GitHubCssProjectName;
             existing.GitHubCssProjectTag = styles.GitHubCssProjectTag;
             existing.GitHubLessProjectName = styles.GitHubLessProjectName;
             existing.GitHubLessProjectTag = styles.GitHubLessProjectTag;
             conn.Insert(existing);
             styles.Id = existing.Id;
         }
     });
 }
Esempio n. 3
0
        public EditSubStylesCommandResponse Handle(EditSubStylesCommand command)
        {
            var response = new EditSubStylesCommandResponse();

            try
            {
                var user = _membershipService.GetUserById(command.EditedByUserId);
                if (user == null)
                {
                    response.Error = "Invalid user.";
                    return(response);
                }

                var sub = command.SubId.HasValue
                    ? _subService.GetSubById(command.SubId.Value)
                    : _subService.GetSubByName(command.SubName);
                if (sub == null)
                {
                    response.Error = "Invalid sub.";
                    return(response);
                }

                if (!_permissionService.CanUserManageSubStyles(user, sub.Id))
                {
                    response.Error = "You are not authorized to manage styles for this sub.";
                    return(response);
                }

                var styles = _subStylesService.GetStylesForSub(sub.Id);
                if (styles == null)
                {
                    styles = new SubCss();
                }

                styles.SubId                 = sub.Id;
                styles.CssType               = command.CssType;
                styles.Embedded              = command.Embedded;
                styles.ExternalCss           = command.ExternalCss;
                styles.GitHubCssProjectName  = command.GitHubCssProjectName;
                styles.GitHubCssProjectTag   = command.GitHubCssProjectTag;
                styles.GitHubLessProjectName = command.GitHubLessProjectName;
                styles.GitHubLessProjectTag  = command.GitHubLessProjectTag;

                _subStylesService.UpdateStylesForSub(styles);
            }
            catch (Exception ex)
            {
                _logger.Error("Error trying to edit a sub's styles.", ex);
                response.Error = "An unknown error occured.";
            }

            return(response);
        }
Esempio n. 4
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));
        }