Beispiel #1
0
        public ActionResult List(DateTime?date, int?classId, int?personId)
        {
            Trace.Assert(Context.PersonId.HasValue);
            DateTime start, end;

            MonthCalendar(ref date, out start, out end);
            var schoolYearId = GetCurrentSchoolYearId();
            int?studentId, teacherId;

            PrepareUsersIdsForCalendar(SchoolLocator, personId, out teacherId, out studentId);
            //var isAdmin = BaseSecurity.IsDistrictAdmin(Context);
            //var announcements = isAdmin
            //       ? SchoolLocator.AnnouncementService.GetAdminAnnouncements(null, null, start, end, 0, int.MaxValue, true, studentId)
            //       : SchoolLocator.AnnouncementService.GetAnnouncements(start, end, false, classId, true);
            var announcementList = SchoolLocator.AnnouncementFetchService.GetAnnouncementComplexList(start, end, false, classId, studentId, teacherId, false);

            if (personId.HasValue)
            {
                var classes = SchoolLocator.ClassService.GetClasses(schoolYearId, studentId, teacherId);
                announcementList.LessonPlans               = announcementList.LessonPlans.Where(l => classes.Any(c => c.Id == l.ClassRef)).ToList();
                announcementList.ClassAnnouncements        = announcementList.ClassAnnouncements.Where(a => classes.Any(c => c.Id == a.ClassRef)).ToList();
                announcementList.SupplementalAnnouncements = announcementList.SupplementalAnnouncements.Where(a => classes.Any(c => c.Id == a.ClassRef)).ToList();
            }
            if (DemoUserService.IsDemoUser(Context))
            {
                //announcements = announcements.Where(x => x.State == AnnouncementState.Created).ToList();
            }
            var days = SchoolLocator.CalendarDateService.GetLastDays(schoolYearId, true, start, end);

            return(Json(PrepareMonthCalendar(start, end, date.Value, (dateTime, isCurrentMonth) =>
                                             AnnouncementMonthCalendarViewData.Create(dateTime, isCurrentMonth, announcementList, days, Context.Claims))));
        }
Beispiel #2
0
        private UserContext DemoUserLogin(User user, UnitOfWork uow, int?schoolYearId = null)
        {
            if (user == null)
            {
                return(null);
            }
            if (!user.District.IsDemoDistrict)
            {
                throw new ChalkableException("This login is allowed to demo district only");
            }

            Guid?developerId = null;
            var  developer   = new DeveloperDataAccess(uow).GetDeveloper(user.District.Id);

            if (developer != null)
            {
                developerId = developer.Id;
            }
            var schoolUser = user.SchoolUsers.First();
            var schoolYear = DemoSchoolYearService.GetDemoSchoolYear();
            int roleId;
            var personId = DemoPersonService.GetPersonDataForLogin(schoolUser.User, out roleId);
            var res      = new UserContext(user, CoreRoles.GetById(roleId), user.District, schoolUser.School, developerId, personId, null, schoolYear)
            {
                Claims = ClaimInfo.Create(DemoUserService.GetDemoClaims())
            };

            return(res);
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Great Social Community System - Please Login...");
            Console.Write("Name: ");
            string loginname = Console.ReadLine();

            Console.Write("PW: ");
            string password = Console.ReadLine();

            IUserService srv       = new DemoUserService();
            User         loginUser = new User();

            loginUser.Login    = loginname;
            loginUser.Password = password;

            if (srv.Login(loginUser))
            {
                Console.WriteLine("Hello: " + loginname);
                Console.WriteLine("Your demo friend collection in the system: ");
                List <User> friends = srv.GetFriendsFromUser(loginUser).ToList();

                foreach (User friend in friends)
                {
                    Console.WriteLine(" + " + friend.Login + " - Id: " + friend.Id);
                }
            }
            else
            {
                Console.WriteLine("Login failed");
            }

            Console.ReadLine();
        }
Beispiel #4
0
        public static FeedComplexViewData GetAnnouncementForFeedList(IServiceLocatorSchool schoolL, int?start, int?count
                                                                     , bool?complete, int?classId, FeedSettingsInfo settings, IList <AnnouncementInputModel> createdAnnouncements)
        {
            start = start ?? 0;
            count = count ?? (DemoUserService.IsDemoUser(schoolL.Context) ? int.MaxValue : 10);

            var list = schoolL.AnnouncementFetchService.GetAnnouncementsForFeed(complete, classId, settings, start.Value, count.Value);
            List <AnnouncementComplex> createdAnns = new List <AnnouncementComplex>();

            if (createdAnnouncements != null)
            {
                var lpIds = createdAnnouncements.Where(x => x.AnnouncementType == (int)AnnouncementTypeEnum.LessonPlan)
                            .Select(x => x.AnnouncementId).ToList();
                var clAnnIds = createdAnnouncements.Where(x => x.AnnouncementType == (int)AnnouncementTypeEnum.Class)
                               .Select(x => x.AnnouncementId).ToList();
                var suppAnnIds = createdAnnouncements.Where(x => x.AnnouncementType == (int)AnnouncementTypeEnum.Supplemental)
                                 .Select(x => x.AnnouncementId).ToList();

                if (clAnnIds.Count > 0)
                {
                    createdAnns.AddRange(schoolL.ClassAnnouncementService.GetAnnouncementsByIds(clAnnIds));
                }
                if (lpIds.Count > 0)
                {
                    createdAnns.AddRange(schoolL.LessonPlanService.GetAnnouncementsByIds(lpIds));
                }
                if (suppAnnIds.Count > 0)
                {
                    createdAnns.AddRange(schoolL.SupplementalAnnouncementService.GetAnnouncementsByIds(suppAnnIds));
                }
            }
            return(PrepareFeedComplexViewData(schoolL, list, settings, createdAnns));
        }
Beispiel #5
0
        protected UserContext LogOn(bool remember, IUserService userService, Func <IUserService, UserContext> logOnAction)
        {
            var context = logOnAction(userService);

            if (context != null)
            {
                ChalkableAuthentication.SignIn(context, false);
                if (context.DeveloperId.HasValue && !DemoUserService.IsDemoUser(context))
                {
                    DeveloperAuthentication.SignIn(context, remember);
                }
            }
            return(context);
        }
Beispiel #6
0
        public User GetByLogin(string login)
        {
            if (DemoUserService.IsDemoUser(login))
            {
                return(DemoUserService.GetDemoUser(login));
            }

            using (var uow = Read())
            {
                var da  = new UserDataAccess(uow);
                var res = da.GetUser(login, null, null);
                return(res);
            }
        }
Beispiel #7
0
        public static IServiceLocatorSchool CreateSchoolLocator(UserContext context)
        {
            IServiceLocatorSchool locator;

            if (context != null && DemoUserService.IsDemoUser(context))
            {
                locator = CreateDemoSchoolLocator(context);
            }
            else
            {
                var masterLocator = new ServiceLocatorMaster(context);
                locator = new ServiceLocatorSchool(masterLocator);
            }

            return(locator);
        }
Beispiel #8
0
        public static int GetPersonDataForLogin(User user, out int roleId)
        {
            var prefix   = user.DistrictRef.ToString();
            var localIds = new Dictionary <string, KeyValuePair <int, int> >
            {
                {
                    DemoUserService.BuildDemoUserName(CoreRoles.TEACHER_ROLE.LoweredName, prefix),
                    new KeyValuePair <int, int>(DemoSchoolConstants.TeacherId, CoreRoles.TEACHER_ROLE.Id)
                },
                {
                    DemoUserService.BuildDemoUserName(CoreRoles.STUDENT_ROLE.LoweredName, prefix),
                    new KeyValuePair <int, int>(DemoSchoolConstants.Student1, CoreRoles.STUDENT_ROLE.Id)
                }
            };
            var res = localIds[user.Login];

            roleId = res.Value;
            return(res.Key);
        }
Beispiel #9
0
        public static IList <AnnouncementViewData> PrepareAnnouncementsComplexViewData(IServiceLocatorSchool schoolL, IList <AnnouncementComplex> announcements)
        {
            if (DemoUserService.IsDemoUser(schoolL.Context))
            {
                announcements = announcements.Where(x => x.State == AnnouncementState.Created).Take(10).ToList();
            }
            var annsIdsWithApp = announcements.Where(x => x.ApplicationCount == 1).Select(x => x.Id).ToList();
            var annApps        = schoolL.ApplicationSchoolService.GetAnnouncementApplicationsByAnnIds(annsIdsWithApp, true);
            var apps           = schoolL.ServiceLocatorMaster.ApplicationService.GetApplicationsByIds(annApps.Select(x => x.ApplicationRef).ToList());

            annApps = annApps.Where(x => apps.Any(a => a.Id == x.ApplicationRef)).ToList();

            var stAnns = announcements.Where(x => x.CurrentStudentScore != null).Select(x =>
            {
                StudentAnnouncement res = x.CurrentStudentScore;
                return(res);
            }).ToList();

            return(AnnouncementViewData.Create(announcements, annApps, apps, schoolL.Context.Claims, stAnns));
        }
Beispiel #10
0
 private User GetDemoUser(string roleName, string prefix)
 {
     return(DemoUserService.GetDemoUser(roleName, prefix));
 }