Example #1
0
 public void ResponseSpawnAllowed_Test()
 {
     DTO.Step s = new DTO.Step {
         StepTypeId = 15
     };
     DTO.Response r = new DTO.Response {
         Id = "000000000000000000000000", Value = ""
     };
     new PlanElementUtils().ResponseSpawnAllowed(s, r);
     Assert.Fail();
 }
Example #2
0
        public DTO.Response <T> Log <T>(DTO.Response <T> response)
        {
            if (response == null)
            {
                return(response);
            }

            var info  = response.Messages.Where(p => !p.EsError).Select(p => p.Text ?? p.Ex?.GetFullDescription());
            var error = response.Messages.Where(p => p.EsError).Select(p => p.Text ?? p.Ex?.GetFullDescription());

            Info(info);
            Error(error);

            return(response);
        }
Example #3
0
 public bool ResponseSpawnAllowed(DTO.Step s, DTO.Response r)
 {
     throw new NotImplementedException();
 }
Example #4
0
        /// <summary>
        /// Devuelve un objeto con las propiedades cargadas según los argumentos recibidos
        /// </summary>
        /// <typeparam name="T">Tipo del Objeto a devolver</typeparam>
        /// <param name="args">argumentos recibidos</param>
        /// <returns></returns>
        public DTO.Response <T> Parse <T>(string[] args) where T : new()
        {
            var result = new DTO.Response <T>();
            var res    = new T();

            var foundeds = new List <DTO.PropAttribute <Option> >();
            var props    = Reflection.GetPropertiesWithAttribute <T, Option>();

            var pos = 0;

            while (pos < args.Length)
            {
                var arg = args[pos];

                // busco la propiedad
                var opt = props.FirstOrDefault(p => prefix.Select(x => x + p.Attr.Name).Contains(arg));
                if (opt == null)
                {
                    result.AddError($"No se reconoce el comando '{arg}'");
                    pos++;
                    continue;
                }

                if (opt.Type.IsAssignableFrom(typeof(bool)))
                {
                    // bool :: existe o no el parámetro
                    opt.Prop.SetValue(res, true);
                    foundeds.Add(opt);
                }
                else
                {
                    pos++;
                    if (pos >= args.Length)
                    {
                        result.AddError($"No se encuentra el valor para el parámetro '-{opt.Attr.Name}'");
                        continue;
                    }

                    try
                    {
                        var parsedValue = Reflection.ConvertTo(args[pos], opt.Type, opt.Attr.DateTimeFormat);
                        opt.Prop.SetValue(res, parsedValue);
                        foundeds.Add(opt);
                    }
                    catch (Exception ex)
                    {
                        result.AddError($"Error al parsear la propiedad '-{opt.Attr.Name}'.");
                        result.AddError(ex);
                    }
                }

                pos++;
            }

            // Requeridos faltantes
            foreach (var req in props.Where(r => r.Attr.Required && !foundeds.Any(f => f == r)))
            {
                result.AddError($"No se encuentra el valor para el parámetro requerido '-{req.Attr.Name}'");
            }

            return(result.SetData(res));
        }