コード例 #1
0
 public ActionResult Delete(int id, PlanoSaude planosaude)
 {
     ViewBag.Title = tituloCadastro;
     try
     {
         using (var db = new ClinicaEntities())
         {
             db.Entry(planosaude).State = System.Data.EntityState.Deleted;
             db.SaveChanges();
         }
         return RedirectToAction("Index");
     }
     catch (Exception e)
     {
         ViewBag.Error = e;
         return View("Error");
     }
 }
コード例 #2
0
        public JsonResult Create(Funcionario funcionario, String UserName, String Password, String email)
        {
            try
            {
                ModelState.Remove("UserId");
                if (ModelState.IsValid)
                {

                    // Tentativa de registrar o usuário
                    if (UserName != null)
                    {
                        /* Criamos a Roles para a função do usuario( caso ela já não exista) */

                        String strRole = Enum.GetValues(typeof(funcao)).GetValue(funcionario.funcao - 1).ToString();
                        if (!Roles.RoleExists(strRole))
                        {
                            Roles.CreateRole(strRole);
                        }

                        MembershipUser User = Membership.GetUser(UserName);
                        /* Se o usuario não existe, eu crio ele e vinculo a role. */
                        if (User == null)
                        {
                            MembershipCreateStatus createStatus;
                            MembershipUser membershipUserCreated = Membership.CreateUser(UserName, Password, email, null, null, true, null, out createStatus);

                            if (createStatus == MembershipCreateStatus.Success)
                            {
                                if (!Roles.IsUserInRole(UserName, strRole))
                                {
                                    Roles.AddUserToRole(UserName, strRole);
                                }
                                /*FormsAuthentication.SetAuthCookie(UserName, false );*/
                                funcionario.UserId = Guid.Parse(membershipUserCreated.ProviderUserKey.ToString());
                            }
                            else
                            {
                                return Json(new { Success = 0, ex = new Exception(AccountController.ErrorCodeToString(createStatus)).Message.ToString() });
                            }
                        }
                        else
                        {
                            MembershipUser currentUser = Membership.GetUser(UserName);

                            Array funcoes = Enum.GetValues(typeof(funcao));

                            for (int i = 0; i < funcoes.Length; i++)
                            {
                                if (Roles.IsUserInRole(UserName, funcoes.GetValue(i).ToString()))
                                {
                                    Roles.RemoveUserFromRole(UserName, funcoes.GetValue(i).ToString());
                                }
                            }

                            if (!Roles.IsUserInRole(UserName, strRole))
                            {
                                Roles.AddUserToRole(UserName, strRole);
                            }

                        }
                    }

                    using (var db = new ClinicaEntities())
                    {

                        // Se o código do Funcionario é maior que zero, entendemos que existe registro para tal.
                        // Então nós "atualizaremos" ele.
                        if (funcionario.FuncionarioId > 0)
                        {
                            #region Tratamento dos Telefones
                            var selFuncionarioTelefone = db.FuncionarioTelefone.Where(p => p.FuncionarioId == funcionario.FuncionarioId);

                            foreach (FuncionarioTelefone pt in selFuncionarioTelefone)
                            {
                                db.FuncionarioTelefone.Remove(pt);
                            }

                            foreach (FuncionarioTelefone pt in funcionario.FuncionarioTelefone)
                            {
                                db.FuncionarioTelefone.Add(pt);
                            }
                            #endregion

                            /* O funcionario somente possuirá funcionalidades quando for "Médico". */

                            var selFuncionarioEspecialidade = db.FuncionarioEspecialidade.Where(p => p.FuncionarioId == funcionario.FuncionarioId);

                            foreach (FuncionarioEspecialidade pt in selFuncionarioEspecialidade)
                            {
                                db.FuncionarioEspecialidade.Remove(pt);
                            }

                            if (funcionario.funcao == 3)
                            {
                                #region Tratamento das Especialidades
                                foreach (FuncionarioEspecialidade pt in funcionario.FuncionarioEspecialidade)
                                {

                                    db.FuncionarioEspecialidade.Add(pt);
                                }

                                #endregion
                            }
                            else
                            {
                                funcionario.FuncionarioEspecialidade = null;
                            }
                            db.Entry(funcionario).State = EntityState.Modified;

                        }
                        //Perform Save
                        else
                        {
                            db.Funcionario.Add(funcionario);
                        }

                        db.SaveChanges();

                    }

                    return Json(new { Success = 1, SalesID = funcionario.FuncionarioId, ex = "" });
                }
                else
                {
                    ValidateModel(funcionario);
                }
            }
            catch (Exception ex)
            {

                if (ex.InnerException != null)
                {
                    return Json(new { Success = 0, ex = ex.InnerException.ToString() });
                }
                else
                {
                    return Json(new { Success = 0, ex = ex.Message.ToString() });
                }
            }
            return Json(new { Success = 0, ex = new Exception("Unable to save").Message.ToString() });
        }
コード例 #3
0
 private static void CarregarAssociacoes(ClinicaEntities db, Funcionario func)
 {
     db.Entry(func).Collection("FuncionarioTelefone").Load();
     db.Entry(func).Collection("FuncionarioEspecialidade").Load();
     db.Entry(func).Reference("aspnet_Users").Load();
     db.Entry(func.aspnet_Users).Reference("aspnet_Membership").Load();
 }
コード例 #4
0
        public ActionResult Edit(int id, Funcionario funcionario)
        {
            ViewBag.Title = tituloCadastro;
            try
            {
                ClinicaEntities db = new ClinicaEntities();
                try
                {
                    db.Entry(funcionario).State = System.Data.EntityState.Modified;
                    db.SaveChanges();
                    return RedirectToAction("Index");
                }
                finally
                {
                    db.Dispose();
                }

            }
            catch (Exception e)
            {
                ViewBag.Error = e;
                return View("Error");
            }
        }
コード例 #5
0
 public ActionResult RealizarConsulta(int id, Consulta consulta)
 {
     ViewBag.Title = tituloCadastro;
     try
     {
         using (var db = new ClinicaEntities())
         {
             consulta.Status = (int)Status.Realizada;
             db.Entry(consulta).State = System.Data.EntityState.Modified;
             db.SaveChanges();
             return RedirectToAction("Index");
         }
     }
     catch (Exception e)
     {
         ViewBag.Error = e;
         return View("Error");
     }
 }
コード例 #6
0
        public ActionResult DesmarcarConsulta(int id, Consulta consulta)
        {
            ViewBag.Title = tituloCadastro;
            try
            {
                using (var db = new ClinicaEntities())
                {

                    /* Se for desmarcada antes da Data prevista a Consulta será excluída. */
                    if (consulta.Data >= DateTime.Now)
                    {
                        return View("Delete", db.Consulta.Find(consulta.ConsultaId));

                    }
                    /* Caso contrario será marcada como não comparecimento */
                    else
                    {
                        consulta.Status = (int)Status.Nao_Comparecido;
                        db.Entry(consulta).State = System.Data.EntityState.Modified;
                        db.SaveChanges();
                    }

                    return RedirectToAction("Index");
                }
            }
            catch (Exception e)
            {
                ViewBag.Error = e;
                return View("Error");
            }
        }
コード例 #7
0
        public JsonResult Create(Paciente paciente)
        {
            try
            {
                if (ModelState.IsValid)
                {

                    if (paciente.PacienteTelefone.Count == 0)
                    {
                        return Json(new { Success = 0, ex = "O paciente deve possuir ao menos um telefone cadastrado!" });
                    }

                    using (var db = new ClinicaEntities())
                    {
                        // Se o código do paciente é maior que zero, entendemos que existe registro para tal.
                        // Então nós "atualizaremos" ele.
                        if (paciente.PacienteId > 0)
                        {

                            var selPacienteTelefone = db.PacienteTelefone.Where(p => p.PacienteId == paciente.PacienteId);

                            foreach (PacienteTelefone pt in selPacienteTelefone)
                            {
                                db.PacienteTelefone.Remove(pt);
                            }

                            foreach (PacienteTelefone pt in paciente.PacienteTelefone)
                            {
                                db.PacienteTelefone.Add(pt);
                            }

                            db.Entry(paciente).State = EntityState.Modified;

                        }
                        //Perform Save
                        else
                        {
                            db.Paciente.Add(paciente);
                        }

                        db.SaveChanges();

                    }

                    return Json(new { Success = 1, SalesID = paciente.PacienteId, ex = "" });
                }
                else
                {
                    ValidateModel(paciente);
                }
            }
            catch (Exception ex)
            {

                if (ex.InnerException != null)
                {
                    return Json(new { Success = 0, ex = ex.InnerException.ToString() });
                }
                else
                {
                    return Json(new { Success = 0, ex = ex.Message.ToString() });
                }
            }

            return Json(new { Success = 0, ex = new Exception("Unable to save").Message.ToString() });
        }
コード例 #8
0
 private static void CarregarAssociacoes(ClinicaEntities db, Paciente paciente)
 {
     db.Entry(paciente).Collection("PacienteTelefone").Load();
 }
コード例 #9
0
 public ActionResult Delete(int id, Paciente paciente)
 {
     ViewBag.Title = tituloCadastro;
     try
     {
         using (var db = new ClinicaEntities())
         {
             db.Entry(paciente).State = System.Data.EntityState.Deleted;
             db.SaveChanges();
         }
         return RedirectToAction("Index");
     }
     catch (Exception e)
     {
         /*ViewBag.Error = e;*/
         TempData["Error"] = e;
         return RedirectToAction("Error", "Error");
         /*return View("Error");*/
     }
 }