Ejemplo n.º 1
0
        /// <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);
        }