/// <summary> /// Set factor field enums for specified locale. /// </summary> /// <param name="factorFieldEnums">Factor field enums.</param> /// <param name="locale">Locale.</param> protected override void SetFactorFieldEnums(FactorFieldEnumList factorFieldEnums, ILocale locale) { lock (FactorFieldEnums) { FactorFieldEnums[locale.ISOCode] = factorFieldEnums; } }
/// <summary> /// Convert a WebFactorField into an IFactorField instance. /// </summary> /// <param name="userContext"> /// Information about the user that makes this method call. /// </param> /// <param name="factorDataType">Factor data type that this factor field belongs to.</param> /// <param name="webFactorField">A WebFactorField instance.</param> /// <param name="factorFieldEnums">List of factor field enumerations.</param> /// <returns>An IFactorField instance.</returns> private IFactorField GetFactorField(IUserContext userContext, IFactorDataType factorDataType, WebFactorField webFactorField, FactorFieldEnumList factorFieldEnums) { Int32 factorFieldIndex; switch (webFactorField.DatabaseFieldName) { case "tal1": factorFieldIndex = 0; break; case "tal2": factorFieldIndex = 1; break; case "tal3": factorFieldIndex = 2; break; case "text1": factorFieldIndex = 3; break; case "text2": factorFieldIndex = 4; break; default: throw new ApplicationException("Unknown database field name = " + webFactorField.DatabaseFieldName); } IFactorField factorField = new FactorField { DataContext = GetDataContext(userContext), DatabaseFieldName = webFactorField.DatabaseFieldName, FactorDataType = factorDataType, Id = webFactorField.Id, Index = factorFieldIndex, Information = webFactorField.Information, IsMain = webFactorField.IsMain, IsSubstantial = webFactorField.IsSubstantial, Label = webFactorField.Label, Size = webFactorField.Size, Type = CoreData.FactorManager.GetFactorFieldType(userContext, webFactorField.TypeId), Unit = webFactorField.Unit }; if (webFactorField.IsEnumField) { factorField.Enum = factorFieldEnums.Get(webFactorField.EnumId); } return(factorField); }
/// <summary> /// Get factor field enums for specified locale. /// </summary> /// <param name="locale">Locale.</param> /// <returns>Factor field enums for specified locale.</returns> protected virtual FactorFieldEnumList GetFactorFieldEnums(ILocale locale) { FactorFieldEnumList factorFieldEnums = null; if (FactorFieldEnums.ContainsKey(locale.ISOCode)) { factorFieldEnums = (FactorFieldEnumList)(FactorFieldEnums[locale.ISOCode]); } return(factorFieldEnums); }
/// <summary> /// Get factor field enums for specified locale. /// </summary> /// <param name="locale">Locale.</param> /// <returns>Factor field enums for specified locale.</returns> protected override FactorFieldEnumList GetFactorFieldEnums(ILocale locale) { FactorFieldEnumList factorFieldEnums = null; lock (FactorFieldEnums) { if (FactorFieldEnums.ContainsKey(locale.ISOCode)) { factorFieldEnums = (FactorFieldEnumList)(FactorFieldEnums[locale.ISOCode]); } } return(factorFieldEnums); }
/// <summary> /// Convert a list of WebFactorDataType instances /// to a FactorDataTypeList. /// </summary> /// <param name="userContext"> /// Information about the user that makes this method call. /// </param> /// <param name="webFactorDataTypes">List of WebFactorDataType instances.</param> /// <returns>Factor data types.</returns> private FactorDataTypeList GetFactorDataTypes(IUserContext userContext, List <WebFactorDataType> webFactorDataTypes) { FactorDataTypeList factorDataTypes; FactorFieldEnumList factorFieldEnums = CoreData.FactorManager.GetFactorFieldEnums(userContext); factorDataTypes = null; if (webFactorDataTypes.IsNotEmpty()) { factorDataTypes = new FactorDataTypeList(); foreach (WebFactorDataType webFactorDataType in webFactorDataTypes) { factorDataTypes.Add(GetFactorDataType(userContext, webFactorDataType, factorFieldEnums)); } factorDataTypes.Sort(); } return(factorDataTypes); }
/// <summary> /// Convert a list of web factor field enumeration instances /// to a list of factor field enumeration instances. /// </summary> /// <param name="userContext"> /// Information about the user that makes this method call. /// </param> /// <param name="webFactorFieldEnums">List of factor field enumeration instances.</param> /// <returns>Factor field enumerations.</returns> private FactorFieldEnumList GetFactorFieldEnums(IUserContext userContext, List <WebFactorFieldEnum> webFactorFieldEnums) { FactorFieldEnumList factorFieldEnums; factorFieldEnums = null; if (webFactorFieldEnums.IsNotEmpty()) { factorFieldEnums = new FactorFieldEnumList(); foreach (WebFactorFieldEnum webFactorFieldEnum in webFactorFieldEnums) { factorFieldEnums.Add(GetFactorFieldEnum(userContext, webFactorFieldEnum)); } factorFieldEnums.Sort(); foreach (IFactorFieldEnum factorFieldEnum in factorFieldEnums) { factorFieldEnum.Values.Sort(); } } return(factorFieldEnums); }
/// <summary> /// Convert a WebFactorDataType instance into /// an IFactorDataType instance. /// </summary> /// <param name="userContext"> /// Information about the user that makes this method call. /// </param> /// <param name="webFactorDataType">A WebFactorDataType instance.</param> /// <param name="factorFieldEnumerations">List of factor field enumerations.</param> /// <returns>An IFactorDataType instance.</returns> private IFactorDataType GetFactorDataType(IUserContext userContext, WebFactorDataType webFactorDataType, FactorFieldEnumList factorFieldEnumerations) { IFactorDataType factorDataType = new FactorDataType { DataContext = GetDataContext(userContext), Definition = webFactorDataType.Definition, Id = webFactorDataType.Id, Name = webFactorDataType.Name }; FactorFieldList fields = new FactorFieldList(); foreach (WebFactorField webFactorField in webFactorDataType.Fields) { fields.Add(GetFactorField(userContext, factorDataType, webFactorField, factorFieldEnumerations)); } factorDataType.Fields = fields; int factorFieldMaxCount = CoreData.FactorManager.GetFactorFieldMaxCount(); factorDataType.FieldArray = new IFactorField[factorFieldMaxCount]; for (int i = 0; i < factorFieldMaxCount; i++) { factorDataType.FieldArray[i] = null; } foreach (IFactorField field in factorDataType.Fields) { factorDataType.FieldArray[field.Index] = field; } return(factorDataType); }
/// <summary> /// Set factor field enums for specified locale. /// </summary> /// <param name="factorFieldEnums">Factor field enums.</param> /// <param name="locale">Locale.</param> protected virtual void SetFactorFieldEnums(FactorFieldEnumList factorFieldEnums, ILocale locale) { FactorFieldEnums[locale.ISOCode] = factorFieldEnums; }