private NotificationSelectListsModel LoadAcademicGrades(NotificationRegisterModel model, NotificationSelectListsModel toReturn)
        {
            var list = new List <SelectListItem> {
                new SelectListItem {
                    Value = "-1", Text = "N/A"
                }
            };
            var user =
                _userRepository.GetById(Convert.ToInt64(_sessionManagement.GetUserLoggedId()));

            var items = GetGradesByRole(user.Role.Name, user).ToList();

            toReturn.Grades = new SelectList(items, "Id", "Name");
            if (items.Any())
            {
                var first = items.First();
                List <AcademicGrade> sList = GetSectionByRole(first.Id, user);

                toReturn.AcademicGrades =
                    new SelectList(sList
                                   , "Id", "Section");
            }
            else
            {
                toReturn.AcademicGrades = new SelectList(list, "Value", "Text");
            }
            return(toReturn);
        }
        public JsonResult LoadFromList1(NotificationRegisterModel registerModel)
        {
            var list = new List <SelectListItem> {
                new SelectListItem {
                    Value = "-1", Text = "N/A"
                }
            };
            var selectListsModel = new NotificationSelectListsModel
            {
                EducationLevels = new SelectList(list, "Value", "Text"),
                Grades          = new SelectList(list, "Value", "Text"),
                AcademicGrades  = new SelectList(list, "Value", "Text"),
                AcademicCourses = new SelectList(list, "Value", "Text"),
                Personals       = new SelectList(list, "Value", "Text")
            };
            var dict = new Dictionary <NotificationType, Func <NotificationRegisterModel, NotificationSelectListsModel, NotificationSelectListsModel> >
            {
                { NotificationType.Section, LoadAcademicGradesFromList1 },
                { NotificationType.Course, LoadAcademicCoursesFromList1 },
                { NotificationType.Student, LoadStudentsFromList1 }
            };

            selectListsModel = dict[registerModel.NotificationType](registerModel, selectListsModel);
            return(Json(selectListsModel, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Add(NotificationRegisterModel eventNotification)
        {
            eventNotification.NotificationCreator = _userRepository.GetById(Convert.ToInt64(_sessionManagement.GetUserLoggedId())).UserOwner.Id;
            eventNotification.AcademicYear        = _academicYearRepository.GetCurrentAcademicYear().Id;
            var notificationIdentity = Mapper.Map <Notification>(eventNotification);
            var approved             = _sessionManagement.GetUserLoggedRole().Equals("Administrador");

            notificationIdentity.Approved         = approved;
            notificationIdentity.PeopleDirectedTo = GetDestinationName(notificationIdentity);
            notificationIdentity = _notificationRepository.Create(notificationIdentity);
            var users = _userRepository.Filter(x => x.Role.Name == "Administrador");

            if (!approved)
            {
                foreach (var user in users)
                {
                    MailgunEmailService.SendEmailToUser(user, MessageService.ApproveMessage());
                }
            }
            _notificationHandlerService.SendAllPending();
            const string title   = "Notificación Agregada";
            var          content = "La notificacion " + notificationIdentity.Title + " ha sido agregada exitosamente.";

            _viewMessageLogic.SetNewMessage(title, content, ViewMessageType.SuccessMessage);
            return(RedirectToAction("Index"));
        }
        public ActionResult Add()
        {
            var notification = new NotificationRegisterModel();
            var items        = ((NotificationType[])Enum.GetValues(typeof(NotificationType))).Select(c => new SelectListItem
            {
                Text  = c.GetEnumDescription(),
                Value = c.ToString("D")
            }).ToList();

            var user =
                _userRepository.GetById(Convert.ToInt64(_sessionManagement.GetUserLoggedId()));
            var roleName = user.Role.Name;

            items = items.FindAll(x => x.Text != "Personal");
            if (roleName.Equals("Director"))
            {
                items = items.FindAll(x => x.Text != "General");
            }
            else if (roleName.Equals("Maestro"))
            {
                items = items.FindAll(x => x.Text != "General" && x.Text != "Nivel de Educación");
            }
            ViewBag.NotificationTypes = new List <SelectListItem>(items);
            var list = new List <SelectListItem> {
                new SelectListItem {
                    Value = "-1", Text = "N/A"
                }
            };

            ViewBag.List1           = new List <SelectListItem>(list);
            ViewBag.List2           = new List <SelectListItem>(list);
            ViewBag.DestinationList = new List <SelectListItem>(list);
            return(View("Add", notification));
        }
        /// <summary>
        /// Push Notification registration example's main logic.
        /// Doesn't support captcha verification.
        /// </summary>
        /// <param name="url">Publicapi's URL</param>
        /// <param name="user">Username</param>
        /// <param name="password">Password</param>
        /// <returns>Async task</returns>
        private async Task InitializeClient(string url, string user, string password)
        {
            _debugLabel.Text = "In progress...";

            // Saving active URL to preferences
            var prefsEditor = _prefs.Edit();

            prefsEditor.PutString(Constants.PrefsBaseUrl, url);
            prefsEditor.Commit();

            // Resolving cached variables
            var guid  = new Guid(_prefs.GetString(Constants.PrefsDeviceGuid, "Guid is missing"));
            var token = _prefs.GetString(Constants.PrefsFcmToken, "Token is missing");

            // Client initialization
            var settings = new ClientSettings(guid, PlatformType.Android);
            var client   = new MobileClient(settings)
            {
                BaseUrl = url
            };
            await client.Authorization(user, password);

            //Push registration
            var model = new NotificationRegisterModel {
                PlatformType = PlatformType.Android, Token = token
            };
            await client.PushNotification_RegisterAsync(model);

            // Finalizing
            _debugLabel.Text = "Push notifications successfully registered";
        }
        private NotificationSelectListsModel LoadEducationLevels(NotificationRegisterModel model, NotificationSelectListsModel toReturn)
        {
            var user =
                _userRepository.GetById(Convert.ToInt64(_sessionManagement.GetUserLoggedId()));
            var isDirector = user.Role.Name.Equals("Director");

            toReturn.EducationLevels = new SelectList(isDirector ? _areaReporsitory.Filter(x => x.Director != null && x.Director.Id == user.Id) : _areaReporsitory.GetAllAreas(), "Id", "Name");
            return(toReturn);
        }
        private NotificationSelectListsModel LoadStudentsFromList2(NotificationRegisterModel model, NotificationSelectListsModel toReturn)
        {
            var sList = _studentRepository.Filter(
                x => x.MyGrade.Id == model.Id2).ToList();

            toReturn.Personals =
                new SelectList(
                    sList, "Id", "FullName");
            return(toReturn);
        }
        private NotificationSelectListsModel LoadAcademicCoursesFromList2(NotificationRegisterModel model, NotificationSelectListsModel toReturn)
        {
            var sList = _academicCourseRepository.Filter(
                x => x.AcademicGrade.Id == model.Id2).ToList();

            toReturn.AcademicCourses =
                new SelectList(
                    sList, "Id", "Course.Name");
            return(toReturn);
        }
        private NotificationSelectListsModel LoadGrades(NotificationRegisterModel model, NotificationSelectListsModel toReturn)
        {
            var user =
                _userRepository.GetById(Convert.ToInt64(_sessionManagement.GetUserLoggedId()));
            var userRoleName = user.Role.Name;

            toReturn.Grades = new SelectList(GetGradesByRole(userRoleName, user), "Id", "Name");

            return(toReturn);
        }
        private NotificationSelectListsModel LoadAcademicCoursesFromList1(NotificationRegisterModel model, NotificationSelectListsModel toReturn)
        {
            var list = new List <SelectListItem> {
                new SelectListItem {
                    Value = "-1", Text = "N/A"
                }
            };
            var user =
                _userRepository.GetById(Convert.ToInt64(_sessionManagement.GetUserLoggedId()));
            List <AcademicGrade> sList;
            var roleName = user.Role.Name;

            if (roleName.Equals("Maestro"))
            {
                sList =
                    _academicCourseRepository.Filter(
                        x => x.Teacher != null && x.Teacher.User.Id == user.Id && x.AcademicGrade.Grade.Id == model.Id1)
                    .Select(y => y.AcademicGrade).ToList();
            }
            else
            {
                sList = _academicGradeRepository.Filter(
                    x => x.Grade.Id == model.Id1).ToList();
            }

            toReturn.AcademicGrades =
                new SelectList(
                    sList, "Id", "Section");
            if (sList.Any())
            {
                var first2 = sList.First();
                List <AcademicCourse> sList2;
                if (roleName.Equals("Maestro"))
                {
                    sList2 = _academicCourseRepository
                             .Filter(x => x.AcademicGrade.Id == first2.Id && x.Teacher != null && x.Teacher.User.Id == user.Id)
                             .ToList();
                }
                else
                {
                    sList2 = _academicCourseRepository.Filter(
                        x => x.AcademicGrade.Id == first2.Id).ToList();
                }

                toReturn.AcademicCourses = new SelectList(
                    sList2, "Id", "Course.Name");
            }
            else
            {
                toReturn.AcademicCourses = new SelectList(list, "Value", "Text");
            }
            return(toReturn);
        }
        private NotificationSelectListsModel LoadStudents(NotificationRegisterModel model, NotificationSelectListsModel toReturn)
        {
            var list = new List <SelectListItem> {
                new SelectListItem {
                    Value = "-1", Text = "N/A"
                }
            };
            var user =
                _userRepository.GetById(Convert.ToInt64(_sessionManagement.GetUserLoggedId()));
            var roleName = user.Role.Name;

            var items = GetGradesByRole(roleName, user).ToList();

            toReturn.Grades = new SelectList(items, "Id", "Name");
            if (items.Any())
            {
                var first = items.First();
                List <AcademicGrade> sList;
                if (roleName.Equals("Maestro"))
                {
                    sList = _academicGradeRepository
                            .Filter(x => x.Grade.Id == first.Id && x.SectionTeacher.User.Id == user.Id)
                            .ToList();
                    sList.AddRange(_academicCourseRepository.Filter(x => x.Teacher != null && x.Teacher.User.Id == user.Id).Select(y => y.AcademicGrade).ToList());
                }
                else
                {
                    sList = _academicGradeRepository.Filter(
                        x => x.Grade.Id == first.Id).ToList();
                }

                toReturn.AcademicGrades =
                    new SelectList(
                        sList.DistinctBy(x => x.Section), "Id", "Section");
                if (sList.Any())
                {
                    var first2 = sList.First();
                    var sList2 = _studentRepository.Filter(
                        x => x.MyGrade.Id == first2.Id).ToList();
                    toReturn.Personals = new SelectList(
                        sList2, "Id", "FullName");
                }
                else
                {
                    toReturn.Personals = new SelectList(list, "Value", "Text");
                }
            }
            else
            {
                toReturn.AcademicGrades = new SelectList(list, "Value", "Text");
            }
            return(toReturn);
        }
Ejemplo n.º 12
0
        public async Task <ActionResult> RegisterNotifyAsync(NotificationRegisterModel model)
        {
            if (model == null)
            {
                return(BadRequest(model));
            }
            else
            {
                var result = await _notificationService.SendNotification(model.DeviceToken);
            }

            return(Json(model));
        }
Ejemplo n.º 13
0
        public async Task <IHttpActionResult> Register(NotificationRegisterModel model)
        {
            var tags = new List <string>
            {
                model.Platform
            };

            if (!string.IsNullOrWhiteSpace(model.UserId))
            {
                tags.Add($"user:{model.UserId}");
            }

            Trace.TraceInformation($"Registering notification: {JsonConvert.SerializeObject(model)}");

            var result = await _pushNotificationService.Register(model.Platform, model.RegisterId, model.Key, tags);

            Trace.TraceInformation($"Registration result: {JsonConvert.SerializeObject(result)}");

            return(Ok(result.RegistrationId));
        }
Ejemplo n.º 14
0
 public Guid AddNotification(NotificationRegisterModel model)
 {
     try
     {
         var result = new Notifications()
         {
             EmailTo  = model.EmailTo,
             PageName = model.PageName,
             Send     = false,
             SubId1   = model.SubId1,
             SubId2   = model.SubId2,
             SubId3   = model.SubId3,
             Subject  = model.Subject,
         };
         unitOfwork.NotificationRepo.Insert(result);
         unitOfwork.Save();
         return(result.Id);
     }
     catch (Exception)
     {
         throw;
     }
 }
        private NotificationSelectListsModel LoadAcademicGradesFromList1(NotificationRegisterModel model, NotificationSelectListsModel toReturn)
        {
            var user =
                _userRepository.GetById(Convert.ToInt64(_sessionManagement.GetUserLoggedId()));
            var roleName = user.Role.Name;
            List <AcademicGrade> sList;

            if (roleName.Equals("Maestro"))
            {
                sList =
                    _academicGradeRepository.Filter(x => x.SectionTeacher != null && x.SectionTeacher.User.Id == user.Id && x.Grade.Id == model.Id1)
                    .ToList();
            }
            else
            {
                sList = _academicGradeRepository.Filter(
                    x => x.Grade.Id == model.Id1).ToList();
            }

            toReturn.AcademicGrades =
                new SelectList(
                    sList, "Id", "Section");
            return(toReturn);
        }
        private NotificationSelectListsModel LoadAcademicCourses(NotificationRegisterModel model, NotificationSelectListsModel toReturn)
        {
            var list = new List <SelectListItem> {
                new SelectListItem {
                    Value = "-1", Text = "N/A"
                }
            };
            var user =
                _userRepository.GetById(Convert.ToInt64(_sessionManagement.GetUserLoggedId()));
            var roleName = user.Role.Name;
            List <AcademicGrade> academicGrades;

            if (roleName.Equals("Director"))
            {
                academicGrades = GetAcademicGradesByDirectorCourse(user);
            }
            else if (roleName.Equals("Maestro"))
            {
                academicGrades = GetAcademicGradesByTeacherCourse(user);
            }
            else
            {
                academicGrades = GetAcademicGradesByAdmin();
            }
            var grades = academicGrades.Select(x => x.Grade).Distinct().ToList();

            toReturn.Grades = new SelectList(grades, "Id", "Name");
            if (academicGrades.Any())
            {
                var first = grades.First();
                var sList = academicGrades.Where(x => x.Grade.Id == first.Id).ToList();
                toReturn.AcademicGrades =
                    new SelectList(
                        sList, "Id", "Section");
                if (sList.Any())
                {
                    List <AcademicCourse> sList2;
                    var first2 = sList.First();
                    if (roleName.Equals("Maestro"))
                    {
                        sList2 = _academicCourseRepository.Filter(
                            x => x.AcademicGrade.Id == first2.Id && x.Teacher != null && x.Teacher.User.Id == user.Id).ToList();
                    }
                    else
                    {
                        sList2 = _academicCourseRepository.Filter(
                            x => x.AcademicGrade.Id == first2.Id).ToList();
                    }

                    toReturn.AcademicCourses = new SelectList(
                        sList2, "Id", "Course.Name");
                }
                else
                {
                    toReturn.AcademicCourses = new SelectList(list, "Value", "Text");
                }
            }
            else
            {
                toReturn.AcademicGrades = new SelectList(list, "Value", "Text");
            }
            return(toReturn);
        }