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