Exemplo n.º 1
0
        public IHttpActionResult PostGembaWalk(GembaWalk GembaWalk)
        {
            GembaWalk.Activo       = true;
            GembaWalk.FechaReporte = DateTime.Now;
            GembaWalk.Fotos        = null;

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.GembaWalk.Add(GembaWalk);
            db.SaveChanges();

            var GembaWalkView = db.GembaWalk
                                .Where(d => d.Id == GembaWalk.Id)
                                .Select(d => new GembaWalkView
            {
                Id     = d.Id,
                Origen = new OrigenView
                {
                    Id           = d.Origen.Id,
                    IdModulo     = d.Origen.IdModulo,
                    IdWorkCenter = d.Origen.IdWorkCenter,
                    WorkCenter   = new WorkCenterView
                    {
                        Id           = d.Origen.WorkCenter.Id,
                        Nombre       = d.Origen.WorkCenter.Nombre,
                        NombreCorto  = d.Origen.WorkCenter.NombreCorto,
                        Activo       = d.Origen.WorkCenter.Activo,
                        BussinesUnit = new BussinesUnitView
                        {
                            Id   = d.Origen.WorkCenter.BussinesUnit.Id,
                            Area = new AreaView
                            {
                                Id     = d.Origen.WorkCenter.BussinesUnit.Area.Id,
                                Nombre = d.Origen.WorkCenter.BussinesUnit.Area.Nombre,
                            }
                        }
                    }
                }
            }).FirstOrDefault();

            NotificationService notify          = new NotificationService();
            UsuarioServicio     usuarioServicio = new UsuarioServicio();

            List <DispositivoView> dispositivos = usuarioServicio.GetDispositivoByJDI(GembaWalk.Id);
            List <string>          llaves       = dispositivos.Select(x => x.Llave).ToList();

            foreach (string notificacion in llaves)
            {
                notify.SendPushNotification(notificacion, "Se le ha asignado el GembaWalk " + GembaWalkView.Descripcion + ".", "Nuevo GembaWalk reportado en " + GembaWalkView.Origen.WorkCenter.BussinesUnit.Area.Nombre + ".");
            }

            return(Ok(GembaWalkView));
        }