Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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)
                        {
                            string errmsg = "Error In DataSource does not exists ";
                            ErrorObject.Flag    = Errors.Failed;
                            ErrorObject.Message = errmsg;
                            DMEEditor.AddLogMessage("Error", errmsg, DateTime.Now, -1, InParameters[0].DatasourceName, Errors.Failed);
                        }
                        else
                        {
                            Outds = DMEEditor.GetDataSource(OutParameters[0].DatasourceName);
                            if (Outds == null)
                            {
                                string errmsg = "Error Out DataSource does not exists ";
                                ErrorObject.Flag    = Errors.Failed;
                                ErrorObject.Message = errmsg;
                                DMEEditor.AddLogMessage("Error", errmsg, DateTime.Now, -1, OutParameters[0].DatasourceName, Errors.Failed);
                            }
                            else //---- Everything Checks OK we can Procceed with Copy
                            {
                                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;
                                }


                                // tot = EntitesNames.Count();
                                //  List<LScript> sc = Outds.GetCreateEntityScript(EntitesNames);
                                //   Outds.RunScripts(sc);
                                // ErrorObject =RunCreateEntityBackWorker();
                            }
                        }
                    }
                    else
                    {
                        DMEEditor.AddLogMessage("Fail", $"Error No Target Table Data exist  {OutParameters[0].DatasourceName}", DateTime.Now, -1, "", Errors.Failed);
                    }
                }
                else
                {
                    string errmsg = "Error No Source Table Data exist ";
                    ErrorObject.Flag    = Errors.Failed;
                    ErrorObject.Message = errmsg;
                    DMEEditor.AddLogMessage("Fail", $"Error No Source Table Data exist  {InParameters[0].DatasourceName}", DateTime.Now, -1, "", Errors.Failed);
                }
            }
            catch (Exception ex)
            {
                DMEEditor.AddLogMessage("Fail", $"Error in Copying  {OutParameters[0].DatasourceName} to  {OutParameters[0].DatasourceName}", DateTime.Now, -1, "", Errors.Failed);
            }

            return(ErrorObject);
        }
Пример #4
0
        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);
        }
Пример #5
0
        private IErrorsInfo RunCreateEntityBackWorker()
        {
            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);
            };
            //---- Do Work here
            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 (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;
                }


                tot = EntitesNames.Count();
                //    List<LScript> sc =Outds.GetCreateEntityScript(EntitesNames);
                //  Outds.RunScripts(sc);
                foreach (string item in EntitesNames)
                {
                    cur += 1;
                    string SourceEntityName = item;

                    //if (Outds.CheckEntityExist(SourceEntityName) == false)
                    //{
                    //    Outds.CreateEntityAs(Inds.GetEntityStructure(SourceEntityName,false));
                    //    ((BackgroundWorker)sender).ReportProgress(cur);
                    //    if (BackgroundWorker.CancellationPending)
                    //    {
                    //        break;
                    //    }
                    //}
                }
                e.Result = ErrorObject;
            };
            //----- Worker finish
            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);
        }