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);
        }
 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));
 }
        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;
        }
Esempio n. 4
0
        public Maybe <CmdApplicationConfiguration> Parse(T data, CmdApplicationMeta applicationMeta)
        {
            var friendlyName = this.GetFriendlyName(data, applicationMeta);
            var parameters   = this.GetParameters(data, applicationMeta);

            if (parameters == null || !parameters.Any())
            {
                return(Maybe.Empty <CmdApplicationConfiguration>());
            }

            if (friendlyName == null)
            {
                friendlyName = Name.EmptyName;
            }

            var configuration = new CmdApplicationConfiguration(
                friendlyName,
                applicationMeta.ApplicationName,
                new System.Collections.ObjectModel.ReadOnlyCollection <IParameter>(parameters)
                );

            return(Maybe.ToMaybe(configuration));
        }
        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;
        }
Esempio n. 6
0
 protected abstract IList <IParameter> GetParameters(T data, CmdApplicationMeta applicationMeta);
Esempio n. 7
0
 protected abstract Name GetFriendlyName(T data, CmdApplicationMeta applicationMeta);