Пример #1
0
        public ActionResult Settings()
        {
            Trace.Assert(Context.DistrictId.HasValue);
            Trace.Assert(Context.PersonId.HasValue);

            var messagingSettings = MessagingSettingsViewData.Create(MasterLocator.SchoolService.GetDistrictMessaginSettings(Context.DistrictId.Value));

            PrepareJsonData(messagingSettings, ViewConstants.MESSAGING_SETTINGS);

            var allApps = MasterLocator.ApplicationService.GetApplications(live: true)
                          .Where(x => x.HasDistrictAdminSettings)
                          .Select(BaseApplicationViewData.Create)
                          .ToList();

            if (ApplicationSecurity.HasAssessmentEnabled(Context) && Context.Claims.HasPermission(ClaimInfo.ASSESSMENT_ADMIN))
            {
                var assessement = MasterLocator.ApplicationService.GetAssessmentApplication();
                if (assessement != null && assessement.HasDistrictAdminSettings && !allApps.Exists(x => x.Id == assessement.Id))
                {
                    allApps.Add(BaseApplicationViewData.Create(assessement));
                }
            }
            else
            {
                var assessmentId = SchoolLocator.ServiceLocatorMaster.ApplicationService.GetAssessmentId();
                allApps = allApps.Where(x => x.Id != assessmentId).ToList();
            }

            return(Json(DistrictAdminSettingsViewData.Create(messagingSettings, allApps)));
        }
Пример #2
0
        public ActionResult ExternalAttachApps(int?start, int?count)
        {
            var apps = MasterLocator.ApplicationService.GetApplications(live: true).ToList();

            apps = apps.Where(app => MasterLocator.ApplicationService.HasExternalAttachMode(app)).ToList();
            return(Json(BaseApplicationViewData.Create(apps)));
        }
Пример #3
0
 public static AttachSettingsViewData Create(Guid?assessmentId, bool isStandardEnabled, bool isAppsEnabled
                                             , bool isFileCabinetEnabled, IList <Application> externalAttachApps)
 {
     return(new AttachSettingsViewData
     {
         AssessmentApplicationId = assessmentId,
         IsStandardEnabled = isStandardEnabled,
         IsAppsEnabled = isAppsEnabled,
         IsFileCabinetEnabled = isFileCabinetEnabled,
         ExternalAttachApps = BaseApplicationViewData.Create(externalAttachApps)
     });
 }
Пример #4
0
        public static IList <BaseApplicationViewData> GetApplicationsWithContent(IServiceLocatorSchool schoolLocator, IServiceLocatorMaster masterLocator)
        {
            IList <Application> applications = masterLocator.ApplicationService.GetApplications(live: true);

            applications = applications.Where(x => x.ProvidesRecommendedContent).ToList();

            var res = BaseApplicationViewData.Create(applications);

            foreach (var app in res)
            {
                app.EncodedSecretKey = HashHelper.HexOfCumputedHash(applications.First(x => x.Id == app.Id).SecretKey);
                app.AccessToken      = masterLocator.ApplicationService.GetAccessToken(app.Id, ChalkableAuthentication.GetSessionKey());
            }

            return(res);
        }
Пример #5
0
        public ActionResult Developer(Guid?currentApplicationId, bool?isPwdReset)
        {
            if (isPwdReset.HasValue && isPwdReset.Value)
            {
                ViewData[ViewConstants.REDIRECT_URL_KEY] = UrlsConstants.DEV_RESET_PASSWORD_URL;
            }

            var developer = MasterLocator.DeveloperService.GetById(MasterLocator.Context.UserId);

            PrepareJsonData(DeveloperViewData.Create(developer), ViewConstants.CURRENT_PERSON);
            var applications = MasterLocator.ApplicationService.GetApplicationsWithLive(developer.Id, null, null);

            ViewData[ViewConstants.AZURE_PICTURE_URL]       = PictureService.GetPicturesRelativeAddress();
            ViewData[ViewConstants.DEMO_AZURE_PICTURE_URL]  = PictureService.GeDemoPicturesRelativeAddress();
            ViewData[ViewConstants.SERVER_TIME]             = Context.NowSchoolTime.ToString(DATE_TIME_FORMAT);
            ViewData[ViewConstants.SCHOOL_YEAR_SERVER_TIME] = Context.NowSchoolYearTime.ToString(DATE_TIME_FORMAT);
            ViewData[ViewConstants.NEEDS_TOUR]                = false;
            ViewData[ViewConstants.ROLE_NAME]                 = Context.Role.LoweredName;
            ViewData[ViewConstants.CURRENT_USER_ROLE_ID]      = Context.RoleId;
            ViewData[ViewConstants.STUDENT_ROLE]              = CoreRoles.STUDENT_ROLE.Name;
            ViewData[ViewConstants.TEACHER_ROLE]              = CoreRoles.TEACHER_ROLE.Name;
            ViewData[ViewConstants.DISTRICT_ADMIN_ROLE]       = CoreRoles.DISTRICT_ADMIN_ROLE.Name;
            ViewData[ViewConstants.DISTRICT_ID]               = Context.UserId.ToString();
            ViewData[ViewConstants.DEMO_PICTURE_DISTRICT_REF] = DEMO_PICTURE_DISTRICT_REF;
            ViewData[ViewConstants.IS_DEMO_DISTRICT]          = true;
            if (Context.DistrictId.HasValue)
            {
                var district = DemoDistrictService.CreateDemoDistrict(Context.DistrictId.Value);
                var school   = DemoSchoolService.CreateMasterSchool(Context.DistrictId.Value);
                school.District = district;
                PrepareJsonData(ShortSchoolViewData.Create(school), ViewConstants.SCHOOL);
            }


            PrepareJsonData(BaseApplicationViewData.Create(applications), ViewConstants.APPLICATIONS);
            if (applications.Count > 0)
            {
                var app = currentApplicationId.HasValue ? applications.First(x => x.Id == currentApplicationId) : applications.Last();
                app = MasterLocator.ApplicationService.GetApplicationById(app.Id);
                var res = ApplicationController.PrepareAppInfo(MasterLocator, app, true, true);
                PrepareJsonData(res, ViewConstants.DEFAULT_APPLICATION, 6);
            }
            var ip = RequestHelpers.GetClientIpAddress(Request);

            MasterLocator.UserTrackingService.IdentifyDeveloper(developer.Email, developer.DisplayName, DateTime.UtcNow, "UTC", ip);
            return(View());
        }
Пример #6
0
        public ActionResult GetAccessToken(string applicationUrl, Guid?applicationId)
        {
            var app = !string.IsNullOrWhiteSpace(applicationUrl)
                    ? MasterLocator.ApplicationService.GetApplicationByUrl(applicationUrl) :
                      applicationId.HasValue
                    ? MasterLocator.ApplicationService.GetApplicationById(applicationId.Value) : null;

            if (app == null)
            {
                throw new ChalkableException("Application not found");
            }

            var token = MasterLocator.ApplicationService.GetAccessToken(app.Id, ChalkableAuthentication.GetSessionKey());

            return(Json(new
            {
                Token = token,
                ApplicationInfo = BaseApplicationViewData.Create(app)
            }));
        }
Пример #7
0
        public ActionResult MyApps(GuidList categoriesIds, IntList gradeLevelsIds, string filter, int?start, int?count)
        {
            var myAppsOnly = !BaseSecurity.IsDistrictAdmin(Context) ? true : (bool?)null;
            var apps       = MasterLocator.ApplicationService.GetApplications(categoriesIds, gradeLevelsIds, filter, start ?? 0, count ?? DEFAULT_PAGE_SIZE, withBanned: true, myApps: myAppsOnly);

            if (!BaseSecurity.IsDistrictAdmin(Context))
            {
                return(Json(apps.Transform(BaseApplicationViewData.Create)));
            }

            Trace.Assert(Context.DistrictId.HasValue);
            Trace.Assert(Context.SchoolLocalId.HasValue);

            var school      = MasterLocator.SchoolService.GetById(Context.DistrictId.Value, Context.SchoolLocalId.Value);
            var appBanInfos = MasterLocator.ApplicationService
                              .GetApplicationBanInfos(Context.DistrictId.Value, school.Id, apps.Select(x => x.Id).ToList());

            var viewData = apps.Transform(x => BaseApplicationViewData.Create(x, appBanInfos.FirstOrDefault(y => y.ApplicationId == x.Id)));

            return(Json(viewData));
        }