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(); }
/// <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); }
/// <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); }
/// <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); }
public static ENodeConfiguration SetUpDataUpdateItems(this ENodeConfiguration enodeConfiguration) { DataUpdateContext.Initialize(); return(enodeConfiguration); }