Пример #1
0
        /// <summary>
        /// Gets the EntitiesToDTOs AddIn general configuration.
        /// </summary>
        /// <returns></returns>
        public static AddInConfig GetAddInConfig(bool forceLoad = false)
        {
            if (forceLoad == true)
            {
                ConfigurationHelper.AddInConfig = new AddInConfig();

                if (File.Exists(ConfigurationHelper.AddInConfigFilePath) == false)
                {
                    // Set default configuration
                    ConfigurationHelper.AddInConfig.ReleaseStatusFilter.Add(ReleaseStatus.Stable);
                    ConfigurationHelper.AddInConfig.ReleaseStatusFilter.Add(ReleaseStatus.Beta);
                    ConfigurationHelper.AddInConfig.RateReleaseID = AssemblyHelper.VersionInfo.ReleaseID;

                    ConfigurationHelper.SaveAddInConfig(ConfigurationHelper.AddInConfig);
                }
                else
                {
                    XDocument configDoc = XDocument.Load(ConfigurationHelper.AddInConfigFilePath);

                    XElement updatesNode = configDoc.Descendants(AddInConfigNodes.Updates).First();

                    // Set Stable release status filter if checked
                    if (Convert.ToBoolean(updatesNode.Attribute(AddInConfigNodes.UpdatesAttrStable).Value) == true)
                    {
                        ConfigurationHelper.AddInConfig.ReleaseStatusFilter.Add(ReleaseStatus.Stable);
                    }

                    // Set Beta release status filter if checked
                    if (Convert.ToBoolean(updatesNode.Attribute(AddInConfigNodes.UpdatesAttrBeta).Value) == true)
                    {
                        ConfigurationHelper.AddInConfig.ReleaseStatusFilter.Add(ReleaseStatus.Beta);
                    }

                    // Get skipped releases
                    IEnumerable <XElement> skippedReleases = updatesNode.Descendants(AddInConfigNodes.Release);
                    foreach (XElement release in skippedReleases)
                    {
                        ConfigurationHelper.AddInConfig.SkippedReleases.Add(
                            Convert.ToInt32(release.Attribute(AddInConfigNodes.ReleaseAttrID).Value));
                    }

                    XElement rateInfoNode = configDoc.Descendants(AddInConfigNodes.RateInfo).FirstOrDefault();
                    if (rateInfoNode == null)
                    {
                        // Old AddIn config where rate info node is missing
                        ConfigurationHelper.AddInConfig.RateReleaseID = AssemblyHelper.VersionInfo.ReleaseID;

                        ConfigurationHelper.SaveAddInConfig(ConfigurationHelper.AddInConfig);
                    }
                    else
                    {
                        ConfigurationHelper.AddInConfig.RateReleaseID = Convert.ToInt32(
                            rateInfoNode.Attribute(AddInConfigNodes.RateInfoAttrReleaseID).Value);

                        ConfigurationHelper.AddInConfig.IsReleaseRated =
                            (rateInfoNode.Attribute(AddInConfigNodes.RateInfoAttrIsRated).Value == Resources.XmlBoolTrue);

                        string lastRateAskedDateValue = rateInfoNode.Attribute(AddInConfigNodes.RateInfoAttrLastAskedDate).Value;

                        if (lastRateAskedDateValue.Length > 8)
                        {
                            // Correct previous versions invalid last rate asked date.
                            lastRateAskedDateValue = DateTime.Now.ToString("yyyyMMdd");

                            ConfigurationHelper.SaveAddInConfig(ConfigurationHelper.AddInConfig);
                        }

                        int lastRateAskedYear  = Convert.ToInt32(lastRateAskedDateValue.Substring(0, 4));
                        int lastRateAskedMonth = Convert.ToInt32(lastRateAskedDateValue.Substring(4, 2));
                        int lastRateAskedDay   = Convert.ToInt32(lastRateAskedDateValue.Substring(6, 2));

                        ConfigurationHelper.AddInConfig.LastRateAskedDate =
                            new DateTime(lastRateAskedYear, lastRateAskedMonth, lastRateAskedDay);
                    }
                }
            }

            // Return general configuration
            return(ConfigurationHelper.AddInConfig);
        }
Пример #2
0
 /// <summary>
 /// Gets target name of <see cref="GenerateAssemblersParams"/>.
 /// </summary>
 /// <param name="assemblersParams">Assembler parameters from where to obtain the target name.</param>
 /// <returns></returns>
 private static string GetTargetName(GenerateAssemblersParams assemblersParams)
 {
     return(ConfigurationHelper.GetTargetName(assemblersParams.TargetType,
                                              assemblersParams.TargetProject, assemblersParams.TargetProjectFolder));
 }
Пример #3
0
        /// <summary>
        /// Exports the User Configuration to the specified file path.
        /// </summary>
        /// <param name="generatorParams">GeneratorManagerParams containing necessary information.</param>
        /// <param name="filePath">File path to export.</param>
        public static void Export(GeneratorManagerParams generatorParams, string filePath)
        {
            if (filePath.EndsWith(Resources.GenConfigFileExtension) == false)
            {
                filePath += Resources.GenConfigFileExtension;
            }

            var exportDoc = new XDocument();

            exportDoc.Add(
                new XElement(ConfigNodes.Root,
                             new XElement(ConfigNodes.GenerateAssemblers, generatorParams.GenerateAssemblers),
                             new XElement(ConfigNodes.DTOsConfig,
                                          new XElement(ConfigNodes.Target,
                                                       new XAttribute(ConfigNodes.TargetAttrProject, generatorParams.DTOsParams.TargetProject.Name),
                                                       new XAttribute(ConfigNodes.TargetAttrName, ConfigurationHelper.GetTargetName(generatorParams.DTOsParams)),
                                                       new XAttribute(ConfigNodes.TargetAttrType, generatorParams.DTOsParams.TargetType.ToString())),
                                          new XElement(ConfigNodes.EDMXName, generatorParams.DTOsParams.EDMXProjectItem.Name),
                                          new XElement(ConfigNodes.GenerateFilter,
                                                       new XAttribute(ConfigNodes.GenerateFilterAttrAll, generatorParams.DTOsParams.GenerateAllTypes),
                                                       new XAttribute(ConfigNodes.GenerateFilterAttrComplex, generatorParams.DTOsParams.GenerateAllComplexTypes),
                                                       new XAttribute(ConfigNodes.GenerateFilterAttrEntities, generatorParams.DTOsParams.GenerateAllEntityTypes)),
                                          new XElement(ConfigNodes.SourceFileHeaderComment, generatorParams.DTOsParams.SourceFileHeaderComment),
                                          new XElement(ConfigNodes.UseProjectDefaultNamespace, generatorParams.DTOsParams.UseProjectDefaultNamespace),
                                          new XElement(ConfigNodes.SourceNamespace, generatorParams.DTOsParams.SourceNamespace),
                                          new XElement(ConfigNodes.DTOsServiceReady, generatorParams.DTOsParams.DTOsServiceReady),
                                          new XElement(ConfigNodes.SourceFileGenerationType, generatorParams.DTOsParams.SourceFileGenerationType.ToString()),
                                          new XElement(ConfigNodes.SourceFileName, generatorParams.DTOsParams.SourceFileName),
                                          new XElement(ConfigNodes.AssociationType, generatorParams.DTOsParams.AssociationType.ToString()),
                                          new XElement(ConfigNodes.GenerateDTOConstructors, generatorParams.DTOsParams.GenerateDTOConstructors),
                                          new XElement(ConfigNodes.ClassIdentifier,
                                                       new XAttribute(ConfigNodes.ClassIdentifierAttrUse, generatorParams.DTOsParams.ClassIdentifierUse.ToString()),
                                                       new XAttribute(ConfigNodes.ClassIdentifierAttrWord, generatorParams.DTOsParams.ClassIdentifierWord)))));

            XElement generateFilterNode = exportDoc.Descendants(ConfigNodes.GenerateFilter).First();

            foreach (string typeName in generatorParams.DTOsParams.TypesToGenerateFilter)
            {
                generateFilterNode.Add(new XElement(ConfigNodes.GenerateType,
                                                    new XAttribute(ConfigNodes.GenerateTypeAttrName, typeName))
                                       );
            }

            if (generatorParams.GenerateAssemblers)
            {
                exportDoc.Descendants(ConfigNodes.Root).First().Add(
                    new XElement(ConfigNodes.AssemblersConfig,
                                 new XElement(ConfigNodes.Target,
                                              new XAttribute(ConfigNodes.TargetAttrProject, generatorParams.AssemblersParams.TargetProject.Name),
                                              new XAttribute(ConfigNodes.TargetAttrName, ConfigurationHelper.GetTargetName(generatorParams.AssemblersParams)),
                                              new XAttribute(ConfigNodes.TargetAttrType, generatorParams.AssemblersParams.TargetType.ToString())),
                                 new XElement(ConfigNodes.SourceFileHeaderComment, generatorParams.AssemblersParams.SourceFileHeaderComment),
                                 new XElement(ConfigNodes.UseProjectDefaultNamespace, generatorParams.AssemblersParams.UseProjectDefaultNamespace),
                                 new XElement(ConfigNodes.SourceNamespace, generatorParams.AssemblersParams.SourceNamespace),
                                 new XElement(ConfigNodes.SourceFileGenerationType, generatorParams.AssemblersParams.SourceFileGenerationType.ToString()),
                                 new XElement(ConfigNodes.SourceFileName, generatorParams.AssemblersParams.SourceFileName),
                                 new XElement(ConfigNodes.IsServiceReady, generatorParams.AssemblersParams.IsServiceReady),
                                 new XElement(ConfigNodes.ClassIdentifier,
                                              new XAttribute(ConfigNodes.ClassIdentifierAttrUse, generatorParams.AssemblersParams.ClassIdentifierUse.ToString()),
                                              new XAttribute(ConfigNodes.ClassIdentifierAttrWord, generatorParams.AssemblersParams.ClassIdentifierWord))));
            }

            exportDoc.Save(filePath);
        }
Пример #4
0
 /// <summary>
 /// Gets target name of <see cref="GenerateDTOsParams"/>.
 /// </summary>
 /// <param name="dtosParams">DTO parameters from where to obtain the target name.</param>
 /// <returns></returns>
 private static string GetTargetName(GenerateDTOsParams dtosParams)
 {
     return(ConfigurationHelper.GetTargetName(dtosParams.TargetType,
                                              dtosParams.TargetProject, dtosParams.TargetProjectFolder));
 }