Beispiel #1
0
        protected override void ProcessRecord()
        {
            GenerateVerboseMessage("Generating DataBuilder Instance.");
            DevOps.Data.DataBuilder db = new DevOps.Data.DataBuilder();

            GenerateVerboseMessage("Appending Source CrmDataPackage.");
            db.AppendData(SourcePackage.Data, SourcePackage.Schema);
            GenerateVerboseMessage("Appending Additional CrmDataPackage.");
            db.AppendData(AdditionalPackage.Data, AdditionalPackage.Schema);

            try
            {
                GenerateVerboseMessage("Generating CrmDataPackage.");
                var Package = new CrmDataPackage()
                {
                    ContentTypes = db.BuildContentTypesXML(),
                    Data         = db.BuildDataXML(),
                    Schema       = db.BuildSchemaXML()
                };

                GenerateVerboseMessage("Writing CrmDataPackage to output.");
                base.WriteObject(Package);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        public string DateFormat = "yyyy'-'MM'-'dd'T'HH':'mm':'ss"; //Default to Format used by DataMigrationUtility

        protected override void ProcessRecord()
        {
            GenerateVerboseMessage("Generating DataBuilder Instance.");
            DevOps.Data.DataBuilder db = new DevOps.Data.DataBuilder(this.Conn);

            if (this.Fetches.Length == 0)
            {
                throw new Exception("No fetches provided.");
            }

            GenerateVerboseMessage("Appending CrmDataPackage.");
            db.AppendData(Package.Data, Package.Schema);

            foreach (String fetch in this.Fetches)
            {
                GenerateVerboseMessage(String.Format("Appending fetch: {0}", fetch));
                db.AppendData(fetch);
            }

            if (this.Identifiers.Keys.Count > 0)
            {
                GenerateVerboseMessage("Setting identifiers.");
                foreach (String key in this.Identifiers.Keys)
                {
                    String[] identifier = Array.ConvertAll <object, string>((Object[])this.Identifiers[key], delegate(object obj) { return((string)obj); });
                    GenerateVerboseMessage(String.Format("Setting entity/identifier: {0}/{1}", key, String.Join(",", identifier)));
                    db.SetIdentifier(key, identifier);
                }
            }

            if (this.DisablePlugins.Keys.Count > 0)
            {
                GenerateVerboseMessage("Disabling plugins.");
                foreach (String key in this.DisablePlugins.Keys)
                {
                    GenerateVerboseMessage(String.Format("Setting entity/disable: {0}/{1}", key, DisablePlugins[key].ToString()));
                    db.SetPluginsDisabled(key, (Boolean)DisablePlugins[key]);
                }
            }

            if (this.DisablePluginsGlobally)
            {
                GenerateVerboseMessage("Disabling plugins globally.");
                db.SetPluginsDisabled(true);
            }

            if (!string.IsNullOrEmpty(this.DateFormat))
            {
                GenerateVerboseMessage("Setting DateFormat");
                db.SetDateFormat(this.DateFormat);
            }

            try
            {
                GenerateVerboseMessage("Generating CrmDataPackage.");
                var package = new CrmDataPackage()
                {
                    ContentTypes = db.BuildContentTypesXML(),
                    Data         = db.BuildDataXML(),
                    Schema       = db.BuildSchemaXML()
                };

                GenerateVerboseMessage("Writing CrmDataPackage to output.");
                base.WriteObject(package);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }