示例#1
0
        public IHttpActionResult PostMantenimiento(Mantenimiento mantenimiento)
        {
            mantenimiento.Activo       = true;
            mantenimiento.FechaReporte = DateTime.Now;

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

            db.Mantenimiento.Add(mantenimiento);
            db.SaveChanges();

            var mantenimientoView = db.Mantenimiento
                                    .Where(d => d.Id == mantenimiento.Id)
                                    .Select(d => new MantenimientoView
            {
                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.GetDispositivoByMantenimiento(mantenimiento.Id);
            List <string>          llaves       = dispositivos.Select(x => x.Llave).ToList();

            foreach (string notificacion in llaves)
            {
                notify.SendPushNotification(notificacion, "Se le ha solicitado un nuevo Mantenimiento " + mantenimiento.Descripcion + ".", "Nuevo Mantenimiento para " + mantenimiento.Origen.WorkCenter.BussinesUnit.Area.Nombre + ".");
            }

            return(Ok(mantenimientoView));
        }