public void UpdateRelatedRecords( SiteSettings ss, RdsUser rdsUser = null, bool addUpdatedTimeParam = true, bool addUpdatorParam = true, bool updateItems = true) { Rds.ExecuteNonQuery( rdsUser: rdsUser, transactional: true, statements: new SqlStatement[] { Rds.UpdateItems( where : Rds.ItemsWhere().ReferenceId(WikiId), param: Rds.ItemsParam() .SiteId(SiteId) .Title(WikiUtilities.TitleDisplayValue(ss, this)), addUpdatedTimeParam: addUpdatedTimeParam, addUpdatorParam: addUpdatorParam, _using: updateItems), Rds.PhysicalDeleteLinks( where : Rds.LinksWhere().SourceId(WikiId)), InsertLinks(ss), Rds.UpdateSites( where : Rds.SitesWhere().SiteId(SiteId), param: Rds.SitesParam().Title(Title.Value)) }); Libraries.Search.Indexes.Create(ss, this); }
public string Editor() { SetSite(); switch (ReferenceType) { case "Sites": return(SiteUtilities.Editor(ReferenceId, clearSessions: true)); case "Issues": return(IssueUtilities.Editor( ss: Site.IssuesSiteSettings(ReferenceId), issueId: ReferenceId, clearSessions: true)); case "Results": return(ResultUtilities.Editor( ss: Site.ResultsSiteSettings(ReferenceId), resultId: ReferenceId, clearSessions: true)); case "Wikis": return(WikiUtilities.Editor( ss: Site.WikisSiteSettings(ReferenceId), wikiId: ReferenceId, clearSessions: true)); default: return(HtmlTemplates.Error(Error.Types.NotFound)); } }
public Error.Types Create( SiteSettings ss, RdsUser rdsUser = null, Sqls.TableTypes tableType = Sqls.TableTypes.Normal, SqlParamCollection param = null, bool notice = false, bool paramAll = false) { var statements = CreateStatements(ss, tableType, param, paramAll); var newId = Rds.ExecuteScalar_long( rdsUser: rdsUser, transactional: true, statements: statements.ToArray()); WikiId = newId != 0 ? newId : WikiId; if (Contract.Notice() && notice) { CheckNotificationConditions(ss); Notice(ss, "Created"); } Get(ss); Rds.ExecuteNonQuery( rdsUser: rdsUser, statements: Rds.UpdateItems( param: Rds.ItemsParam() .Title(WikiUtilities.TitleDisplayValue(ss, this)), where : Rds.ItemsWhere().ReferenceId(WikiId))); Libraries.Search.Indexes.Create(ss, this); return(Error.Types.None); }
private void Notice(SiteSettings ss, string type) { var title = WikiUtilities.TitleDisplayValue(ss, this); var url = Url.AbsoluteUri().Replace( Url.AbsolutePath(), Locations.ItemEdit(WikiId)); ss.Notifications.Where(o => o.Enabled).ForEach(notification => { if (notification.HasRelatedUsers()) { var users = new List <long>(); Rds.ExecuteTable(statements: Rds.SelectWikis( tableType: Sqls.TableTypes.All, distinct: true, column: Rds.WikisColumn() .Creator() .Updator(), where : Rds.WikisWhere().WikiId(WikiId))) .AsEnumerable() .ForEach(dataRow => { users.Add(dataRow["Creator"].ToLong()); users.Add(dataRow["Updator"].ToLong()); }); notification.ReplaceRelatedUsers(users); } switch (type) { case "Created": notification.Send( Displays.Created(title).ToString(), url, NoticeBody(ss, notification)); break; case "Updated": var body = NoticeBody(ss, notification, update: true); if (body.Length > 0) { notification.Send( Displays.Updated(title).ToString(), url, body); } break; case "Deleted": notification.Send( Displays.Deleted(title).ToString(), url, NoticeBody(ss, notification)); break; } }); }
public string New() { SetSite(siteOnly: true, initSiteSettings: true); switch (Site.ReferenceType) { case "Issues": return(IssueUtilities.EditorNew(Site.SiteSettings)); case "Results": return(ResultUtilities.EditorNew(Site.SiteSettings)); case "Wikis": return(WikiUtilities.EditorNew(Site.SiteSettings)); default: return(HtmlTemplates.Error(Error.Types.NotFound)); } }
private void Set(SiteSettings ss, DataRow dataRow) { AccessStatus = Databases.AccessStatuses.Selected; foreach (DataColumn dataColumn in dataRow.Table.Columns) { var name = dataColumn.ColumnName; switch (name) { case "SiteId": if (dataRow[name] != DBNull.Value) { SiteId = dataRow[name].ToLong(); SavedSiteId = SiteId; } break; case "UpdatedTime": if (dataRow[name] != DBNull.Value) { UpdatedTime = new Time(dataRow, "UpdatedTime"); Timestamp = dataRow.Field <DateTime>("UpdatedTime").ToString("yyyy/M/d H:m:s.fff"); SavedUpdatedTime = UpdatedTime.Value; } break; case "WikiId": if (dataRow[name] != DBNull.Value) { WikiId = dataRow[name].ToLong(); SavedWikiId = WikiId; } break; case "Ver": Ver = dataRow[name].ToInt(); SavedVer = Ver; break; case "Title": Title = new Title(dataRow, "WikiId"); SavedTitle = Title.Value; break; case "Body": Body = dataRow[name].ToString(); SavedBody = Body; break; case "Comments": Comments = dataRow["Comments"].ToString().Deserialize <Comments>() ?? new Comments(); SavedComments = Comments.ToJson(); break; case "Creator": Creator = SiteInfo.User(dataRow.Int(name)); SavedCreator = Creator.Id; break; case "Updator": Updator = SiteInfo.User(dataRow.Int(name)); SavedUpdator = Updator.Id; break; case "CreatedTime": CreatedTime = new Time(dataRow, "CreatedTime"); SavedCreatedTime = CreatedTime.Value; break; case "IsHistory": VerType = dataRow[name].ToBool() ? Versions.VerTypes.History : Versions.VerTypes.Latest; break; } } if (ss != null) { Title.DisplayValue = WikiUtilities.TitleDisplayValue(ss, this); } }
public string Histories() { SetSite(initSiteSettings: true); switch (ReferenceType) { case "Sites": return(SiteUtilities.Histories(siteModel: Site)); case "Issues": return(IssueUtilities.Histories( ss: Site.SiteSettings, issueId: ReferenceId)); case "Results": return(ResultUtilities.Histories( ss: Site.SiteSettings, resultId: ReferenceId)); case "Wikis": return(WikiUtilities.Histories( ss: Site.SiteSettings, wikiId: ReferenceId)); default: return(Messages.ResponseNotFound().ToJson()); } }
public string DeleteComment() { SetSite(); switch (ReferenceType) { case "Sites": return(SiteUtilities.Update(siteModel: Site, siteId: ReferenceId)); case "Issues": return(IssueUtilities .Update(Site.IssuesSiteSettings(ReferenceId), ReferenceId)); case "Results": return(ResultUtilities .Update(Site.ResultsSiteSettings(ReferenceId), ReferenceId)); case "Wikis": return(WikiUtilities .Update(Site.WikisSiteSettings(ReferenceId), ReferenceId)); default: return(Messages.ResponseNotFound().ToJson()); } }
public string EditorJson() { SetSite(initSiteSettings: true); switch (ReferenceType) { case "Sites": return(SiteUtilities.EditorJson(Site)); case "Issues": return(IssueUtilities.EditorJson( Site.SiteSettings, ReferenceId)); case "Results": return(ResultUtilities.EditorJson( Site.SiteSettings, ReferenceId)); case "Wikis": return(WikiUtilities.EditorJson( Site.SiteSettings, ReferenceId)); default: return(Messages.ResponseNotFound().ToJson()); } }
public string Restore(long referenceId) { ReferenceId = referenceId; Get(Sqls.TableTypes.Deleted, where : Rds.ItemsWhere().ReferenceId(ReferenceId)); SetSite(); switch (ReferenceType) { case "Sites": return(SiteUtilities.Restore(siteId: ReferenceId)); case "Issues": return(IssueUtilities.Restore( ss: SiteSettingsUtilities.IssuesSiteSettings(Site, ReferenceId), issueId: ReferenceId)); case "Results": return(ResultUtilities.Restore( ss: SiteSettingsUtilities.ResultsSiteSettings(Site, ReferenceId), resultId: ReferenceId)); case "Wikis": return(WikiUtilities.Restore( ss: SiteSettingsUtilities.WikisSiteSettings(Site, ReferenceId), wikiId: ReferenceId)); default: return(Messages.ResponseNotFound().ToJson()); } }
public string Delete() { SetSite(); switch (ReferenceType) { case "Sites": return(SiteUtilities.Delete( ss: Site.SitesSiteSettings(ReferenceId), siteId: ReferenceId)); case "Issues": return(IssueUtilities.Delete( ss: Site.IssuesSiteSettings(ReferenceId), issueId: ReferenceId)); case "Results": return(ResultUtilities.Delete( ss: Site.ResultsSiteSettings(ReferenceId), resultId: ReferenceId)); case "Wikis": return(WikiUtilities.Delete( ss: Site.WikisSiteSettings(ReferenceId), wikiId: ReferenceId)); default: return(Messages.ResponseNotFound().ToJson()); } }