Exemple #1
0
        public CmdApplicationConfigurationViewModel Create(CmdApplicationMeta meta)
        {
            if (meta == null)
            {
                throw new ArgumentNullException(nameof(meta));
            }

            var properties = new List <ParameterViewModel>();

            foreach (var parameterMeta in meta.ParameterMetas)
            {
                ParameterViewModel viewModel = null;
                if (parameterMeta.ParameterType == typeof(NameValueParameter))
                {
                    viewModel = new NameValueParameterViewModel(parameterMeta.Name, parameterMeta.DisplayName);
                }
                else if (parameterMeta.ParameterType == typeof(NameOnlyParameter))
                {
                    viewModel = new NameOnlyParameterViewModel(parameterMeta.Name, parameterMeta.DisplayName);
                }
                else
                {
                    throw new ArgumentException(string.Format("Type {0} not supported for parameter {1}", parameterMeta.ParameterType, parameterMeta.Name));
                }

                properties.Add(viewModel);
            }

            return(new CmdApplicationConfigurationViewModel(meta, properties, Channel, StringParsers));
        }
Exemple #2
0
        public IEnumerable <CmdApplicationConfiguration> Query(CmdApplicationMeta criteria)
        {
            if (criteria == null)
            {
                throw new ArgumentNullException(nameof(criteria));
            }

            var streams = this.StoreReader.OpenStreamsFor(criteria);

            foreach (var stream in streams)
            {
                using (var jsonReader = new JsonTextReader(new StreamReader(stream)))
                {
                    CmdApplicationConfiguration applicationConfiguration;
                    try
                    {
                        applicationConfiguration = serializer.Deserialize <CmdApplicationConfiguration>(jsonReader);
                    }
                    catch (Exception)
                    {
                        continue;
                    }

                    yield return(applicationConfiguration);
                }
            }
        }
        public static string GetConfigurationDirectoryName(this CmdApplicationMeta applicationMeta)
        {
            if (applicationMeta == null)
            {
                throw new ArgumentNullException(nameof(applicationMeta));
            }

            return((string)applicationMeta.ApplicationName);
        }
        public static DirectoryInfo GetConfigurationDirectoryInfo(this CmdApplicationMeta applicationMeta, string rootDirectory)
        {
            if (applicationMeta == null)
            {
                throw new ArgumentNullException(nameof(applicationMeta));
            }

            return(new DirectoryInfo(Path.Combine(rootDirectory, applicationMeta.GetConfigurationDirectoryName()))
                   .CreateIfDoesNotExists());
        }
        protected override IList <IParameter> GetParameters(string data, CmdApplicationMeta applicationMeta)
        {
            var connectionStringBuilder = GetConnectionStringBuilder(data);

            if (connectionStringBuilder == null)
            {
                return(default(IList <IParameter>));
            }

            var returnList = new List <IParameter>();

            var serverName   = new NameValueParameter((Name)"-S", connectionStringBuilder["Server"] as string);
            var databaseName = connectionStringBuilder["Initial Catalog"] as string;

            if (string.IsNullOrEmpty(databaseName))
            {
                databaseName = "<default>";
            }

            var initialCatalog = new NameValueParameter((Name)"-d", databaseName);

            returnList.Add(serverName);
            returnList.Add(initialCatalog);

            var userId   = connectionStringBuilder["user id"] as string;
            var password = connectionStringBuilder["password"] as string;

            IParameter username = null;

            if (!string.IsNullOrEmpty(userId))
            {
                username = new NameValueParameter((Name)"-U", userId);
                returnList.Add(username);
            }

            IParameter pass = null;

            if (!string.IsNullOrEmpty(password))
            {
                pass = new NameValueParameter((Name)"-P", password);
                returnList.Add(pass);
            }

            IParameter integratedSecurity = null;

            if ((bool)connectionStringBuilder["integrated Security"])
            {
                integratedSecurity = new NameOnlyParameter((Name)"-E");
                returnList.Add(integratedSecurity);
            }

            return(returnList);
        }
Exemple #6
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);
        }
Exemple #7
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);
        }
Exemple #8
0
        public void CreateWithInvalidParameterMetaTypeThrowsException(
            Name name,
            Name applicationName,
            Name parameterName,
            IChannel <SaveCmdApplicationConfigurationCommand> channel,
            CmdApplicationConfigurationViewModelFactory sut)
        {
            var parameter = new Mock <IParameter>();
            var meta      = new CmdApplicationMeta(
                name,
                applicationName,
                new List <ParameterMeta>()
            {
                ParameterMeta.Create <IParameter>(parameterName)
            });

            Assert.Throws <ArgumentException>(() => sut.Create(meta));
        }
Exemple #9
0
        public CmdApplicationConfigurationViewModel(
            CmdApplicationMeta applicationMeta,
            List <ParameterViewModel> properties,
            IChannel <SaveCmdApplicationConfigurationCommand> channel,
            IEnumerable <CmdApplicationConfigurationParser <string> > stringParsers)
        {
            if (applicationMeta == null)
            {
                throw new ArgumentNullException(nameof(applicationMeta));
            }

            if (properties == null)
            {
                throw new ArgumentNullException(nameof(properties));
            }

            if (channel == null)
            {
                throw new ArgumentNullException(nameof(channel));
            }


            if (stringParsers == null)
            {
                throw new ArgumentNullException(nameof(stringParsers));
            }

            this.ApplicationMeta = applicationMeta;
            this.ApplicationName = applicationMeta.ApplicationName;
            this.Properties      = properties;
            this.Channel         = channel;
            this.StringParsers   = stringParsers;
            this.Save            = new RelayCommand(this.OnSaveExecuted, () => this.IsInEditMode);
            this.ToggleEdit      = new RelayCommand(this.OnToggleEditExecuted);
            this.Launch          = new RelayCommand(this.OnLaunchExecuted);
            DomainEvents.Subscribe <ConfigurationSavedEvent>(this);
            DomainEvents.Subscribe <CmdApplicationConfigurationSaveRejected>(this);
        }
Exemple #10
0
        public void GetDirectoryOnNullThrowsException()
        {
            CmdApplicationMeta sut = null;

            Assert.Throws <ArgumentNullException>(() => sut.GetConfigurationDirectoryInfo(string.Empty));
        }
 protected override IList <IParameter> GetParameters(object data, CmdApplicationMeta applicationMeta)
 {
     return(Parameters);
 }
 protected override Name GetFriendlyName(object data, CmdApplicationMeta applicationMeta)
 {
     return(FriendlyName);
 }
Exemple #13
0
        public void CreateThrowsExcpetionForNullParameters(CmdApplicationConfigurationViewModelFactory factory)
        {
            CmdApplicationMeta NullMeta = null;

            Assert.Throws <ArgumentNullException>(() => factory.Create(NullMeta));
        }
 protected override Name GetFriendlyName(string data, CmdApplicationMeta applicationMeta)
 {
     return(null);
 }