public object GetMemberWithDynamicFields(MemberPro member) { dynamic MemberListDetailResult; try { MemberDetailsDynamicField result = MemberMaster.GetMemberDtlWithDynamicFeild(member.memberProfileId, member.groupId); if (result != null) { MemberListDetailResult = new { status = "0", message = "sucess", MemberDetails = result }; } else { MemberListDetailResult = new { status = "1", message = "User Not Found" }; } } catch { MemberListDetailResult = new { status = "1", message = "An error occured. Please contact Administrator" }; } return(new { MemberListDetailResult }); }
public static MemberListSyncResult GetMemberListSync(string updatedOn, string grpID, out string filepath) { bool isDataFound = false; string targetPath = ""; try { filepath = ""; MySqlParameter[] param = new MySqlParameter[2]; param[0] = new MySqlParameter("@groupID", grpID); param[1] = new MySqlParameter("@updatedOn", updatedOn); DataSet result = MySqlHelper.ExecuteDataset(GlobalVar.strAppConn, CommandType.StoredProcedure, "V7_USPGetDirectoryListSync", param); DataTable dtnewMember = result.Tables[0]; DataTable dtUpdatedMember = result.Tables[1]; DataTable dtDeletedMember = result.Tables[2]; int dataCount = 10;// Used for paging. DataCount is page size List <MemberDetailsDynamicField> memberList; int Filecounter = 1; int totalrows = dtnewMember.Rows.Count; string FileName = "Dist-" + grpID + DateTime.Now.ToString("ddMMyyyyhhmmsstt"); MemberListSyncResult memListSyncResult = new MemberListSyncResult(); //======================= If total records less than 20 Return Json directly ================================================= int totalRowCount; if (Convert.ToDateTime(updatedOn).Date.ToString("dd/MM/yyyy") == "01/01/1970") { totalRowCount = dtnewMember.Rows.Count; } else { totalRowCount = dtnewMember.Rows.Count + dtUpdatedMember.Rows.Count; } if (totalRowCount <= 20) { //---------------Create array of new members ------------------------------- memberList = new List <MemberDetailsDynamicField>(); if (dtnewMember.Rows.Count > 0) { for (int i = 0; i < dtnewMember.Rows.Count; i++) { MemberDetailsDynamicField memberdtl = GetMemberDtlWithDynamicFeild(dtnewMember.Rows[i]["profileID"].ToString(), grpID); memberList.Add(memberdtl); } } memListSyncResult.NewMemberList = memberList; //---------------Create array of Updated members ------------------------------- memberList = new List <MemberDetailsDynamicField>(); if (dtUpdatedMember.Rows.Count > 0 && Convert.ToDateTime(updatedOn).Date.ToString("dd/MM/yyyy") != "01/01/1970") { for (int i = 0; i < dtUpdatedMember.Rows.Count; i++) { MemberDetailsDynamicField memberdtl = GetMemberDtlWithDynamicFeild(dtUpdatedMember.Rows[i]["profileID"].ToString(), grpID); memberList.Add(memberdtl); } } memListSyncResult.UpdatedMemberList = memberList; //-----------------Deleted member -------------------------------------------------- string deletedProfiles = ""; if (dtDeletedMember != null && Convert.ToDateTime(updatedOn).Date.ToString("dd/MM/yyyy") != "01/01/1970") { if (!string.IsNullOrEmpty(dtDeletedMember.Rows[0]["profileID"].ToString())) { deletedProfiles = dtDeletedMember.Rows[0]["profileID"].ToString(); } } memListSyncResult.DeletedMemberList = deletedProfiles; } //======================= If Records Greater than 20 Return Zip File ================================================= else { if (dtnewMember.Rows.Count > 0) { memberList = new List <MemberDetailsDynamicField>(); for (int i = 0; i < totalrows; i++) { if (i < dataCount) // add object to page { try { MemberDetailsDynamicField memberdtl = GetMemberDtlWithDynamicFeild(dtnewMember.Rows[i]["profileID"].ToString(), grpID); memberList.Add(memberdtl); MemberDetails memberDtl = new MemberDetails(); memberDtl.MemberDetail = memberList; // For each page create a seperate json file if (i == dataCount - 1 || i == totalrows - 1) { // create a file string json = JsonConvert.SerializeObject(memberDtl); //write string to file string Path = ConfigurationManager.AppSettings["imgPathSave"] + "TempDocuments\\DirectoryData\\Profile" + FileName; if (!Directory.Exists(Path)) { Directory.CreateDirectory(Path); } if (!Directory.Exists(Path + "/NewMembers")) { Directory.CreateDirectory(Path + "/NewMembers"); } System.IO.File.WriteAllText(Path + "/NewMembers/New" + Filecounter + ".json", json); Filecounter++; } } catch { } } else { // reset member list for next page memberList = new List <MemberDetailsDynamicField>(); dataCount = dataCount + 10; i--; } } } if (dtUpdatedMember.Rows.Count > 0 && Convert.ToDateTime(updatedOn).Date.ToString("dd/MM/yyyy") != "01/01/1970") { dataCount = 10; // Used for paging. dataCount is page size memberList = new List <MemberDetailsDynamicField>(); Filecounter = 1; totalrows = dtUpdatedMember.Rows.Count; for (int i = 0; i < totalrows; i++) { if (i < dataCount) { try { MemberDetailsDynamicField memberdtl = GetMemberDtlWithDynamicFeild(dtUpdatedMember.Rows[i]["profileID"].ToString(), grpID); memberList.Add(memberdtl); MemberDetails memberDtl = new MemberDetails(); memberDtl.MemberDetail = memberList; // For each page create a seperate json file if (i == dataCount - 1 || i == totalrows - 1) { // create a file string json = JsonConvert.SerializeObject(memberDtl); //write string to file string Path = ConfigurationManager.AppSettings["imgPathSave"] + "TempDocuments\\DirectoryData\\Profile" + FileName; if (!Directory.Exists(Path)) { Directory.CreateDirectory(Path); } if (!Directory.Exists(Path + "/UpdatedMembers")) { Directory.CreateDirectory(Path + "/UpdatedMembers"); } System.IO.File.WriteAllText(Path + "/UpdatedMembers/Update" + Filecounter + ".json", json); Filecounter++; } } catch { } } else { // reset member list for next page memberList = new List <MemberDetailsDynamicField>(); dataCount = dataCount + 10; i--; } } } if (dtDeletedMember != null && Convert.ToDateTime(updatedOn).Date.ToString("dd/MM/yyyy") != "01/01/1970") { if (!string.IsNullOrEmpty(dtDeletedMember.Rows[0]["profileID"].ToString())) { string deletedProfiles = dtDeletedMember.Rows[0]["profileID"].ToString(); string Path = ConfigurationManager.AppSettings["imgPathSave"] + "TempDocuments\\DirectoryData\\Profile" + FileName; if (!Directory.Exists(Path)) { Directory.CreateDirectory(Path); } if (!Directory.Exists(Path + "/DeletedMembers")) { Directory.CreateDirectory(Path + "/DeletedMembers"); } System.IO.File.WriteAllText(Path + "/DeletedMembers/Delete" + Filecounter + ".txt", deletedProfiles); } } string zipFolderPath = ConfigurationManager.AppSettings["imgPathSave"] + "TempDocuments\\DirectoryData\\Profile" + FileName; if (Directory.Exists(zipFolderPath)) { targetPath = ConfigurationManager.AppSettings["imgPathSave"] + "TempDocuments\\DirectoryData\\Profile" + FileName + ".zip"; zos = new ZipOutputStream(File.Create(targetPath)); zos.UseZip64 = UseZip64.Off; strBaseDir = zipFolderPath + "\\"; AddZipEntry(strBaseDir); zos.Finish(); zos.Close(); isDataFound = true; } if (isDataFound) { filepath = ConfigurationManager.AppSettings["imgPath"] + "TempDocuments/DirectoryData/Profile" + FileName + ".zip"; } } return(memListSyncResult); } catch { throw; } }