Exemple #1
0
 protected RunLotteryAbstractJob()
 {
     PreInitialize();
     LastStart                     = DateTime.Now;
     _lotteryQueryService          = ObjectContainer.Resolve <ILotteryQueryService>();
     _lotteryFinalDataQueryService = ObjectContainer.Resolve <ILotteryFinalDataQueryService>();
     _commandService               = ObjectContainer.Resolve <ICommandService>();
     _lotteryDataQueryService      = ObjectContainer.Resolve <ILotteryDataQueryService>();
     _lotteryInfo                  = _lotteryQueryService.GetLotteryInfoByCode(_lotteryCode);
     _timeRuleManager              = new TimeRuleManager(_lotteryInfo);
     _lotteryFinalData             = _lotteryFinalDataQueryService.GetFinalData(_lotteryInfo.Id);
     _dataUpdateItems              = DataUpdateContext.GetDataUpdateItems(_lotteryInfo.Id);
     _isStart = true;
     PostinItialize();
 }
Exemple #2
0
        /// <summary>
        /// 新增数据
        /// </summary>
        /// <typeparam name="T">要新增的数据类型</typeparam>
        /// <param name="newitem">要新增的数据</param>
        /// <param name="noty">新增数据的通知</param>
        /// <returns>返回新增数据的上下文</returns>
        protected DataUpdateContext AddNewData <T>(T newitem, IUpdateDataNoty noty)
        {
            CheckDataModelIsCanUpdate <T>();
            DataUpdateContext dc = new DataUpdateContext()
            {
                CheckRangle    = FieldSelectRange.All,
                UpdateRangle   = FieldSelectRange.All,
                Data           = newitem,
                ModalState     = ModalState.AddNew,
                ModalType      = typeof(T),
                UpdateDataNoty = noty
            };

            AddUpdateContext(dc);
            return(dc);
        }
Exemple #3
0
        /// <summary>
        /// 通过主键值删除数据
        /// </summary>
        /// <typeparam name="T">要删除的数据类型</typeparam>
        /// <param name="id">要删除的数据的主键值</param>
        /// <param name="noty">删除数据的通知</param>
        /// <returns>返回删除数据的上下文</returns>
        protected DataUpdateContext DeleteDataById <T>(long id, IUpdateDataNoty noty)
            where T : class, IDataId, new()
        {
            CheckDataModelIsCanUpdate <T>();
            T delitem = new T();

            delitem.Id = id;
            DataUpdateContext dc = new DataUpdateContext()
            {
                Data           = delitem,
                ModalState     = ModalState.Delete,
                ModalType      = typeof(T),
                UpdateDataNoty = noty
            };

            AddUpdateContext(dc);
            return(dc);
        }
        public void Test()
        {
            const string NAME = "Asset";

            var accessor = new DataAccess(APPLICATION_NAME);
            var schema   = accessor.Schema.Parse(NAME, "*, Principal{*, Department{*, Managers{*}}}", typeof(Asset));

            var context = new DataUpdateContext(accessor,
                                                NAME,           //name
                                                false,          //isMultiple
                                                GetAsset(1001), //data
                                                null,           //Condition.Equal("AssetId", 1001), //condition
                                                schema          //schema
                                                );

            var statements = context.Build().ToArray();

            Assert.NotNull(statements);
            Assert.NotEmpty(statements);

            var command = context.Session.Build(statements[0]);

            Assert.NotNull(command);
            Assert.NotNull(command.CommandText);
            Assert.True(command.CommandText.Length > 0);

            foreach (var statement in statements)
            {
                if (statement.HasSlaves)
                {
                    foreach (var slave in statement.Slaves)
                    {
                        var cmd = context.Session.Build(slave);
                    }
                }
            }

            System.Diagnostics.Debug.WriteLine(command.CommandText);
        }
Exemple #5
0
        /// <summary>
        /// 修改数据
        /// </summary>
        /// <typeparam name="T">要修改的数据类型</typeparam>
        /// <param name="updateitem">要修改的数据</param>
        /// <param name="updaterangle">要修改的数据的字段范围</param>
        /// <param name="updatefieldnames">updaterangle指定的范围的字段数组</param>
        /// <param name="noty">修改数据的通知</param>
        /// <returns>返回修改数据的上下文</returns>
        protected DataUpdateContext UpdateData <T>(T updateitem, FieldSelectRange updaterangle, IEnumerable <string> updatefieldnames, IUpdateDataNoty noty)
        {
            CheckDataModelIsCanUpdate <T>();
            DataUpdateContext dc = new DataUpdateContext()
            {
                CheckRangle      = updaterangle,
                CheckFieldNames  = updatefieldnames,
                UpdateRangle     = updaterangle,
                UpdateFieldNames = updatefieldnames,
                Data             = updateitem,
                ModalState       = ModalState.Update,
                ModalType        = typeof(T),
                UpdateDataNoty   = noty
            };
            string softdelKey = typeof(T).GetDataModel().GetSoftDeleteFieldName();

            if (!string.IsNullOrEmpty(softdelKey))
            {
                switch (updaterangle)
                {
                case FieldSelectRange.All:
                {
                    dc.CheckRangle      = FieldSelectRange.IgnoreFields;
                    dc.CheckFieldNames  = new string[] { softdelKey };
                    dc.UpdateRangle     = FieldSelectRange.IgnoreFields;
                    dc.UpdateFieldNames = new string[] { softdelKey };
                    break;
                }

                case FieldSelectRange.IgnoreFields:
                {
                    IEnumerable <string> x = new string[] { softdelKey };
                    if (updatefieldnames != null)
                    {
                        if (updatefieldnames.FirstOrDefault(f => string.Equals(f, softdelKey, StringComparison.OrdinalIgnoreCase)) == null)
                        {
                            x = x.Union(updatefieldnames);
                        }
                        else
                        {
                            x = updatefieldnames;
                        }
                    }
                    dc.CheckFieldNames  = x;
                    dc.UpdateFieldNames = x;
                    break;
                }

                case FieldSelectRange.OnlyFields:
                {
                    if (updatefieldnames != null)
                    {
                        IEnumerable <string> x = updatefieldnames.Where(f => !string.Equals(f, softdelKey, StringComparison.OrdinalIgnoreCase)).ToArray();
                        dc.CheckFieldNames  = x;
                        dc.UpdateFieldNames = x;
                    }
                    break;
                }
                }
            }
            AddUpdateContext(dc);
            return(dc);
        }
Exemple #6
0
 public static ENodeConfiguration SetUpDataUpdateItems(this ENodeConfiguration enodeConfiguration)
 {
     DataUpdateContext.Initialize();
     return(enodeConfiguration);
 }