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; } }); }
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; } }); }
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); }
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)); }