Ejemplo n.º 1
0
        private NotificationDto Map(PhoneNotification phoneNotification)
        {
            var mapped = phoneNotification.MapTo <NotificationDto>();

            mapped.SimpleNotificationStatusInfos = _statusRepository
                                                   .GetAllList(a => a.PhoneNotificationId == phoneNotification.Id)
                                                   .Select(a => new SimpleNotificationStatusInfo()
            {
                Seen = a.Readed,
                Sent = a.Sent
            })
                                                   .ToList();

            return(mapped);
        }
        private IEnumerable <StudentPhoneTokenInfo> GetPhoneTokens(PhoneNotification notification)
        {
            var result   = new List <StudentPhoneTokenInfo>();
            var students = _students.GetAll()
                           .Include(a => a.Career).Include(a => a.PhoneInfos).ToList();

            switch (notification.AssignedTo)
            {
            case "feeds":
                var feed = _feedRepository.GetAllIncluding(a => a.AcademicUnits).FirstOrDefault(a => a.Id == notification.AssignedToId);

                if (feed == null)
                {
                    break;
                }

                //Obtiene todos los estudiantes de la unidad academica

                var studentsEnum = students.Where(a => feed.AcademicUnits.Any(f => f.Id == a.Career.AcademicUnitId));

                foreach (var student in studentsEnum)
                {
                    if (student.PhoneInfos.Any())
                    {
                        result.AddRange(student.PhoneInfos.Select(a => new StudentPhoneTokenInfo
                        {
                            Token     = a.Token,
                            StudentId = a.StudentId ?? 0
                        }));
                        continue;
                    }

                    result.Add(new StudentPhoneTokenInfo()
                    {
                        Token     = "",
                        StudentId = student.Id
                    });
                }
                break;

            default:
                foreach (var student in students)
                {
                    if (student.PhoneInfos.Any())
                    {
                        result.AddRange(student.PhoneInfos.Select(a => new StudentPhoneTokenInfo
                        {
                            Token     = a.Token,
                            StudentId = a.StudentId ?? 0
                        }));
                        continue;
                    }
                    result.Add(new StudentPhoneTokenInfo()
                    {
                        Token     = "",
                        StudentId = student.Id
                    });
                }
                break;
            }
            return(result);
        }