//Update the DWStatus in SingleItemDetailedView public SingleItemDetailedModel UpdateDWSingleItemDetails(KPLBasedCommonViewModel itemViewModel) { #region Private Variables int currentDWStatus = Convert.ToInt32(itemViewModel.DWSelectionStatus); int DWYes = (int)DecisionWhizardStatusEnum.Yes; int DWNo = (int)DecisionWhizardStatusEnum.No; int DWMayBe = (int)DecisionWhizardStatusEnum.MayBe; #endregion QuoteDetail dwquoteDetail = new QuoteDetail(); Quote scQuote = _Context.Quote.GetSingle(e => e.QuoteTypeID == (int)QuoteTypeEnum.ShoppingCart && e.UserID == UserVM.CRMModelProperties.LoggedINCustomerUserID); Quote DWQuote = _Context.Quote.GetSingle(e => e.QuoteTypeID == (int)QuoteTypeEnum.DecisionWhizard && e.UserID == UserVM.CRMModelProperties.LoggedINCustomerUserID); List <QuoteDetail> lstSCQuoteDetails = scQuote.QuoteDetails.ToList(); if (lstSCQuoteDetails != null)//item is in shoppingcart { QuoteDetail scQuoteDetail = lstSCQuoteDetails.Where(e => e.ItemID == itemViewModel.ItemID).FirstOrDefault(); dwquoteDetail = _Context.QuoteDetail.GetSingle(e => e.QuoteID == itemViewModel.QuoteID && e.ItemID == itemViewModel.ItemID); if (scQuoteDetail != null) { if (currentDWStatus == DWNo || currentDWStatus == DWMayBe) { //delete from sc _Context.QuoteDetail.Delete(scQuoteDetail); } } else { if (currentDWStatus == DWYes) { //Insert In to Sc _Context.QuoteDetail.Add(new QuoteDetail { ItemID = itemViewModel.ItemID, Quantity = 1, CreatedDate = DateTime.Now, QuoteID = scQuote.QuoteID, DWSelectionID = (int)DecisionWhizardStatusEnum.Yes, UpdateDate = DateTime.Now }); //Insert In to DW if (dwquoteDetail == null) { _Context.QuoteDetail.Add(new QuoteDetail { ItemID = itemViewModel.ItemID, Quantity = 1, CreatedDate = DateTime.Now, QuoteID = DWQuote.QuoteID, DWSelectionID = (int)DecisionWhizardStatusEnum.Yes, UpdateDate = DateTime.Now }); } } } if (dwquoteDetail != null) { dwquoteDetail.DWSelectionID = Convert.ToInt32(itemViewModel.DWSelectionStatus); } } _Context.QuoteDetail.SaveChanges(); //To get next element in list when we select either of yes no may be in singleItemDetailedview List <QuoteDetail> quoteDetailList = new List <QuoteDetail>(); ItemListViewModel _itemList = new ItemListViewModel(); _itemList.KPLItemListVM = new List <KPLBasedCommonViewModel>(); quoteDetailList = _Context.QuoteDetail.GetAll(e => e.QuoteID == itemViewModel.QuoteID).ToList(); List <Item> lstItem = quoteDetailList.Select(e => e.Item).ToList(); _itemList.KPLItemListVM = AutoMapper.Mapper.Map <IList <Item>, IList <KPLBasedCommonViewModel> >(lstItem).ToList(); int index = _itemList.KPLItemListVM.FindIndex(e => e.ItemID == itemViewModel.ItemID); if (index < _itemList.KPLItemListVM.Count() - 1) { itemViewModel.ItemID = _itemList.KPLItemListVM[index + 1].ItemID; } SingleItemDetailedModel singleItemDetailes = GetSingleItemDetailsWithSets(itemViewModel.ItemID.ToString(), itemViewModel.QuoteID.ToString()); return(singleItemDetailes); }
//Method to return selected item details and its sets public SingleItemDetailedModel GetSingleItemDetailsWithSets(string itemID, string quoteDWID) { SingleItemDetailedModel singleItemDetails = new SingleItemDetailedModel(); singleItemDetails.ItemGroupVm = new ItemGroupViewModel(); singleItemDetails.KPLViewModel = new KPLBasedCommonViewModel(); singleItemDetails.ItemGroupVm.ItemPVM = new ItemParentViewModel(); ItemListViewService itemListViewSrv = new ItemListViewService(); Item item = _Context.Item.GetSingle(e => e.ItemID == itemID);//Getting particular selected item details //Getting shoppingcart details Quote scQuote = _Context.Quote.GetSingle(e => e.QuoteTypeID == (int)QuoteTypeEnum.ShoppingCart && e.UserID == UserVM.CRMModelProperties.LoggedINCustomerUserID); List <QuoteDetail> lstSCQuoteDetails = scQuote.QuoteDetails.ToList(); //binding sets int?originalSetID = item != null ? item.SetID : (int?)null; if (originalSetID != null) { List <Item> itemList = itemListViewSrv.GetActiveItemList().Where(e => e.SetID == originalSetID).ToList(); itemList.Remove(item); itemList.Insert(0, item); singleItemDetails.ItemGroupVm.GroupName = itemList.FirstOrDefault().SetName; singleItemDetails.ItemGroupVm.GroupItemCount = itemList.Count; singleItemDetails.ItemGroupVm.ItemPVM.ListItemVM = AutoMapper.Mapper.Map <IList <Item>, IList <ItemViewModel> >(itemList).ToList(); singleItemDetails.ItemGroupVm.ItemPVM.ListItemVM.Where(e => lstSCQuoteDetails.Any(x => x.ItemID == e.ItemID)).ToList().ForEach(it => it.IsInSCDWQuote = true); if (singleItemDetails.ItemGroupVm.ItemPVM.ListItemVM.Count > 0) { singleItemDetails.ItemGroupVm.ItemPVM.ListItemVM.Where(e => e.ItemID == itemID).FirstOrDefault().IsSelected = true; } //binding KPL int qDWID = Convert.ToInt32(quoteDWID); // Item ItemDetails = itemList.Where(e => e.ItemID == itemNo).FirstOrDefault(); singleItemDetails.KPLViewModel.ARLevel = item.ARLevel == null ? string.Empty : item.ARLevel; singleItemDetails.KPLViewModel.ARQuiz = item.ARQuiz; singleItemDetails.KPLViewModel.Barcode = item.Barcode == null ? string.Empty : item.Barcode; singleItemDetails.KPLViewModel.Classification = item.Classification == null ? string.Empty : item.Classification; singleItemDetails.KPLViewModel.CopyRight = item.Copyright == null ? 0 : Convert.ToInt32(item.Copyright); singleItemDetails.KPLViewModel.Description = item.Description == null ? string.Empty : item.Description; singleItemDetails.KPLViewModel.Format = item.Format == null ? string.Empty : item.Format; singleItemDetails.KPLViewModel.Illustrator = item.Illustrator == null ? string.Empty : item.Illustrator; singleItemDetails.KPLViewModel.InterestGrade = item.InterestGrade == null ? string.Empty : item.InterestGrade; singleItemDetails.KPLViewModel.ISBN = item.ISBN == null ? string.Empty : item.ISBN; singleItemDetails.KPLViewModel.ItemID = item.ItemID; singleItemDetails.KPLViewModel.Lexile = item.Lexile == null ? string.Empty : item.Lexile; singleItemDetails.KPLViewModel.OnListDate = item.OnListDate == null ? string.Empty : string.Format("{0:d}", item.OnListDate); singleItemDetails.KPLViewModel.Primarycharacter = item.SeriesAndCharacter == null ? string.Empty : item.SeriesAndCharacter.SCText; singleItemDetails.KPLViewModel.SecondCharacter = item.SecondaryCharacter == null ? string.Empty : item.SecondaryCharacter; singleItemDetails.KPLViewModel.Pages = item.Pages; singleItemDetails.KPLViewModel.Price = item.Price; singleItemDetails.KPLViewModel.RCLevel = item.RCLevel == null ? string.Empty : item.RCLevel; singleItemDetails.KPLViewModel.RCQuiz = item.RCQuiz; singleItemDetails.KPLViewModel.ReviewSource = item.ReviewSource == null ? string.Empty : item.ReviewSource; singleItemDetails.KPLViewModel.Series = item.SeriesAndCharacter1 == null ? string.Empty : item.SeriesAndCharacter1.SCText; singleItemDetails.KPLViewModel.Title = item.Title == null ? string.Empty : item.Title; singleItemDetails.KPLViewModel.Type = item.ProductLine == null ? string.Empty : item.ProductLine.Trim().ToString(); singleItemDetails.KPLViewModel.Publisher = item.PublisherID == null ? string.Empty : _Context.Publisher.GetSingle(e => e.PublisherID == item.PublisherID).PublisherName; singleItemDetails.KPLViewModel.Author = item.AuthorID == null ? string.Empty : _Context.Author.GetSingle(e => e.AuthorID == item.AuthorID).AuthorName; List <QuoteDetail> lstcurrentQuoteDetails = _Context.QuoteDetail.GetAll(e => e.QuoteID == qDWID).ToList(); singleItemDetails.noOfNewCount = _Context.QuoteDetail.GetAll(e => e.DWSelectionID == (int)DecisionWhizardStatusEnum.New && e.QuoteID == qDWID).Count(); singleItemDetails.noOfYesCount = _Context.QuoteDetail.GetAll(e => e.DWSelectionID == (int)DecisionWhizardStatusEnum.Yes && e.QuoteID == qDWID).Count(); singleItemDetails.noOfNoCount = _Context.QuoteDetail.GetAll(e => e.DWSelectionID == (int)DecisionWhizardStatusEnum.No && e.QuoteID == qDWID).Count(); singleItemDetails.noOfMaybeCount = _Context.QuoteDetail.GetAll(e => e.DWSelectionID == (int)DecisionWhizardStatusEnum.MayBe && e.QuoteID == qDWID).Count(); if (string.IsNullOrEmpty(item.QuoteDetails.Where(e => e.QuoteID == qDWID && e.ItemID == item.ItemID).ToString()) || item.QuoteDetails.Count == 0) { singleItemDetails.KPLViewModel.DWSelectionStatus = "5"; } else { singleItemDetails.KPLViewModel.DWSelectionStatus = item.QuoteDetails.FirstOrDefault().DWSelectionID.ToString(); } singleItemDetails.KPLViewModel.QuoteID = qDWID; } return(singleItemDetails); }