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