using DbAPI.Connections; using DTS.Common.Interface.Database; using DTS.Common.Interface.Groups; using DTS.Common.Interface.TestSetups; using DTS.Common.Interface.TestSetups.TestSetupsList; using System; namespace DbAPI.TestSetups { /// /// defines functions to create, retrieve, update, delete test setups /// public interface ITestSetups { /// /// deletes matching test setup hardware record /// at least one parameter (id/dasid/testsetupid) must be specified /// /// user making request /// connection request is being made on /// id of test setup hardware record (null for all) /// id of das (null for all) /// id of test setup (null for all) /// 0 (ERROR_SUCCESS) on success, all other values are error codes ulong TestSetupHardwareDelete(IUserDbRecord user, IConnectionDetails connection, int? Id, int? dasId, int? testSetupId ); /// /// updates a test setup hardware record /// /// user committing update /// connection update is being made on /// updated record /// 0 on success, all other values are error codes ulong TestSetupHardwareUpdate(IUserDbRecord user, IConnectionDetails connection, ITestSetupHardwareRecord record); /// /// inserts a new record /// /// user inserting record /// connection being inserted on /// record being inserted /// 0 (ERROR_SUCCESS) on success, all other values are error codes ulong TestSetupHardwareInsert(IUserDbRecord user, IConnectionDetails connection, ITestSetupHardwareRecord record); /// /// retrieves all hardware meta data associated with test /// [sample rate, aaf, etc] /// /// user retrieving hardware /// connecting hardware is retrieved on /// id of test setup (use null for all) /// all matching records /// 0 (ERROR_SUCCESS) on success, all other values are error codes ulong TestSetupHardwareGet(IUserDbRecord user, IConnectionDetails connection, int clientDbVersion, int? testSetupId, out ITestSetupHardwareRecord[] records); /// /// inserts a new group/test setup association into db /// /// user making request /// connection request is being made on /// record to insert /// 0 (ERROR_SUCCESS) on success, all other values are error codes ulong TestSetupGroupsInsert(IUserDbRecord user, IConnectionDetails connection, ITestSetupGroupRecord record); /// /// updates a group/test setup association in db /// /// user making request /// connection is being made on /// updated record /// 0 (ERROR_SUCCESS) on success, all other values are error codes ulong TestSetupGroupsUpdate(IUserDbRecord user, IConnectionDetails connection, ITestSetupGroupRecord record); /// /// retrieves all group records matching search criteria /// /// user making request /// connection request is being made on /// database id of group (use null for all) /// database id of test setup (use null for all) /// test setup name for test setup (use null for all) /// matching groups /// 0 (ERROR_SUCCESS) on success, all other values are error codes ulong TestSetupGroupsGet(IUserDbRecord user, IConnectionDetails connection, int? groupId, int? testSetupId, string testSetupName, out ITestSetupGroupRecord[] groups ); /// /// Commits a change to the IsDirty or IsComplete flags in the db for a test /// /// user committing change /// connection change is being committed on /// name of test setup to modify /// whether to set dirty flag or not. Dirty flag indicates /// whether the test setup has been checked for completeness and readiness to run /// whether the test setup is ready to run or not /// error message(s) associated with test setup, if any /// 0 (ERROR_SUCCESS) on success, all other values are error codes ulong TestSetupsMarkIsDirtyIsComplete(IUserDbRecord user, IConnectionDetails connection, string name, bool dirty, bool complete, string error); /// /// deletes all test setups matching criteria /// /// user deleting test setups /// connection tests are being deleted on /// date of oldest allowed test setup /// 0 (ERROR_SUCCESS) on success. All other values are error codes. ulong TestSetupsDeleteByDate(IUserDbRecord user, IConnectionDetails connection, DateTime date); /// /// deletes all test setups and groups /// /// user requesting deletes /// connection to delete on /// 0 (ERROR_SUCCESS) on success. All other values are error codes ulong TestSetupsAndGroupsDeleteAll(IUserDbRecord user, IConnectionDetails connection); /// /// Deletes all test setups that match the search criteria /// /// user deleting test setups /// connection to delete test setups on /// ids of test setups to delete /// 0 (ERROR_SUCCESS) on success, all other values are error codes ulong TestSetupsDeleteById(IUserDbRecord user, IConnectionDetails connection, int[] ids); /// /// deletes all test setups that match the search criteria /// /// user deleting test setups /// connection to delete test setups on /// names of test setups to delete /// 0 (ERROR_SUCCESS) on success, all other values are error codes ulong TestSetupsDeleteByName(IUserDbRecord user, IConnectionDetails connection, string[] names); /// /// commits a test setup into the database /// /// user committing record /// connection record is being committed on /// the database version of the client code /// record being committed /// 0 (ERROR_SUCCESS) on success, all other values are errors ulong TestSetupsUpdateInsert(IUserDbRecord user, IConnectionDetails connection, int clientDbVersion, ref ITestSetupRecord record); /// /// Retrieves all test setups which match given search criteria /// /// user making query /// connection over which query is to be made /// the database version of the client code /// database id of test setup (can be null) /// name of test setup (can be null or empty) /// start time for any ROIs that have to be generated /// some old test setups may not have ROIs specified for every event /// end time for any ROIs that have to be generated /// some old test setups may not have ROIs specified for every event /// whether or not to ignore a shorted start /// since we may be using a Version 91 database that doesn't store this /// whether or not to ignore a shorted trigger /// since we may be using a Version 91 database that doesn't store this /// matching records /// any errors encountered while retrieving test setups /// 0 (ERROR_SUCCESS) on success, all other values are errors ulong TestSetupsGet(IUserDbRecord user, IConnectionDetails connection, int clientDbVersion, int? testSetupId, string testSetupName, double defaultROIStart, double defaultROIEnd, bool defaultIgnoreShortedStart, bool defaultIgnoreShortedTrigger, out ITestSetupRecord[] records, out string[] errors); } }