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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
 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());
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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());
        }
Exemplo n.º 12
0
        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));
        }