private void button2_Click(object sender, EventArgs e) { try { OpenFileDialog OpenFileDialog1 = new OpenFileDialog(); OpenFileDialog1.Title = "لطفا فایل اطلاعات خود را انتخاب کنید."; OpenFileDialog1.FileName = ""; OpenFileDialog1.Filter = "File|*.xlsx;*.xls;*.xml"; OpenFileDialog OpenFileDialog2 = new OpenFileDialog(); OpenFileDialog2.Title = "لطفا زوج کلید خود را انتخاب کنید."; OpenFileDialog2.FileName = ""; OpenFileDialog2.Filter = "key pair|*.p12;*.pfx;"; if (OpenFileDialog1.ShowDialog() == DialogResult.OK) { if (OpenFileDialog2.ShowDialog() == DialogResult.OK) { var keypairPassword = ShowDialog("پسورد کلید خود را وارد کنید", ""); sFileName = OpenFileDialog1.FileName; string ext = Path.GetExtension(OpenFileDialog1.FileName); var sanamaInof = new sanamaInfo(); if (ext == ".xls" || ext == ".xlsx") { throw new Exception("not implement yet..."); } else if (ext == ".xml") { sanamaInof = readXml(sFileName); } else { throw new Exception("فرمت فایل شما اشتباه است."); } var client = new PushSanamaClient(); client.ClientCredentials.ServiceCertificate.DefaultCertificate = new X509Certificate2("bitaServicebusCert.cer"); client.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(OpenFileDialog2.FileName, keypairPassword, X509KeyStorageFlags.PersistKeySet); client.ClientCredentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None; var result = client.send(sanamaInof); MessageBox.Show(result, "اطلاعات با موفقیت ارسال شد.", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } catch (Exception ex) { MessageBox.Show(ex.Message, "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private sanamaInfo createSanamaInfo(string sFile) { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load(sFile); XmlNodeList sanamaInfoList = xmlDocument.SelectNodes("SanamaInfo"); if (sanamaInfoList.Count != 1) { throw new Exception("فایل مورد نظر باید تنها شامل 1 SanamaInfo باشد."); } var sanamaInfoXml = sanamaInfoList.Item(0); var sanamaInfo = new sanamaInfo(); sanamaInfo.mainOrgCode = sanamaInfoXml.Attributes["MainOrgCode"] == null ? null : sanamaInfoXml.Attributes["MainOrgCode"].Value; sanamaInfo.mainOrgID = sanamaInfoXml.Attributes["MainOrgID"] == null ? null : sanamaInfoXml.Attributes["MainOrgID"].Value; sanamaInfo.month = getXmlElementAttributeValueAsInt32(sanamaInfoXml.Attributes["Month"]); sanamaInfo.protocolName = sanamaInfoXml.Attributes["ProtocolName"] == null ? null : sanamaInfoXml.Attributes["ProtocolName"].Value; sanamaInfo.protocolType = sanamaInfoXml.Attributes["ProtocolType"] == null ? null : sanamaInfoXml.Attributes["ProtocolType"].Value; sanamaInfo.protocolVer = sanamaInfoXml.Attributes["ProtocolVer"] == null ? null : sanamaInfoXml.Attributes["ProtocolVer"].Value; sanamaInfo.year = getXmlElementAttributeValueAsInt32(sanamaInfoXml.Attributes["Year"]); var attachments = new List <attachment>(); var contrastAccounts = new List <contrastAccount>(); var reports = new List <report>(); foreach (XmlElement xmlElement in sanamaInfoXml.SelectNodes("Report_List")) { var report = new report(); report.accCode = xmlElement.Attributes["AccCode"] == null ? null : xmlElement.Attributes["AccCode"].Value; report.summaryProgressDeptor = getXmlElementAttributeValueAsLong(xmlElement.Attributes["SummaryProgressDeptor"]); report.summaryProgressCreditor = getXmlElementAttributeValueAsLong(xmlElement.Attributes["SummaryProgressCreditor"]); report.sourceType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["SourceType"]); report.sourceEssence = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["SourceEssence"]); report.otherSourceType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["OtherSourceType"]); report.creditType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["CreditType"]); report.transferalType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["TransferalType"]); report.creditInfo = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["CreditInfo"]); report.expenseArticle = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["ExpenseArticle"]); report.constructArticle = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["ConstructArticle"]); report.expenseDetailArticle = xmlElement.Attributes["ExpenseDetailArticle"] == null ? null : xmlElement.Attributes["ExpenseDetailArticle"].Value; report.incomeCode = xmlElement.Attributes["IncomeCode"] == null ? null : xmlElement.Attributes["IncomeCode"].Value; report.incomeSubject = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["IncomeSubject"]); report.governmental = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["Governmental"]); report.taxSeason = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["TaxSeason"]); report.debentureSenderRank = xmlElement.Attributes["DebentureSenderRank"] == null ? null : xmlElement.Attributes["DebentureSenderRank"].Value; report.debentureReceiverRank = xmlElement.Attributes["DebentureReceiverRank"] == null ? null : xmlElement.Attributes["DebentureReceiverRank"].Value; report.costCenter = xmlElement.Attributes["CostCenter"] == null ? null : xmlElement.Attributes["CostCenter"].Value; report.awardArticle = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AwardArticle"]); report.securitiesType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["SecuritiesType"]); report.guaranteeEssence = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["GuaranteeEssence"]); report.year = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["Year"]); report.nominee = xmlElement.Attributes["Nominee"] == null ? null : xmlElement.Attributes["Nominee"].Value; report.demandStatus = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["DemandStatus"]); report.tempPaymentType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["TempPaymentType"]); report.leakageSubject = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["LeakageSubject"]); report.assuranceType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AssuranceType"]); report.assuranceSubject = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AssuranceSubject"]); report.currencyType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["CurrencyType"]); report.accountNumber = xmlElement.Attributes["AccountNumber"] == null ? null : xmlElement.Attributes["AccountNumber"].Value; report.debitSubject = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["DebitSubject"]); report.fixedAssetType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["FixedAssetType"]); report.inventoryType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["InventoryType"]); report.quantity = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["Quantity"]); report.dueDate = xmlElement.Attributes["DueDate"] == null ? null : xmlElement.Attributes["DueDate"].Value; report.securitiesProperties = xmlElement.Attributes["SecuritiesProperties"] == null ? null : xmlElement.Attributes["SecuritiesProperties"].Value; report.investmentType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["InvestmentType"]); report.annualAdjustmentsSubject = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AnnualAdjustmentsSubject"]); reports.Add(report); } foreach (XmlElement xmlElement in sanamaInfoXml.SelectNodes("ContrastAccount_list")) { var contrastAccount = new contrastAccount(); contrastAccount.accountNumber = xmlElement.Attributes["AccountNumber"] == null ? null : xmlElement.Attributes["AccountNumber"].Value; contrastAccount.accountDscp = xmlElement.Attributes["AccountDscp"] == null ? null : xmlElement.Attributes["AccountDscp"].Value; contrastAccount.accountType = getXmlElementAttributeValueAsInt32(xmlElement.Attributes["AccountType"]); contrastAccount.mojoodiTebgheDaftar = getXmlElementAttributeValueAsLong(xmlElement.Attributes["MojoodiTebgheDaftar"]); contrastAccount.mojoodiTebgheBank = getXmlElementAttributeValueAsLong(xmlElement.Attributes["MojoodiTebgheBank"]); contrastAccount.diffType1 = createDiffType(xmlElement, "DiffType1"); contrastAccount.diffType2 = createDiffType(xmlElement, "DiffType2"); contrastAccount.diffType3 = createDiffType(xmlElement, "DiffType3"); contrastAccount.diffType4 = createDiffType(xmlElement, "DiffType4"); contrastAccount.diffType5 = createDiffType(xmlElement, "DiffType5"); contrastAccount.diffType6 = createDiffType(xmlElement, "DiffType6"); contrastAccount.diffType7 = createDiffType(xmlElement, "DiffType7"); contrastAccount.diffType8 = createDiffType(xmlElement, "DiffType8"); contrastAccount.diffType9 = createDiffType(xmlElement, "DiffType9"); contrastAccount.diffType10 = createDiffType(xmlElement, "DiffType10"); contrastAccount.diffType11 = createDiffType(xmlElement, "DiffType11"); contrastAccount.diffType12 = createDiffType(xmlElement, "DiffType12"); contrastAccounts.Add(contrastAccount); } sanamaInfo.contrastAccounts = contrastAccounts.ToArray(); sanamaInfo.reports = reports.ToArray(); return(sanamaInfo); }