Пример #1
0
        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);
        }
Пример #2
0
 public static void SaveEntities(this CDatabaseApi db, params IDatabaseEntity[] entities)
 {
     foreach (var entity in entities)
     {
         entity.Save(db);
     }
 }
Пример #3
0
        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());
        }
Пример #4
0
        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);
                }
            }
        }
Пример #5
0
 public static string GetPluginTableName(CDatabaseApi db)
 {
     return(db.PluginTableName(TABLE_EXTENDED_EVENTS_NAME));
 }