示例#1
0
 /// <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);
        }
示例#4
0
        /// <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;
 }