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(); }
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); }
public bool ResponseSpawnAllowed(DTO.Step s, DTO.Response r) { throw new NotImplementedException(); }
/// <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)); }