Пример #1
0
        public HttpResponseMessage AutoCompleteMunicipio(string sigla = "")
        {
            List <Cidade> lst = null;

            string  termo  = this.Request.GetQueryNameValuePairs().Where(c => c.Key == "id").FirstOrDefault().Value.ToUpper();
            decimal codigo = 0;

            if (decimal.TryParse(termo, out codigo))
            {
                codigo = decimal.Parse(termo);
            }

            var predicate = UtilEntity.True <Cidade>();

            if (codigo == 0)
            {
                predicate = predicate.And(p => p.Nome.Contains(termo));
            }
            if (codigo > 0)
            {
                predicate = predicate.And(p => p.ID == codigo);
            }

            try
            {
                using (UnitOfWork UoW = new UnitOfWork())
                {
                    if (!String.IsNullOrEmpty(sigla))
                    {
                        Estado estado = UoW.EstadoRepository.Carregar(c => c.Sigla == sigla, o => o.OrderBy(by => by.ID));
                        predicate = predicate.And(p => p.EstadoID == estado.ID);
                    }

                    lst = UoW.CidadeRepository.Listar(predicate, o => o.OrderBy(by => by.Nome));
                }

                return(Request.CreateResponse(HttpStatusCode.OK, lst));
            }
            catch (ArgumentException aex)
            {
                var errorResponse = Request.CreateErrorResponse(HttpStatusCode.BadRequest, new HttpError(aex.Message));
                throw new HttpResponseException(errorResponse);
            }
            catch (Exception ex)
            {
                var errorResponse = Request.CreateErrorResponse(HttpStatusCode.Conflict, new HttpError(ex.Message));
                throw new HttpResponseException(errorResponse);
            }
        }
Пример #2
0
        public HttpResponseMessage AutoCompleteEstado(string regiao = "")
        {
            List <Estado> lst = null;

            string  termo  = this.Request.GetQueryNameValuePairs().Where(c => c.Key == "id").FirstOrDefault().Value.ToUpper();
            decimal codigo = 0;

            if (decimal.TryParse(termo, out codigo))
            {
                codigo = decimal.Parse(termo);
            }

            var predicate = UtilEntity.True <Estado>();

            if (codigo == 0)
            {
                predicate = predicate.And(p => p.Nome.Contains(termo) || p.Sigla.Contains(termo));
            }
            if (codigo > 0)
            {
                predicate = predicate.And(p => p.ID == codigo);
            }

            if (!string.IsNullOrEmpty(regiao))
            {
                predicate = predicate.And(p => p.Regiao.Equals(regiao));
            }

            try
            {
                using (UnitOfWork UoW = new UnitOfWork())
                {
                    lst = UoW.EstadoRepository.Listar(predicate, p => p.OrderBy(n => n.Nome));
                }

                return(Request.CreateResponse(HttpStatusCode.OK, lst));
            }
            catch (ArgumentException aex)
            {
                var errorResponse = Request.CreateErrorResponse(HttpStatusCode.BadRequest, new HttpError(aex.Message));
                throw new HttpResponseException(errorResponse);
            }
            catch (Exception ex)
            {
                var errorResponse = Request.CreateErrorResponse(HttpStatusCode.Conflict, new HttpError(ex.Message));
                throw new HttpResponseException(errorResponse);
            }
        }