public IdpeVersion GetCurrentVersion(VersionObjectTypes versionObjectType, int referenceId) { IdpeVersion currentVersion = new IdpeVersion(); currentVersion.Type = (int)versionObjectType; if (versionObjectType == VersionObjectTypes.DataSource) { DataSourceBundle dsb = new DataSourceBundle(); string serialized = dsb.Export(referenceId, false); currentVersion.Data = new System.Data.Linq.Binary(GZipArchive.Compress(serialized.GetByteArray())); currentVersion.CreatedBy = dsb.DataSource.CreatedBy; currentVersion.CreatedTS = (DateTime) new Manager().GetDataSourceLastUpdatedTime(referenceId); currentVersion.Source = dsb.DataSource.Source; } else if (versionObjectType == VersionObjectTypes.Rule) { IdpeRule rule = new Manager().GetRule(referenceId); if (rule == null) { return(null); } DataSourcePatch patch = new DataSourcePatch(); patch.Rules.Add(rule); currentVersion.Data = new System.Data.Linq.Binary(GZipArchive.Compress(patch.Export().GetByteArray())); currentVersion.CreatedBy = rule.CreatedBy; currentVersion.CreatedTS = rule.CreatedTS; currentVersion.Source = rule.Source; } return(currentVersion); }
public bool IsHavingVersion(VersionObjectTypes versionObjectType, int referenceId) { DataTable table = CoreDatabaseObjects.Instance.ExecuteCommand(string.Format("select count(*) from IdpeVersion where [Type] = {0} and [ReferenceId] = {1}", (int)versionObjectType, referenceId)); return(table.Rows[0][0].ToString().ParseInt() > 0 ? true : false); }
public int GetLatestVersionNumber(VersionObjectTypes versionObjectType, int referenceId) { string commandText = string.Format("select Max([Version]) from [IdpeVersion] where [Type] = {0} and [ReferenceId] = {1}", (int)versionObjectType, referenceId); DataTable table = CoreDatabaseObjects.Instance.ExecuteCommand(commandText); return((table.Rows.Count == 1) ? (int)table.Rows[0][0].ToString().ParseInt() : 0); }
public static void Compare(VersionObjectTypes versionObjectType, string objectName, IdpeVersion v1, IdpeVersion v2) { var toolPath = Information.LoggedInUser.GetUserPreferences().ComparisonToolExecutablePath; if (!File.Exists(toolPath)) { if (MessageBox.Show("Comparison tool was not set! Do you want to set it now? You can later change it from Tools->Preferences", "Comparison Tool", MessageBoxButtons.YesNo, MessageBoxIcon.Stop, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { if (SetComparisonTool()) { toolPath = Information.LoggedInUser.GetUserPreferences().ComparisonToolExecutablePath; } else { return; } } else { return; } } string v1file = Path.Combine(Information.TempDirectoryIdpe, objectName + ".v" + (v1.Version == 0? "Current":v1.Version.ToString())); new PrintObject().PrintProperties(ConvertToSreVersionObject(versionObjectType, v1), v1file); if (v1.Version == 0) { PatchVerionZero(v1file); } string v2file = Path.Combine(Information.TempDirectoryIdpe, objectName + ".v" + (v2.Version == 0 ? "Current" : v2.Version.ToString())); new PrintObject().PrintProperties(ConvertToSreVersionObject(versionObjectType, v2), v2file); if (v2.Version == 0) { PatchVerionZero(v1file); } System.Diagnostics.Process p = System.Diagnostics.Process.Start(toolPath, "/r \"" + v1file + "\" \"" + v2file + "\""); p.EnableRaisingEvents = false; p.WaitForExit(); p.Close(); if (File.Exists(v1file)) { File.Delete(v1file); } if (File.Exists(v2file)) { File.Delete(v2file); } }
public IdpeVersion GetVersion(VersionObjectTypes versionType, int referenceId, int versionNumer) { string commandText = string.Format("select [Id],[Version],[Type],[ReferenceId],[Data], [CreatedBy], [CreatedTS] from [IdpeVersion] where [Type] = {0} and [ReferenceId] = {1} and [Version] = {2} order by createdts desc", (int)versionType, referenceId, versionNumer); DataTable table = CoreDatabaseObjects.Instance.ExecuteCommand(commandText); if (table.Rows.Count == 1) { return(DataRowToSreVersion(table.Rows[0])); } return(null); }
public List <IdpeVersion> GetVersions(VersionObjectTypes versionObjectType, int referenceId) { List <IdpeVersion> versions = new List <IdpeVersion>(); string commandText = string.Format("select [Id],[Version],[Type],[ReferenceId],[Data], [CreatedBy], [CreatedTS], [Source] from [IdpeVersion] where [Type] = {0} and [ReferenceId] = {1} order by createdts desc", (int)versionObjectType, referenceId); DataTable table = CoreDatabaseObjects.Instance.ExecuteCommand(commandText); for (int i = 0; i < table.Rows.Count; i++) { versions.Add(DataRowToSreVersion(table.Rows[i])); } return(versions); }
public static object ConvertToSreVersionObject(VersionObjectTypes versionObjectType, IdpeVersion version) { object returnObject = null; switch (versionObjectType) { case VersionObjectTypes.Attribute: returnObject = new object(); break; case VersionObjectTypes.DataSource: returnObject = new DataSourceBundle(null, GZipArchive.Decompress(version.Data.ToArray()).GetString(), version.Version); break; case VersionObjectTypes.Rule: returnObject = new DataSourcePatch(null, GZipArchive.Decompress(version.Data.ToArray()).GetString(), version.Version); break; } return(returnObject); }
public void KeepVersion(VersionObjectTypes objectType, int referenceId) { Manager manager = new Manager(); switch (objectType) { case VersionObjectTypes.Attribute: throw new NotImplementedException(); break; case VersionObjectTypes.DataSource: if (!string.IsNullOrEmpty(manager.GetApplicationName(referenceId))) { KeepVersionInternal(manager, VersionObjectTypes.DataSource, referenceId); } break; case VersionObjectTypes.Rule: KeepVersionInternal(manager, VersionObjectTypes.Rule, referenceId); break; } }
public frmVersions(int referenceId, VersionObjectTypes versionObjectType, bool showSystemDataSource = true, Icon icon = null) { InitializeComponent(); this.Icon = icon == null?Icon.ExtractAssociatedIcon(Assembly.GetExecutingAssembly().Location) : icon; if (versionObjectType == VersionObjectTypes.DataSource) { this.sreVersionControl1.VersionObjectType = versionObjectType; this.sreVersionControl1.ReferenceId = referenceId; this.tabPage1.Text = new DataManager.Manager().GetApplicationName(this.sreVersionControl1.ReferenceId); if (showSystemDataSource) { this.sreVersionControl2.VersionObjectType = versionObjectType; this.sreVersionControl2.ReferenceId = new DataManager.Manager().GetDataSourceParentId(referenceId); this.tabPage2.Text = new DataManager.Manager().GetApplicationName(this.sreVersionControl2.ReferenceId); } else { tabControl1.TabPages.Remove(tabPage2); } this.Text = "Versions of - " + this.tabPage1.Text; } else { tabControl1.TabPages.Remove(tabPage2); this.sreVersionControl1.VersionObjectType = versionObjectType; this.sreVersionControl1.ReferenceId = referenceId; if (versionObjectType == VersionObjectTypes.Rule) { this.tabPage1.Text = new DataManager.Manager().GetRule(this.sreVersionControl1.ReferenceId).Name; } this.Text = "Versions of - " + this.tabPage1.Text; } }
public void KeepVersionInternal(Manager manager, VersionObjectTypes versionObjectType, int referenceId) { if (referenceId == 0) { return; } IdpeVersion version = GetCurrentVersion(versionObjectType, referenceId); if (version == null) { return; } version.Version = manager.GetLatestVersionNumber(versionObjectType, referenceId) + 1; version.Type = (int)versionObjectType; version.ReferenceId = referenceId; switch (versionObjectType) { case VersionObjectTypes.DataSource: IdpeDataSource ds = manager.GetDataSourceDetails(referenceId); version.Data = new Binary(GZipArchive.Compress(new DataSourceBundle().Export(referenceId, false).GetByteArray())); version.CreatedTS = ds.CreatedTS; break; case VersionObjectTypes.Rule: IdpeRule rule = manager.GetRule(referenceId); DataSourcePatch patch = new DataSourcePatch(); patch.Rules.Add(rule); version.Data = new Binary(GZipArchive.Compress(patch.Export().GetByteArray())); version.CreatedTS = rule.CreatedTS; break; } manager.Save(version); }