public IActionResult ToggleBookmark()
        {
            var response = new BaseResponse <RecipeAllResponse>();

            response.Data = new RecipeAllResponse();

            if (!bookMarkRepo.Any(x => x.UserID == CurrentUserID))
            {
                response.SetMessage("İşaretlenmiş yemek tarifiniz bulunmamaktadır");
                return(Ok(response));
            }

            List <Guid> recipeIDs = new List <Guid>();


            recipeIDs = bookMarkRepo.GetBy(x => x.UserID == CurrentUserID).Select(x => x.RecipeID).ToList();
            //response.Data.Items = null;

            foreach (Guid recipeID in recipeIDs)
            {
                response.Data.Items = recipeRepo.GetBy(p => p.Id == recipeID).OrderByDescending(p => p.CreateDate).Take(10).Select(p => new RecipeMM
                {
                    Id      = p.Id,
                    Title   = p.Title,
                    Details = p.Details,
                    Images  = (p.Images.Any(y => y.RecordStatus == RecordStatus.Active) ? p.Images.Where(y => y.RecordStatus == RecordStatus.Active).Select(y => new ImageMM
                    {
                        Id = y.Id,
                        Image = y.Image
                    }).ToList() : new List <ImageMM>()),
                    Rates = (p.Rates.Any(y => y.RecordStatus == RecordStatus.Active) ? p.Rates.Where(y => y.RecordStatus == RecordStatus.Active).Select(y => new RateMM
                    {
                        Id = y.Id,
                        Rate = y.Rate
                    }).ToList() : new List <RateMM>()),



                    Slug        = p.Slug,
                    UserID      = p.UserID,
                    Username    = p.User.Username,
                    CreateDate  = p.CreateDate,
                    Rate        = 0,
                    AvarageRate = p.Rates.Any(y => y.RecipeID == p.Id) ? p.Rates.Average(y => y.Rate) : 0
                }).ToList();
            }


            return(Ok(response));
        }
Пример #2
0
        public IActionResult Delete([FromBody] IDRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(Ok(ModelState));
            }

            var response = new BaseResponse <bool>();
            var item     = recipeRepo.GetById(request.Id);

            if (item == null)
            {
                return(NotFound());
            }

            var ingredients = ingredientRepo.GetBy(x => x.RecipeID == item.Id).ToList();

            if (ingredients.Any())
            {
                ingredientRepo.DeleteRange(ingredients);
            }

            var steps = stepRepo.GetBy(x => x.RecipeID == item.Id).ToList();

            if (steps.Any())
            {
                stepRepo.DeleteRange(steps);
            }

            var images = imageRepo.GetBy(x => x.RecipeID == item.Id).ToList();

            if (images.Any())
            {
                imageRepo.DeleteRange(images);
            }

            var recipeCategory = categoryRepo.GetBy(x => x.RecipeID == item.Id).ToList();

            if (recipeCategory.Any())
            {
                categoryRepo.DeleteRange(recipeCategory);
            }

            var rates = rateRepo.GetBy(x => x.RecipeID == item.Id).ToList();

            if (rates.Any())
            {
                rateRepo.DeleteRange(rates);
            }

            var bookmarks = bookMarkRepo.GetBy(x => x.RecipeID == item.Id).ToList();

            if (bookmarks.Any())
            {
                bookMarkRepo.DeleteRange(bookmarks);
            }



            recipeRepo.Delete(item);
            response.Message = "Yemek tarifi başarıyla silinmiştir.";

            return(Ok(response));
        }