예제 #1
0
        /// <summary>
        /// Obtém o Endpoint
        /// </summary>
        /// <param name="type"></param>
        /// <param name="metodo"></param>
        /// <returns></returns>
        private static string ObterEndpoint(this Type type, TypeMetodo metodo)
        {
            var query = from ep in _endpoint
                        where ep.Metodo == metodo &&
                        ep.Type == type
                        select ep.Url;
            var listaRetorno = query as IList <string> ?? query.ToList();
            var qtdeRetorno  = listaRetorno.Count();

            if (qtdeRetorno == 0)
            {
                throw new Exception(string.Format("Não foi possível obter Endpoint {0}, para a Entidade {1}", metodo.Descricao(), type.Name));
            }
            if (qtdeRetorno > 1)
            {
                throw new Exception("A função ObterEndpoint obteve mais de um resultado!");
            }
            return(listaRetorno.FirstOrDefault());
        }
예제 #2
0
        /// <summary>
        ///  Obtém a URL para uso no ApiService da API
        /// </summary>
        /// <returns></returns>
        public static string ObterEndpointCompleto(this Type type, TypeMetodo metodo, string parametroSubstituicao = "")
        {
            const string barra = "/";

            var url = ObterEndpoint(type, metodo);

            if (!url.StartsWith(barra))
            {
                url = barra + url;
            }

            //if (!url.EndsWith(barra))
            //    url += barra;

            if (!string.IsNullOrWhiteSpace(parametroSubstituicao))
            {
                url = url.ToLower().Replace("parametrosubstituicao", parametroSubstituicao);
            }
            return(url);
        }
예제 #3
0
 public Endpoint(Type type, TypeMetodo metodo, string url)
 {
     Metodo = metodo;
     Type   = type;
     Url    = url;
 }