private void OnUpdated(IAfterEntry <EventEntity, BiContext> evt) { var _notification = new NotificationsIOSRepository(evt.Context); var _dbNotification = evt.Context.Set <NotificationEntity>(); var _dbReport = evt.Context.Set <ReportEntity>(); var reportEvt = evt.Entity.Body as ReportUpdatedEvt; var report = _dbReport.Include(r => r.Company).Include(r => r.Week).Include(r => r.User).First(r => r.Id == reportEvt.Id); var users = this.UserFromReport(evt.Context, report); _dbNotification.Add(new NotificationEntity() { Body = new ReportUpdated() { Id = report.Id, CompanyId = report.CompanyId, UserId = report.UserId, WeekId = report.WeekId }, SenderId = evt.Entity.UserId, Receivers = users.Select(u => new ReceiverEntity() { UserId = u }).ToList() }); var message = "Se actualizó reporte de la empresa: " + report.Company.Name + " por el usuario: " + report.User.Name + " " + report.User.Lastname + " en la semana: " + report.Week.StartTime.ToString("dd MMM").ToUpper() + " al " + report.Week.EndTime.ToString("dd MMM yyyy").ToUpper(); _notification.SendNotification(users, message, report); evt.Context.SaveChanges(); }
public async Task <IActionResult> CreateReply([FromRoute] long idCompany, [FromRoute] int type, [FromRoute] long idUser, [FromBody] MessageRequest message) { try { var creator = HttpContext.UserId().Value; if (creator != idUser) { var values = await _replyRepository.SearchOrCreateGroup(idCompany, idUser, creator, type, new MessageEntity() { Message = message.Message, Tags = message.Tags, UserId = creator, WeekId = message.WeekId }); if (values == null) { return(BadRequest(new { message = "Imposible crear con datos especificados." })); } var response = new MessageResponse(values); string messageString = values.User.Name + " " + values.User.Lastname + ": " + response.Message; var userNotify = new List <long>() { idUser }; try { _notifications.SendNotification(userNotify, messageString, response); } catch (Exception e) { Console.WriteLine(e); } return(new ObjectResult(response) { StatusCode = 201 }); } return(new ObjectResult( new { message = "Los usuarios no deben ser iguales." }) { StatusCode = 404 }); } catch (Exception e) { return(new ObjectResult(new { messsage = e.Message }) { StatusCode = 500 }); } }