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)); }
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); }