public static PricingEveryday GetSamplePricingEveryday(int id)
        {
            var result = new PricingEveryday {
                Id = id + 1
            };

            result.Identity = GetPricingIdentity(_pricingEverydayNames[id], _ownerNames[id]);

            var filterGroups = MockFilterGenerator.GetFilterGroupsComplete();

            result.FilterGroups = new ReactiveList <FilterGroup>(filterGroups);

            //Price lists
            result.PricingModes = GetPricingModes();
            foreach (PricingMode mode in result.PricingModes)
            {
                result.PriceListGroups = GetEverydayPriceListGroups(mode);
            }

            result.KeyPriceListRule = new PricingKeyPriceListRule {
                DollarRangeLower = 10.25M, DollarRangeUpper = 115.00M, RoundingRules = GetRoundingRules()
            };
            result.LinkedPriceListRules = GetLinkedPriceListRules(result);

            var drivers = GetEverydayValueDrivers();

            result.ValueDrivers = new ReactiveList <PricingEverydayValueDriver>(drivers);

            //Value drivers
            PricingEverydayValueDriver keyDriver = result.ValueDrivers.FirstOrDefault(driver => driver.IsKey);

            if (keyDriver != null)
            {
                PricingEverydayKeyValueDriver key = GetEverydayKeyValueDriver(keyDriver);
                result.KeyValueDriver = key;
            }
            var selectedNonKey = result.ValueDrivers.Where(driver => !driver.IsKey && driver.IsSelected);
            var linkedDrivers  = GetEverydayLinkedValueDrivers(selectedNonKey);

            result.LinkedValueDrivers = new ObservableCollection <PricingEverydayLinkedValueDriver>(linkedDrivers);

            //Results
            result.Results = GetEverydayResults();

            //Select default item for display purposes.
            result.SelectedFilterGroup = result.FilterGroups.FirstOrDefault();

            return(result);
        }
        private static PricingEverydayKeyValueDriver GetEverydayKeyValueDriver(PricingEverydayValueDriver sourceDriver)
        {
            var keyDriver = new PricingEverydayKeyValueDriver {
                ValueDriverId = sourceDriver.Id
            };

            foreach (PricingValueDriverGroup group in sourceDriver.Groups)
            {
                var keyDriverGroup = new PricingEverydayKeyValueDriverGroup {
                    ValueDriverGroupId = group.Id, ValueDriverGroupValue = group.Value
                };
                keyDriverGroup.OptimizationRules = GetPriceOptimizationRules();
                keyDriverGroup.MarkupRules       = GetMarkupRules();
                keyDriver.Groups.Add(keyDriverGroup);
            }

            return(keyDriver);
        }