Exemple #1
0
        protected override IEnumerable <IFreeDocument> InternalTransformManyData(IFreeDocument document)
        {
            int itemPerPage = 1;
            int total       = 1;
            int min         = 1;
            var col         = string.IsNullOrEmpty(NewColumn) ? Column : NewColumn;

            if (int.TryParse(document.Query(ItemPerPage), out itemPerPage) &&
                int.TryParse(document[Column].ToString(), out total) && int.TryParse(document.Query(MinValue), out min))
            {
                if (itemPerPage == 0)
                {
                    itemPerPage = 1;
                }
                var remainder = total % itemPerPage;

                int totalp = total / itemPerPage;
                if (remainder != 0)
                {
                    totalp += 1;
                }
                for (int i = min; i < min + totalp; i += 1)
                {
                    var doc = document.Clone();
                    doc[col] = i;
                    yield return(doc);
                }
            }
        }
Exemple #2
0
        public IEnumerable <IFreeDocument> TransformManyData(IEnumerable <IFreeDocument> datas)
        {
            foreach (var data in datas)
            {
                if (IsCycle)
                {
                    IFreeDocument newdata = data;
                    while (string.IsNullOrEmpty(newdata[Column].ToString()) == false)
                    {
                        var result = etl.Generate(process, IsExecute, new List <IFreeDocument> {
                            newdata.Clone()
                        }).FirstOrDefault();
                        if (result == null)
                        {
                            break;
                        }
                        yield return(result.Clone());

                        newdata = result;
                    }
                }
                else
                {
                    var result = etl.Generate(process, IsExecute, new List <IFreeDocument> {
                        data.Clone()
                    });
                    foreach (var item in result)
                    {
                        yield return(item.MergeQuery(data, NewColumn));
                    }
                }
            }
        }
Exemple #3
0
        public void AddErrorLog(IFreeDocument item, Exception ex, IColumnProcess process)
        {
            if (string.IsNullOrEmpty(errorLogName))
            {
                return;
            }
            var param = item.Clone() as FreeDocument;

            param["__SysObjectID"] = process.ObjectID;
            param["__SysETL"]      = (process as ToolBase)?.Father.Name;
            param["__SysERROR"]    = ex.Message;
            param["__SysTime"]     = DateTime.Now.ToString();
            ControlExtended.UIInvoke(() =>
            {
                if (ConfigFile.GetConfig <DataMiningConfig>().IsAddErrorCollection)
                {
                    if (errorCollection == null)
                    {
                        errorCollection = new DataCollection()
                        {
                            Name = errorLogName
                        };
                        DataManager.AddDataCollection(errorCollection);
                    }
                    errorCollection?.ComputeData.Add(param);
                    errorCollection?.OnPropertyChanged("Count");
                }
                else
                {
                    XLogSys.Print.Error(string.Format(GlobalHelper.Get("key_208"), process.Column, process.TypeName, ex));
                }
            });
        }
Exemple #4
0
        public object TransformData(IFreeDocument data)
        {
            var result = func(new List <IFreeDocument> {
                data.Clone()
            }).FirstOrDefault();

            data.AddRange(result);
            return(null);
        }
Exemple #5
0
 public object TransformData(IFreeDocument data)
 {
     var result = func(new List<IFreeDocument> {data.Clone()}).FirstOrDefault();
     data.AddRange(result);
     return null;
 }