public int addSmmToDbAndSaveContentOnDisk(SMM[] smmArr) { SelfEmploymentReceipts selfEmployment; using (DatabaseContext databaseContext = new DatabaseContext()) { foreach (var smm in smmArr) { selfEmployment = new SelfEmploymentReceipts(); selfEmployment.smmID = smm.ID; selfEmployment.uuid = smm.UUID; selfEmployment.customerTitle = smm.HEADER.CUSTOMER.NAME; selfEmployment.customerID = smm.HEADER.CUSTOMER.IDENTIFIER; selfEmployment.profileID = smm.HEADER.PROFILE_ID.ToString(); selfEmployment.status = smm.HEADER.STATUS; selfEmployment.statusCode = smm.HEADER.STATUS_CODE; selfEmployment.statusDesc = smm.HEADER.STATUS_DESCRIPTION; selfEmployment.cDate = smm.HEADER.CDATE; selfEmployment.issueDate = smm.HEADER.ISSUE_DATE; selfEmployment.email = smm.HEADER.EMAIL != null?smm.HEADER.EMAIL.First() : null; selfEmployment.emailStatusCode = smm.HEADER.EMAIL_STATUS_CODE; selfEmployment.folderPath = FolderControl.smmFolderPath + smm.ID + "." + nameof(EI.DocumentType.XML); FolderControl.writeFileOnDiskWithString(Encoding.UTF8.GetString(Compress.UncompressFile(smm.CONTENT.Value)), selfEmployment.folderPath); databaseContext.selfEmployments.Add(selfEmployment); } return(databaseContext.SaveChanges()); } }
public int addDespatchFromServiceAndSaveContentOnDisk(DESPATCHADVICE[] despatchArr, string direction) { DespatchAdvices despatchAdvice; using (DatabaseContext databaseContext = new DatabaseContext()) { foreach (var despatch in despatchArr) { despatchAdvice = new DespatchAdvices(); despatchAdvice.ID = despatch.ID; despatchAdvice.uuid = despatch.UUID; despatchAdvice.direction = direction; despatchAdvice.issueDate = Convert.ToDateTime(despatch.DESPATCHADVICEHEADER.ISSUE_DATE); despatchAdvice.profileId = despatch.DESPATCHADVICEHEADER.PROFILEID; despatchAdvice.senderVkn = despatch.DESPATCHADVICEHEADER.SENDER.VKN; despatchAdvice.cDate = despatch.DESPATCHADVICEHEADER.CDATE; despatchAdvice.envelopeIdentifier = despatch.DESPATCHADVICEHEADER.ENVELOPE_IDENTIFIER; despatchAdvice.status = despatch.DESPATCHADVICEHEADER.STATUS; despatchAdvice.gibStatusCode = despatch.DESPATCHADVICEHEADER.GIB_STATUS_CODE; despatchAdvice.gibStatusDescription = despatch.DESPATCHADVICEHEADER.GIB_STATUS_DESCRIPTION; despatchAdvice.folderPath = FolderControl.createDespatchDocPath(despatch.ID, direction, nameof(EI.DocumentType.XML)); despatchAdvice.issueTime = despatch.DESPATCHADVICEHEADER.ISSUE_TIME; despatchAdvice.shipmentDate = despatch.DESPATCHADVICEHEADER.ACTUAL_SHIPMENT_DATE; despatchAdvice.shipmentTime = despatch.DESPATCHADVICEHEADER.ACTUAL_SHIPMENT_TIME; despatchAdvice.typeCode = despatch.DESPATCHADVICEHEADER.TYPE_CODE; despatchAdvice.statusCode = despatch.DESPATCHADVICEHEADER.STATUS_CODE; FolderControl.writeFileOnDiskWithString(Encoding.UTF8.GetString(Compress.UncompressFile(despatch.CONTENT.Value)), despatchAdvice.folderPath); databaseContext.despatchAdvices.Add(despatchAdvice); } return(databaseContext.SaveChanges()); } }
public int addCreditNoteToDbAndSaveContentOnDisk(CREDITNOTE[] creditNoteArr, string isDraft) { CreditNotes CreditNote; using (DatabaseContext databaseContext = new DatabaseContext()) { foreach (var creditNotes in creditNoteArr) { CreditNote = new CreditNotes(); CreditNote.CreditNoteID = creditNotes.ID; CreditNote.uuid = creditNotes.UUID; CreditNote.customerTitle = creditNotes.HEADER.CUSTOMER.NAME; CreditNote.customerIdentifier = creditNotes.HEADER.CUSTOMER.IDENTIFIER; CreditNote.profileID = creditNotes.HEADER.PROFILE_ID.ToString(); CreditNote.status = creditNotes.HEADER.STATUS; CreditNote.statusCode = creditNotes.HEADER.STATUS_CODE; CreditNote.statusDesc = creditNotes.HEADER.STATUS_DESCRIPTION; CreditNote.cDate = creditNotes.HEADER.CDATE; CreditNote.issueDate = creditNotes.HEADER.ISSUE_DATE; CreditNote.email = creditNotes.HEADER.EMAIL != null?creditNotes.HEADER.EMAIL.First() : null; CreditNote.emailStatusCode = creditNotes.HEADER.EMAIL_STATUS_CODE; CreditNote.isDraft = isDraft; CreditNote.folderPath = FolderControl.CreditNoteFolderPath + CreditNote.CreditNoteID + "." + nameof(EI.DocumentType.XML); FolderControl.writeFileOnDiskWithString(Encoding.UTF8.GetString(Compress.UncompressFile(creditNotes.CONTENT.Value)), CreditNote.folderPath); databaseContext.creditNotes.Add(CreditNote); } return(databaseContext.SaveChanges()); } }
private void btnGetSingedXml_Click(object sender, EventArgs e) { try { List <string> listReportNoSucc = new List <string>(); foreach (DataGridViewRow row in tableArchiveGrid.SelectedRows) { string reportNo = row.Cells[nameof(EI.ArchiveReports.reportNo)].Value.ToString(); string signedXmlContent = Singl.archiveControllerGet.getArchiveReportXml(reportNo); if (signedXmlContent != null) { //contentı dıske yazdır FolderControl.writeFileOnDiskWithString(signedXmlContent, FolderControl.inboxFolderArchiveReport + reportNo + "." + nameof(EI.DocumentType.XML)); listReportNoSucc.Add(row.Cells[nameof(EI.ArchiveReports.reportNo)].Value.ToString()); } } if (listReportNoSucc.Count > 0) { MessageBox.Show(string.Join(Environment.NewLine, listReportNoSucc) + Environment.NewLine + Lang.hasIdArchiveReportSave);//"secılı arsıv raporları basarıyla kaydedıldı" } else { MessageBox.Show(Lang.operationFailed);//"islem basarısız" } } catch (FaultException <REQUEST_ERRORType> ex) { if (ex.Detail.ERROR_CODE == 2005) { Singl.authControllerGet.Login(FrmLogin.usurname, FrmLogin.password); } MessageBox.Show(ex.Detail.ERROR_SHORT_DES, "ProcessingFault", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { MessageBox.Show(Lang.dbFault + " " + ex.InnerException.Message.ToString(), "DataBaseFault", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Data.DataException ex) { MessageBox.Show(ex.InnerException.Message.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }
private void getXmlDespatch() { try { List <string> idList = new List <string>(); foreach (DataGridViewRow row in tableGrid.SelectedRows) { string content = Singl.despatchControllerGet.getDespatchXmlContentFromService(row.Cells[nameof(EI.Despatch.uuid)].Value.ToString(), despactDirection); if (content != null) { FolderControl.writeFileOnDiskWithString(content, row.Cells[nameof(EI.Despatch.folderPath)].Value.ToString()); idList.Add(row.Cells[nameof(EI.Despatch.ID)].Value.ToString()); } } if (idList.Count > 0) { MessageBox.Show(string.Join(Environment.NewLine, idList) + Environment.NewLine + "Kaydedildi");//Seçili arsivler getirilemedi } else { MessageBox.Show("işlem Basarısız", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (FaultException <REQUEST_ERRORType> ex) { if (ex.Detail.ERROR_CODE == 2005) { Singl.authControllerGet.Login(FrmLogin.usurname, FrmLogin.password); } MessageBox.Show(ex.Detail.ERROR_SHORT_DES, "ProcessingFault", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { MessageBox.Show(Lang.dbFault + " " + ex.InnerException.Message.ToString(), "DataBaseFault", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Data.DataException ex) { MessageBox.Show(ex.InnerException.Message.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }
public int addInvoiceToDbAndSaveContentOnDisk(INVOICE[] invoiceArray, string direction) { using (DatabaseContext dbContext = new DatabaseContext()) { Invoices invoice; foreach (var inv in invoiceArray) { invoice = new Invoices(); invoice.ID = inv.ID; invoice.uuid = inv.UUID; invoice.direction = direction; invoice.issueDate = inv.HEADER.ISSUE_DATE; invoice.profileId = inv.HEADER.PROFILEID; invoice.invoiceType = inv.HEADER.INVOICE_TYPE_CODE; invoice.suplier = inv.HEADER.SUPPLIER; invoice.senderVkn = inv.HEADER.SENDER; invoice.receiverVkn = inv.HEADER.RECEIVER; invoice.cDate = inv.HEADER.CDATE; invoice.envelopeIdentifier = inv.HEADER.ENVELOPE_IDENTIFIER; invoice.status = inv.HEADER.STATUS; invoice.gibStatusCode = inv.HEADER.GIB_STATUS_CODE; invoice.gibStatusDescription = inv.HEADER.GIB_STATUS_DESCRIPTION; invoice.senderAlias = inv.HEADER.FROM; invoice.receiverAlias = inv.HEADER.TO; invoice.folderPath = FolderControl.createInvoiceDocPath(inv.ID, direction, nameof(EI.DocumentType.XML)); byte[] unCompressedContent = Compress.UncompressFile(inv.CONTENT.Value); FolderControl.writeFileOnDiskWithString(Encoding.UTF8.GetString(unCompressedContent), invoice.folderPath); if (direction == nameof(EI.Direction.DRAFT)) { invoice.draftFlag = EI.ActiveOrPasive.Y.ToString(); //servisten cektıklerımız flag Y ☺ } dbContext.invoices.Add(invoice); } var i = dbContext.SaveChanges(); return(i); } }
public int addArchiveToDbAndSaveContentOnDisk(EARCHIVEINV[] archiveArr) { ArchiveInvoices archive; using (DatabaseContext databaseContext = new DatabaseContext()) { foreach (var arc in archiveArr) { archive = new ArchiveInvoices(); //bu row uuid degerı dbye daha once eklenmemısse if (databaseContext.archiveInvoices.Find(archive.uuid) == null) { archive.ID = arc.HEADER.INVOICE_ID; archive.uuid = arc.HEADER.UUID; archive.totalAmount = Convert.ToDecimal(arc.HEADER.PAYABLE_AMOUNT); archive.issueDate = Convert.ToDateTime(arc.HEADER.ISSUE_DATE); archive.profileId = arc.HEADER.PROFILE_ID; archive.invoiceType = arc.HEADER.INVOICE_TYPE; archive.sendingType = arc.HEADER.SENDING_TYPE; archive.eArchiveType = arc.HEADER.EARCHIVE_TYPE; archive.senderName = arc.HEADER.SENDER_NAME; archive.senderVkn = arc.HEADER.SENDER_IDENTIFIER; archive.receiverVkn = arc.HEADER.CUSTOMER_IDENTIFIER; archive.status = arc.HEADER.STATUS; archive.statusCode = arc.HEADER.STATUS_CODE; archive.currencyCode = arc.HEADER.CURRENCY_CODE; archive.folderPath = FolderControl.inboxFolderArchive + archive.ID + "." + nameof(EI.DocumentType.XML); FolderControl.writeFileOnDiskWithString(Encoding.UTF8.GetString(Compress.UncompressFile(arc.CONTENT.Value)), archive.folderPath); databaseContext.archiveInvoices.Add(archive); } } return(databaseContext.SaveChanges()); } }
private void btnSendDraftArchive_Click(object sender, EventArgs e) { try { //db den getırılen serı Namelerı comboboxda sectır FrmDialogSelectItem frmDialogSelectSeriName = new FrmDialogSelectItem(true, ""); if (frmDialogSelectSeriName.ShowDialog() == DialogResult.OK) { ArchiveContentPropertiesModel[] archiveModelArr = new ArchiveContentPropertiesModel[tableArchiveGrid.SelectedRows.Count]; string seriName = frmDialogSelectSeriName.selectedValue; string[] newIdArr = InvoiceIdSetSerilaze.createNewInvId(seriName, tableArchiveGrid.SelectedRows.Count); for (int cnt = 0; cnt < tableArchiveGrid.SelectedRows.Count; cnt++) { ArchiveContentPropertiesModel archiveContentPropertiesModel = new ArchiveContentPropertiesModel(); archiveContentPropertiesModel.uuid = tableArchiveGrid.SelectedRows[cnt].Cells[nameof(EI.Invoice.uuid)].Value.ToString(); archiveContentPropertiesModel.archiveType = tableArchiveGrid.SelectedRows[cnt].Cells[nameof(EI.Invoice.eArchiveType)].Value.ToString(); //alınan contenttın ıdsını degıstırerek koy string content = Singl.archiveControllerGet.getArchiveContentXml(archiveContentPropertiesModel.uuid); archiveContentPropertiesModel.content = XmlControl.xmlInvoiceChangeIdValue(content, newIdArr[cnt]); if (tableArchiveGrid.SelectedRows[cnt].Cells[nameof(EI.Invoice.receiverMail)].Value != null) //mail gonderılmek ısstenıyorsa { archiveContentPropertiesModel.mail = tableArchiveGrid.SelectedRows[cnt].Cells[nameof(EI.Invoice.receiverMail)].Value.ToString(); } Singl.archiveControllerGet.addContentPropertiesToList(archiveContentPropertiesModel); archiveModelArr[cnt] = archiveContentPropertiesModel; } string responseErrorMessage = Singl.archiveControllerGet.sendEarchive(); if (responseErrorMessage != null) { MessageBox.Show(responseErrorMessage, Lang.operationFailed, MessageBoxButtons.OK, MessageBoxIcon.Error); } else { //db de fatura durumunu taslaktan cıkar for (int cnt = 0; cnt < archiveModelArr.Length; cnt++) { string oldFolderPath = Singl.archiveInvoiceDalGet.findArchive(archiveModelArr[cnt].uuid).folderPath; //path degıstır string newFolderPath = FolderControl.inboxFolderArchive + newIdArr[cnt] + "." + nameof(EI.DocumentType.XML); //guncelleme basarılıysa if (Singl.archiveInvoiceDalGet.updateArchiveIdStateNoteDraftFlagFolderPath(archiveModelArr[cnt].uuid, newIdArr[cnt], EI.StateNote.SEND.ToString(), false, newFolderPath) == 1) { //diskten xmli sil FolderControl.deleteFileFromPath(oldFolderPath); //yenı kontentı dıske kaydet FolderControl.writeFileOnDiskWithString(archiveModelArr[cnt].content, newFolderPath); } else { MessageBox.Show("Db ye kaydetme işlemi basarısız,İşlemi tekrar gerceklestırınız" + tableArchiveGrid.SelectedRows[cnt].Cells[nameof(EI.Invoice.ID)].Value.ToString()); return; } } //db ye, en son olusturulan yenı ınv id serisinin son itemi ıle serı no ve yıl guncelle Singl.invIdSerilazeDalGet.updateLastAddedInvIdSeri(newIdArr.Last()); MessageBox.Show(Lang.succesful);//"Başarılı" gridArchiveUpdateList(Singl.archiveInvoiceDalGet.getArchiveList(true)); } } } catch (FaultException <REQUEST_ERRORType> ex) { if (ex.Detail.ERROR_CODE == 2005) { Singl.authControllerGet.Login(FrmLogin.usurname, FrmLogin.password); } MessageBox.Show(ex.Detail.ERROR_SHORT_DES, "ProcessingFault", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { MessageBox.Show(Lang.dbFault + " " + ex.InnerException.Message.ToString(), "DataBaseFault", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Data.DataException ex) { MessageBox.Show(ex.InnerException.Message.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }
private void btnSendDespatch_Click(object sender, EventArgs e) { try { bool valid = true; //aynı kısıye gıdecek faturalar secılı mı kontrolu string receiverVkn = tableGrid.SelectedRows[0].Cells[nameof(EI.Despatch.receiverVkn)].Value.ToString(); foreach (DataGridViewRow row in tableGrid.SelectedRows) { if (row.Cells[nameof(EI.Despatch.receiverVkn)].Value != null && row.Cells[nameof(EI.Despatch.receiverVkn)].Value.ToString() != receiverVkn) //vkn farklı ıse { MessageBox.Show(Lang.selectOnePerson); //sadece aynı kısıye olan faturaları bırlıkte gonderebılırsınız valid = false; break; } } if (valid) //uymayan irsaliye durumu yoksa { //db den getırılen serı Namelerı comboboxda sectır FrmDialogSelectItem frmDialogSelectSeriName = new FrmDialogSelectItem(true, ""); if (frmDialogSelectSeriName.ShowDialog() == DialogResult.OK) { FrmDialogSelectItem frmDialogIdSelectAlias = new FrmDialogSelectItem(false, receiverVkn); ////gb sectır if (frmDialogIdSelectAlias.ShowDialog() == DialogResult.OK) { IdArrContentArrModel ıdContentModel = createInvListWithNewId(frmDialogSelectSeriName.selectedValue); //send despatch string errorMessage = Singl.despatchControllerGet.sendDespatch(frmDialogIdSelectAlias.selectedValue, receiverVkn); if (errorMessage != null) { MessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { for (int cnt = 0; cnt < tableGrid.SelectedRows.Count; cnt++) { string uuidRow = tableGrid.SelectedRows[cnt].Cells[nameof(EI.Despatch.uuid)].Value.ToString(); string oldFolderPath = Singl.DespatchAdviceDalGet.getDespatch(uuidRow, nameof(EI.Direction.DRAFT)).folderPath; //yenı folderpath olustur string newFolderPath = FolderControl.createDespatchDocPath(ıdContentModel.newIdArr[cnt], nameof(EI.Direction.OUT), nameof(EI.DocumentType.XML)); // yenı path db ye yazılır //db de yenı id,direction,folderpath,statenote guncellenır if (Singl.DespatchAdviceDalGet.updateDespatchIdDirectionFolderPathStateNote(uuidRow, nameof(EI.Direction.DRAFT), ıdContentModel.newIdArr[cnt], nameof(EI.Direction.OUT), newFolderPath, nameof(EI.StatusType.SEND)) == 1) { //eskı folderPathdekı dosyayı konumdan sıler FolderControl.deleteFileFromPath(oldFolderPath); //yenı folderpath ile yenı id eklenmıs xmli diske kaydet FolderControl.writeFileOnDiskWithString(ıdContentModel.newXmlContentArr[cnt], newFolderPath); } else { MessageBox.Show("Güncel bilgileri Db ye kaydetme işlemi basarısız,İşlemi tekrar gerceklestırınız" + tableGrid.SelectedRows[cnt].Cells[nameof(EI.Invoice.ID)].Value.ToString()); return; } } //db ye, en son olusturulan yenı ınv id serisinin son itemi ıle serı no ve yıl guncelle Singl.invIdSerilazeDalGet.updateLastAddedInvIdSeri(ıdContentModel.newIdArr.Last()); //datagrıd listesini guncelle gridUpdateDespatchList(Singl.DespatchAdviceDalGet.getDespatchList(despactDirection)); MessageBox.Show(Lang.succesful);//"basarılı" } } frmDialogIdSelectAlias.Dispose(); } frmDialogSelectSeriName.Dispose(); } } catch (FaultException <REQUEST_ERRORType> ex) { if (ex.Detail.ERROR_CODE == 2005) { Singl.authControllerGet.Login(FrmLogin.usurname, FrmLogin.password); } MessageBox.Show(Lang.operationFailed + ex.Detail.ERROR_SHORT_DES, "ProcessingFault", MessageBoxButtons.OK, MessageBoxIcon.Error); //işlem basarısız } catch (System.Data.Entity.Infrastructure.DbUpdateException) { MessageBox.Show(Lang.dbFault, "DataBaseFault", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
private void btnLoadDespatch_Click(object sender, EventArgs e) { try { //db den getırılen serı Namelerı comboboxda sectır FrmDialogSelectItem frmDialogIdSeriName = new FrmDialogSelectItem(true, ""); if (frmDialogIdSeriName.ShowDialog() == DialogResult.OK) { IdArrContentArrModel idArrContentArrModel = createInvListWithNewId(frmDialogIdSeriName.selectedValue); //load ınvda direction degıstırmıyoruz o yuzden false if (idArrContentArrModel != null) { string errorMessage = Singl.despatchControllerGet.loadDespatchToService(); if (errorMessage != null) // basarısızsa { MessageBox.Show(errorMessage, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else //servıse yukleme ıslemı basarılıysa { for (int cnt = 0; cnt < tableGrid.SelectedRows.Count; cnt++) { string uuidRow = tableGrid.SelectedRows[cnt].Cells[nameof(EI.Invoice.uuid)].Value.ToString(); //yenı ıd ile yenı folderpath olustur string newFolderPath = FolderControl.createDespatchDocPath(idArrContentArrModel.newIdArr[cnt], nameof(EI.Direction.DRAFT), nameof(EI.DocumentType.XML)); string oldFolderPath = Singl.DespatchAdviceDalGet.getDespatch(uuidRow, nameof(EI.Direction.DRAFT)).folderPath; //db verileri guncelle if (Singl.DespatchAdviceDalGet.updateDespatchIdCdateStatusGibCodeStateNoteFolderPath(uuidRow, nameof(EI.Direction.DRAFT), idArrContentArrModel.newIdArr[cnt], DateTime.Now, nameof(EI.StatusType.LOAD) + " - " + nameof(EI.SubStatusType.SUCCEED), -1, nameof(EI.StatusType.LOAD), newFolderPath) == 1) { //yenı olust. folderpath ıle xml ı dıske kaydet FolderControl.writeFileOnDiskWithString(idArrContentArrModel.newXmlContentArr[cnt], newFolderPath); //eskı folderPathdekı dosyayı konumdan sıler FolderControl.deleteFileFromPath(oldFolderPath); } else { MessageBox.Show("Güncel bilgileri Db ye kaydetme işlemi basarısız,İşlemi tekrar gerceklestırınız" + tableGrid.SelectedRows[cnt].Cells[nameof(EI.Despatch.ID)].Value.ToString()); return; } } //db ye, en son olusturulan yenı ınv id serisinin son itemi ıle serı no ve yıl guncelle Singl.invIdSerilazeDalGet.updateLastAddedInvIdSeri(idArrContentArrModel.newIdArr.Last()); // db den cekılen taslak faturaları datagrıdde listele gridUpdateDespatchList(Singl.DespatchAdviceDalGet.getDespatchList(nameof(EI.Direction.DRAFT))); MessageBox.Show(Lang.successLoad);//"yukleme basarılı" } } frmDialogIdSeriName.Dispose(); } } catch (FaultException <REQUEST_ERRORType> ex) { if (ex.Detail.ERROR_CODE == 2005) { Singl.authControllerGet.Login(FrmLogin.usurname, FrmLogin.password); } MessageBox.Show(ex.Detail.ERROR_SHORT_DES, "ProcessingFault", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (System.Data.Entity.Infrastructure.DbUpdateException) { MessageBox.Show(Lang.dbFault, "DataBaseFault", MessageBoxButtons.OK, MessageBoxIcon.Error); } catch (Exception ex) { MessageBox.Show(ex.Message.ToString()); } }