private void ExportGroups(IGroupsModel model, IMainPresenter presenter) { IMemberServices service = service = new MemberServices(ApplicationResource.BaseUrl, ApplicationResource.ApiVersion); service.ExportGroupsUrl = ApplicationResource.ActionGetGroupInfo; service.UserAgentVersion = ApplicationResource.UserAgent; List <string> groupIdList = new List <string>(); foreach (GroupListViewItemModel item in model.Groups.Where(m => m.IsChecked).ToList()) { groupIdList.Add(item.GroupId); } //if at least one is checked to export, lets do it if (groupIdList.Count > 0) { IDataResponse response = service.ExportGroups(new MemberData() { }, groupIdList, model.AccessToken); if (response.StatusCode == HttpStatusCode.OK) { if (response.Data != null) { string data = response.Data.ToString(); dynamic jsonData = JsonConvert.DeserializeObject <dynamic>(data); // clear existing data first model.GroupInfo.Clear(); int resultCount = jsonData.Count; for (int i = 0; i < resultCount; i++) { dynamic groupInfo = jsonData[i]; dynamic groupName = groupInfo["group_name"]; dynamic groupId = groupInfo["group_id"]; dynamic groupType = groupInfo["group_management_type"][".tag"]; dynamic teamMemberId = string.Empty; dynamic email = string.Empty; dynamic emailVerified = string.Empty; dynamic status = string.Empty; dynamic membershipType = string.Empty; dynamic joinedOn = string.Empty; dynamic accessType = string.Empty; //You can only get member profile info from user managed groups if (groupType == "user_managed") { int memberCount = groupInfo["members"].Count; for (int m = 0; m < memberCount; m++) { teamMemberId = groupInfo["members"][m]["profile"]["team_member_id"]; email = groupInfo["members"][m]["profile"]["email"]; emailVerified = Convert.ToString(groupInfo["members"][m]["profile"]["email_verified"]); status = groupInfo["members"][m]["profile"]["status"][".tag"]; membershipType = groupInfo["members"][m]["profile"]["membership_type"][".tag"]; joinedOn = Convert.ToString(groupInfo["members"][m]["profile"]["joined_on"]); accessType = groupInfo["members"][m]["access_type"][".tag"]; // update model GroupInfoItemModel lvItem1 = new GroupInfoItemModel() { GroupName = groupName, GroupId = groupId, GroupType = groupType, TeamMemberId = teamMemberId, Email = email, EmailVerified = emailVerified, Status = status, MembershipType = membershipType, JoinedOn = joinedOn, AccessType = accessType }; model.GroupInfo.Add(lvItem1); } } if (groupType != "user_managed") { // update model GroupInfoItemModel lvItem = new GroupInfoItemModel() { GroupName = groupName, GroupId = groupId, GroupType = groupType }; model.GroupInfo.Add(lvItem); } } } } } }