/// <summary> /// Gets config schemes object with given ID. /// </summary> /// <param name="schemeId">ID of scheme.</param> /// <returns>ConfigSchemes object.</returns> private DataModel.ConfigSchemes _GetConfigSchemeObject(Guid schemeId) { // Get full entity scheme name. string entitySet = ContextHelper.GetFullEntitySetName(this, SCHEMES_ENTITY_SET); // Create entity key. EntityKey key = new EntityKey(entitySet, SCHEMES_KEY, schemeId); DataModel.ConfigSchemes scheme = null; object entity = null; // Try to get object by key. if (TryGetObjectByKey(key, out entity)) { scheme = entity as DataModel.ConfigSchemes; } if (scheme == null) { throw new DataException(); } return(scheme); }
private string _GetConfigScheme(Guid schemeId) { string entitySet = ContextHelper.GetFullEntitySetName(this, SCHEMES_ENTITY_SET); EntityKey key = new EntityKey(entitySet, SCHEMES_KEY, schemeId); string schemeXML = null; object entity = null; if (TryGetObjectByKey(key, out entity)) { DataModel.ConfigSchemes scheme = entity as DataModel.ConfigSchemes; if (scheme != null) { schemeXML = scheme.Value; } } if (schemeXML == null) { throw new DataException(); } return(schemeXML); }
/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////////// /// <summary> /// Explicit initialization. Must be called on creating new project. /// </summary> public void PostInit(CapacitiesInfo capacitiesInfo, OrderCustomPropertiesInfo orderCustomPropertiesInfo) { Debug.Assert(!_isInited); // init once // add scheme objects DataModel.ConfigSchemes scheme = DataModel.ConfigSchemes.CreateConfigSchemes(SCHEME_ID_CAPACITIES); scheme.Name = SCHEME_NAME_CAPACITIES; scheme.Value = ConfigDataSerializer.SerializeCapacitiesInfo(capacitiesInfo); AddObject(SCHEMES_ENTITY_SET, scheme); scheme = DataModel.ConfigSchemes.CreateConfigSchemes(SCHEME_ID_ORDERPROPERTIES); scheme.Name = SCHEME_NAME_ORDERPROPERTIES; scheme.Value = ConfigDataSerializer.SerializeOrderCustomPropertiesInfo(orderCustomPropertiesInfo); AddObject(SCHEMES_ENTITY_SET, scheme); base.SaveChanges(); // create object factory ObjectInitData initData = new ObjectInitData(); initData.CapacitiesInfo = capacitiesInfo; initData.OrderCustomPropertiesInfo = orderCustomPropertiesInfo; _fact = new DataObjectFactory(initData); _objInitData = initData; // Attach handler for SavingChanges event. this.SavingChanges += new EventHandler(DataObjectContext_SavingChanges); _isInited = true; }
/// <summary> /// Updates order custom properties info in database. /// </summary> /// <param name="propertiesInfo">Order custom properrties info.</param> public void UpdateCustomOrderPropertiesInfo(OrderCustomPropertiesInfo propertiesInfo) { Debug.Assert(propertiesInfo != null); // Get custom order properties config scheme. DataModel.ConfigSchemes customOrderPropertiesScheme = _GetConfigSchemeObject(SCHEME_ID_ORDERPROPERTIES); // Update value of custom order properties database field. customOrderPropertiesScheme.Value = ConfigDataSerializer.SerializeOrderCustomPropertiesInfo(propertiesInfo); // Update init data. _objInitData.OrderCustomPropertiesInfo = propertiesInfo; // Save changes to the database. base.SaveChanges(); }