private EspecialistaViewModel GetEspecialistaViewModel(Especialista x) { var myespeciality = db.EspecialistasEspecialidades.Where(y => y.EspecialistaId == x.Id).FirstOrDefault(); var especialistaViewModel = new EspecialistaViewModel(); especialistaViewModel.Id = x.Id; especialistaViewModel.Nome = x.Nome; especialistaViewModel.Crm = x.Crm; especialistaViewModel.Email = x.Email; especialistaViewModel.DataNascimento = x.DataNascimento; especialistaViewModel.ConselhoUF = x.ConselhoUF; especialistaViewModel.HoraInicial = x.HoraInicial; especialistaViewModel.MinutoInicial = x.MinutoInicial; especialistaViewModel.HoraFinal = x.HoraFinal; especialistaViewModel.MinutoFinal = x.MinutoFinal; if (myespeciality != null) { var especiality = db.Especialidades.Where(y => y.Id == myespeciality.EspecialidadeId).FirstOrDefault(); if (especiality != null) { especialistaViewModel.Especialidade = especiality.Nome; especialistaViewModel.EspecialidadeId = especiality.Id; } } if (x.EnderecoId != -1) { var endereco = db.Enderecos.Where(y => y.Id == x.EnderecoId).FirstOrDefault(); especialistaViewModel.Bairro = endereco.Bairro; especialistaViewModel.Cidade = endereco.Cidade; especialistaViewModel.Numero = endereco.Numero; especialistaViewModel.Rua = endereco.Rua; } if (x.TelefoneId != -1) { var telefone = db.Telefones.Where(y => y.Id == x.TelefoneId).FirstOrDefault(); especialistaViewModel.Telefone = telefone.Numero; } if (x.DiasAtendimentoId != -1) { var diasAtendimento = db.DiasAtendimentos.Where(y => y.Id == x.DiasAtendimentoId).FirstOrDefault(); especialistaViewModel.AtendeSegunda = diasAtendimento.AtendeSegunda; especialistaViewModel.AtendeTerca = diasAtendimento.AtendeTerca; especialistaViewModel.AtendeQuarta = diasAtendimento.AtendeQuarta; especialistaViewModel.AtendeQuinta = diasAtendimento.AtendeQuinta; especialistaViewModel.AtendeSexta = diasAtendimento.AtendeSexta; especialistaViewModel.AtendeSabado = diasAtendimento.AtendeSabado; especialistaViewModel.AtendeDomingo = diasAtendimento.AtendeDomingo; } return(especialistaViewModel); }
// GET: EspecialistaViewModel public ActionResult Index([Form] QueryOptions queryOptions, string nome, string crm, string especialidade) { var especialistasViewModel = new List <EspecialistaViewModel>(); var especialistas = new List <Especialista>(); if (!string.IsNullOrEmpty(nome)) { especialistas = db.Especialistas.Where(x => x.Nome.ToUpper().Contains(nome.ToUpper())).ToList(); ViewBag.nome = nome; } else { especialistas = db.Especialistas.ToList(); } if (!string.IsNullOrEmpty(crm)) { especialistas = especialistas.Where(x => x.Crm.Equals(crm)).ToList(); ViewBag.crm = crm; } if (!string.IsNullOrEmpty(especialidade)) { var lvespecialistas = new List <Especialista>(); especialistas.ForEach(x => { var lvEspecialidadeEspecialista = db.EspecialistasEspecialidades.Where(y => y.EspecialistaId == x.Id) .Include(y => y.Especialidade).FirstOrDefault(); if (lvEspecialidadeEspecialista != null && lvEspecialidadeEspecialista.Especialidade.Nome.ToUpper().Contains(especialidade.ToUpper())) { lvespecialistas.Add(x); } }); especialistas = lvespecialistas; ViewBag.especialidade = especialidade; } queryOptions.SortOrder = SortOrder.DESC; var start = (queryOptions.CurrentPage - 1) * queryOptions.PageSize; queryOptions.TotalPages = (int)Math.Ceiling((double)especialistas.Count() / queryOptions.PageSize); ViewBag.QueryOptions = queryOptions; especialistas = especialistas.OrderBy(queryOptions.Sort).Skip(start).Take(queryOptions.PageSize).ToList(); especialistas.ForEach(x => { EspecialistaViewModel especialistaViewModel = GetEspecialistaViewModel(x); especialistasViewModel.Add(especialistaViewModel); }); return(View(especialistasViewModel)); }
// GET: EspecialistaViewModel/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } EspecialistaViewModel especialistaViewModel = GetEspecialistaViewModel(db.Especialistas.Find(id)); if (especialistaViewModel == null) { return(HttpNotFound()); } return(View(especialistaViewModel)); }
// GET: EspecialistaViewModel/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } EspecialistaViewModel especialistaViewModel = GetEspecialistaViewModel(db.Especialistas.Find(id)); if (especialistaViewModel == null) { return(HttpNotFound()); } ViewBag.ListaUF = GetListUF(); ViewBag.Hora = GetListHour(); ViewBag.Minuto = GetListMinute(); ViewBag.Especialidades = db.Especialidades.ToList(); return(View(especialistaViewModel)); }
// GET: EspecialistaViewModel/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var especialista = db.Especialistas.Where(x => x.Id == id).Include(x => x.Endereco).Include(x => x.Telefone).FirstOrDefault(); if (especialista == null) { return(HttpNotFound()); } EspecialistaViewModel especialistaViewModel = GetEspecialistaViewModel(especialista); if (especialistaViewModel == null) { return(HttpNotFound()); } return(View(especialistaViewModel)); }
public ActionResult Export([Form] QueryOptions queryOptions, string nome, string crm, string especialidade) { try { var especialistasViewModel = new List <EspecialistaViewModel>(); var especialistas = new List <Especialista>(); if (!string.IsNullOrEmpty(nome)) { especialistas = db.Especialistas.Where(x => x.Nome.Contains(nome)).ToList(); ViewBag.nome = nome; } else { especialistas = db.Especialistas.ToList(); } if (!string.IsNullOrEmpty(crm)) { especialistas = especialistas.Where(x => x.Crm.Equals(crm)).ToList(); ViewBag.crm = crm; } if (!string.IsNullOrEmpty(especialidade)) { var lvespecialistas = new List <Especialista>(); especialistas.ForEach(x => { var lvEspecialidade = db.EspecialistasEspecialidades.Where(y => y.EspecialistaId == x.Id) .Include(y => y.Especialidade).FirstOrDefault(); if (lvEspecialidade != null && lvEspecialidade.Especialidade.Nome.Contains(especialidade)) { lvespecialistas.Add(x); } }); especialistas = lvespecialistas; ViewBag.especialidade = especialidade; } queryOptions.SortOrder = SortOrder.DESC; var start = (queryOptions.CurrentPage - 1) * queryOptions.PageSize; queryOptions.TotalPages = (int)Math.Ceiling((double)especialistas.Count() / queryOptions.PageSize); ViewBag.QueryOptions = queryOptions; especialistas = especialistas.OrderBy(queryOptions.Sort).Skip(start).Take(queryOptions.PageSize).ToList(); especialistas.ForEach(x => { EspecialistaViewModel especialistaViewModel = GetEspecialistaViewModel(x); especialistasViewModel.Add(especialistaViewModel); }); DataTable dt = Utility.ExportListToDataTable(especialistas); int enderecoCell = 6; int telefoneCell = 7; int diasAtendimentoCell = 8; foreach (DataRow row in dt.Rows) { var enderecoId = Int32.Parse(row[enderecoCell].ToString()); var telefoneId = Int32.Parse(row[telefoneCell].ToString()); var diasAtendimentoId = Int32.Parse(row[diasAtendimentoCell].ToString()); var lvendereco = db.Enderecos.Where(x => x.Id == enderecoId).FirstOrDefault(); var lvtelefone = db.Telefones.Where(x => x.Id == telefoneId).FirstOrDefault(); var lvdiasAtendimento = db.DiasAtendimentos.Where(x => x.Id == diasAtendimentoId).FirstOrDefault(); row[enderecoCell] = lvendereco != null ? (lvendereco.Cidade + " " + lvendereco.Bairro + " " + lvendereco.Rua + " " + lvendereco.Numero) : ""; row[telefoneCell] = lvtelefone != null ? lvtelefone.Numero : ""; row[diasAtendimentoCell] = lvdiasAtendimento != null ? ((lvdiasAtendimento.AtendeSegunda ? "|Seg|" : "") + (lvdiasAtendimento.AtendeTerca ? "|Ter|" : "") + (lvdiasAtendimento.AtendeQuarta ? "|Qua|" : "") + (lvdiasAtendimento.AtendeQuinta ? "|Quin|" : "") + (lvdiasAtendimento.AtendeSexta ? "|Sex|" : "") + (lvdiasAtendimento.AtendeSabado ? "|Sab|" : "") + (lvdiasAtendimento.AtendeDomingo ? "|Dom|" : "")) : ""; } var gridView = new GridView(); StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); string fileName = "Export_Especialistas_" + DateTime.Now.ToString("dd.MM.yyyy") + ".xls"; gridView.DataSource = dt; gridView.DataBind(); Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=" + fileName); Response.ContentType = "application/ms-excel"; Response.Charset = ""; gridView.RenderControl(htw); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); } catch (Exception e) { DebugLog.Logar(e.Message); DebugLog.Logar(e.StackTrace); } return(Index(queryOptions, nome, crm, especialidade)); }
public ActionResult Edit([Bind(Include = "Id,Nome,Crm,ConselhoUF,EspecialidadeId,Especialidade,DataNascimento" + ",Email,Rua,Bairro,Cidade,Numero,Telefone," + "AtendeSegunda,AtendeTerca,AtendeQuarta,AtendeQuinta,AtendeSexta,AtendeSabado,AtendeDomingo," + "HoraInicial,MinutoInicial,HoraFinal,MinutoFinal")] EspecialistaViewModel especialistaViewModel) { if (ModelState.IsValid) { using (var transaction = db.Database.BeginTransaction()) { try { /* Especialista */ var especialista = db.Especialistas.Where(x => x.Id == especialistaViewModel.Id) .Include(x => x.Telefone).FirstOrDefault(); if (especialista != null) { especialista.Nome = especialistaViewModel.Nome; especialista.Crm = especialistaViewModel.Crm; especialista.Email = especialistaViewModel.Email; especialista.ConselhoUF = especialistaViewModel.ConselhoUF; especialista.DataNascimento = especialistaViewModel.DataNascimento; especialista.HoraInicial = especialistaViewModel.HoraInicial; especialista.MinutoInicial = especialistaViewModel.MinutoInicial; especialista.HoraFinal = especialistaViewModel.HoraFinal; especialista.MinutoFinal = especialistaViewModel.MinutoFinal; db.SaveChanges(); /*Dias de Atendimento*/ var diasAtendimento = db.DiasAtendimentos.Where(x => x.Id == especialista.DiasAtendimentoId).FirstOrDefault(); if (diasAtendimento != null) { diasAtendimento.AtendeSegunda = especialistaViewModel.AtendeSegunda; diasAtendimento.AtendeTerca = especialistaViewModel.AtendeTerca; diasAtendimento.AtendeQuarta = especialistaViewModel.AtendeQuarta; diasAtendimento.AtendeQuinta = especialistaViewModel.AtendeQuinta; diasAtendimento.AtendeSexta = especialistaViewModel.AtendeSexta; diasAtendimento.AtendeSabado = especialistaViewModel.AtendeSabado; diasAtendimento.AtendeDomingo = especialistaViewModel.AtendeDomingo; db.SaveChanges(); } /* Telefone */ var telefone = especialista.Telefone; if (telefone != null) { telefone.Numero = especialistaViewModel.Telefone; } /* Endereço */ var endereco = db.Enderecos.Where(x => x.Id == especialista.EnderecoId).FirstOrDefault(); if (endereco != null) { endereco.Bairro = especialistaViewModel.Bairro; endereco.Cidade = especialistaViewModel.Cidade; endereco.Rua = especialistaViewModel.Rua; endereco.Numero = especialistaViewModel.Numero; } /* EspecialistaEspecialidade */ var especialistaEspecialidade = db.EspecialistasEspecialidades.Where(x => x.EspecialistaId == especialista.Id).FirstOrDefault(); if (especialistaEspecialidade != null) { especialistaEspecialidade.EspecialistaId = especialista.Id; especialistaEspecialidade.EspecialidadeId = especialistaViewModel.EspecialidadeId; } db.SaveChanges(); transaction.Commit(); } } catch (Exception e) { transaction.Rollback(); } } return(RedirectToAction("Index")); } return(View(especialistaViewModel)); }
public ActionResult Create([Bind(Include = "Id,Nome,Crm,ConselhoUF,EspecialidadeId,Especialidade," + "DataNascimento,Email,Rua,Bairro,Cidade,Numero,Telefone," + "AtendeSegunda,AtendeTerca,AtendeQuarta,AtendeQuinta,AtendeSexta,AtendeSabado,AtendeDomingo," + "HoraInicial,MinutoInicial,HoraFinal,MinutoFinal")] EspecialistaViewModel especialistaViewModel) { if (ModelState.IsValid) { using (var transaction = db.Database.BeginTransaction()) { try { /* Telefone */ var telefone = new Telefone(); telefone.Numero = especialistaViewModel.Telefone; db.Telefones.Add(telefone); /* Endereço */ var endereco = new Endereco(); endereco.Bairro = especialistaViewModel.Bairro; endereco.Cidade = especialistaViewModel.Cidade; endereco.Rua = especialistaViewModel.Rua; endereco.Numero = especialistaViewModel.Numero; db.Enderecos.Add(endereco); db.SaveChanges(); /*Dias de Atendimento*/ var diasAtendimento = new DiasAtendimento(); diasAtendimento.AtendeSegunda = especialistaViewModel.AtendeSegunda; diasAtendimento.AtendeTerca = especialistaViewModel.AtendeTerca; diasAtendimento.AtendeQuarta = especialistaViewModel.AtendeQuarta; diasAtendimento.AtendeQuinta = especialistaViewModel.AtendeQuinta; diasAtendimento.AtendeSexta = especialistaViewModel.AtendeSexta; diasAtendimento.AtendeSabado = especialistaViewModel.AtendeSabado; diasAtendimento.AtendeDomingo = especialistaViewModel.AtendeDomingo; db.DiasAtendimentos.Add(diasAtendimento); db.SaveChanges(); /* Especialista */ var especialista = new Especialista(); especialista.Nome = especialistaViewModel.Nome; especialista.Crm = especialistaViewModel.Crm; especialista.Email = especialistaViewModel.Email; especialista.ConselhoUF = especialistaViewModel.ConselhoUF; especialista.EnderecoId = endereco.Id; especialista.TelefoneId = telefone.Id; especialista.DiasAtendimentoId = diasAtendimento.Id; especialista.DataNascimento = especialistaViewModel.DataNascimento; especialista.HoraInicial = especialistaViewModel.HoraInicial; especialista.MinutoInicial = especialistaViewModel.MinutoInicial; especialista.HoraFinal = especialistaViewModel.HoraFinal; especialista.MinutoFinal = especialistaViewModel.MinutoFinal; db.Especialistas.Add(especialista); db.SaveChanges(); /* EspecialistaEspecialidade */ var especialistaEspecialidade = new EspecialistaEspecialidade(); especialistaEspecialidade.EspecialistaId = especialista.Id; especialistaEspecialidade.EspecialidadeId = especialistaViewModel.EspecialidadeId; db.EspecialistasEspecialidades.Add(especialistaEspecialidade); db.SaveChanges(); transaction.Commit(); } catch (Exception e) { transaction.Rollback(); } } return(RedirectToAction("Index")); } return(View(especialistaViewModel)); }