示例#1
0
        /// <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;
            });
        }
示例#2
0
        /// <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;
            }
        }
示例#3
0
        /// <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;
            }
        }
示例#4
0
        /// <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;
            }
        }