public IErrorsInfo PerformAction() { try { //----------- Chceck if both Source and Target Exist ----- if (InParameters.Count > 0) { if (OutParameters.Count > 0) { Inds = DMEEditor.GetDataSource(InParameters[0].DatasourceName); if (Inds == null) { DMEEditor.AddLogMessage("Fail", $"Error In DataSource does not exists {InParameters[0].DatasourceName}", DateTime.Now, -1, "", Errors.Failed); } else { Outds = DMEEditor.GetDataSource(OutParameters[0].DatasourceName); if (Outds == null) { DMEEditor.AddLogMessage("Fail", $"Error Out DataSource does not exists {OutParameters[0].DatasourceName}", DateTime.Now, -1, "", Errors.Failed); } else //---- Everything Checks OK we can Procceed with Copy { string SourceEntityName = InParameters[0].CurrentEntity; if (Outds.CheckEntityExist(SourceEntityName) == false) { Outds.CreateEntityAs(Inds.GetEntityStructure(SourceEntityName, false)); // DMEEditor.viewEditor.AddTableToDataView } else { DMEEditor.AddLogMessage("Fail", $"Entity already Exist at Destination {SourceEntityName}. in {InParameters[0].DatasourceName}", DateTime.Now, -1, "", Errors.Failed); } } } } else { DMEEditor.AddLogMessage("Fail", $"Error No Target Table Data exist {OutParameters[0].DatasourceName}", DateTime.Now, -1, "", Errors.Failed); } } else { DMEEditor.AddLogMessage("Fail", $"Error No Source Table Data exist {InParameters[0].CurrentEntity}. in {InParameters[0].DatasourceName} ", DateTime.Now, -1, "", Errors.Failed); } } catch (Exception ex) { DMEEditor.AddLogMessage("Fail", $"Error in Copy {InParameters[0].CurrentEntity}. from {InParameters[0].DatasourceName} to {OutParameters[0].DatasourceName}({ex.Message})", DateTime.Now, -1, "", Errors.Failed); } return(ErrorObject); }
private IErrorsInfo RunBackWorker() { int tot = 0; int cur = 0; BackgroundWorker = new BackgroundWorker { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; BackgroundWorker.WorkerReportsProgress = true; BackgroundWorker.ProgressChanged += (sender, eventArgs) => { IDataWorkFlowEventArgs passedArgs = new IDataWorkFlowEventArgs(); ObjectItem item = new ObjectItem(); item.obj = eventArgs; item.Name = "backgroundworkerprogress"; passedArgs.Objects.Add(item); WorkFlowStepRunning?.Invoke(this, passedArgs); DMEEditor.AddLogMessage("Copy Entity Action ", "Success in Coping entity " + eventArgs.ProgressPercentage + " out of " + tot, DateTime.Now, eventArgs.ProgressPercentage, "", Errors.Ok); }; BackgroundWorker.DoWork += (sender, e) => { IDataWorkFlowEventArgs passedArgs = new IDataWorkFlowEventArgs(); ObjectItem item1 = new ObjectItem(); item1.obj = e; item1.Name = "backgroundworkerstarted"; passedArgs.Objects.Add(item1); WorkFlowStepStarted?.Invoke(this, passedArgs); if (Outds.EntitiesNames.Count() == 0) { Outds.GetEntitesList(); } tot = Outds.EntitiesNames.Count(); foreach (string item in Outds.EntitiesNames) { cur += 1; string SourceEntityName = item; if (Outds.CheckEntityExist(SourceEntityName) == false) { Outds.CreateEntityAs(Outds.GetEntityStructure(SourceEntityName, false)); ((BackgroundWorker)sender).ReportProgress(cur); if (BackgroundWorker.CancellationPending) { break; } } } e.Result = DMEEditor.ErrorObject; }; BackgroundWorker.RunWorkerCompleted += (sender, eventArgs) => { // do something on the UI thread, like // update status or display "result" IDataWorkFlowEventArgs passedArgs = new IDataWorkFlowEventArgs(); ObjectItem item = new ObjectItem(); item.obj = eventArgs; item.Name = "backgroundworkerended"; passedArgs.Objects.Add(item); WorkFlowStepEnded?.Invoke(this, passedArgs); DMEEditor.AddLogMessage("End of Copy Entity Action ", "Success in Coping entity " + cur + " out of " + tot, DateTime.Now, tot, "", Errors.Ok); DMEEditor.AddLogMessage("Copy Entity Action ", "Success in Coping entity " + cur + " out of " + tot, DateTime.Now, tot, "", Errors.Ok); }; BackgroundWorker.RunWorkerAsync(); return(DMEEditor.ErrorObject); }
public IErrorsInfo PerformAction() { try { //----------- Chceck if both Source and Target Exist ----- if (InTableParameters.Count > 0) { if (OutTableParameters.Count > 0) { Inds = DMEEditor.GetDataSource(InTableParameters[0].DatasourceName); if (Inds == null) { string errmsg = "Error In DataSource exists "; ErrorObject.Flag = Errors.Failed; ErrorObject.Message = errmsg; logger.WriteLog(errmsg); } else { Outds = DMEEditor.GetDataSource(OutTableParameters[0].DatasourceName); if (Outds == null) { string errmsg = "Error Out DataSource exists "; ErrorObject.Flag = Errors.Failed; ErrorObject.Message = errmsg; logger.WriteLog(errmsg); } else //---- Everything Checks OK we can Procceed with Copy { string SourceEntityName = InTableParameters[0].CurrentEntity; if (Outds.CheckEntityExist(SourceEntityName) == false) { Outds.CreateEntityAs(Inds.GetEntityStructure(SourceEntityName, false)); // DMEEditor.viewEditor.AddTableToDataView } else { string errmsg = "Entity already Exist at Destination"; ErrorObject.Flag = Errors.Failed; ErrorObject.Message = errmsg; logger.WriteLog(errmsg); } } } } else { string errmsg = "Error No Target Table Data exist "; ErrorObject.Flag = Errors.Failed; ErrorObject.Message = errmsg; logger.WriteLog(errmsg); } } else { string errmsg = "Error No Source Table Data exist "; ErrorObject.Flag = Errors.Failed; ErrorObject.Message = errmsg; logger.WriteLog(errmsg); } } catch (Exception ex) { ErrorObject.Flag = Errors.Failed; ErrorObject.Ex = ex; logger.WriteLog($"Error in Copying Table ({ex.Message})"); } return(ErrorObject); }
private IErrorsInfo RunCopyDataBackWorker() { int tot = 0; int cur = 0; BackgroundWorker = new BackgroundWorker { WorkerSupportsCancellation = true, WorkerReportsProgress = true }; BackgroundWorker.WorkerReportsProgress = true; BackgroundWorker.ProgressChanged += (sender, eventArgs) => { IDataWorkFlowEventArgs passedArgs = new IDataWorkFlowEventArgs(); ObjectItem item = new ObjectItem(); item.obj = eventArgs; item.Name = "backgroundworkerprogress"; passedArgs.Objects.Add(item); WorkFlowStepRunning?.Invoke(this, passedArgs); DMEEditor.RaiseEvent(this, passedArgs); DMEEditor.AddLogMessage("Copy Data Action ", "Success in Copying Data " + eventArgs.ProgressPercentage + " out of " + tot, DateTime.Now, eventArgs.ProgressPercentage, "", Errors.Ok); }; BackgroundWorker.DoWork += (sender, e) => { IDataWorkFlowEventArgs passedArgs = new IDataWorkFlowEventArgs(); ObjectItem item1 = new ObjectItem(); item1.obj = e; item1.Name = "backgroundworkerstarted"; passedArgs.Objects.Add(item1); WorkFlowStepStarted?.Invoke(this, passedArgs); // OutData = await Inds.GetEntityDataAsTableAsync(OutParameters[0].Parameter, " 1=2 "); if (InParameters[1] != null) { if (InParameters[1].Objects != null) { List <string> ents = (List <string>)InParameters[1].Objects.Where(c => c.Name == "ENTITIES").FirstOrDefault().obj; if (ents != null) { EntitesNames = ents; } } } if (EntitesNames == null || EntitesNames.Count == 0) { if (Inds.EntitiesNames.Count() == 0) { Inds.GetEntitesList(); } EntitesNames = Inds.EntitiesNames; } //-------------------------------------------------- DMEEditor.ErrorObject.Flag = Errors.Ok; foreach (string item in EntitesNames) { cur += 1; var t = Task.Run <object>(() => { return(Inds.RunQuery(item)); }); t.Wait(); InData = t.Result; if (!Outds.CheckEntityExist(item)) { Outds.CreateEntityAs(Inds.GetEntityStructure(item, true)); } var t1 = Task.Run <IErrorsInfo>(() => { return(Outds.UpdateEntity(item, InData)); }); t1.Wait(); DMEEditor.ErrorObject = t1.Result; ((BackgroundWorker)sender).ReportProgress(cur); if (BackgroundWorker.CancellationPending) { break; } } //-------------------------------------------------- e.Result = ErrorObject; }; BackgroundWorker.RunWorkerCompleted += (sender, eventArgs) => { // do something on the UI thread, like // update status or display "result" IDataWorkFlowEventArgs passedArgs = new IDataWorkFlowEventArgs(); ObjectItem item = new ObjectItem(); item.obj = eventArgs; item.Name = "backgroundworkerended"; passedArgs.Objects.Add(item); WorkFlowStepEnded?.Invoke(this, passedArgs); DMEEditor.AddLogMessage("End of Copy Entity Action ", "Success in Coping entity " + cur + " out of " + tot, DateTime.Now, tot, "", Errors.Ok); DMEEditor.AddLogMessage("Copy Entity Action ", "Success in Coping entity " + cur + " out of " + tot, DateTime.Now, tot, "", Errors.Ok); }; BackgroundWorker.RunWorkerAsync(); return(ErrorObject); }