public static CTable TableDefinition(CDatabaseApi db) { var tblExtendedEventsName = GetPluginTableName(db); var tblExtendedEvents = db.NewTable(tblExtendedEventsName); tblExtendedEvents.sDesc = "List of extended events from external systems integrated with FogBugz."; tblExtendedEvents.AddAutoIncrementPrimaryKey("ixExtendedEvent"); tblExtendedEvents.AddIntColumn("ixBug", true, 0, "FogBugz Bug entity identifier."); tblExtendedEvents.AddVarcharColumn("sEventType", 50, true, "Extended event type name."); tblExtendedEvents.AddDateColumn("dtEventUtc", true, DateTimeEx.UnixEpoch, "Date and time of the event in UTC timezone."); tblExtendedEvents.AddIntColumn("ixPerson", false, 0, "FogBugz Person entity identifier in case the sAuthor field was matched with a person."); tblExtendedEvents.AddVarcharColumn("sPersonName", 50, false, null, "Event author name."); tblExtendedEvents.AddTextColumn("sMessage", "Event detailed message."); tblExtendedEvents.AddTextColumn("sExternalUrl", "Link to the event in external system that generated the event."); tblExtendedEvents.AddVarcharColumn("sCommitRevision", 255, false, null, "Revision number or text from Subversion, Git or other CVS system."); tblExtendedEvents.AddVarcharColumn("sBuildName", 255, false, null, "Build name from TeamCity or Jenkins."); tblExtendedEvents.AddVarcharColumn("sModuleName", 255, false, null, "Module name related to the event."); tblExtendedEvents.AddVarcharColumn("sBranchName", 255, false, null, "Branch name related to the event."); tblExtendedEvents.AddTableIndex("IX_ixBug", "ixBug", "Index to retrieve events by ixBug efficiently."); tblExtendedEvents.AddTableIndex("IX_dtEventUtc", "dtEventUtc", "Index to retrieve events by date efficiently."); return(tblExtendedEvents); }
public static void SaveEntities(this CDatabaseApi db, params IDatabaseEntity[] entities) { foreach (var entity in entities) { entity.Save(db); } }
public int Save(CDatabaseApi db) { var qInsert = db.NewInsertQuery(GetPluginTableName(db)); qInsert.InsertInt("ixBug", this.ixBug); qInsert.InsertString("sEventType", this.sEventType); qInsert.InsertDate("dtEventUtc", this.dtEventUtc); qInsert.InsertInt("ixPerson", this.ixPerson); qInsert.InsertNullableString("sPersonName", this.sPersonName); qInsert.InsertNullableString("sMessage", this.sMessage); qInsert.InsertNullableString("sExternalUrl", this.sExternalUrl); qInsert.InsertNullableString("sCommitRevision", this.sCommitRevision); qInsert.InsertNullableString("sBuildName", this.sBuildName); qInsert.InsertNullableString("sModuleName", this.sModuleName); qInsert.InsertNullableString("sBranchName", this.sBranchName); return(qInsert.Execute()); }
public static IEnumerable <ExtendedEventEntity> QueryEvents(CDatabaseApi db, int ixBug) { var selectQuery = db.NewSelectQuery(ExtendedEventEntity.GetPluginTableName(db)); selectQuery.AddSelect("*"); selectQuery.AddWhere("ixBug = @ixBug"); selectQuery.SetParamInt("@ixBug", ixBug); var ds = selectQuery.GetDataSet(); if (ds.Tables[0] != null && ds.Tables[0].Rows.Count > 0) { foreach (DataRow row in ds.Tables[0].Rows) { var entity = new ExtendedEventEntity(); entity.Load(row); yield return(entity); } } }
public static string GetPluginTableName(CDatabaseApi db) { return(db.PluginTableName(TABLE_EXTENDED_EVENTS_NAME)); }