public ActionResult Create(StatusVentana statusVentana) { if (ModelState.IsValid) { PersonaServicio personaServicio = new PersonaServicio(); IRespuestaServicio <Persona> persona = personaServicio.GetPersona(User.Identity.GetUserId()); if (persona.EjecucionCorrecta) { statusVentana.IdResponsable = persona.Respuesta.Id; } var IdSubCategoria = db.Ventana.Where(x => x.Id == statusVentana.IdVentana).Select(x => x.IdSubCategoria).FirstOrDefault(); WorkFlowServicio workflowServicio = new WorkFlowServicio(); IRespuestaServicio <WorkFlowView> workFlow = workflowServicio.nextEstatus(IdSubCategoria, statusVentana.IdStatus, false); statusVentana.IdStatus = workFlow.Respuesta.EstatusSiguiente.Id; statusVentana.Fecha = DateTime.Now; if (statusVentana.Comentarios == null) { statusVentana.Comentarios = " "; } db.StatusVentana.Add(statusVentana); db.SaveChanges(); var ventana = db.Ventana .Include(v => v.StatusVentana) .Include(v => v.StatusVentana.Select(s => s.Status)) .Include(v => v.BitacoraVentana) .Include(v => v.BitacoraVentana.Select(b => b.Estatus)) .Include(v => v.BitacoraVentana.Select(b => b.Rechazo)) .Include(v => v.Evento) .Include(v => v.Proveedor) .Where(x => x.Id == statusVentana.IdVentana) .FirstOrDefault(); try { UsuarioServicio usuarioServicio = new UsuarioServicio(); NotificationService notify = new NotificationService(); string senders = usuarioServicio.GetEmailByStatus(ventana); if (senders != "") { EmailService emailService = new EmailService(); emailService.SendMail(senders, ventana); } } catch (Exception e) { Console.WriteLine(e.Message); } return(RedirectToAction("Index", "Evento", new { Area = "Operaciones" })); } return(View(statusVentana)); }
public bool changeStatus(Evento evento) { Ventana ventana = db.Ventana .Include(v => v.StatusVentana) .Include(v => v.StatusVentana.Select(s => s.Status)) .Include(v => v.BitacoraVentana) .Include(v => v.BitacoraVentana.Select(b => b.Estatus)) .Include(v => v.BitacoraVentana.Select(b => b.Rechazo)) .Include(v => v.Evento) .Include(v => v.Proveedor) .SingleOrDefault(x => x.IdEvento == evento.Id); if (ventana != null) { try { WorkFlowServicio workflowServicio = new WorkFlowServicio(); IRespuestaServicio <WorkFlowView> workFlow = workflowServicio.nextEstatus(ventana.IdSubCategoria, ventana.StatusVentana.OrderByDescending(x => x.Fecha).Select(x => x.IdStatus).FirstOrDefault(), false); StatusVentana statusVentana = new StatusVentana(); statusVentana.IdResponsable = evento.IdAsignador; statusVentana.IdStatus = workFlow.Respuesta.EstatusSiguiente.Id; statusVentana.IdVentana = ventana.Id; statusVentana.Fecha = DateTime.Now; statusVentana.Comentarios = "Se reagenda ventana"; db.StatusVentana.Add(statusVentana); db.SaveChanges(); UsuarioServicio usuarioServicio = new UsuarioServicio(); NotificationService notify = new NotificationService(); string senders = usuarioServicio.GetEmailByStatus(ventana); EmailService emailService = new EmailService(); emailService.SendMail(senders, ventana); return(true); } catch (Exception e) { Console.WriteLine(e); } } return(false); }
public bool saveStatusVentana(BitacoraVentana bitacoraVentana) { StatusVentana statusVentana = new StatusVentana(); statusVentana.IdResponsable = bitacoraVentana.IdResponsable; statusVentana.IdStatus = bitacoraVentana.IdStatus; statusVentana.IdVentana = bitacoraVentana.IdVentana; statusVentana.Fecha = bitacoraVentana.Fecha; statusVentana.Comentarios = bitacoraVentana.Comentarios; db.StatusVentana.Add(statusVentana); db.SaveChanges(); Ventana ventana = db.Ventana .Include(v => v.StatusVentana) .Include(v => v.StatusVentana.Select(s => s.Status)) .Include(v => v.BitacoraVentana) .Include(v => v.BitacoraVentana.Select(b => b.Estatus)) .Include(v => v.BitacoraVentana.Select(b => b.Rechazo)) .Include(v => v.Evento) .Include(v => v.Proveedor) .SingleOrDefault(x => x.Id == statusVentana.IdVentana); try { UsuarioServicio usuarioServicio = new UsuarioServicio(); NotificationService notify = new NotificationService(); string senders = usuarioServicio.GetEmailByStatus(ventana); EmailService emailService = new EmailService(); emailService.SendMail(senders, ventana); } catch (Exception e) { Console.WriteLine(e); } return(true); }
public IHttpActionResult PostStatusVentana(StatusVentana statusVentana) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { var IdSubCategoria = db.Ventana.Where(x => x.Id == statusVentana.IdVentana).Select(x => x.IdSubCategoria).FirstOrDefault(); var IdActualStatus = db.StatusVentana.OrderByDescending(x => x.Fecha).Where(x => x.IdVentana == statusVentana.IdVentana).Select(x => x.IdStatus).FirstOrDefault(); WorkFlowServicio workflowServicio = new WorkFlowServicio(); IRespuestaServicio <WorkFlowView> workFlow = workflowServicio.nextEstatus(IdSubCategoria, IdActualStatus, false); statusVentana.IdStatus = workFlow.Respuesta.EstatusSiguiente.Id; statusVentana.Fecha = DateTime.Now; db.StatusVentana.Add(statusVentana); db.SaveChanges(); var ventana = db.Ventana .Include(v => v.StatusVentana) .Include(v => v.StatusVentana.Select(s => s.Status)) .Include(v => v.BitacoraVentana) .Include(v => v.BitacoraVentana.Select(b => b.Estatus)) .Include(v => v.BitacoraVentana.Select(b => b.Rechazo)) .Include(v => v.Evento) .Where(x => x.Id == statusVentana.IdVentana) .FirstOrDefault(); UsuarioServicio usuarioServicio = new UsuarioServicio(); NotificationService notify = new NotificationService(); string senders = usuarioServicio.GetEmailByStatus(ventana); if (senders != "") { EmailService emailService = new EmailService(); emailService.SendMail(senders, ventana); } List <DispositivoView> dispositivos = usuarioServicio.GetDispositivoByEvento(statusVentana.Ventana.IdEvento); List <string> llaves = dispositivos.Select(x => x.Llave).ToList(); var estatus = ventana.StatusVentana.OrderByDescending(s => s.Fecha).Select(s => s.Status).FirstOrDefault(); if (llaves.Count > 0) { foreach (string notificacion in llaves) { notify.SendPushNotification(notificacion, " Cambio de estatus Ventana: " + ventana.Evento.Descripcion + ". ", " Cambio de estatus a " + estatus.Nombre); } } } catch (Exception e) { Console.WriteLine(e.Message); } StatusVentana statusVentanaAdded = db.StatusVentana.Find(statusVentana.Id); return(Ok(statusVentanaAdded)); }