// Token: 0x060011CE RID: 4558 RVA: 0x0004A490 File Offset: 0x00048690 public Exception InitializeHealthInfoFromXML() { DbCopyHealthInfoInternalTable.Tracer.TraceDebug <string>((long)this.GetHashCode(), "InitializeHealthInfoFromXML: Initializing the health info table from file '{0}'", this.m_filePath); HealthInfoPersisted healthInfoPersisted; Exception ex = DataContractSerializeHelper.DeserializeFromXmlFile <HealthInfoPersisted>(this.m_filePath, out healthInfoPersisted); if (ex == null) { DbCopyHealthInfoInternalTable.Tracer.TraceDebug((long)this.GetHashCode(), "InitializeHealthInfoFromXML: Successfully deserialized the XML file."); DateTime lastUpdateTimeUtc = healthInfoPersisted.GetLastUpdateTimeUtc(); TimeSpan timeSpan = DateTimeHelper.SafeSubtract(DateTime.UtcNow, lastUpdateTimeUtc); if (timeSpan > DatabaseHealthTracker.LastUpdateTimeDiffThreshold) { DbCopyHealthInfoInternalTable.Tracer.TraceError <TimeSpan, TimeSpan, DateTime>((long)this.GetHashCode(), "InitializeHealthInfoFromXML: The file was last modified too long ago at '{2}'! lastUpdateTimeDiff = '{0}', Threshold = '{1}'", timeSpan, DatabaseHealthTracker.LastUpdateTimeDiffThreshold, lastUpdateTimeUtc); ReplayCrimsonEvents.DHTInitFromFileTooOld.Log <DateTime, TimeSpan, TimeSpan>(lastUpdateTimeUtc, timeSpan, DatabaseHealthTracker.LastUpdateTimeDiffThreshold); } this.InitializeFromHealthInfoPersisted(healthInfoPersisted); return(null); } this.CreateTimeUtc = DateTime.UtcNow; this.IsFileNotReadAtInitialization = true; if (ex is FileNotFoundException || ex is DirectoryNotFoundException) { DbCopyHealthInfoInternalTable.Tracer.TraceDebug((long)this.GetHashCode(), "InitializeHealthInfoFromXML: Initialization of health info table will be skipped because the XML file was not found."); DbCopyHealthInfoInternalTable.Tracer.TraceDebug <DateTime>((long)this.GetHashCode(), "A new health table is possibly being created. CreateTimeUtc = {0}", this.CreateTimeUtc); ReplayCrimsonEvents.DHTInitFileNotFound.Log <string>(this.m_filePath); return(null); } DbCopyHealthInfoInternalTable.Tracer.TraceError <Exception>((long)this.GetHashCode(), "InitializeHealthInfoFromXML: Initialization of health info table failed because the XML file could not be deserialized. Error: {0}", ex); return(ex); }
/// <summary> /// 为当前表单绑定的实体对象注入默认值. /// </summary> /// <param name="currentEntity">当前表单绑定的实体对象</param> /// <param name="clientRuleCfg">配置</param> protected void PopulateDefaultValue(object currentEntity, IClientRuleConfig clientRuleCfg) { var filePath = GetDefaultValueFilePath(currentEntity); // 读取需要保存默认值的列 var defaultValueColumns = clientRuleCfg.UIRuleXmlConfigInfo.GetDefaultColumns().Where(kv => kv.Value.SaveDefaultValue).Select(kv => kv.Value).ToList(); //读取编辑列的配置信息 Dictionary <string, MB.WinBase.Common.ColumnEditCfgInfo> editColumnCfg = clientRuleCfg.UIRuleXmlConfigInfo.ColumnsCfgEdit; if (defaultValueColumns.Count > 0) { if (File.Exists(filePath)) { var entity = DataContractSerializeHelper.Deserialize(currentEntity.GetType(), File.ReadAllText(filePath)); foreach (var column in defaultValueColumns) { var value = MyReflection.Instance.InvokePropertyForGet(entity, column.Name); if (value != null) { MyReflection.Instance.InvokePropertyForSet(currentEntity, column.Name, value); } } } } }
// Token: 0x060011CC RID: 4556 RVA: 0x0004A2F0 File Offset: 0x000484F0 public Exception PersistHealthInfoToXml() { DbCopyHealthInfoInternalTable.Tracer.TraceDebug <string>((long)this.GetHashCode(), "DatabaseHealthTracker: Writing out the health info to file '{0}'", this.m_filePath); HealthInfoPersisted toSerialize = this.ConvertToHealthInfoPersisted(); Exception ex = DataContractSerializeHelper.SerializeToXmlFile(toSerialize, this.m_filePath); DbCopyHealthInfoInternalTable.Tracer.TraceDebug <string, Exception>((long)this.GetHashCode(), "DatabaseHealthTracker: Finished writing out the health info to file '{0}'. Exception: {1}", this.m_filePath, ex); return(ex); }
protected override void SerializeAdditionalProperties() { SeedCiFileRequestPayload toSerialize = new SeedCiFileRequestPayload(this.endpoint, this.reason); string str; Exception ex = DataContractSerializeHelper.SerializeToXmlString(toSerialize, out str); if (ex != null) { throw new SeederServerException(ex.Message, ex); } base.Packet.Append(str); }
/// <summary> /// Если недоступен generic-метод /// </summary> /// <param name="reader"></param> /// <param name="type"></param> /// <returns></returns> private object FillFromReader(Type type, IDataReader reader) { Type resType = Nullable.GetUnderlyingType(type) ?? type; if (IsSimple(resType)) { return(ReadSimple(type, reader)); } var res = resType.GetConstructor(new Type[] { }).Invoke(new object[] { }); foreach (var propertyInfo in type.GetProperties()) { var propName = propertyInfo.Name; if (!CheckColumnExists(reader, propName)) { continue; } var dbValue = reader[propName]; if (dbValue is DBNull) { propertyInfo.SetValue(res, null); continue; } bool isJson = propertyInfo.PropertyType == typeof(Dictionary <string, string>); if (isJson) { var dict = DataContractSerializeHelper.DeserializeJson(Convert.ToString(dbValue)); propertyInfo.SetValue(res, dict); } else if (propertyInfo.PropertyType.IsEnum) { var value = Enum.Parse(propertyInfo.PropertyType, Convert.ToString(dbValue)); propertyInfo.SetValue(res, value); } else { Type t = Nullable.GetUnderlyingType(propertyInfo.PropertyType) ?? propertyInfo.PropertyType; if (t.IsEnum) { var value = Enum.Parse(t, Convert.ToString(dbValue)); propertyInfo.SetValue(res, value); } else { object safeValue = Convert.ChangeType(dbValue, t); propertyInfo.SetValue(res, safeValue); } } } return(res); }
internal SeedCiFileRequest2(NetworkChannel channel, byte[] packetContent) : base(channel, NetworkChannelMessage.MessageType.SeedCiFileRequest2, packetContent) { string xml = base.Packet.ExtractString(); SeedCiFileRequestPayload seedCiFileRequestPayload; Exception ex = DataContractSerializeHelper.DeserializeFromXmlString <SeedCiFileRequestPayload>(xml, out seedCiFileRequestPayload); if (ex != null) { ReplayCrimsonEvents.CISeedingSourceBeginFailed.Log <Guid, string, string, Exception>(base.DatabaseGuid, string.Empty, base.Channel.PartnerNodeName, ex); SeederServerContext.ProcessSourceSideException(ex, base.Channel); return; } this.endpoint = seedCiFileRequestPayload.Endpoint; this.reason = seedCiFileRequestPayload.Reason; }
protected void FillParams(IDictionary <string, object> dictionary, DbCommand cmd, Database db) { var inParams = cmd.Parameters.Cast <DbParameter>() .Where(x => x.Direction == ParameterDirection.Input || x.Direction == ParameterDirection.InputOutput) .ToArray(); if (!inParams.Any()) { return; } if (inParams.Count() > dictionary.Count) { throw new Exception("param count"); } foreach (DbParameter parameter in inParams) { string paramName = parameter.ParameterName.Replace("@", ""); var paramValue = dictionary[paramName]; if (paramValue is IEnumerable <string> || paramValue is IEnumerable <int> || paramValue is IEnumerable <KeyValuePair <int, string> > ) { SetCollectionParameterValue(cmd, db, parameter, (IEnumerable)paramValue); } else if (paramValue is Dictionary <string, string> ) { string jsonValue = DataContractSerializeHelper.SerializeJson((Dictionary <string, string>)paramValue); db.SetParameterValue(cmd, paramName, jsonValue); } else { db.SetParameterValue(cmd, paramName, paramValue); } } var outParams = cmd.Parameters.Cast <DbParameter>() .Where(x => x.Direction == ParameterDirection.Output) .ToArray(); foreach (var parameter in outParams) { string paramName = parameter.ParameterName.Replace("@", ""); db.SetParameterValue(cmd, paramName, null); } }
/// <summary> /// 接收消息 /// </summary> /// <param name="message"></param> public static void SetSceneState(Data.ActivityMessage message) { if (message == null) { return; } if (message.MessageType == "ClientOnline") { try { ClientInfo info = DataContractSerializeHelper.DeSerialize <ClientInfo>(message.Content); Obj.SetGroupStateToMap(info, true); } catch { } } if (message.MessageType == "ClientOffline") { ClientInfo info = new ClientInfo() { GroupGuid = message.AssistantInfo }; Obj.SetGroupStateToMap(info, false); } if (message.MessageType == "Task") { Obj.taskData.Begin(); } if (message.MessageType == "TaskExecuteConclusion") { TaskExecuteConclusion info = DataContractSerializeHelper.DeSerialize <TaskExecuteConclusion>(message.Content); Obj.taskData.Begin(); } }
static BaseShopService() { Mapper.CreateMap <Manufacturer, Data.Models.Manufacturer>(); Mapper.CreateMap <Data.Models.Manufacturer, Manufacturer>() .ForMember(x => x.Country, x => x.Ignore()) .ForMember(x => x.CanonicalUrl, x => x.Ignore()) .ForMember(x => x.CreationDate, x => x.Ignore()) .ForMember(x => x.RelativeUrl, x => x.Ignore()) .ForMember(x => x.ParentHeartId, x => x.Ignore()) .ForMember(x => x.BreadcrumbsTitle, x => x.Ignore()) .ForMember(x => x.Noindex, x => x.Ignore()) .ForMember(x => x.Title, x => x.Ignore()) .ForMember(x => x.MetaDescription, x => x.Ignore()) .ForMember(x => x.MetaKeywords, x => x.Ignore()) .ForMember(x => x.Styles, x => x.Ignore()) .ForMember(x => x.Scripts, x => x.Ignore()) .ForMember(x => x.Layout, x => x.Ignore()) .ForMember(x => x.AdditionalHeaders, x => x.Ignore()) .ForMember(x => x.Options, x => x.Ignore()) .ForMember(x => x.State, x => x.Ignore()); Mapper.CreateMap <Spec, Data.Models.Spec>(); Mapper.CreateMap <Data.Models.Spec, Spec>(); Mapper.CreateMap <RoCMS.Data.Models.Country, Country>(); //TODO: перенести в ядро Mapper.CreateMap <Country, RoCMS.Data.Models.Country>(); Mapper.CreateMap <Category, Data.Models.Category>(); Mapper.CreateMap <Data.Models.Category, Category>() .ForMember(x => x.OrderFormSpecs, x => x.Ignore()) .ForMember(x => x.ChildrenCategories, x => x.Ignore()) .ForMember(x => x.ParentCategory, x => x.Ignore()) .ForMember(x => x.CanonicalUrl, x => x.Ignore()) .ForMember(x => x.CreationDate, x => x.Ignore()) .ForMember(x => x.RelativeUrl, x => x.Ignore()) .ForMember(x => x.ParentHeartId, x => x.Ignore()) .ForMember(x => x.BreadcrumbsTitle, x => x.Ignore()) .ForMember(x => x.Noindex, x => x.Ignore()) .ForMember(x => x.Title, x => x.Ignore()) .ForMember(x => x.MetaDescription, x => x.Ignore()) .ForMember(x => x.MetaKeywords, x => x.Ignore()) .ForMember(x => x.Styles, x => x.Ignore()) .ForMember(x => x.Scripts, x => x.Ignore()) .ForMember(x => x.Layout, x => x.Ignore()) .ForMember(x => x.AdditionalHeaders, x => x.Ignore()) .ForMember(x => x.Options, x => x.Ignore()) .ForMember(x => x.State, x => x.Ignore()); Mapper.CreateMap <Data.Models.Category, IdNamePair <int> >() .ForMember(x => x.ID, x => x.MapFrom(y => y.HeartId)) .ForMember(x => x.Name, x => x.MapFrom(y => y.Name)); Mapper.CreateMap <PickupPointInfo, PickUpPoint>(); Mapper.CreateMap <PickUpPoint, PickupPointInfo>(); Mapper.CreateMap <Dimension, Data.Models.Dimension>(); Mapper.CreateMap <Data.Models.Dimension, Dimension>(); Mapper.CreateMap <Pack, Data.Models.Pack>(); Mapper.CreateMap <Data.Models.Pack, Pack>() .ForMember(x => x.Dimension, x => x.Ignore()); Mapper.CreateMap <CompatibleSet, Data.Models.CompatibleSet>(); Mapper.CreateMap <Data.Models.CompatibleSet, CompatibleSet>() .ForMember(x => x.CompatibleGoods, x => x.Ignore()); Mapper.CreateMap <GoodsReview, Data.Models.GoodsReview>(); Mapper.CreateMap <Data.Models.GoodsReview, GoodsReview>() .ForMember(x => x.GoodsItem, x => x.Ignore()); Mapper.CreateMap <GoodsPack, Data.Models.GoodsPack>() .ForMember(x => x.PackId, x => x.MapFrom(y => y.PackInfo.PackId)); Mapper.CreateMap <Data.Models.GoodsPack, GoodsPack>() .ForMember(x => x.PackInfo, x => x.Ignore()); Mapper.CreateMap <SpecValue, GoodsSpec>() .ForMember(x => x.SpecId, x => x.MapFrom(y => y.Spec.SpecId)); Mapper.CreateMap <GoodsSpec, SpecValue>() .ForMember(x => x.Spec, x => x.Ignore()); Mapper.CreateMap <Action, Data.Models.Action>(); Mapper.CreateMap <Data.Models.Action, Action>() .ForMember(x => x.Goods, x => x.Ignore()) .ForMember(x => x.Manufacturers, x => x.Ignore()) .ForMember(x => x.Categories, x => x.Ignore()) .ForMember(x => x.CanonicalUrl, x => x.Ignore()) .ForMember(x => x.CreationDate, x => x.Ignore()) .ForMember(x => x.RelativeUrl, x => x.Ignore()) .ForMember(x => x.ParentHeartId, x => x.Ignore()) .ForMember(x => x.BreadcrumbsTitle, x => x.Ignore()) .ForMember(x => x.Noindex, x => x.Ignore()) .ForMember(x => x.Title, x => x.Ignore()) .ForMember(x => x.MetaDescription, x => x.Ignore()) .ForMember(x => x.MetaKeywords, x => x.Ignore()) .ForMember(x => x.Styles, x => x.Ignore()) .ForMember(x => x.Scripts, x => x.Ignore()) .ForMember(x => x.Layout, x => x.Ignore()) .ForMember(x => x.AdditionalHeaders, x => x.Ignore()) .ForMember(x => x.Options, x => x.Ignore()) .ForMember(x => x.State, x => x.Ignore()); Mapper.CreateMap <GoodsFilter, Data.Models.GoodsFilter>() .ForMember(x => x.WithSubcategories, x => x.MapFrom(y => y.ClientMode ?? false)) .ForMember(x => x.SpecIds, x => x.MapFrom(y => y.SpecIdValues)) .ForMember(x => x.PackIds, x => x.MapFrom(y => y.Packs)); Mapper.CreateMap <Data.Models.Currency, Currency>(); Mapper.CreateMap <Currency, Data.Models.Currency>(); Mapper.CreateMap <RegularCustomerDiscount, RegularClientDiscount>(); Mapper.CreateMap <RegularClientDiscount, RegularCustomerDiscount>(); Mapper.CreateMap <Data.Models.Client, Client>() .ForMember(x => x.Address, x => x.MapFrom(y => DataContractSerializeHelper.Deserialize <Address>(y.Address) ?? new Address())); Mapper.CreateMap <Client, Data.Models.Client>() .ForMember(x => x.Address, x => x.MapFrom(y => DataContractSerializeHelper.SerializeToXmlString(y.Address))); Mapper.CreateMap <PickUpPoint, PickupPointInfo>(); Mapper.CreateMap <PickupPointInfo, PickUpPoint>(); Mapper.CreateMap <GoodsItem, Data.Models.GoodsItem>() .ForMember(x => x.Deleted, x => x.Ignore()) .ForMember(x => x.SearchDescription, x => x.Ignore()); //TODO: повторяется куча полей в списке Mapper.CreateMap <Data.Models.GoodsItem, GoodsItem>() .ForMember(x => x.Images, x => x.Ignore()) .ForMember(x => x.Categories, x => x.Ignore()) .ForMember(x => x.GoodsSpecs, x => x.Ignore()) .ForMember(x => x.Packs, x => x.Ignore()) .ForMember(x => x.CompatibleGoods, x => x.Ignore()) .ForMember(x => x.Actions, x => x.Ignore()) .ForMember(x => x.MainCurrPrice, x => x.Ignore()) .ForMember(x => x.MainCurrDiscountedPrice, x => x.Ignore()) .ForMember(x => x.DisplayPrice, x => x.Ignore()) .ForMember(x => x.HasDiscount, x => x.Ignore()) .ForMember(x => x.Discount, x => x.Ignore()) .ForMember(x => x.DiscountedPrice, x => x.Ignore()) .ForMember(x => x.DisplayDiscountedPrice, x => x.Ignore()) .ForMember(x => x.HasPacks, x => x.Ignore()) .ForMember(x => x.Manufacturer, x => x.Ignore()) .ForMember(x => x.Supplier, x => x.Ignore()) .ForMember(x => x.Currency1, x => x.Ignore()) .ForMember(x => x.BasePack, x => x.Ignore()) .ForMember(x => x.CanonicalUrl, x => x.Ignore()) .ForMember(x => x.Rating, x => x.Ignore()) .ForMember(x => x.CreationDate, x => x.Ignore()) .ForMember(x => x.RelativeUrl, x => x.Ignore()) .ForMember(x => x.ParentHeartId, x => x.Ignore()) .ForMember(x => x.BreadcrumbsTitle, x => x.Ignore()) .ForMember(x => x.Noindex, x => x.Ignore()) .ForMember(x => x.Title, x => x.Ignore()) .ForMember(x => x.MetaDescription, x => x.Ignore()) .ForMember(x => x.MetaKeywords, x => x.Ignore()) .ForMember(x => x.Styles, x => x.Ignore()) .ForMember(x => x.Scripts, x => x.Ignore()) .ForMember(x => x.Layout, x => x.Ignore()) .ForMember(x => x.AdditionalHeaders, x => x.Ignore()) .ForMember(x => x.Categories, x => x.Ignore()) .ForMember(x => x.CanonicalUrl, x => x.Ignore()) .ForMember(x => x.Options, x => x.Ignore()) .ForMember(x => x.State, x => x.Ignore()); Mapper.CreateMap <CartItem, GoodsInOrder>() .ForMember(x => x.OrderId, x => x.Ignore()) .ForMember(x => x.Id, x => x.Ignore()) .ForMember(x => x.Price, x => x.MapFrom(y => y.DiscountedPrice)) .ForMember(x => x.HeartId, x => x.MapFrom(y => y.GoodsItem.HeartId)); Mapper.CreateMap <CartItem, Contract.Models.GoodsInOrder>() .ForMember(x => x.OrderId, x => x.Ignore()) .ForMember(x => x.Id, x => x.Ignore()) .ForMember(x => x.Price, x => x.MapFrom(y => y.DiscountedPrice)) .ForMember(x => x.HeartId, x => x.MapFrom(y => y.GoodsItem.HeartId)) .ForMember(x => x.Pack, x => x.MapFrom(y => y.Pack.PackInfo)) .ForMember(x => x.Goods, x => x.MapFrom(y => y.GoodsItem)); Mapper.CreateMap <RoCMS.Shop.Contract.Models.GoodsInOrder, GoodsInOrder>(); Mapper.CreateMap <GoodsInOrder, RoCMS.Shop.Contract.Models.GoodsInOrder>() .ForMember(x => x.Pack, x => x.Ignore()) .ForMember(x => x.Goods, x => x.Ignore()); Mapper.CreateMap <CartItem, Data.Models.CartItem>(); Mapper.CreateMap <Data.Models.CartItem, CartItem>() .ForMember(x => x.GoodsItem, x => x.Ignore()); Mapper.CreateMap <FavouriteItem, Data.Models.FavouriteItem>(); Mapper.CreateMap <Data.Models.FavouriteItem, FavouriteItem>() .ForMember(x => x.Item, x => x.Ignore()); Mapper.CreateMap <Cart, Data.Models.Cart>(); Mapper.CreateMap <Data.Models.Cart, Cart>() .ForMember(x => x.CartItems, x => x.Ignore()); Mapper.CreateMap <Order, Data.Models.Order>() .ForMember(x => x.Address, x => x.ResolveUsing(y => { var address = new Address() { Appartment = y.Appartment, City = y.City, Street = y.Street, FrontNumber = y.FrontNumber, House = y.House, HouseIndex = y.HouseIndex, Metro = y.Metro, PostCode = y.PostCode, Floor = y.Floor, Intercom = y.Intercom }; string addressString = DataContractSerializeHelper.SerializeToXmlString(address); return(addressString); })); Mapper.CreateMap <Data.Models.Order, Order>() .ConvertUsing(order => { var address = DataContractSerializeHelper.Deserialize <Address>(order.Address); ShipmentType st = Mapper.Map <ShipmentType>(order.ShipmentType); OrderState state = Mapper.Map <OrderState>(order.State); PaymentType pt = Mapper.Map <PaymentType>(order.PaymentType); PaymentState?ps = order.PaymentState.HasValue ? (PaymentState?)Mapper.Map <PaymentState>(order.PaymentState.Value) : null; var result = new Order() { ClientId = order.ClientId, Comment = order.Comment, AdminComment = order.AdminComment, CreationDate = order.CreationDate, OrderId = order.OrderId, ShipmentDate = order.ShipmentDate, ShipmentType = st, State = state, PickUpPointId = order.PickUpPointId, DeliveryPrice = order.DeliveryPrice, TotalDiscount = order.TotalDiscount, PaymentType = pt, PaymentState = ps }; if (address != null) { result.Appartment = address.Appartment; result.City = address.City; result.Street = address.Street; result.FrontNumber = address.FrontNumber; result.House = address.House; result.HouseIndex = address.HouseIndex; result.Metro = address.Metro; result.PostCode = address.PostCode; result.Floor = address.Floor; result.Intercom = address.Intercom; } return(result); }); Mapper.CreateMap <ExportTask, ShopDbExportTask>(); Mapper.CreateMap <ShopDbExportTask, ExportTask>(); Mapper.CreateMap <Contract.Models.MassPriceChangeTask, Data.Models.MassPriceChangeTask>(); Mapper.CreateMap <Data.Models.MassPriceChangeTask, Contract.Models.MassPriceChangeTask>(); Mapper.AssertConfigurationIsValid(); }
/// <summary> /// 保存默认值 /// </summary> /// <param name="bindingSource">当前编辑窗口数据绑定</param> /// <param name="clientRuleCfg">配置</param> protected void SaveDefaultValue(BindingSourceEx bindingSource, IClientRuleConfig clientRuleCfg) { if (bindingSource.Current != null) { // 保存为默认值 var defaultValueColumns = clientRuleCfg.UIRuleXmlConfigInfo.GetDefaultColumns().Where(kv => kv.Value.SaveDefaultValue).Select(kv => kv.Value).ToList(); if (defaultValueColumns.Count > 0) { try { File.WriteAllText(GetDefaultValueFilePath(bindingSource.Current), DataContractSerializeHelper.Serialize(bindingSource.Current.GetType(), bindingSource.Current)); } catch (Exception e) { MessageBox.Show("保存默认值出错." + e.Message); } } } }