public static T Criar <T>(DnServicoTransacionalBase service) where T : DnEspecificacaoBase { if (!(Activator.CreateInstance(typeof(T)) is T ts)) { throw new DesenvolvimentoIncorretoException($"Failed to initialize specification [{typeof(T).Name}] type with specified constructor parameters not found."); } ts.DefinirServico(service); return(ts); }
public static IQueryable <T> ProjetarDeFormaDinamica <T>( this IQueryable <T> consulta, DnServicoTransacionalBase servico, string[] campos = null) where T : EntidadeBase { var requisicao = servico.HttpContextLocal?.Request; if ((campos == null || campos.Length == 0) && requisicao != null) { campos = requisicao.ObterPropriedadesAConsiderar(); } if (campos == null || campos.Length == 0) { return(consulta); } return(consulta.ProjetarDeFormaDinamica(campos)); }
public static IOrderedQueryable <T> ProjetarDeFormaDinamicaOrdenada <T>(this IQueryable <T> consulta, DnServicoTransacionalBase servico, string[] campos = null) where T : EntidadeBase { var requisicao = servico.HttpContextLocal?.Request; if (requisicao != null && (campos == null || campos.Length == 0)) { campos = requisicao?.ObterPropriedadesAConsiderar(); } var ordem = requisicao?.ObterPropriedadesAOrdenar(); var ordemEmTexto = ordem?.Length > 0 ? string.Join(",", ordem) : campos?.FirstOrDefault(); return(string.IsNullOrEmpty(ordemEmTexto) ? consulta.OrderBy(x => x) : consulta.OrderBy(ordemEmTexto)); }
//Todo - Não remove. Dei muito trabalho pra desenvolver public static IQueryable <object> ProjetarDeFormaDinamicaSelecionada <T>(this IQueryable <T> consulta, DnServicoTransacionalBase servico) where T : EntidadeBase { var requisicao = servico.HttpContextLocal.Request; var campos = requisicao.ObterPropriedadesAConsiderar(); if (campos == null || campos.Length == 0) { return(consulta); } return(consulta.ProjetarDeFormaDinamicaSelecionada(campos, out _)); }
//Todo - Não remove. Dei muito trabalho pra desenvolver public static IOrderedQueryable <object> ProjetarDeFormaDinamicaSelecionadaEOrdenada(this IQueryable <object> consulta, DnServicoTransacionalBase servico) { var requisicao = servico.HttpContextLocal.Request; var considerar = requisicao.ObterPropriedadesAConsiderar(); var ordenar = requisicao.ObterPropriedadesAOrdenar(); var ordenarTexto = ordenar?.Length > 0 ? string.Join(",", ordenar) : considerar.FirstOrDefault(); if (string.IsNullOrEmpty(ordenarTexto)) { return(consulta.OrderBy(x => x)); } return(consulta.OrderBy(ordenarTexto)); }
internal void DefinirServico(DnServicoTransacionalBase servico) { Servico = servico; }