public ActionResult Index(int profileId = -1/*this is currently ignored but one for the future*/) { var model = new IndicatorGridModel { SortBy = "Sequence", SortAscending = true, CurrentPageIndex = 1, PageSize = 200 }; GetProfiles(model); GetDomains(model, null); Profile profile = null; var firstOrDefault = model.DomainList.FirstOrDefault(); if (firstOrDefault != null) { profile = GetProfile(model.ProfileKey, Convert.ToInt32(firstOrDefault.Value), -1); } if (profile != null) { IQueryable<GroupingPlusName> indicators = profile.IndicatorNames.AsQueryable(); model.Profile = profile; model.UrlKey = model.ProfileKey; var profileContact = _reader.GetUserByUserId(profile.ContactUserId); model.ContactUserName = profileContact.DisplayName; model.EmailAddress = profileContact.EmailAddress; AssignAreaTypeData(model, profile); var userPermissions = GetUserGroupPermissions(); model.UserHasAssignedPermissions = userPermissions.Any(); model.UserGroupPermissions = userPermissions.FirstOrDefault(x => x.ProfileId == _reader.GetProfileDetails(model.UrlKey).Id); indicators = indicators.Where(i => i.AreaTypeId == profile.SelectedAreaType); model.TotalRecordCount = indicators.Count(); model.IndicatorNamesGrid = indicators .Distinct() .OrderBy(model.SortExpression) .Skip((model.CurrentPageIndex - 1) * model.PageSize) .Take(model.PageSize); } return View(ProfilesAndIndicators, model); }
public void TestGetTestSiteUrl_DoNotIncludePracticeCodeInUrl() { IndicatorGridModel model = new IndicatorGridModel { ProfileKey = urlKey, SelectedGroupId = 1, SelectedAreaTypeId = 7 }; string url = CommonUtilities.GetTestSiteUrl(model); Assert.IsFalse(url.Contains("ati/7")); Assert.IsTrue(url.Contains("gid/1")); Assert.IsTrue(url.Contains(urlKey + "#")); }
public void TestGetTestSiteUrl() { IndicatorGridModel model = new IndicatorGridModel { ProfileKey = urlKey, SelectedGroupId = 1, SelectedAreaTypeId = 2 }; string url = CommonUtilities.GetTestSiteUrl(model); Assert.IsTrue(url.Contains("ati/2")); Assert.IsTrue(url.Contains("gid/1")); Assert.IsTrue(url.Contains(urlKey + "#")); }
private void GetDomains(IndicatorGridModel model, int? domainSequence) { var reloadedDomains = ReloadGridDomains(model.ProfileKey); if (domainSequence.HasValue) { model.SelectedGroupId = reloadedDomains.Where(x => x.Sequence == domainSequence).Select(x => x.GroupId).FirstOrDefault(); } else { model.SelectedGroupId = reloadedDomains.Select(x => x.GroupId).FirstOrDefault(); } model.DomainList = new SelectList(reloadedDomains.OrderBy(g => g.Sequence), "Sequence", "GroupName"); }
private static void AssignAreaTypeData(IndicatorGridModel model, Profile profile) { var builder = new AreaTypeSelectListBuilder(profile.AreaTypes, profile.SelectedAreaType); model.SelectedAreaTypeId = builder.SelectedAreaTypeId; model.AreaTypeList = builder.SelectListItems; }
public ActionResult SortPageAndFilter(int? domainSequence, int? indicatorId, string resetArea, int selectedAreaTypeId = -1, string search_text = "", string sortBy = "Sequence", bool ascending = true, int page = 1, int pageSize = 200, string profileKey = null) { var model = new IndicatorGridModel { SortBy = sortBy, SortAscending = @ascending, CurrentPageIndex = page, PageSize = pageSize }; // Get all the profiles GetProfiles(model); var firstOrDefault = model.ProfileList.FirstOrDefault(); if (firstOrDefault != null) model.ProfileKey = string.IsNullOrEmpty(profileKey) ? firstOrDefault.Value : profileKey; GetDomains(model, domainSequence); var areaTypeId = resetArea == "True" ? -1 : selectedAreaTypeId; if (domainSequence == null) { var selectListItem = model.DomainList.FirstOrDefault(); if (selectListItem != null) { domainSequence = int.Parse(selectListItem.Value); } } Profile profile = null; if (domainSequence.HasValue) { profile = GetProfile(model.ProfileKey, domainSequence.Value, areaTypeId); } if (profile != null) { IQueryable<GroupingPlusName> indicators = profile.IndicatorNames.AsQueryable(); AssignAreaTypeData(model, profile); model.Profile = profile; model.UrlKey = model.ProfileKey; var profileContact = _reader.GetUserByUserId(profile.ContactUserId); model.ContactUserName = profileContact.DisplayName; model.EmailAddress = profileContact.EmailAddress; // Filter indicators for any search terms if (indicatorId != null) { indicators = indicators.Where(i => i.IndicatorId.ToString().Contains(indicatorId.ToString())); } if (string.IsNullOrEmpty(search_text) == false) { indicators = indicators.Where(i => i.IndicatorName.ToLower().Contains(search_text.ToLower())); } // Filter indicators by area type indicators = indicators.Where(i => i.AreaTypeId == profile.SelectedAreaType); model.TotalRecordCount = indicators.Count(); var userPermissions = GetUserGroupPermissions(); model.UserHasAssignedPermissions = userPermissions.Any(); model.UserGroupPermissions = userPermissions .FirstOrDefault(x => x.ProfileId == _reader.GetProfileDetails(model.UrlKey).Id); model.IndicatorNamesGrid = indicators .Skip((model.CurrentPageIndex - 1) * model.PageSize) .Take(model.PageSize); } return View("ProfilesAndIndicators", model); }
private void GetProfiles(IndicatorGridModel model) { var profiles = _reader.GetProfiles().OrderBy(x => x.Name); IList<ProfileDetails> profilesWithAssignedIndicators = profiles.ToList(); var listOfProfiles = CommonUtilities.GetOrderedListOfProfiles(profilesWithAssignedIndicators); model.ProfileList = listOfProfiles; var firstOrDefault = model.ProfileList.FirstOrDefault(); if (firstOrDefault != null) model.ProfileKey = firstOrDefault.Value; }
public static string GetTestSiteUrl(IndicatorGridModel model) { string url = GetTestSiteUrl(model.ProfileKey) + "#gid/" + model.SelectedGroupId; var areaTypeId = model.SelectedAreaTypeId; if (areaTypeId != AreaTypeIds.GpPractice) { url += "/ati/" + model.SelectedAreaTypeId; } return url; }