private void ExportBody(ExportFileParameters parameters, QueryPageCountResult result,ExportIndex index) { object[] data = GetData(parameters.IsPL,index); string continuousFileName = GetFileName(parameters.QueryInfo.FilePath, index, result.PageCount); using (FileStream fs = new FileStream(continuousFileName, FileMode.Create, FileAccess.Write)) { int startFileIndex = index.RecordIndex * 150 + 1; if (parameters.IsPL) { PLExportCenter.Default.Process((PLData[])data, startFileIndex,fs); } else { FlexInterface.Helper.FlexPersistence.PersiteDesposit((DepositData[])data, fs,startFileIndex , parameters.QueryInfo.Type); } this._ErrorHandler.WhenExportPerPageSendMsgToUI(parameters.IsPL, index, result.PageCount); index.FileIndex++; index.PageIndex++; index.RecordIndex++; } }
public ExportFileParameters GetExportFileParameters(QueryObject data) { ExportFileParameters parameters = new ExportFileParameters(); parameters.QueryInfo = data; parameters.IsPL = (int)data.Type > (int)BusinessTypeEnum.Transfer; return parameters; }
public void HandGenerateInterfaceFile(ExportFileParameters parameters) { BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, e) => { Common.SynchronizationContext.Send(m => { Messenger.Default.Send(new LoadingMsg()); }, null); if (parameters.IsPL) { e.Result = Common.Service.GetPLDataRecordCount(Common.SessionId, parameters.QueryInfo); } else { e.Result = Common.Service.GetDepositRecordCount(Common.SessionId, parameters.QueryInfo); } }; worker.RunWorkerCompleted += (o, e) => { Common.SynchronizationContext.Send(m => { Messenger.Default.Send(new LoadingMsg()); }, null); TaskUtil.TaskHelper.Create(Export, GetContinueAction(parameters), parameters); }; worker.RunWorkerAsync(); }
public Action<Task> GetContinueAction(ExportFileParameters parameters) { return ant => { Messenger.Default.Send(new ShowProgressMsg(false)); string msg; if (ant.Exception != null) { if (parameters.IsPL) { msg = StringLibrary.PLFailedTxtMsg; } else { msg = StringLibrary.DepositFailedTxtMsg; } _Log.Error(ant.Exception); Messenger.Default.Send(new UpdateWarnInfoMsg(msg)); return; } if (parameters.IsPL) { msg = StringLibrary.PLEndTxtMsg; } else { msg = StringLibrary.DepositEndTxtMsg; } Messenger.Default.Send(new UpdateWarnInfoMsg(msg)); }; }