Пример #1
0
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            var jsonObject = JObject.Load(reader);
            var jobjTipo   = jsonObject["tipo"];
            int idTipo     = jobjTipo["id"].Value <int>();

            TipoDeTabelaDePreco tipo = TipoDeTabelaDePreco.Obtem(idTipo);

            var tabelaDePreco = serializer.Deserialize(jsonObject.CreateReader(), tipo.ConvertePara());

            return(tabelaDePreco);
        }
Пример #2
0
        public async Task <IEnumerable <ITabelaDePreco <int> > > ObtemTabelasDePrecoAsync(IEnumerable <int> idsTabelas, TipoDeTabelaDePreco tipo, PeriodoSimples periodo = null)
        {
            PeriodoSimples periodoRequisicao = periodo;

            string apiPath = new Uri(new Uri(_endpoint), Constantes.URL_TABELA_DE_PRECO).AbsoluteUri;
            RequisicaoSemConteudo <IEnumerable <ITabelaDePreco <int> > > requisicao = new RequisicaoSemConteudo <IEnumerable <ITabelaDePreco <int> > >(apiPath, _context);

            if (periodoRequisicao != null)
            {
                requisicao.Parameters.Add(new ParametrosDaRequisicao("inicio", periodoRequisicao.Inicio.ToString("yyyy-MM-ddTHH:mm:ss")));
                requisicao.Parameters.Add(new ParametrosDaRequisicao("fim", periodoRequisicao.Fim.ToString("yyyy-MM-ddTHH:mm:ss")));
            }

            if (tipo != null)
            {
                requisicao.Parameters.Add(new ParametrosDaRequisicao("Tipo", tipo.Id.ToString()));
            }

            if (idsTabelas?.Count() > 0)
            {
                requisicao.Parameters.Add(new ParametrosDaRequisicao("ids", String.Join(",", idsTabelas)));
            }

            System.Threading.CancellationToken cancellationToken = new System.Threading.CancellationToken();
            string tabelasSerializadas = await requisicao.ObtemAsync(cancellationToken);

            IEnumerable <ITabelaDePreco <int> > tabelas = DeserializarTabelas(tabelasSerializadas);

            return(tabelas);
        }