public ActionResult Pricing(PricingTierModel model)
        {
            var pricingTier = pricingTierRepo.Query().Where(s => s.ID == 1).First();

            model.PriceLevels.ToList().ForEach(l =>
            {
                l.Fees.RemoveAll<PriceLevelFee>(f => String.IsNullOrWhiteSpace(f.Description) || f.Fee == 0);
            });

            Mapper.CreateMap<PricingTier, PricingTier>()
                .ForMember(dest => dest.PriceLevels, opt => opt.Ignore())
                .ForMember(dest => dest.ServiceAreas, opt => opt.Ignore());

            Mapper.CreateMap<PriceLevel, PriceLevel>()
                .ForMember(dest => dest.PricingTier, opt => opt.Ignore())
                .ForMember(dest => dest.Fees, opt => opt.Ignore());

            Mapper.CreateMap<PriceLevelFee, PriceLevelFee>()
                .ForMember(dest => dest.PriceLevel, opt => opt.Ignore());

            Mapper.Map(model.PricingTier, pricingTier);
            model.PriceLevels.Each(l =>
            {
                PriceLevel level = pricingTier.PriceLevels.Where(pl => pl.ID == l.ID).FirstOrDefault();
                if (level != null)
                {
                    Mapper.Map(l, level);
                    level.Fees.Each(f =>
                    {
                        PriceLevelFee fee = l.Fees.Where(pf => pf.ID == f.ID).FirstOrDefault();
                        if (fee != null)
                        {
                            Mapper.Map(fee, f);
                        }
                    });
                }
                else
                {
                    pricingTier.PriceLevels.Add(l);
                }
            });

            pricingTierRepo.Update(pricingTier);
            model.ServiceAreas = pricingTier.ServiceAreas.ToList();
            var deletedPrices = pricingTier.PriceLevels.Where(l => !model.PriceLevels.Any(p => p.ID == l.ID)).ToList();
            deletedPrices.Each(p =>
            {
                pricingTierRepo.DeletePriceLevel(p);
            });

            return View(model);
        }
 public ActionResult Pricing()
 {
     var pricingTier = pricingTierRepo.Query().Where(s => s.ID == 1).First();
     var model = new PricingTierModel
     {
         PricingTier = pricingTier,
         ServiceAreas = pricingTier.ServiceAreas.ToList(),
         PriceLevels = pricingTier.PriceLevels.ToList()
     };
     return View(model);
 }