Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
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);
            }
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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);
        }
Exemple #7
0
        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);
        }
Exemple #8
0
        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;
            }
        }
Exemple #9
0
        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;
            }
        }
Exemple #10
0
        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);
        }