public FilaAtendimentoUsuarioViewModel Run(Repository value)
        {
            FilaAtendimentoUsuarioViewModel r      = (FilaAtendimentoUsuarioViewModel)value;
            FilaAtendimentoUsuarioViewModel result = new FilaAtendimentoUsuarioViewModel()
            {
                uri               = r.uri,
                empresaId         = sessaoCorrente.empresaId,
                FilaAtendimentoID = r.FilaAtendimentoID,
                UsuarioID         = r.UsuarioID,
                Situacao          = r.Situacao,
                mensagem          = new Validate()
                {
                    Code = 0, Message = "Registro processado com sucesso"
                }
            };

            try
            {
                int _empresaId = SessaoLocal.empresaId;

                FilaAtendimentoUsuarioModel FilaAtendimentoUsuarioModel = new FilaAtendimentoUsuarioModel(this.db, this.seguranca_db);

                if (Operacao == "I") // Incluir credenciado
                {
                    #region Incluir o Usuário na Fila
                    result = FilaAtendimentoUsuarioModel.Insert(result);
                    #endregion
                }
                else if (Operacao == "A") // Alterar credenciado
                {
                    #region Alterar situação do usuário na fila
                    result = FilaAtendimentoUsuarioModel.Update(result);
                    #endregion
                }
                else // Excluir credenciado
                {
                    #region Excluir Usuário da Fila
                    result = FilaAtendimentoUsuarioModel.Delete(result);
                    #endregion
                }

                if (result.mensagem.Code > 0)
                {
                    throw new App_DominioException(result.mensagem);
                }

                db.SaveChanges();

                result.mensagem.Code = -1; // Tem que devolver -1 porque na Superclasse, se devolver zero, vai executar novamente o SaveChanges.
            }
            catch (ArgumentException ex)
            {
                result.mensagem = new Validate()
                {
                    Code = 997, Message = MensagemPadrao.Message(997).ToString(), MessageBase = ex.Message
                };
            }
            catch (App_DominioException ex)
            {
                result.mensagem = ex.Result;

                if (ex.InnerException != null)
                {
                    result.mensagem.MessageBase = new App_DominioException(ex.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                }
                else
                {
                    result.mensagem.MessageBase = new App_DominioException(ex.Result.Message, GetType().FullName).Message;
                }
            }
            catch (DbUpdateException ex)
            {
                result.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message;
                if (result.mensagem.MessageBase.ToUpper().Contains("REFERENCE"))
                {
                    if (result.mensagem.MessageBase.ToUpper().Contains("DELETE"))
                    {
                        result.mensagem.Code        = 16;
                        result.mensagem.Message     = MensagemPadrao.Message(16).ToString();
                        result.mensagem.MessageType = MsgType.ERROR;
                    }
                    else
                    {
                        result.mensagem.Code        = 28;
                        result.mensagem.Message     = MensagemPadrao.Message(28).ToString();
                        result.mensagem.MessageType = MsgType.ERROR;
                    }
                }
                else if (result.mensagem.MessageBase.ToUpper().Contains("PRIMARY"))
                {
                    result.mensagem.Code        = 37;
                    result.mensagem.Message     = MensagemPadrao.Message(37).ToString();
                    result.mensagem.MessageType = MsgType.WARNING;
                }
                else if (result.mensagem.MessageBase.ToUpper().Contains("UNIQUE KEY"))
                {
                    result.mensagem.Code        = 54;
                    result.mensagem.Message     = MensagemPadrao.Message(54).ToString();
                    result.mensagem.MessageType = MsgType.WARNING;
                }
                else
                {
                    result.mensagem.Code        = 44;
                    result.mensagem.Message     = MensagemPadrao.Message(44).ToString();
                    result.mensagem.MessageType = MsgType.ERROR;
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                result.mensagem = new Validate()
                {
                    Code = 42, Message = MensagemPadrao.Message(42).ToString(), MessageBase = ex.EntityValidationErrors.Select(m => m.ValidationErrors.First().ErrorMessage).First()
                };
            }
            catch (Exception ex)
            {
                result.mensagem.Code        = 17;
                result.mensagem.Message     = MensagemPadrao.Message(17).ToString();
                result.mensagem.MessageBase = new App_DominioException(ex.InnerException.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                result.mensagem.MessageType = MsgType.ERROR;
            }
            return(result);
        }
        public FilaAtendimentoUsuarioEditViewModel Run(Repository value)
        {
            FilaAtendimentoUsuarioEditViewModel r      = (FilaAtendimentoUsuarioEditViewModel)value;
            FilaAtendimentoUsuarioEditViewModel result = new FilaAtendimentoUsuarioEditViewModel()
            {
                mensagem = new Validate()
                {
                    Code = 0, Message = "Registro processado com sucesso"
                }
            };

            try
            {
                int _empresaId = sessaoCorrente.empresaId;

                #region FilaAtendimentoUsuarioEditViewModel
                FilaAtendimentoUsuarioModel Model = new FilaAtendimentoUsuarioModel(this.db, this.seguranca_db);
                result.FilaAtendimentoUsuarioViewModel = Model.CreateRepository();
                result.FilaAtendimentoUsuarioViewModel.FilaAtendimentoID = r.FilaAtendimentoUsuarioViewModel.FilaAtendimentoID;
                result.FilaAtendimentoUsuarioViewModel.DescricaoFila     = db.FilaAtendimentos.Find(r.FilaAtendimentoUsuarioViewModel.FilaAtendimentoID).Descricao;

                ListViewFilaAtendimentoUsuario list = new ListViewFilaAtendimentoUsuario(this.db, this.seguranca_db);
                result.FilaAtendimentoUsuarios = list.Bind(0, 50, result.FilaAtendimentoUsuarioViewModel.FilaAtendimentoID);
                #endregion
            }
            catch (ArgumentException ex)
            {
                result.FilaAtendimentoUsuarioViewModel.mensagem = new Validate()
                {
                    Code = 999, Message = MensagemPadrao.Message(999).ToString(), MessageBase = ex.Message
                };
            }
            catch (App_DominioException ex)
            {
                result.FilaAtendimentoUsuarioViewModel.mensagem = ex.Result;

                if (ex.InnerException != null)
                {
                    result.FilaAtendimentoUsuarioViewModel.mensagem.MessageBase = new App_DominioException(ex.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                }
                else
                {
                    result.FilaAtendimentoUsuarioViewModel.mensagem.MessageBase = new App_DominioException(ex.Result.Message, GetType().FullName).Message;
                }
            }
            catch (DbUpdateException ex)
            {
                result.FilaAtendimentoUsuarioViewModel.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message;
                if (result.FilaAtendimentoUsuarioViewModel.mensagem.MessageBase.ToUpper().Contains("REFERENCE"))
                {
                    if (result.FilaAtendimentoUsuarioViewModel.mensagem.MessageBase.ToUpper().Contains("DELETE"))
                    {
                        result.FilaAtendimentoUsuarioViewModel.mensagem.Code        = 16;
                        result.FilaAtendimentoUsuarioViewModel.mensagem.Message     = MensagemPadrao.Message(16).ToString();
                        result.FilaAtendimentoUsuarioViewModel.mensagem.MessageType = MsgType.ERROR;
                    }
                    else
                    {
                        result.FilaAtendimentoUsuarioViewModel.mensagem.Code        = 28;
                        result.FilaAtendimentoUsuarioViewModel.mensagem.Message     = MensagemPadrao.Message(28).ToString();
                        result.FilaAtendimentoUsuarioViewModel.mensagem.MessageType = MsgType.ERROR;
                    }
                }
                else if (result.FilaAtendimentoUsuarioViewModel.mensagem.MessageBase.ToUpper().Contains("PRIMARY"))
                {
                    result.FilaAtendimentoUsuarioViewModel.mensagem.Code        = 37;
                    result.FilaAtendimentoUsuarioViewModel.mensagem.Message     = MensagemPadrao.Message(37).ToString();
                    result.FilaAtendimentoUsuarioViewModel.mensagem.MessageType = MsgType.WARNING;
                }
                else if (result.FilaAtendimentoUsuarioViewModel.mensagem.MessageBase.ToUpper().Contains("UNIQUE KEY"))
                {
                    result.FilaAtendimentoUsuarioViewModel.mensagem.Code        = 54;
                    result.FilaAtendimentoUsuarioViewModel.mensagem.Message     = MensagemPadrao.Message(54).ToString();
                    result.FilaAtendimentoUsuarioViewModel.mensagem.MessageType = MsgType.WARNING;
                }
                else
                {
                    result.FilaAtendimentoUsuarioViewModel.mensagem.Code        = 44;
                    result.FilaAtendimentoUsuarioViewModel.mensagem.Message     = MensagemPadrao.Message(44).ToString();
                    result.FilaAtendimentoUsuarioViewModel.mensagem.MessageType = MsgType.ERROR;
                }
            }
            catch (System.Data.Entity.Validation.DbEntityValidationException ex)
            {
                result.FilaAtendimentoUsuarioViewModel.mensagem = new Validate()
                {
                    Code = 42, Message = MensagemPadrao.Message(42).ToString(), MessageBase = ex.EntityValidationErrors.Select(m => m.ValidationErrors.First().ErrorMessage).First()
                };
            }
            catch (Exception ex)
            {
                result.FilaAtendimentoUsuarioViewModel.mensagem.Code        = 17;
                result.FilaAtendimentoUsuarioViewModel.mensagem.Message     = MensagemPadrao.Message(17).ToString();
                result.FilaAtendimentoUsuarioViewModel.mensagem.MessageBase = new App_DominioException(ex.InnerException.InnerException.Message ?? ex.Message, GetType().FullName).Message;
                result.FilaAtendimentoUsuarioViewModel.mensagem.MessageType = MsgType.ERROR;
            }
            return(result);
        }
Example #3
0
        public ActionResult EditUser(string FilaAtendimentoID, string UsuarioID, string UsuarioID_Exc, string Situacao, string Operacao)
        {
            if (ModelState.IsValid)
            {
                if (ViewBag.ValidateRequest)
                {
                    FilaAtendimentoUsuarioEditViewModel result = null;
                    try
                    {
                        #region Incluir/Editar FilaAtendimentoUsuario
                        UsuarioID = Operacao == "I" ? UsuarioID : UsuarioID_Exc;

                        result = new FilaAtendimentoUsuarioEditViewModel()
                        {
                            FilaAtendimentoUsuarioViewModel = new FilaAtendimentoUsuarioViewModel()
                            {
                                FilaAtendimentoID = int.Parse(FilaAtendimentoID),
                                UsuarioID         = int.Parse(UsuarioID),
                                Situacao          = Situacao,
                                mensagem          = new App_Dominio.Contratos.Validate()
                                {
                                    Code = 0
                                }
                            },
                            mensagem = new App_Dominio.Contratos.Validate()
                            {
                                Code = 0
                            }
                        };

                        result.FilaAtendimentoUsuarioViewModel.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString();
                        FactoryLocalhost <FilaAtendimentoUsuarioViewModel, ApplicationContext> factory = new FactoryLocalhost <FilaAtendimentoUsuarioViewModel, ApplicationContext>();
                        result.FilaAtendimentoUsuarios = factory.Execute(new FilaAtendimentoUsuarioCadastrarBI(Operacao), result.FilaAtendimentoUsuarioViewModel, int.Parse(FilaAtendimentoID));
                        if (factory.Mensagem.Code > 0)
                        {
                            throw new App_DominioException(factory.Mensagem);
                        }

                        FilaAtendimentoUsuarioModel FilaAtendimentoUsuarioModel = new FilaAtendimentoUsuarioModel();
                        result.FilaAtendimentoUsuarioViewModel = FilaAtendimentoUsuarioModel.CreateRepository(Request);
                        result.FilaAtendimentoUsuarioViewModel.FilaAtendimentoID = int.Parse(FilaAtendimentoID);
                        #endregion

                        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("_EditUser", result));
                }
                else
                {
                    return(View());
                }
            }
            else
            {
                FilaAtendimentoUsuarioEditViewModel result = new FilaAtendimentoUsuarioEditViewModel()
                {
                    FilaAtendimentoUsuarioViewModel = new FilaAtendimentoUsuarioViewModel()
                    {
                        FilaAtendimentoID = int.Parse(FilaAtendimentoID),
                        mensagem          = new App_Dominio.Contratos.Validate()
                        {
                            Code = 0
                        }
                    },
                    mensagem = new App_Dominio.Contratos.Validate()
                    {
                        Code = 0
                    }
                };

                Factory <FilaAtendimentoUsuarioEditViewModel, ApplicationContext> factory = new Factory <FilaAtendimentoUsuarioEditViewModel, ApplicationContext>();
                FilaAtendimentoUsuarioEditViewModel obj = factory.Execute(new FilaAtendimentoUsuarioBI(), result);
                result.FilaAtendimentoUsuarios = obj.FilaAtendimentoUsuarios;

                Error("Erro de preenhcimento em campos");

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