/// <summary> /// Reemplaza los valores correspondientes a los parámetros de los endpoint /// </summary> /// <param name="url">endpoint</param> /// <param name="urlParameters">parámetros a reemplazar en la URL</param> /// <returns></returns> public static string ConvertUrl(this string url, UrlParameters urlParameters, bool?addField = null) { var listPropertyCase = GenericPropertyEntity <UrlParameters> .ModelProperty(urlParameters); List <Tuple <string, object> > tuples = new List <Tuple <string, object> >(); string newUrl = string.Empty; foreach (var item in listPropertyCase.Where(x => x.Item2 != null)) { string parametro = "{" + item.Item1 + "}"; string value = item.Item2.ToString(); if (!url.Contains(parametro) && addField == true) { tuples.Add(item); } url = url.Replace(parametro, value); } newUrl = url; if (newUrl.Contains("?") && addField == true) { var param = new Dictionary <string, string>(); foreach (var item in tuples) { param.Add(item.Item1, item.Item2.ToString()); } newUrl = new Uri(QueryHelpers.AddQueryString(url, param)).ToString(); } return(newUrl); }
/// <summary> /// Convierte los datos enviados desde la interfaz de implementación en los datos aceptados por la api de Service Desk V8 /// </summary> /// <param name="tmodelObj">Clase que se desea transformar</param> /// <param name="validationProperty">clasifica si las propiedades vacías son incluidas en la lista</param> /// <returns>lista de propiedad-valor</returns> public static List <AnswerGeneralV8Api> FillProperties <TModel>(this List <AnswerGeneralV8Api> requestApis, TModel tmodelObj, bool validationProperty) where TModel : class { var listPropertyCase = GenericPropertyEntity <TModel> .ModelProperty(tmodelObj); if (validationProperty) { foreach (var item in listPropertyCase) { if (item.Item2 != null) { Type itemType = item.Item2.GetType(); if (itemType.Equals(typeof(int)) && Convert.ToInt32(item.Item2) != 0) { requestApis.Add(new AnswerGeneralV8Api { Field = item.Item1, Value = item.Item2 }); } else if (itemType.Equals(typeof(string)) && !string.IsNullOrWhiteSpace(item.Item2.ToString())) { requestApis.Add(new AnswerGeneralV8Api { Field = item.Item1, Value = item.Item2 }); } } } } else { requestApis = listPropertyCase.Select(item => new AnswerGeneralV8Api { Field = item.Item1, Value = item.Item2 }).ToList(); } return(requestApis); }
/// <summary> /// Adiciona un objeto dentro de una lista del mismo tipo /// </summary> /// <typeparam name="TModel">Objeto adicionado dentro de una lista del mismo tipo</typeparam> /// <param name="parameter"></param> /// <returns></returns> public static List <TModel> ConvertToList <TModel>(this TModel parameter) where TModel : class { var listPropertyCase = GenericPropertyEntity <TModel> .ModelProperty(parameter); List <TModel> parameters = new List <TModel>(); int control = 0; foreach (var item in listPropertyCase) { if (item.Item2 == null) { control++; } } if (listPropertyCase.Count != control) { parameters.Add(parameter); } return(parameters); }