public ProductBiz(UserBiz userBiz, IRepositry <Product> entityDal, MyWorkClassesProduct myWorkClassesProduct, ProductChildBiz productChildBiz, BizParameters bizParameters, LikeUnlikeBiz likeUnlikeBiz, OwnerBiz ownerBiz) : base(entityDal, bizParameters) { _myWorkClassesProduct = myWorkClassesProduct; _userBiz = userBiz; _productChildBiz = productChildBiz; _likeUnlikeBiz = likeUnlikeBiz; _ownerBiz = ownerBiz; _bizParameters = bizParameters; }
private void deleteLikesUnlikes(Product p) { var lstLikesUnlikes = p.LikeUnlikes.ToList(); if (lstLikesUnlikes.IsNullOrEmpty()) { return; } foreach (var item in lstLikesUnlikes) { LikeUnlikeBiz.DeleteActuallyEngine(item); } lstLikesUnlikes.Clear(); }
/// <summary> /// The Menu will always run the MenuBiz. /// We do not care about the MenuManager in the ICommonWithId level. That is used in Create/Edit /// We need to load the MenuManager with the correct MainMenuPath so that it can be used in the _IndexMiddlePart - TiledPictures.cshtml /// We cant use the one in the list because that is a single one and the one that is used in the itme needs to have the /// MenuPath1 id. Moreover, the Id of the IndexItem is MenuPathMainId, so it is of no use. /// I want the menu's to be dimmed if they have no products. Moreover, The pictures from products need to bubble up to the top, at least 5... /// </summary> /// <param name="indexListVM"></param> /// <param name="indexItem"></param> /// <param name="icommonWithId"></param> public override void Event_ModifyIndexItem(IndexListVM indexListVM, IndexItemVM indexItem, ICommonWithId icommonWithId) { //The icommonWithId is the item that is running in the Forloop in the calling procedure //The icommonWithId comes here for the first 3 menus as a MenuPathMain item. //Then on the 4th it comes as a product. //You must select the correct MenuState Here as well base.Event_ModifyIndexItem(indexListVM, indexItem, icommonWithId); int returnNoOfPictures = MenuPath1.MaxNumberOfPicturesInMenu() + 1; MenuPathMain mpm = icommonWithId as MenuPathMain; ProductChild productChild = icommonWithId as ProductChild; Product product = icommonWithId as Product; LikeUnlikeParameters likeUnlikeCounter; //UploadedFile uf; List <string> pictureAddresses = new List <string>(); List <string> currPcs = new List <string>(); //List<string> lstOfPictures = new List<string>(); //string theUserId = indexListVM.UserId ?? ""; string theUserId = UserId; MenuEnumForDefaultPicture = indexListVM.MenuManager.MenuState.MenuEnum; switch (indexListVM.MenuManager.MenuState.MenuEnum) { case MenuENUM.IndexMenuPath1: mpm.IsNullThrowException(); mpm.MenuPath1.IsNullThrowException(); //get the likes and unlikes for MenuPath1 likeUnlikeCounter = LikeUnlikeBiz.Count(mpm.MenuPath1.Id, null, null, null, null, theUserId, false); likeUnlikeCounter.KindOfLike = "Event_ModifyIndexItem.MenuENUM.IndexMenuPath1"; indexItem.MenuManager = new MenuManager(mpm, product, productChild, MenuENUM.IndexMenuPath1, BreadCrumbManager, likeUnlikeCounter, UserId, indexListVM.MenuManager.ReturnUrl, UserName); indexItem.PictureViews = mpm.MenuPath1.NoOfVisits.Amount; //we need to change the image address to image of MenuPath1 currPcs = GetCurrItemsPictureList(mpm.MenuPath1 as IHasUploads); pictureAddresses = picturesForMenuPath(mpm.MenuPath1); //pictureAddresses = joinCurrPicsAndPictureAddresses(pictureAddresses, currPcs); if (!currPcs.IsNullOrEmpty()) { pictureAddresses = pictureAddresses.Concat(currPcs).ToList(); } indexItem.Name = mpm.MenuPath1.FullName(); indexItem.Description = mpm.MenuPath1.DetailInfoToDisplayOnWebsite; indexItem.HasProductsForSale = mpm.HasLiveProductChildren; indexItem.NoOfItems = mpm.NoOfItems; indexItem.NoOfShops = mpm.NoOfShops; break; case MenuENUM.IndexMenuPath2: mpm.IsNullThrowException(); mpm.MenuPath2.IsNullThrowException(); indexItem.Description = mpm.MenuPath2.DetailInfoToDisplayOnWebsite; //uf = mpm.MenuPath2.MiscFiles.FirstOrDefault(x => !x.MetaData.IsDeleted); //getPictureList(indexItem, mpm.MenuPath2); //indexItem.ImageAddressStr = getImage(uf); indexItem.Name = mpm.MenuPath2.FullName(); likeUnlikeCounter = LikeUnlikeBiz.Count(null, mpm.MenuPath2.Id, null, null, null, theUserId, false); likeUnlikeCounter.KindOfLike = "Event_ModifyIndexItem.MenuENUM.IndexMenuPath2"; indexItem.MenuManager = new MenuManager(mpm, product, productChild, MenuENUM.IndexMenuPath2, BreadCrumbManager, likeUnlikeCounter, UserId, indexListVM.MenuManager.ReturnUrl, UserName); indexItem.CompleteMenuPathViews = getMp2Count(mpm); indexItem.PictureViews = mpm.MenuPath2.NoOfVisits.Amount; indexItem.HasProductsForSale = mpm.HasLiveProductChildren; indexItem.NoOfItems = mpm.NoOfItems; indexItem.NoOfShops = mpm.NoOfShops; currPcs = GetCurrItemsPictureList(mpm.MenuPath2 as IHasUploads); pictureAddresses = picturesForMenuPath(mpm.MenuPath1, mpm.MenuPath2); //pictureAddresses = joinCurrPicsAndPictureAddresses(pictureAddresses, currPcs); break; case MenuENUM.IndexMenuPath3: mpm.IsNullThrowException(); //mpm.MenuPath3.IsNullThrowException(""); //this means there are no menu 3s. This is not allowed. if (mpm.MenuPath3.IsNull()) { return; } indexItem.Description = mpm.MenuPath3.DetailInfoToDisplayOnWebsite; //uf = mpm.MenuPath3.MiscFiles.FirstOrDefault(x => !x.MetaData.IsDeleted); //indexItem.ImageAddressStr = getImage(uf); //getPictureList(indexItem, mpm.MenuPath3); indexItem.Name = mpm.MenuPath3.FullName(); likeUnlikeCounter = LikeUnlikeBiz.Count(null, null, mpm.MenuPath3.Id, null, null, theUserId, false); likeUnlikeCounter.KindOfLike = "Event_ModifyIndexItem.MenuENUM.IndexMenuPath3"; indexItem.MenuManager = new MenuManager(mpm, product, productChild, MenuENUM.IndexMenuPath3, BreadCrumbManager, likeUnlikeCounter, UserId, indexListVM.MenuManager.ReturnUrl, UserName); indexItem.PictureViews = mpm.MenuPath3.NoOfVisits.Amount; indexItem.CompleteMenuPathViews = mpm.NoOfVisits.Amount; indexItem.HasProductsForSale = mpm.HasLiveProductChildren; indexItem.NoOfItems = mpm.NoOfItems; indexItem.NoOfShops = mpm.NoOfShops; currPcs = GetCurrItemsPictureList(mpm.MenuPath3 as IHasUploads); pictureAddresses = picturesForMenuPath(mpm); //pictureAddresses = joinCurrPicsAndPictureAddresses(pictureAddresses, currPcs); break; case MenuENUM.IndexMenuProduct: //Products are coming product.IsNullThrowException(); indexItem.Description = product.DetailInfoToDisplayOnWebsite; //uf = product.MiscFiles.FirstOrDefault(x => !x.MetaData.IsDeleted); likeUnlikeCounter = LikeUnlikeBiz.Count(null, null, null, product.Id, null, theUserId, false); likeUnlikeCounter.KindOfLike = "Event_ModifyIndexItem.MenuENUM.IndexMenuProduct"; indexItem.MenuManager = new MenuManager(mpm, product, productChild, MenuENUM.IndexMenuProduct, BreadCrumbManager, likeUnlikeCounter, UserId, indexListVM.MenuManager.ReturnUrl, UserName); currPcs = GetCurrItemsPictureList(product as IHasUploads); if (product.IsShop) { pictureAddresses = getShopPictures(product); } else { pictureAddresses = picturesForProducts(product); } indexItem.MenuManager.PictureAddresses = pictureAddresses; indexItem.PictureViews = product.NoOfVisits.Amount; indexItem.CompleteMenuPathViews = product.NoOfVisits.Amount; indexItem.HasProductsForSale = product.HasLiveProductChildren; indexItem.NoOfItems = product.ProductChildren_Fixed_Not_Hidden.Count; markUserAsOwnerOfShop(indexItem, product); indexItem.IsShop = product.IsShop; if (indexItem.IsShopAndOwnerOfShop) { indexItem.ShopExpiresStr = ExpiryDateInNoOfDays(product.ShopExpiryDate.Date_NotNull_Max); } break; case MenuENUM.IndexMenuProductChild: productChild.IsNullThrowException(); indexItem.Description = productChild.DetailInfoToDisplayOnWebsite; indexItem.IsTokenPaymentAccepted = productChild.IsNonRefundablePaymentAccepted; indexItem.IsHidden = productChild.Hide; likeUnlikeCounter = LikeUnlikeBiz.Count(null, null, null, null, productChild.Id, theUserId, false); likeUnlikeCounter.KindOfLike = "Event_ModifyIndexItem.MenuENUM.IndexMenuProductChild"; indexItem.MenuManager = new MenuManager(mpm, product, productChild, MenuENUM.IndexMenuProductChild, BreadCrumbManager, likeUnlikeCounter, UserId, indexListVM.MenuManager.ReturnUrl, UserName); Person person = UserBiz.GetPersonFor(UserId); if (!person.IsNull()) { string userPersonId = person.Id; string productChildPersonId = productChild.Owner.PersonId; indexItem.MenuManager.IndexMenuVariables.updateRequiredProperties(userPersonId, productChildPersonId); } //get the pictures list from the productChild currPcs = GetCurrItemsPictureList(productChild); ////if none are available get them from the product //if (pictureAddresses.IsNullOrEmpty()) //{ // productChild.Product.IsNullThrowException(); // pictureAddresses = GetCurrItemsPictureList(productChild.Product); //} indexItem.PictureViews = productChild.NoOfVisits.Amount; indexItem.CompleteMenuPathViews = productChild.NoOfVisits.Amount; indexItem.Price = productChild.Sell.SellPrice; break; case MenuENUM.EditMenuPath1: case MenuENUM.EditMenuPath2: case MenuENUM.EditMenuPath3: case MenuENUM.EditMenuPathMain: case MenuENUM.EditMenuProduct: case MenuENUM.EditMenuProductChild: case MenuENUM.CreateMenuPath1: case MenuENUM.CreateMenuPath2: case MenuENUM.CreateMenuPath3: case MenuENUM.CreateMenuPathMenuPathMain: case MenuENUM.CreateMenuProduct: case MenuENUM.CreateMenuProductChild: default: likeUnlikeCounter = LikeUnlikeBiz.Count(null, null, null, null, null, theUserId, false); likeUnlikeCounter.KindOfLike = "Event_ModifyIndexItem.Default"; break; } pictureAddresses = joinCurrPicsAndPictureAddresses(pictureAddresses, currPcs); string startSort = getStartSort(indexItem, indexListVM); indexItem.Input1SortString = startSort + indexItem.Input1SortString; indexItem.Input2SortString = startSort + indexItem.Input2SortString; indexItem.Input3SortString = startSort + indexItem.Input3SortString; if (pictureAddresses.IsNullOrEmpty()) { pictureAddresses = GetDefaultPicture(); } indexItem.MenuManager.PictureAddresses = pictureAddresses; indexItem.MenuManager.LikeUnlikesCounter = likeUnlikeCounter; indexItem.MenuManager.BreadCrumbManager = indexListVM.MenuManager.BreadCrumbManager; if (!UserId.IsNullOrWhiteSpace()) { Person person = UserBiz.GetPersonFor(UserId); person.IsNullThrowException("person"); indexItem.MenuManager.UserPersonId = person.Id; } }