コード例 #1
0
        public JsonResult Finalizar()
        {
            try
            {
                var pedido = _pedidoAppService.BuscaPedido(Convert.ToInt32(Request.Form["Codigo"]));

                if (pedido.CodigoSituacaoPedido == (int)TipoSituacaoPedido.Encerrado)
                {
                    return(Json(new { Status = HttpStatusCode.BadRequest, Codigo = 0, Mensagem = "Pedido já avaliado!" }, JsonRequestBehavior.AllowGet));
                }

                NameValueCollection valores = new NameValueCollection();

                if (Request.Files.Count != 0)
                {
                    HttpPostedFileBase file = Request.Files[0] as HttpPostedFileBase;

                    var gerenciadorArquivo = new GerenciadorArquivoController();

                    gerenciadorArquivo.RequestUpload = Request;

                    var resultado = gerenciadorArquivo.Upload() as JsonResult;

                    dynamic jsonUpload = resultado.Data;

                    if (jsonUpload.Status != HttpStatusCode.OK)
                    {
                        return(Json(new { Status = HttpStatusCode.BadRequest, Codigo = 1, Mensagem = jsonUpload.Mensagem }, JsonRequestBehavior.AllowGet));
                    }

                    valores.Add("Arquivo", jsonUpload.ArquivoFisico);
                }

                foreach (var item in Request.Form.Keys)
                {
                    valores.Add(item.ToString(), Request[item.ToString()]);
                }

                _pedidoAppService.FinalizarAvaliacao(AvaliacaoPedidoAdapter.ToAvaliaPedido(valores));

                return(Json(new { Status = HttpStatusCode.OK, Codigo = 1, Mensagem = "OK" }, JsonRequestBehavior.AllowGet));
            }
            catch (BusinessException ex)
            {
                return(Json(new { Status = HttpStatusCode.BadRequest, Codigo = 0, Mensagem = ex.Message }, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType).Error(ex);
                return(Json(new { c = HttpStatusCode.InternalServerError, Codigo = 0, Mensagem = ex.Message }, JsonRequestBehavior.AllowGet));
            }
        }