public async Task <ActionResult> Edit([Bind(Include = "ID,NOME,EMAIL,CPF,SENHA,TIPO_ACESSO,FOTO,DATA_CRIACAO,DATA_MODIFICACAO,ATIVO")] USUARIOS uSUARIOS, string ENDERECO, string TELEFONE, string PLANO, string NUMERO_PLANO, string CRM, string[] CLINICA, string[] ESPECIALIDADE, string[] HORARIO) { uSUARIOS.DATA_MODIFICACAO = DateTime.Now; uSUARIOS.EMAIL = uSUARIOS.EMAIL.ToLower(); uSUARIOS.NOME = uSUARIOS.NOME.ToUpper(); if (ModelState.IsValid) { db.Entry(uSUARIOS).State = EntityState.Modified; await db.SaveChangesAsync(); if (uSUARIOS.TIPO_ACESSO == 3) { var pac = db.PACIENTES.FirstOrDefault(x => x.ID_USUARIO == uSUARIOS.ID); var pACIENTES = db.PACIENTES.Find(uSUARIOS.PACIENTES.ToList()[0].ID); pACIENTES.ENDERECO = ENDERECO; pACIENTES.NUMERO_PLANO = NUMERO_PLANO; pACIENTES.TELEFONE = TELEFONE; pACIENTES.ID_PLANO_SAUDE = int.Parse(PLANO); await db.SaveChangesAsync(); } if (uSUARIOS.TIPO_ACESSO == 2) { var med = db.MEDICOS.FirstOrDefault(x => x.ID_USUARIO == uSUARIOS.ID); var mEDICO = db.MEDICOS.Find(uSUARIOS.MEDICOS.ToList()[0].ID); mEDICO.CRM = CRM; db.MEDICO_CLINICA.RemoveRange(med.MEDICO_CLINICA); db.MEDICO_ESPECIALIDADE.RemoveRange(med.MEDICO_ESPECIALIDADE); db.MEDICO_HORARIO_ATENDIMENTO.RemoveRange(med.MEDICO_HORARIO_ATENDIMENTO); foreach (var item in CLINICA) { var mEDICO_CLINICA = new MEDICO_CLINICA(); mEDICO_CLINICA.ID_CLINICA = int.Parse(item); mEDICO_CLINICA.ID_MEDICO = uSUARIOS.MEDICOS.ToList()[0].ID; db.MEDICO_CLINICA.Add(mEDICO_CLINICA); } foreach (var item in ESPECIALIDADE) { var mEDICO_ESPECIALIDADE = new MEDICO_ESPECIALIDADE(); mEDICO_ESPECIALIDADE.ID_ESPECIALIDADE = int.Parse(item); mEDICO_ESPECIALIDADE.ID_MEDICO = uSUARIOS.MEDICOS.ToList()[0].ID; db.MEDICO_ESPECIALIDADE.Add(mEDICO_ESPECIALIDADE); } foreach (var item in HORARIO) { var mEDICO_HORARIO = new MEDICO_HORARIO_ATENDIMENTO(); mEDICO_HORARIO.ID_HORARIO_ATENDIMENTO = int.Parse(item); mEDICO_HORARIO.ID_MEDICO = uSUARIOS.MEDICOS.ToList()[0].ID; db.MEDICO_HORARIO_ATENDIMENTO.Add(mEDICO_HORARIO); } await db.SaveChangesAsync(); } return(RedirectToAction("Index", new { mensagem = "Registro editado com sucesso!" })); } return(View(uSUARIOS)); }
public async Task <ActionResult> Create([Bind(Include = "ID,NOME,EMAIL,CPF,SENHA,TIPO_ACESSO,FOTO")] USUARIOS uSUARIOS, string ENDERECO, string TELEFONE, string PLANO, string NUMERO_PLANO, string CRM, string CLINICA, string ESPECIALIDADE, string HORARIO) { try { uSUARIOS.DATA_CRIACAO = DateTime.Now; uSUARIOS.DATA_MODIFICACAO = DateTime.Now; uSUARIOS.ATIVO = true; uSUARIOS.SENHA = new Crypto.Crypto().Encrypt("123"); uSUARIOS.FOTO = ImageToByteArray(Resources.user); uSUARIOS.EMAIL = uSUARIOS.EMAIL.ToLower(); uSUARIOS.NOME = uSUARIOS.NOME.ToUpper(); if (ModelState.IsValid) { db.USUARIOS.Add(uSUARIOS); await db.SaveChangesAsync(); if (uSUARIOS.TIPO_ACESSO == 3) { PACIENTES pACIENTES = new PACIENTES(); pACIENTES.ENDERECO = ENDERECO; pACIENTES.ID_USUARIO = uSUARIOS.ID; pACIENTES.NUMERO_PLANO = NUMERO_PLANO; pACIENTES.TELEFONE = TELEFONE; pACIENTES.ID_PLANO_SAUDE = int.Parse(PLANO); db.PACIENTES.Add(pACIENTES); await db.SaveChangesAsync(); } if (uSUARIOS.TIPO_ACESSO == 2) { MEDICOS mEDICOS = new MEDICOS(); mEDICOS.CRM = CRM; mEDICOS.ID_USUARIO = uSUARIOS.ID; db.MEDICOS.Add(mEDICOS); await db.SaveChangesAsync(); MEDICO_CLINICA mc = new MEDICO_CLINICA(); mc.ID_CLINICA = int.Parse(CLINICA); mc.ID_MEDICO = mEDICOS.ID; db.MEDICO_CLINICA.Add(mc); MEDICO_ESPECIALIDADE mc2 = new MEDICO_ESPECIALIDADE(); mc2.ID_ESPECIALIDADE = int.Parse(ESPECIALIDADE); mc2.ID_MEDICO = mEDICOS.ID; db.MEDICO_ESPECIALIDADE.Add(mc2); MEDICO_HORARIO_ATENDIMENTO mc3 = new MEDICO_HORARIO_ATENDIMENTO(); mc3.ID_HORARIO_ATENDIMENTO = int.Parse(HORARIO); mc3.ID_MEDICO = mEDICOS.ID; db.MEDICO_HORARIO_ATENDIMENTO.Add(mc3); await db.SaveChangesAsync(); } return(RedirectToAction("Index", "USUARIOS", new { mensagem = "Registro criado com sucesso!" })); } } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; } return(View(uSUARIOS)); }