private ICartItemViewModel CustomJewelCartItemViewModelBuilderMethod(ICartItem cartItem, int index)
        {
            try
            {
                var customJewel = cartItem as CustomJewelCartItem;
                jewelRepository.FilterMediaByMetal(customJewel.MediaType);
                var diamond = diamondRepository.GetDiamondByID(customJewel.DiamondID);
                var jewel   = jewelRepository.GetJewelByID(customJewel.SettingID);

                var twoObjects = new MergeDiamondAndJewel()
                {
                    First  = diamond,
                    Second = jewel
                };


                var viewModel = mapper.Map <MergeDiamondAndJewel, CustomJewelCartItemViewModel>(twoObjects);
                viewModel.CartID = index;
                viewModel.Size   = customJewel.GetSize();
                return(viewModel);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message +
                                    "\n When asked to build a view model for jewelcartitem we had a problem explained above");
            }
        }
        public JewelCartItem JewelCartItem(int id, string size, JewelMediaType mediaType)
        {
            var jewel = jewelRepository.GetJewelByID(id);
            var price = jewel.Price;

            var cartItem = new JewelCartItem(id, mediaType, (decimal)price);

            if (!String.IsNullOrWhiteSpace(size))
            {
                cartItem.SetSize(size);
            }

            return(cartItem);
        }
        public WishListViewModel Build()
        {
            try
            {
                var itemsViewModelList = new List <WishListItemViewModel>();

                var itemdIDs = wishListPersistence.GetItemsOnWishList();

                foreach (var id in itemdIDs)
                {
                    var jewel = jewelRepository.GetJewelByID(id);
                    if (jewel == null)
                    {
                        continue;
                    }
                    var itemViewModel = mapper.Map <Jewel, WishListItemViewModel>(jewel);
                    itemsViewModelList.Add(itemViewModel);
                }

                var viewModel = new WishListViewModel {
                    Items = itemsViewModelList
                };

                return(viewModel);
            }
            catch (Exception ex)
            {
                throw new Exception("When asked to build the model for the wishlist page an error occured\r\n" + ex.Message);
            }
        }
Beispiel #4
0
        public List <NavigationTab> Build()
        {
            var list = new List <NavigationTab>();

            if (customJewelPersistenceBase.DiamondID > 0)
            {
                diamond = diamondRepository.GetDiamondByID(customJewelPersistenceBase.DiamondID);
            }

            if (customJewelPersistenceBase.SettingID > 0)
            {
                setting = jewelRepository.GetJewelByID(customJewelPersistenceBase.SettingID);
            }



            var diamondTab = BuildDiamondTab();

            list.Add(diamondTab);

            var settingTab = BuildSettingTab();

            list.Add(settingTab);

            var finalTab = BuildFinalTab();

            list.Add(finalTab);


            list = list.Select(ForEachTabEvaluateTheHighlightCSSClass).ToList();


            return(list);
        }
Beispiel #5
0
        protected override List <ICartItem> ResolveCore(acc_ORDERS source)
        {
            try
            {
                var cartItems = new List <ICartItem>();

                var jewelItems = source.acc_JEWELRY_ORDER_ITEMS.ToList();
                foreach (var jewelItem in jewelItems)
                {
                    var dbJewel       = jewelRepository.GetJewelByID(jewelItem.Item_id);
                    var jewelCartItem = new JewelCartItem(jewelItem.Item_id, (JewelMediaType)jewelItem.metal, (decimal)dbJewel.Price);

                    jewelCartItem.SetSize(jewelItem.jewelsize);

                    cartItems.Add(jewelCartItem);
                }

                var diamondItems = source.acc_DIAMOND_ORDER_ITEMS.ToList();
                foreach (var diamondItem in diamondItems)
                {
                    var dbDiamond       = diamondRepository.GetDiamondByID(diamondItem.Item_id);
                    var diamondCartItem = new DiamondCartItem(diamondItem.Item_id, dbDiamond.Price);
                    cartItems.Add(diamondCartItem);
                }

                var customJewelItems = source.acc_CUSTOMJEWEL_ORDER_ITEMS.ToList();

                foreach (var customJewelItem in customJewelItems)
                {
                    var dbsetting = jewelRepository.GetJewelByID(customJewelItem.Setting_id);
                    var dbdiamond = diamondRepository.GetDiamondByID(customJewelItem.Diamond_id);

                    var customJewelCartItem = new CustomJewelCartItem(customJewelItem.Diamond_id,
                                                                      customJewelItem.Setting_id, customJewelItem.size, JewelMediaType.WhiteGold,
                                                                      dbdiamond.Price + (decimal)dbsetting.Price);


                    cartItems.Add(customJewelCartItem);
                }

                return(cartItems);
            }
            catch (Exception ex)
            {
                throw new Exception("When asked to convert from a db order object to a Order POCO:\r\n ordernumber=" + source.OrderNumber + "\r\n" + " an error occured:" + ex.Message);
            }
        }
Beispiel #6
0
        public ActionResult MediaSets(int jewelID)
        {
            var jewel = jewelRepository.GetJewelByID(jewelID);

            var builder = new MediaSetsJsonModelBuilder(jewel, mediaSetBuilder, webHelpers);

            var viewModel = builder.Build();

            return(Json(viewModel));
        }
Beispiel #7
0
        public BestOfferEmailTemplateViewModel CreateEmailModel(BestOfferViewModel bestOfferViewModel)
        {
            try
            {
                var jewel = jewelRepository.GetJewelByID(bestOfferViewModel.JewelID);

                var templateModel = mapper.Map <Jewel, BestOfferEmailTemplateViewModel>(jewel);
                templateModel.OfferPrice  = new Money(bestOfferViewModel.OfferPrice, Currency.Usd).Format("{1}{0:#,0}");
                templateModel.Email       = bestOfferViewModel.OfferEmail;
                templateModel.OfferNumber = jewel.ID.ToString();
                templateModel.OfferDate   = dateTime.ToShortDateString();

                return(templateModel);
            }
            catch (Exception ex)
            {
                throw new Exception("When asked to map the viewmodel from request to a viewmodel for the email an error occured: \r\n" + ex.Message);
            }
        }
 public EmailRingEmailTemplateViewModel Build()
 {
     try
     {
         var viewModel = mapper.Map <EmailRingModel, EmailRingEmailTemplateViewModel>(model);
         var jewel     = jewelRepository.GetJewelByID(Convert.ToInt32(model.ID));
         if (jewel == null)
         {
             throw new Exception("When asked to get an diamond with id:" + model.ID + " an error occured\r\n" +
                                 "Jewel was not found");
         }
         viewModel.Description = jewel.Title;
         viewModel.Price       = new Money(jewel.Price, Currency.Usd).Format("{1}{0:#,0}");
         viewModel.ItemNumber  = jewel.ItemNumber;
         viewModel.MediaSet    = jewel.Media.MediaSet;
         viewModel.Icon        = jewel.Media.IconURLForWebDisplay;
         return(viewModel);
     }
     catch (Exception ex)
     {
         throw new Exception("when asked for a EmailRing Template an error occured\r\n" + ex.Message);
     }
 }
        public EndViewModel Build()
        {
            var mapperHelp = new MergeDiamondAndJewel();

            mapperHelp.First = diamondRepository.GetDiamondByID(customJewelPersistenceInEndPage.DiamondID);

            jewelRepository.FilterMediaByMetal(customJewelPersistenceInEndPage.MediaType);
            mapperHelp.Second = jewelRepository.GetJewelByID(customJewelPersistenceInEndPage.SettingID);

            var viewModel = mapper.Map <MergeDiamondAndJewel, EndViewModel>(mapperHelp);

            viewModel.TabsForJewelDesignNavigation = tabsForJewelDesignBuilder.Build();

            viewModel.JewelPersistence = new CustomJewelPersistenceBase()
            {
                DiamondID = customJewelPersistenceInEndPage.DiamondID,
                SettingID = customJewelPersistenceInEndPage.SettingID,
                Size      = customJewelPersistenceInEndPage.Size,
                MediaType = customJewelPersistenceInEndPage.MediaType
            };


            return(viewModel);
        }
Beispiel #10
0
        private TOut BuildProcess <TOut>() where TOut : PageViewModelBase, IJewelryItemViewModel, new()
        {
            var viewModel = new TOut();

            var jewel = jewelRepository.GetJewelByID(jewelryID);

            if (jewel == null)
            {
                throw new ArgumentNullException();
            }

            viewModel.Title = jewel.Title;

            viewModel.ID = jewel.ID.ToString();

            var prettyMediaFactory = new prettyPhotoMediaFactory();
            var formatter          = new JONFormatter();


            viewModel.MainJewelPicture = prettyMediaFactory.SinglePhoto(jewel.Media.PictureURLForWebDisplay,
                                                                        jewel.Media.HiResURLForWebDisplay, jewel.Title);

            viewModel.HiResJewelPicture = prettyMediaFactory.SinglePhotoUseLargeForBoth(jewel.Media.HiResURLForWebDisplay,
                                                                                        jewel.Title);



            var extraMedia = new List <prettyPhotoMedia>();

            if (fileSystem.File.Exists(jewel.Media.HiResDiskPathForWebDisplay))
            {
                extraMedia.Add(prettyMediaFactory.SinglePhotoUseLargeForBoth(jewel.Media.HiResURLForWebDisplay, jewel.Title));
            }

            if (fileSystem.File.Exists(jewel.Media.HandDiskPathForWebDisplay))
            {
                extraMedia.Add(prettyMediaFactory.SinglePhotoUseLargeForBoth(jewel.Media.HandURLForWebDisplay, jewel.Title));
            }

            if (fileSystem.File.Exists(jewel.Media.ReportDiskPathForWebDisplay))
            {
                extraMedia.Add(prettyMediaFactory.SinglePhotoUseLargeForBoth(jewel.Media.ReportURLForWebDisplay, "Report"));
            }

            if (fileSystem.File.Exists(jewel.Media.HiRes2DiskPathForWebDisplay))
            {
                extraMedia.Add(prettyMediaFactory.SinglePhotoUseLargeForBoth(jewel.Media.HiRes2URLForWebDisplay, "Report"));
            }

            viewModel.ExtraImages = extraMedia;

            if (fileSystem.File.Exists(jewel.Media.MovieDiskPathForWebDisplay))
            {
                viewModel.HasMovie = true;
                viewModel.Movie    = jewel.Media.MovieURLForWebDisplay;
            }

            var price = new Money(jewel.Price, Currency.Usd).Format("{1}{0:#,0}");

            viewModel.Price = price;

            viewModel.RegularPrice = new Money(jewel.RegularPrice, Currency.Usd).Format("{1}{0:#,0}");

            viewModel.YouSave = String.Format("{0:0.##}%", Math.Round(100 - (jewel.Price / jewel.RegularPrice) * 100));

            viewModel.isSpecial = jewel.IsSpecial;

            viewModel.ItemNumber = jewel.ItemNumber;

            viewModel.Metal = jewel.MetalFullName();

            viewModel.Weight = jewel.Weight > 0 ? formatter.ToGramWeight(jewel.Weight) : "N/A";

            viewModel.Width = jewel.Width > 0 ? formatter.ToMilimeter(jewel.Width) : "N/A";

            viewModel.IsBestOffer = jewel.IsBestOffer;

            var specs = new List <JewelComponentInfoPart>();

            var colors = new List <string>()
            {
                "D",
                "E",
                "F",
                "G",
                "H",
                "I",
                "J",
                "K",
                "L",
                "M",
                "N",
            };

            var clarities = new List <string>()
            {
                "FL",
                "IF",
                "VVS1",
                "VVS2",
                "VS1",
                "VS2",
                "SI1",
                "SI2",
                "SI3",
                "I1",
                "I2",
                "I3",
            };

            colors.Reverse();
            clarities.Reverse();

            if (jewel.JewelryExtra.CS.Count > 0)
            {
                specs.Add(new JewelComponentInfoPart("Stone", jewel.JewelryExtra.CS.Type, 1));
                specs.Add(new JewelComponentInfoPart("Minimum carat total weight:",
                                                     formatter.ToCaratWeight(jewel.JewelryExtra.CS.Weight), 1));
                specs.Add(new JewelComponentInfoPart("# of Stones", jewel.JewelryExtra.CS.Count.ToString(), 1));


                var wordsToSayHowTheQualityIs = "Minimum";
                if (jewel.JewelryExtra.CS.Count > 1)
                {
                    wordsToSayHowTheQualityIs = "Average";
                    specs.Add(new JewelComponentInfoPart(wordsToSayHowTheQualityIs + " Color",
                                                         CreateRangeStringFrom(colors, jewel.JewelryExtra.CS.Color, 1),
                                                         1));
                    specs.Add(new JewelComponentInfoPart(wordsToSayHowTheQualityIs + " Clarity",
                                                         CreateRangeStringFrom(clarities, jewel.JewelryExtra.CS.Clarity,
                                                                               1), 1));
                }
                else
                {
                    specs.Add(new JewelComponentInfoPart(wordsToSayHowTheQualityIs + " Color",
                                                         jewel.JewelryExtra.CS.Color, 1));
                    specs.Add(new JewelComponentInfoPart(wordsToSayHowTheQualityIs + " Clarity",
                                                         jewel.JewelryExtra.CS.Clarity, 1));
                }
            }


            if (jewel.JewelryExtra.SS.Count > 0)
            {
                specs.Add(new JewelComponentInfoPart("Stone", jewel.JewelryExtra.SS.Type, 2));
                specs.Add(new JewelComponentInfoPart("Minimum carat total weight:",
                                                     formatter.ToCaratWeight(jewel.JewelryExtra.SS.Weight), 2));
                specs.Add(new JewelComponentInfoPart("# of Stones", jewel.JewelryExtra.SS.Count.ToString(), 2));
                specs.Add(new JewelComponentInfoPart("Average Color", CreateRangeStringFrom(colors, jewel.JewelryExtra.SS.Color, 1), 2));
                specs.Add(new JewelComponentInfoPart("Average Clarity", CreateRangeStringFrom(clarities, jewel.JewelryExtra.SS.Clarity, 1), 2));

                viewModel.HasSideStones = true;
            }

            viewModel.SpecsPool = specs;

            var testimonailsFromDB = testimonialRepository.GetRandomTestimonails(3);

            viewModel.Testimonials = mapper.Map <List <Testimonial>, List <TestimonialViewModel> >(testimonailsFromDB);

            viewModel.PageTitle = viewModel.Title + " - " + viewModel.Price;

            viewModel.JewelType = jewel.Type;

            return(viewModel);
        }