/// <summary>
        /// Get cep details information from cep
        /// </summary>
        public Task <ResponseMessage <CepDetails> > SendRequestAsync(Cep cep)
        {
            if (cep == null)
            {
                return(Task.FromResult(new ResponseMessage <CepDetails>(ErrorCodes.CepRequired, "Cep is required")));
            }

            cep.Validate();
            if (cep.IsInvalid())
            {
                return(Task.FromResult(new ResponseMessage <CepDetails>(cep.GetValidationErrors().First())));
            }

            return(SendRequestAndParseResultAsync(cep));
        }
Beispiel #2
0
        private Task ProcessCepRequest(HttpContext context)
        {
            Cep cep = new Cep(context.Request.RouteValues["cep"].ToString());

            cep.Validate();

            if (cep.IsInvalid())
            {
                context.Response.StatusCode  = (int)HttpStatusCode.BadRequest;
                context.Response.ContentType = "text/html";
                return(context.Response.WriteAsync("<html><head></head><body>400 - Bad Request</body></html>"));
            }

            if (cep.Value == "00000000")
            {
                context.Response.StatusCode  = (int)HttpStatusCode.OK;
                context.Response.ContentType = "application/json";
                return(context.Response.WriteAsync(@"{""erro"":true}"));
            }

            StringBuilder builder = new StringBuilder()
                                    .Append("{")
                                    .Append($@"""cep"":""{cep.Value}"",")
                                    .Append($@"""logradouro"":""Praça da Sé"",")
                                    .Append($@"""complemento"":""lado ímpar"",")
                                    .Append($@"""bairro"":""Sé"",")
                                    .Append($@"""localidade"":""São Paulo"",")
                                    .Append($@"""uf"":""SP"",")
                                    .Append($@"""ibge"":""3550308"",")
                                    .Append($@"""gia"":""1004"",")
                                    .Append($@"""ddd"":""11"",")
                                    .Append($@"""siafi"":""7107""")
                                    .Append("}");

            context.Response.StatusCode  = (int)HttpStatusCode.OK;
            context.Response.ContentType = "application/json";
            return(context.Response.WriteAsync(builder.ToString()));
        }