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));
        }
示例#2
0
        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);
        }
示例#3
0
        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));
        }