public Auth EditChamado(AnotacaoAPIModel value)
        {
            Auth auth = new Auth()
            {
                Code     = 0,
                Mensagem = "Sucesso!"
            };

            ChamadoViewModel chamadoViewModel = (ChamadoViewModel)ValidarToken(value);

            if (chamadoViewModel.mensagem.Code != 0)
            {
                Auth cvm = new Auth()
                {
                    Mensagem = "Acesso Negado.",
                    Code     = 202
                };
                return(cvm);
            }


            ChamadoViewModel result = null;

            try
            {
                int?FilaAtendimentoID = null;
                if (value.FilaAtendimentoAtualID != value.FilaAtendimentoID.ToString())
                {
                    FilaAtendimentoID = value.FilaAtendimentoID;
                }

                #region Incluir Anotação
                result = new ChamadoViewModel()
                {
                    ChamadoID                = value.ChamadoID,
                    uri                      = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString(),
                    ChamadoAnexoViewModel    = new ChamadoAnexoViewModel(),
                    ChamadoFilaViewModel     = new ChamadoFilaViewModel(),
                    ChamadoAnotacaoViewModel = new ChamadoAnotacaoViewModel()
                    {
                        ChamadoID = value.ChamadoID,
                        Mensagem  = value.Anotacoes.FirstOrDefault().Mensagem
                    },
                    ChamadoStatusID          = value.ChamadoStatusID,
                    FilaAtendimentoID        = FilaAtendimentoID,
                    DescricaoFilaAtendimento = value.DescricaoFilaAtendimento,
                    DescricaoChamadoStatus   = value.DescricaoChamadoStatus,
                    DataRedirecionamento     = Funcoes.Brasilia(),
                    Rotas    = new List <ChamadoFilaViewModel>(),
                    Anexos   = new List <ChamadoAnexoViewModel>(),
                    mensagem = new Validate()
                    {
                        Code = 0
                    },
                    sessionId = value.sessionId,
                };
                if (value.FilaAtendimentoAtualID == value.FilaAtendimentoID.ToString())
                {
                    result.IsUsuarioFila = false;
                }
                else
                {
                    result.IsUsuarioFila = true;
                }

                result.ChamadoAnotacaoViewModel.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString();
                FactoryLocalhost <ChamadoAnotacaoViewModel, ApplicationContext> factory = new FactoryLocalhost <ChamadoAnotacaoViewModel, ApplicationContext>();
                factory.Execute(new ChamadoAnotacaoBI(), result, value.sessionId);
                if (factory.Mensagem.Code > 0)
                {
                    throw new App_DominioException(factory.Mensagem);
                }

                #endregion

                #region Emitir Alerta e enviar o e-mail para a fila destinatária
                FactoryLocalhost <AlertaRepository, ApplicationContext> factoryAlert = new FactoryLocalhost <AlertaRepository, ApplicationContext>();
                AlertaBI         bi = new AlertaBI();
                AlertaRepository a  = factoryAlert.Execute(new AlertaBI(), result);
                if (a.mensagem.Code > 0)
                {
                    throw new Exception(a.mensagem.Message);
                }
                #endregion

                #region Recupera o ChamadoViewModel
                FactoryLocalhost <ChamadoViewModel, ApplicationContext> factoryChamado = new FactoryLocalhost <ChamadoViewModel, ApplicationContext>();
                result = factoryChamado.Execute(new ChamadoEditBI(), result);
                #endregion
            }
            catch (App_DominioException ex)
            {
                ModelState.AddModelError("", ex.Result.MessageBase); // mensagem amigável ao usuário
            }
            catch (Exception ex)
            {
                App_DominioException.saveError(ex, GetType().FullName);
            }

            return(auth);
        }
Exemple #2
0
        public ActionResult EditAnotacao(
            int ChamadoID, string Mensagem,
            string FilaAtendimentoAtualID, string _FilaAtendimentoID, string DescricaoFilaAtendimento,
            string IsCondomino, string _ChamadoStatusID, string DescricaoChamadoStatus)
        {
            if (ModelState.IsValid)
            {
                if (ViewBag.ValidateRequest)
                {
                    ChamadoViewModel result = null;
                    try
                    {
                        int?FilaAtendimentoID = null;
                        if (FilaAtendimentoAtualID != _FilaAtendimentoID)
                        {
                            FilaAtendimentoID = int.Parse(_FilaAtendimentoID);
                        }

                        #region Incluir Anotação
                        result = new ChamadoViewModel()
                        {
                            ChamadoID                = ChamadoID,
                            uri                      = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString(),
                            ChamadoAnexoViewModel    = new ChamadoAnexoViewModel(),
                            ChamadoFilaViewModel     = new ChamadoFilaViewModel(),
                            ChamadoAnotacaoViewModel = new ChamadoAnotacaoViewModel()
                            {
                                ChamadoID = ChamadoID,
                                Mensagem  = Mensagem
                            },
                            ChamadoStatusID          = _ChamadoStatusID == null || _ChamadoStatusID == "" ? 0 : int.Parse(_ChamadoStatusID),
                            FilaAtendimentoID        = FilaAtendimentoID,
                            DescricaoFilaAtendimento = DescricaoFilaAtendimento,
                            DescricaoChamadoStatus   = DescricaoChamadoStatus,
                            DataRedirecionamento     = Funcoes.Brasilia(),
                            Rotas    = new List <ChamadoFilaViewModel>(),
                            Anexos   = new List <ChamadoAnexoViewModel>(),
                            mensagem = new Validate()
                            {
                                Code = 0
                            }
                        };
                        if (FilaAtendimentoAtualID == _FilaAtendimentoID)
                        {
                            result.IsUsuarioFila = false;
                        }
                        else
                        {
                            result.IsUsuarioFila = true;
                        }

                        result.ChamadoAnotacaoViewModel.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString();
                        FactoryLocalhost <ChamadoAnotacaoViewModel, ApplicationContext> factory = new FactoryLocalhost <ChamadoAnotacaoViewModel, ApplicationContext>();
                        result.Anotacoes = factory.Execute(new ChamadoAnotacaoBI(), result, ChamadoID);
                        if (factory.Mensagem.Code > 0)
                        {
                            throw new App_DominioException(factory.Mensagem);
                        }

                        ChamadoAnotacaoModel     model = new ChamadoAnotacaoModel();
                        ChamadoAnotacaoViewModel ChamadoAnotacaoViewModel = model.CreateRepository(Request);
                        result.ChamadoAnotacaoViewModel.ChamadoID = ChamadoID;
                        #endregion

                        #region Emitir Alerta e enviar o e-mail para a fila destinatária
                        FactoryLocalhost <AlertaRepository, ApplicationContext> factoryAlert = new FactoryLocalhost <AlertaRepository, ApplicationContext>();
                        AlertaBI         bi = new AlertaBI();
                        AlertaRepository a  = factoryAlert.Execute(new AlertaBI(), result);
                        if (a.mensagem.Code > 0)
                        {
                            throw new Exception(a.mensagem.Message);
                        }
                        #endregion

                        #region Recupera o ChamadoViewModel
                        FactoryLocalhost <ChamadoViewModel, ApplicationContext> factoryChamado = new FactoryLocalhost <ChamadoViewModel, ApplicationContext>();
                        result = factoryChamado.Execute(new ChamadoEditBI(), result);
                        #endregion

                        //if (FilaAtendimentoAtualID != _FilaAtendimentoID)
                        //    result.IsUsuarioFila = false;
                        //else
                        //    result.IsUsuarioFila = true;

                        //result.IsCondomino = IsCondomino == "True" ? true : false;

                        Success("Registro processado com sucesso");
                    }
                    catch (App_DominioException ex)
                    {
                        ModelState.AddModelError("", ex.Result.MessageBase); // mensagem amigável ao usuário
                        Error(ex.Result.Message);                            // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela
                    }
                    catch (Exception ex)
                    {
                        App_DominioException.saveError(ex, GetType().FullName);
                        ModelState.AddModelError("", MensagemPadrao.Message(17).ToString()); // mensagem amigável ao usuário
                        Error(ex.Message);                                                   // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela
                    }

                    return(View("_Anotacao", result));
                }
                else
                {
                    return(View());
                }
            }
            else
            {
                //CondominoEditViewModel result = new CondominoEditViewModel()
                //{
                //    UnidadeViewModel = new UnidadeViewModel()
                //    {
                //        EdificacaoID = VeiculoViewModel.EdificacaoID,
                //        UnidadeID = VeiculoViewModel.UnidadeID,
                //        CondominioID = VeiculoViewModel.CondominioID
                //    },
                //    CondominoPFViewModel = new CondominoPFViewModel()
                //    {
                //        CondominoID = VeiculoViewModel.CondominoID
                //    },
                //    VeiculoViewModel = VeiculoViewModel
                //};

                //Factory<CondominoEditViewModel, ApplicationContext> factory = new Factory<CondominoEditViewModel, ApplicationContext>();
                //CondominoEditViewModel obj = factory.Execute(new EditarCondominoBI(), result);
                //result.Veiculos = obj.Veiculos;

                //Error("Erro de preenhcimento em campos");

                return(View("_Anotacao", result));
            }
        }