Exemple #1
0
        public ActionResult Create([Bind(Include = "IdCita,NombrePac,Sexo,FechaNacimientoPac,EmailPac,MensajeCita,Imagen1,Imagen2,Imagen3,Imagen4,IdEspecialista,TelefonoPac")] Citas citas)
        {
            List<Mensaje> lstMensajes = (((List<Mensaje>)TempData["mensajes"]) == null) ? new List<Mensaje>() : (List<Mensaje>)TempData["mensajes"];

            HttpPostedFileBase imagen1 = (Request.Files.Count > 0) ? Request.Files[0] : null;
            HttpPostedFileBase imagen2 = (Request.Files.Count > 1) ? Request.Files[1] : null;
            HttpPostedFileBase imagen3 = (Request.Files.Count > 2) ? Request.Files[2] : null;
            HttpPostedFileBase imagen4 = (Request.Files.Count > 3) ? Request.Files[3] : null;
            List<ArchivoAdjunto> listado = new List<ArchivoAdjunto>();
            MemoryStream target1 = new MemoryStream();
            MemoryStream target2 = new MemoryStream();
            MemoryStream target3 = new MemoryStream();
            MemoryStream target4 = new MemoryStream();

            Especialistas especialista = db.Especialistas.Find(citas.IdEspecialista);
            if (especialista != null)
            {
                if (imagen1 != null)
                {
                    imagen1.InputStream.CopyTo(target1);

                    listado.Add(
                        new ArchivoAdjunto
                        {
                            archivo = target1,
                            tipo = imagen1.ContentType,
                            nombre = imagen1.FileName
                        }
                        );
                }
                if (imagen2 != null)
                {
                    imagen2.InputStream.CopyTo(target2);

                    listado.Add(new ArchivoAdjunto
                    {
                        archivo = target2,
                        tipo = imagen2.ContentType,
                        nombre = imagen2.FileName
                    }
                        );
                }
                if (imagen3 != null)
                {
                    imagen3.InputStream.CopyTo(target3);

                    listado.Add(new ArchivoAdjunto
                    {
                        archivo = target3,
                        tipo = imagen3.ContentType,
                        nombre = imagen3.FileName
                    }
                        );
                }
                if (imagen4 != null)
                {
                    imagen4.InputStream.CopyTo(target4);

                    listado.Add(new ArchivoAdjunto
                    {
                        archivo = target4,
                        tipo = imagen4.ContentType,
                        nombre = imagen4.FileName
                    }
                        );
                }
                
                DateTime fn=DateTime.Now;
                if(citas.FechaNacimientoPac != null)
                {
                fn=Convert.ToDateTime(citas.FechaNacimientoPac.ToString());   
                }

                int edad = DateTime.Now.Year - fn.Year;
                //Creo corrreo con clave para enviar al usuario
                StringBuilder bodyMail = new StringBuilder();
                bodyMail.AppendLine("<p><b>Nombre de paciente: </b>" + citas.NombrePac + "</p>");
                bodyMail.AppendLine("<p><b>Sexo: </b>" + citas.Sexo + "</p>");
                bodyMail.AppendLine("<p><b>Edad: </b>" + edad + "</p>");
                bodyMail.AppendLine("<p><b>Telefono: </b>" + citas.TelefonoPac + "</p>");
                bodyMail.AppendLine("<p><b>Email: </b>" + citas.EmailPac + "</p>");
                bodyMail.AppendLine("<p><b>Mensaje: </b>" + "</p>");
                bodyMail.AppendLine(citas.MensajeCita);

                string subject = "[Medenlinea] Solicitud de cita.";
                Mail mail = new Mail(especialista.EmailEsp, subject, bodyMail);

                if (mail.sendMailAttachments(listado).Result)
                {
                    if (ModelState.IsValid)
                    {
                        db.Citas.Add(citas);
                        db.SaveChanges();

                        lstMensajes.Add(new Mensaje { tipo = "Notificacion", titulo = "Notificacion", cuerpo = "Consulta registrada exitosamente." });
                        TempData["mensajes"] = lstMensajes;
                        return RedirectToAction("Index", "Especialista");
                    }
                }
                else
                {
                    lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "Ocurrio un problema mientras se procesaba la solicitud" });
                    TempData["mensajes"] = lstMensajes;
                }
            }
            else
            {
                lstMensajes.Add(new Mensaje { tipo = "Error", titulo = "Error", cuerpo = "No se pudo encontrar el especialista solicitado" });
                TempData["mensajes"] = lstMensajes;
            }
            return RedirectToAction("Index", "Especialista");
        }