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)); }