/// <summary> /// This method sends the notification to the moderator's alerting that a new complaint has been created /// </summary> /// <param name="complaint">Complaint object</param> /// <returns>void</returns> private void SendNotification(Complaint complaint) { var subject = ""; var content = ""; NotificationsController notificationController = new NotificationsController(_context, _userManager); switch (complaint.ComplaintType) { case ComplaintType.ReportClient: subject = "Foi feita uma denúncia a um CLIENTE"; content = "Foi feito pelo utilizador com o email eletrónico " + complaint.UserComplaining.Email + " uma denuncia sobre um " + "cliente que não procedeu de acordo com as normas da plataforma"; break; case ComplaintType.ReportService: subject = "Foi feita uma denúncia a um SERVIÇO"; content = "Foi feito pelo utilizador com o email eletrónico " + complaint.UserComplaining.Email + " uma denuncia sobre um " + "serviço que não está de acordo com as normas da plataforma"; break; case ComplaintType.ReportServiceProvider: subject = "Foi feita uma denúncia a um PRESTADOR DE SERVIÇO"; content = "Foi feito pelo utilizador com o email eletrónico " + complaint.UserComplaining.Email + " uma denuncia sobre um " + "prestador de serviço que não procedeu de acordo com as normas da plataforma"; break; } List<string> ids = (from r_u in _context.UserRoles join role in _context.Roles on r_u.RoleId equals role.Id where role.Name == "Moderador" || role.Name == "Administrador" select r_u).Select(ur => ur.UserId).ToList(); ids.ForEach(id => { Notification notification = new Notification { DestinaryID = id, Subject = subject, Content = content, IsRead = false, Action = "/Complaints/Details/" + complaint.ComplaintID, CreationDate = DateTime.Now, }; var result = notificationController.Create(notification).Result; }); }
/// <summary> /// This method sends notifications to all the users /// </summary> /// <param name="formationID"></param> private void SendNotificationToAll(int newID) { NotificationsController notificationController = new NotificationsController(_context, _userManager); foreach (string idDestiny in _context.Users.Where(u => u.Id != _userManager.GetUserAsync(User).Result.Id).Select(u => u.Id).ToList()) { Notification notification = new Notification { DestinaryID = idDestiny, Subject = "Nova Notícia!", Content = "Foi criada uma nova notícia. Confira em VER MAIS para ficar a par de todas as novidades.", IsRead = false, Action = "/News/Details/" + newID, CreationDate = DateTime.Now, }; var result = notificationController.Create(notification).Result; } }
/// <summary> /// This method sends notifications to all the users /// </summary> /// <param name="formationID"></param> private void SendNotificationToAll(int formationID) { NotificationsController notificationController = new NotificationsController(_context, _userManager); foreach (string idDestiny in _context.Users.Where(u => u.Id != _userManager.GetUserAsync(User).Result.Id).Select(u => u.Id).ToList()) { Notification notification = new Notification { DestinaryID = idDestiny, Subject = "Nova Formação!", Content = "Foi criada uma nova formação. Não perca porque vai ser uma excelente oportunidade.", IsRead = false, Action = "/Formations/Details/" + formationID, CreationDate = DateTime.Now, }; var result = notificationController.Create(notification).Result; } }
/// <summary> /// This method sends the notification to the participants. /// </summary> /// <param name="formationID">Formation identification</param> /// <returns>void</returns> private void SendNotificationAlter(int formationID) { NotificationsController notificationController = new NotificationsController(_context, _userManager); foreach (string idDestiny in _context.Enrollment.Where(f => f.FormationID == formationID).Select(f => f.RegisteredID).ToList()) { Notification notification = new Notification { DestinaryID = idDestiny, Subject = "Alteração numa formação que está inscrito", Content = "Foram feitas alterações a uma formação que está inscrito. Confira abaixo as informações.", IsRead = false, Action = "/Formations/Details/" + formationID, CreationDate = DateTime.Now, }; var result = notificationController.Create(notification).Result; } }