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)); }
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)); }