public static string GetFilePath( this CmdApplicationConfiguration applicationConfiguration, string fileExtension, string rootDirectory) { if (applicationConfiguration == null) { throw new ArgumentNullException(nameof(applicationConfiguration)); } if (fileExtension == null) { throw new ArgumentNullException(nameof(fileExtension)); } if (rootDirectory == null) { throw new ArgumentNullException(nameof(rootDirectory)); } var applicationDirectory = applicationConfiguration.GetDirectoryInfo(rootDirectory); var fileName = applicationConfiguration.GetFileName(fileExtension); var filePath = Path.Combine(applicationDirectory.FullName, fileName); return(filePath); }
public Maybe <CmdApplicationConfiguration> GetCmdApplicationConfiguration() { this.Error = null; if (string.IsNullOrEmpty(this.FriendlyName)) { return(Maybe.Empty <CmdApplicationConfiguration>()); } var parameters = new List <IParameter>(); foreach (var parameterVm in this.Properties) { parameters.AddRange(parameterVm.GetParameter()); } if (!parameters.Any()) { return(Maybe.Empty <CmdApplicationConfiguration>()); } var applicationConfiguration = new CmdApplicationConfiguration( (Name)FriendlyName, ApplicationName, new ReadOnlyCollection <IParameter>(parameters)); return(Maybe.ToMaybe(applicationConfiguration)); }
public void Handle(ConfigurationSavedEvent command) { this.Error = "Saved Successfull"; this.IsConfigurationSaved = true; this.IsInEditMode = false; this.lastSavedConfiguration = this.GetCmdApplicationConfiguration().FirstOrDefault(); this.PopulateFromCmdApplicationConfiguration(this.lastSavedConfiguration); }
public static string GetDirectoryName(this CmdApplicationConfiguration applicationConfiguration) { if (applicationConfiguration == null) { throw new ArgumentNullException(nameof(applicationConfiguration)); } return((string)applicationConfiguration.ApplicationName); }
public void DeleteConfiguration(CmdApplicationConfiguration applicationConfiguration) { if (applicationConfiguration == null) { throw new ArgumentNullException(nameof(applicationConfiguration)); } this.FileStoreWriter.Delete(applicationConfiguration); }
public bool CheckIfConfigurationWithSameNameExists(CmdApplicationConfiguration applicationConfiguration) { if (applicationConfiguration == null) { throw new ArgumentNullException(nameof(applicationConfiguration)); } return(this.FileStoreReader.CheckIfFileExists(applicationConfiguration)); }
public void CreateNewConfiguration(CmdApplicationConfiguration applicationConfiguration) { if (applicationConfiguration == null) { throw new ArgumentNullException(nameof(applicationConfiguration)); } using (var stream = this.FileStoreWriter.OpenStreamFor(applicationConfiguration)) using (var writer = new StreamWriter(stream)) this.serializer.Serialize(writer, applicationConfiguration); }
public static DirectoryInfo GetDirectoryInfo( this CmdApplicationConfiguration applicationConfiguration, string rootDirectory) { if (applicationConfiguration == null) { throw new ArgumentNullException(nameof(applicationConfiguration)); } return(new DirectoryInfo(Path.Combine(rootDirectory, applicationConfiguration.GetDirectoryName())) .CreateIfDoesNotExists()); }
public CmdApplicationConfigurationViewModel Create( CmdApplicationConfiguration applicationConfiguration, CmdApplicationMeta applicationMeta) { if (applicationConfiguration == null) { throw new ArgumentNullException(nameof(applicationConfiguration)); } if (applicationMeta == null) { throw new ArgumentNullException(nameof(applicationMeta)); } var properties = new List <ParameterViewModel>(); foreach (var parameterMeta in applicationMeta.ParameterMetas) { ParameterViewModel viewModel = null; if (parameterMeta.ParameterType == typeof(NameValueParameter)) { viewModel = new NameValueParameterViewModel(parameterMeta.Name, parameterMeta.DisplayName); viewModel.WithParameter(applicationConfiguration .Parameters .FirstOrDefault(a => a.Name == parameterMeta.Name)); } else if (parameterMeta.ParameterType == typeof(NameOnlyParameter)) { viewModel = new NameOnlyParameterViewModel(parameterMeta.Name, parameterMeta.DisplayName); viewModel.WithParameter(applicationConfiguration.Parameters.FirstOrDefault(a => a.Name == parameterMeta.Name)); } else { throw new ArgumentException(string.Format("Type {0} not supported for parameter {1}", parameterMeta.ParameterType, parameterMeta.Name)); } properties.Add(viewModel); } var returnValue = new CmdApplicationConfigurationViewModel( applicationMeta, properties, Channel, StringParsers); returnValue.FriendlyName = (string)applicationConfiguration.Name; return(returnValue); }
private CmdApplicationConfiguration CreateCmdApplicationConfiguration( string friendlyName, CmdApplicationMeta meta) { var parameterList = new List <IParameter>(); IParameter parameter = new NameOnlyParameter((Name)"-E"); parameterList.Add(parameter); parameter = new NameValueParameter((Name)"-S", "Value"); parameterList.Add(parameter); var configuration = new CmdApplicationConfiguration( (Name)friendlyName, (Name)meta.ApplicationName, new ReadOnlyCollection <IParameter>(parameterList)); return(configuration); }
// TODO: More cases to be handled like where the application name can be a full exe path public static string GetFileName(this CmdApplicationConfiguration applicationConfiguration, string extension) { if (applicationConfiguration == null) { throw new ArgumentNullException(nameof(applicationConfiguration)); } if (string.IsNullOrEmpty(extension)) { throw new ArgumentNullException(nameof(extension)); } var nameFormat = "{0}-{1}.{2}"; return(string.Format( nameFormat, applicationConfiguration.ApplicationName, FormatFriendlyName(applicationConfiguration.Name), extension).ToLower()); }
public void PopulateFromCmdApplicationConfiguration(CmdApplicationConfiguration applicationConfiguration) { if (applicationConfiguration == null) { return; } lastSavedConfiguration = applicationConfiguration; this.ApplicationName = applicationConfiguration.ApplicationName; if (string.IsNullOrEmpty(this.FriendlyName)) { this.FriendlyName = (string)applicationConfiguration.Name; } foreach (var property in this.Properties) { var propertyValue = applicationConfiguration.Parameters.FirstOrDefault(a => a.Name == property.GetName()); property.WithParameter(propertyValue); } this.IsConfigurationSaved = true; }
public void GetFileNameWithNullValueThrowsException(CmdApplicationConfiguration sut) { Assert.Throws <ArgumentNullException>(() => sut.GetFileName(null)); }
public void GetDirectoryOnNullThrowsException() { CmdApplicationConfiguration sut = null; Assert.Throws <ArgumentNullException>(() => sut.GetDirectoryName()); }
public void GetFileNameOnNullThrowsException() { CmdApplicationConfiguration sut = null; Assert.Throws <ArgumentNullException>(() => sut.GetFileName(null)); }