Esempio n. 1
0
        public async Task TryAddSchoolToBenchmarkListAsync(long urn)
        {
            var schoolDataObject = await _contextDataService.GetSchoolDataObjectByUrnAsync(urn);

            if (schoolDataObject != null)
            {
                var benchmarkSchool = new SchoolViewModel(schoolDataObject, null);
                try {
                    AddSchoolToBenchmarkList(benchmarkSchool);
                }
                catch (ApplicationException) { }//ignore duplicate add
            }
        }
        public async Task <JsonResult> GetMapData(long fuid)
        {
            var context = await _contextDataService.GetSchoolDataObjectByUrnAsync(fuid);

            var schoolsInFederation = (await _contextDataService.GetMultipleSchoolDataObjectsByUrnsAsync(context.FederationMembers.ToList())).Select(d => new SchoolViewModel(d));

            var results = new List <SchoolSummaryViewModel>();

            foreach (var school in schoolsInFederation)
            {
                var schoolVm = new SchoolSummaryViewModel(school);
                results.Add(schoolVm);
            }

            return(Json(new { count = results.Count, results = results }, JsonRequestBehavior.AllowGet));
        }
        public async Task <ActionResult <SelfAssesmentModel> > GetAsync(long urn)
        {
            try
            {
                var schoolContextData = await _contextDataService.GetSchoolDataObjectByUrnAsync(urn);

                var financeType         = (EstablishmentType)Enum.Parse(typeof(EstablishmentType), schoolContextData.FinanceType);
                var schoolFinancialData = await _financialDataService.GetSchoolFinancialDataObjectAsync(urn, financeType, CentralFinancingType.Include);

                if (schoolContextData.IsFederation)
                {
                    var selfAssesmentModel = await BuildSelfAssesmentModel(urn, schoolContextData.FederationName, financeType, schoolContextData, schoolFinancialData);

                    return(selfAssesmentModel);
                }
                else
                {
                    var selfAssesmentModel = await BuildSelfAssesmentModel(urn, schoolContextData.EstablishmentName, financeType, schoolContextData, schoolFinancialData);

                    return(selfAssesmentModel);
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message);
                return(NoContent());
            }
        }
        private async Task <ActionResult> SearchSchoolByUrnOrLaEstab(string nameId, bool openOnly = false, string orderby = "", int page = 1, string referrer = "home/index")
        {
            var     schoolComparisonList = _schoolBenchmarkListService.GetSchoolBenchmarkList();
            dynamic searchResp           = null;
            var     errorMessage         = _valService.ValidateSchoolIdParameter(nameId);

            if (string.IsNullOrEmpty(errorMessage))
            {
                try
                {
                    if (IsLaEstab(nameId))
                    {
                        searchResp = await _contextDataService.GetSchoolDataObjectByLaEstabAsync(nameId, openOnly);

                        if (searchResp.Count == 0)
                        {
                            return(ErrorView(SearchTypes.SEARCH_BY_LA_ESTAB, referrer, SearchErrorMessages.NO_SCHOOL_NAME_RESULTS, schoolComparisonList));
                        }
                        else if (searchResp.Count == 1)
                        {
                            return(RedirectToAction("Index", "School", new { urn = (searchResp as List <EdubaseDataObject>).First().URN }));
                        }
                        else
                        {
                            searchResp = await GetSearchResultsAsync(nameId, SearchTypes.SEARCH_BY_LA_ESTAB, null, null, null, null, openOnly, orderby, page);

                            return(View("SearchResults", GetSearchedSchoolViewModelList(searchResp, schoolComparisonList, orderby, page, SearchTypes.SEARCH_BY_NAME_ID, nameId, null, null)));
                        }
                    }
                    else
                    {
                        searchResp = await _contextDataService.GetSchoolDataObjectByUrnAsync(long.Parse(nameId));

                        return(RedirectToAction("Index", "School", new { urn = searchResp.URN }));
                    }
                }
                catch (Exception)
                {
                    return(ErrorView(SearchTypes.SEARCH_BY_LA_ESTAB, referrer, SearchErrorMessages.NO_SCHOOL_NAME_RESULTS, schoolComparisonList));
                }
            }
            else
            {
                return(ErrorView(SearchTypes.SEARCH_BY_NAME_ID, referrer, errorMessage, schoolComparisonList));
            }
        }
Esempio n. 5
0
        /// <summary>
        /// Step 1 - Basic
        /// </summary>
        /// <param name="urn"></param>
        /// <param name="comparisonType"></param>
        /// <returns></returns>
        public async Task <ViewResult> SelectBasketSize(long urn, ComparisonType comparisonType)
        {
            ViewBag.URN            = urn;
            ViewBag.ComparisonType = comparisonType;
            ViewBag.BasketSize     = ComparisonListLimit.DEFAULT;

            var benchmarkSchool = new SchoolViewModel(await _contextDataService.GetSchoolDataObjectByUrnAsync(urn), _benchmarkBasketService.GetSchoolBenchmarkList());

            return(View("SelectBasketSize", benchmarkSchool));
        }
 public async Task BuildCoreAsync(long urn)
 {
     SchoolVM            = new SchoolViewModel(await _contextDataService.GetSchoolDataObjectByUrnAsync(urn), _schoolBenchmarkListService.GetSchoolBenchmarkList());
     SchoolVM.LatestTerm = await LatestTermAsync(SchoolVM.EstablishmentType);
 }
Esempio n. 7
0
 public async Task <PartialViewResult> GetBenchmarkControls(long urn)
 {
     return(PartialView("Partials/BenchmarkControlButtons", new SchoolViewModel(await _contextDataService.GetSchoolDataObjectByUrnAsync(urn), _benchmarkBasketService.GetSchoolBenchmarkList())));
 }
Esempio n. 8
0
        public async Task <ActionResult> Search(
            string nameId,
            string searchType,
            string suggestionUrn,
            string locationorpostcode,
            string locationCoordinates,
            string laCodeName,
            decimal?radius,
            bool openOnly   = false,
            string orderby  = "",
            int page        = 1,
            string tab      = "list",
            string referrer = "home/index")
        {
            ViewBag.OpenOnly     = openOnly;
            ViewBag.SearchMethod = "Manual";
            ViewBag.LaCodeName   = laCodeName;

            var comparisonList       = _schoolBenchmarkListService.GetSchoolBenchmarkList();
            var manualComparisonList = _manualBenchmarkListService.GetManualBenchmarkList();

            EdubaseDataObject contextDataObject = null;

            if (!string.IsNullOrEmpty(comparisonList.HomeSchoolUrn))
            {
                await _contextDataService.GetSchoolDataObjectByUrnAsync(int.Parse(comparisonList.HomeSchoolUrn));
            }

            dynamic searchResp = null;
            string  errorMessage;

            switch (searchType)
            {
            case SearchTypes.SEARCH_BY_NAME_ID:
                if (string.IsNullOrEmpty(comparisonList.HomeSchoolUrn))
                {
                    var vm = new SchoolViewModelWithNoDefaultSchool(manualComparisonList);
                    return(View("AddSchoolsManually", vm));
                }
                else
                {
                    var vm = new SchoolViewModel(contextDataObject, comparisonList, manualComparisonList);
                    return(View("AddSchoolsManually", vm));
                }

            case SearchTypes.SEARCH_BY_LA_CODE_NAME:
                if (!IsNumeric(laCodeName))
                {
                    errorMessage = _valService.ValidateLaNameParameterForComparison(laCodeName);
                    if (string.IsNullOrEmpty(errorMessage))
                    {
                        var exactMatch = _laSearchService.SearchExactMatch(laCodeName);
                        if (exactMatch != null)
                        {
                            laCodeName = exactMatch.Id;
                            return(await Search(nameId, searchType, suggestionUrn, locationorpostcode,
                                                locationCoordinates, laCodeName, radius, openOnly, orderby, page, tab));
                        }
                        var similarMatch = _laSearchService.SearchContains(laCodeName);
                        if (similarMatch.Count == 0)
                        {
                            var svm = new SearchViewModel(comparisonList, searchType)
                            {
                                SearchType   = searchType,
                                Authorities  = _laService.GetLocalAuthorities(),
                                ErrorMessage = SearchErrorMessages.NO_LA_RESULTS
                            };
                            return(View("Index", svm));
                        }
                        TempData["SearchMethod"] = "Manual";
                        return(RedirectToAction("Search", "La", new { name = laCodeName, openOnly = openOnly }));
                    }
                    else
                    {
                        var svm = new SearchViewModel(comparisonList, searchType)
                        {
                            SearchType   = searchType,
                            Authorities  = _laService.GetLocalAuthorities(),
                            ErrorMessage = errorMessage
                        };
                        return(View("Index", svm));
                    }
                }
                else
                {
                    errorMessage = _valService.ValidateLaCodeParameterForComparison(laCodeName);
                    if (string.IsNullOrEmpty(errorMessage))
                    {
                        searchResp = await GetSearchResultsAsync(nameId, searchType, locationorpostcode, locationCoordinates, laCodeName, radius, openOnly, orderby, page);

                        int resultCount = searchResp.NumberOfResults;
                        if (resultCount == 0)
                        {
                            var svm = new SearchViewModel(comparisonList, searchType)
                            {
                                SearchType   = searchType,
                                Authorities  = _laService.GetLocalAuthorities(),
                                ErrorMessage = SearchErrorMessages.NO_LA_RESULTS
                            };
                            return(View("Index", svm));
                        }
                        else
                        {
                            ViewBag.manualCount = manualComparisonList?.BenchmarkSchools?.Count();
                            return(View("ManualSearchResults", GetSearchedSchoolViewModelList(searchResp, manualComparisonList, orderby, page, searchType, nameId, locationorpostcode, _laService.GetLaName(laCodeName))));
                        }
                    }
                    else
                    {
                        var svm = new SearchViewModel(comparisonList, searchType)
                        {
                            SearchType   = searchType,
                            Authorities  = _laService.GetLocalAuthorities(),
                            ErrorMessage = errorMessage
                        };
                        return(View("Index", svm));
                    }
                }

            case SearchTypes.SEARCH_BY_LOCATION:
            default:
                errorMessage = _valService.ValidateLocationParameterForComparison(locationorpostcode);
                if (string.IsNullOrEmpty(errorMessage))
                {
                    if (string.IsNullOrEmpty(locationCoordinates))
                    {
                        var result = _locationSearchService.SuggestLocationName(locationorpostcode);
                        switch (result.Matches.Count)
                        {
                        case 0:
                            var svm = new SearchViewModel(comparisonList, searchType)
                            {
                                SearchType   = searchType,
                                Authorities  = _laService.GetLocalAuthorities(),
                                ErrorMessage = SearchErrorMessages.NO_LOCATION_RESULTS
                            };
                            return(View("Index", svm));

                        default:
                            TempData["LocationResults"] = result;
                            TempData["SearchMethod"]    = "Manual";
                            return(RedirectToAction("Suggest", "Location", new { locationOrPostcode = locationorpostcode, openOnly = openOnly }));
                        }
                    }
                    else
                    {
                        searchResp = await GetSearchResultsAsync(nameId, searchType, locationorpostcode, locationCoordinates, laCodeName, radius, openOnly, orderby, page);

                        if (searchResp.NumberOfResults == 0)
                        {
                            var svm = new SearchViewModel(comparisonList, searchType)
                            {
                                SearchType   = searchType,
                                Authorities  = _laService.GetLocalAuthorities(),
                                ErrorMessage = SearchErrorMessages.NO_LOCATION_RESULTS
                            };
                            return(View("Index", svm));
                        }
                        ViewBag.manualCount = manualComparisonList?.BenchmarkSchools?.Count();
                        return(View("ManualSearchResults", GetSearchedSchoolViewModelList(searchResp, manualComparisonList, orderby, page, searchType, nameId, locationorpostcode, _laService.GetLaName(laCodeName))));
                    }
                }
                else
                {
                    var svm = new SearchViewModel(comparisonList, searchType)
                    {
                        SearchType   = searchType,
                        Authorities  = _laService.GetLocalAuthorities(),
                        ErrorMessage = errorMessage
                    };
                    return(View("Index", svm));
                }
            }
        }
        public async Task AddSchoolToManualBenchmarkListAsync(long urn)
        {
            var benchmarkSchool = new SchoolViewModel(await _contextDataService.GetSchoolDataObjectByUrnAsync(urn), null);

            AddSchoolToManualBenchmarkList(benchmarkSchool);
        }