Example #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);
            }
        }
        protected override void ProcessRecord()
        {
            try
            {
                CrmDataPackage package = new CrmDataPackage();
                using (ZipFile zip = new ZipFile())
                {
                    var zipData = ZipFile.Read(ZipPath);
                    foreach (ZipEntry entry in zipData.Entries)
                    {
                        XmlDocument Xml = new XmlDocument();
                        using (var ms = new MemoryStream())
                        {
                            entry.Extract(ms);
                            ms.Position = 0;
                            var sr    = new StreamReader(ms);
                            var myStr = sr.ReadToEnd();
                            Xml.LoadXml(myStr);
                        }
                        switch (entry.FileName)
                        {
                        case "data.xml":
                            package.Data = Xml;
                            break;

                        case "data_schema.xml":
                            package.Schema = Xml;
                            break;

                        default:
                            package.ContentTypes = Xml;
                            break;
                        }
                    }

                    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);
            }
        }