public bool Execute(IEnumerable <UpdateConnector> updateConnectors) { if (updateConnectors == null) { throw new ArgumentNullException(nameof(updateConnectors)); } var currentDirectory = _directoryHelper.GetCurrentDirectory(); var configurationPath = Path.Combine(currentDirectory, Constants.ConfigurationFileName); var projectConfiguration = JsonConvert.DeserializeObject <ProjectResponse>(File.ReadAllText(configurationPath)); var connectors = new List <ProjectConnectorResponse>(); foreach (var updateConnector in updateConnectors) { connectors.Add(new ProjectConnectorResponse { Library = updateConnector.Library, Name = updateConnector.Name, Parameters = updateConnector.Parameters, Version = updateConnector.Version }); } projectConfiguration.Connectors = connectors; var json = JsonConvert.SerializeObject(projectConfiguration); File.WriteAllText(configurationPath, json); return(true); }
public GetModulesResponse Execute() { // NOTE : This operation should be called only if the dependencies have been resolved. var currentDirectory = _directoryHelper.GetCurrentDirectory(); var configurationPath = Path.Combine(currentDirectory, Constants.ConfigurationFileName); var configurationTemplatePath = Path.Combine(currentDirectory, Constants.ConfigurationTemplateFileName); if (!File.Exists(configurationPath)) { throw new ConfigurationNotFoundException(); } if (!File.Exists(configurationTemplatePath)) { throw new NotRestoredException(); } var projectConfiguration = JsonConvert.DeserializeObject <ProjectResponse>(File.ReadAllText(configurationPath)); if (projectConfiguration == null) { throw new BadConfigurationException($"the {Constants.ConfigurationFileName} is not correct"); } var projectTemplateConfiguration = JsonConvert.DeserializeObject <ProjectResponse>(File.ReadAllText(configurationTemplatePath)); if (projectTemplateConfiguration == null) { throw new BadConfigurationException($"The {Constants.ConfigurationTemplateFileName} is not correct"); } return(new GetModulesResponse { ProjectUnits = projectConfiguration.Units, ProjectTemplateUnits = projectTemplateConfiguration.Units }); }
public GetConnectorsResponse Execute() { var currentDirectory = _directoryHelper.GetCurrentDirectory(); var configurationPath = Path.Combine(currentDirectory, Constants.ConfigurationFileName); var configurationTemplatePath = Path.Combine(currentDirectory, Constants.ConfigurationTemplateFileName); if (!File.Exists(configurationPath)) { throw new ConfigurationNotFoundException(); } if (!File.Exists(configurationTemplatePath)) { throw new NotRestoredException(); } var projectConfiguration = JsonConvert.DeserializeObject <ProjectResponse>(File.ReadAllText(configurationPath)); if (projectConfiguration == null) { throw new BadConfigurationException($"the {Constants.ConfigurationFileName} is not correct"); } var projectTemplateConfiguration = JsonConvert.DeserializeObject <ProjectResponse>(File.ReadAllText(configurationTemplatePath)); if (projectTemplateConfiguration == null) { throw new BadConfigurationException($"The {Constants.ConfigurationTemplateFileName} is not correct"); } return(new GetConnectorsResponse { Connectors = projectConfiguration.Connectors, TemplateConnectors = projectTemplateConfiguration.Connectors }); }
public bool Execute(IEnumerable <UpdateParameter> updateParameters) { if (updateParameters == null) { throw new ArgumentNullException(nameof(updateParameters)); } var currentDirectory = _directoryHelper.GetCurrentDirectory(); var configurationPath = Path.Combine(currentDirectory, Constants.ConfigurationFileName); var configurationTemplatePath = Path.Combine(currentDirectory, Constants.ConfigurationTemplateFileName); var projectConfiguration = JsonConvert.DeserializeObject <ProjectResponse>(File.ReadAllText(configurationPath)); var projectTemplateConfiguration = JsonConvert.DeserializeObject <ProjectResponse>(File.ReadAllText(configurationTemplatePath)); if (projectConfiguration == null) { throw new BadConfigurationException($"the {Constants.ConfigurationFileName} is not correct"); } if (projectTemplateConfiguration == null) { throw new BadConfigurationException($"the {Constants.ConfigurationTemplateFileName} is not correct"); } if (projectConfiguration.Units == null || !projectConfiguration.Units.Any()) { throw new BadConfigurationException("No units in the configuration file"); } var errors = new List <string>(); foreach (var updateParameter in updateParameters) { var projectUnit = projectConfiguration.Units.FirstOrDefault(u => u.UnitName == updateParameter.UnitName); if (projectUnit == null) { errors.Add($"The unit {updateParameter.UnitName} doesn't exist"); continue; } if (projectUnit.Packages == null) { errors.Add($"The unit {updateParameter.UnitName} doesn't contain package"); continue; } var projectUnitPackage = projectUnit.Packages.FirstOrDefault(p => p.CategoryName == updateParameter.CategoryName); if (projectUnitPackage == null) { errors.Add($"The category {updateParameter.UnitName}\\{updateParameter.CategoryName} doesn't exist"); continue; } var projectTemplateUnit = projectTemplateConfiguration.Units.First(u => u.UnitName == updateParameter.UnitName); var projectTemplateUnitPackage = projectTemplateUnit.Packages.FirstOrDefault(p => p.Library == updateParameter.LibraryName && p.CategoryName == updateParameter.CategoryName); if (projectTemplateUnitPackage == null) { errors.Add($"The library {updateParameter.LibraryName} doesn't exist in the unit {updateParameter.UnitName}"); continue; } projectUnitPackage.Library = updateParameter.LibraryName; if (updateParameter.Parameters == null) { updateParameter.Parameters = new Dictionary <string, string>(); continue; } foreach (var parameter in updateParameter.Parameters) { if (projectUnitPackage.Parameters.ContainsKey(parameter.Key)) { projectUnitPackage.Parameters[parameter.Key] = parameter.Value; } else { if (!projectTemplateUnitPackage.Parameters.ContainsKey(parameter.Key)) { errors.Add($"The parameter {parameter.Key} doesn't exist in the package {updateParameter.LibraryName}\\{updateParameter.CategoryName}"); continue; } projectUnitPackage.Parameters.Add(parameter.Key, parameter.Value); } } } if (errors.Any()) { throw new ParameterAggregateException(errors); } var json = JsonConvert.SerializeObject(projectConfiguration); File.WriteAllText(configurationPath, json); return(true); }