예제 #1
0
        public async Task <ActionResult> Details(int id, string searchQueryString = "", eLookupSearchSource searchSource = eLookupSearchSource.Groups, int skip = 0, string sortBy = null, bool saved = false)
        {
            ViewBag.ShowSaved = saved;

            var model = (await _groupReadService.GetAsync(id, User)).GetResult();

            var viewModel = new GroupDetailViewModel
            {
                SearchQueryString     = searchQueryString,
                SearchSource          = searchSource,
                CanUserEdit           = await _groupReadService.CanEditAsync(id, User),
                CanUserEditGovernance = await _groupReadService.CanEditGovernanceAsync(id, User),
                Group              = model,
                GroupTypeName      = model.GroupTypeId.HasValue ? await _lookup.GetNameAsync(() => model.GroupTypeId) : null,
                LocalAuthorityName = model.LocalAuthorityId.HasValue ? await _lookup.GetNameAsync(() => model.LocalAuthorityId) : null,
                GroupStatusName    = model.StatusId.HasValue ? await _lookup.GetNameAsync(() => model.StatusId, "Group") : null,
                Address            = model.GroupTypeId.OneOfThese(GT.SingleacademyTrust, GT.MultiacademyTrust, GT.ChildrensCentresGroup) ? model.Address.ToString() : null,
                IsUserLoggedOn     = User.Identity.IsAuthenticated,
                GroupTypeId        = model.GroupTypeId ?? -1,
                IsClosed           = model.StatusId == (int)eLookupGroupStatus.Closed || model.StatusId == (int)eLookupGroupStatus.CreatedInError,
                IsClosedInError    = model.StatusId == (int)eLookupGroupStatus.CreatedInError,
                CloseDate          = model.ClosedDate
            };

            if (viewModel.IsUserLoggedOn)
            {
                viewModel.ChangeHistory = await _groupReadService.GetChangeHistoryAsync(id, skip, 100, sortBy.Clean() ?? "requestedDateUtc-desc", User);
            }

            await PopulateEstablishmentList(viewModel.Establishments, model.GroupUId.Value, true);

            return(View(viewModel));
        }
예제 #2
0
        private async Task <ChangeHistoryViewModel> ProcessGroupSearch(ChangeHistoryViewModel viewModel)
        {
            switch (viewModel.SearchType)
            {
            case eSearchType.Group:
                var groupInfo = await TryGetGoupUid(viewModel);

                if (groupInfo != null)
                {
                    var changes = await _groupReadService.GetChangeHistoryAsync(groupInfo.Item1, viewModel.Skip, viewModel.Take, viewModel.Sortby, viewModel.DateFilterFrom?.ToDateTime(), viewModel.DateFilterTo?.ToDateTime(), viewModel.SuggestedBy, User);

                    viewModel.Items       = ConvertGroupChanges(changes, groupInfo.Item2);
                    viewModel.Count       = changes.Count;
                    viewModel.SingleGroup = true;
                    viewModel.GroupName   = groupInfo.Item2;
                }
                else
                {
                    viewModel.GroupSearchError = true;
                    ModelState.AddModelError("GroupSearchModel.Text", "We could not find any establishment groups matching your search criteria");
                }

                break;

            case eSearchType.GroupAll:
                var payload    = PopulatePayload(viewModel, new SearchChangeHistoryBrowsePayload(viewModel.Skip, viewModel.Take));
                var allChanges = await _svc.SearchAsync(payload, User);

                viewModel.Items = new List <ChangeHistorySearchItem>(allChanges.Items);
                viewModel.Count = allChanges.Count;
                break;

            default:
                viewModel.GroupSearchError = true;
                break;
            }

            return(viewModel);
        }