internal static PricingVariableValue CreateFromDbRecord(dynamic r)
 {
     return(new PricingVariableValue {
         PricingVariableID = r.PricingVariableID
         , Value = r.Value
         , ProviderNumberIncluded = r.ProviderNumberIncluded
         , ProviderMinNumberAllowed = r.ProviderMinNumberAllowed
         , ProviderMaxNumberAllowed = r.ProviderMaxNumberAllowed
         , Def = PricingVariableDefinition.CreateFromDbRecord(r)
     });
 }
 private static void LoadNew(PricingVariables data, int positionID, int pricingTypeID)
 {
     using (var db = Database.Open("sqlloco"))
     {
         var vars = db.Query(sqlGetVariablesForNewPackage, positionID, pricingTypeID,
                             LcData.GetCurrentLanguageID(), LcData.GetCurrentCountryID());
         foreach (var r in vars)
         {
             var varValue = new PricingVariableValue {
                 PricingVariableID          = r.PricingVariableID
                 , Value                    = null
                 , ProviderNumberIncluded   = null
                 , ProviderMinNumberAllowed = null
                 , ProviderMaxNumberAllowed = null
                 , Def = PricingVariableDefinition.CreateFromDbRecord(r)
             };
             data[r.InternalName] = varValue;
             // Update index
             data.idIndex[varValue.PricingVariableID] = varValue;
         }
     }
 }
        /// <summary>
        /// Get all records from database,
        /// it creates the instances of PricingVariableDefinition,
        /// return it in a collection indexed by the Key
        /// </summary>
        /// <param name="dbrecords"></param>
        /// <returns></returns>
        private static Dictionary <PrimaryKey, PricingVariableDefinition> FetchFromDB()
        {
            dynamic dbrecords;

            using (var db = Database.Open("sqlloco"))
            {
                dbrecords = db.Query(@"SELECT * FROM PricingVariableDefinition");
            }
            var ret = new Dictionary <PrimaryKey, PricingVariableDefinition>();

            foreach (var record in dbrecords)
            {
                var pk = new PrimaryKey(
                    record.PricingVariableID
                    , record.LanguageID
                    , record.CountryID
                    , record.PositionID
                    , record.PricingTypeID
                    );
                ret[pk] = new PricingVariableDefinition {
                    PricingVariableID          = record.PricingVariableID
                    , InternalName             = record.InternalName
                    , IsProviderVariable       = record.IsProviderVariable
                    , IsCustomerVariable       = record.IsCustomerVariable
                    , DataType                 = record.DataType
                    , VariableLabel            = record.VariableLabel
                    , VariableLabelPopUp       = record.VariableLabelPopUp
                    , VariableNameSingular     = record.VariableNameSingular
                    , VariableNamePlural       = record.VariableNamePlural
                    , NumberIncludedLabel      = record.NumberIncludedLabel
                    , NumberIncludedLabelPopUp = record.NumberIncludedLabelPopup
                    , CalculateWithVariableID  = record.CalculateWithVariableID
                };
            }
            return(ret);
        }