private void Load_Hot_recipe() //點選切換跳轉 { PageControl.SelectedIndex = 1; var q = ((from l in dbcontext.LikeRecipe_Table.AsEnumerable() group l by new { l.Recipe_Table.RecipeName, l.RecipeID, l.Recipe_Table.PostTime.Year, l.Recipe_Table.DisVisible, l.Recipe_Table.DeleteOrNot, l.Member_Table.Nickname, l.Recipe_Table.Picture, l.Recipe_Table.Views, season = SeasonSort(l.Recipe_Table.PostTime.Month) } into g where g.Key.season == "第二季" && g.Key.Year == DateTime.Now.Year && g.Key.DisVisible == false && g.Key.DeleteOrNot == false select new { g.Key.RecipeName, g.Key.RecipeID, g.Key.Nickname, g.Key.Picture, g.Key.Views, LikeCount = g.Count(), }).OrderByDescending(r => r.LikeCount).Take(5)).ToList(); foreach (var item in q) { RecipeControl recipe = new RecipeControl(item.RecipeID); recipe.setAll(item.Picture, item.RecipeName, item.Nickname, item.Views, item.LikeCount); flp_HotRecipe.Controls.Add(recipe); } }
private void LoadRecipe() { flp_LikeRecipe.Controls.Clear(); int result; if (int.TryParse(lbox_FolderID.Text, out result)) { var q = (from c in dbcontext.Collection_Table.AsEnumerable() let like = (from r2 in dbcontext.LikeRecipe_Table.AsEnumerable() where r2.RecipeID == c.ReicipeID select r2).Count() where c.CollectionFolderID == result select new { c.ReicipeID, c.Recipe_Table.RecipeName, c.Recipe_Table.Member_Table.Nickname, c.Recipe_Table.Picture, c.Recipe_Table.Views, like = like }).ToList(); foreach (var item in q) { RecipeControl recipe = new RecipeControl(item.ReicipeID); recipe.setAll(item.Picture, item.RecipeName, item.Nickname, item.Views, item.like); recipe.ContextMenuStrip = contextMenuStrip1; flp_LikeRecipe.Controls.Add(recipe); } //foreach (var item in q) //{ // Panel p = new Panel(); // Label l = new Label(); // PictureBox pb = new PictureBox(); // MemoryStream ms = new MemoryStream(item.Picture); // pb.Image = Image.FromStream(ms); // l.Text = item.RecipeName; // pb.BackColor = Color.AliceBlue; // p.Controls.Add(l); // p.Controls.Add(pb); // p.ContextMenuStrip = contextMenuStrip1; // p.Name = item.ReicipeID.ToString(); // flp_LikeRecipe.Controls.Add(p); //} } else { return; } }
private void 儲存至其他收藏夾ToolStripMenuItem_Click(object sender, EventArgs e) { ToolStripItem clickedItem = sender as ToolStripItem; ContextMenuStrip owner = clickedItem.Owner as ContextMenuStrip; RecipeControl p = owner.SourceControl as RecipeControl; Recipeid = Convert.ToInt32(p.Name); Form AddForm = new Form(); var q = dbcontext.CollectionFolder_Table.Where(f => f.MemberID == memberData.MemberID).Select(f2 => f2.CollectionFolder).ToList(); var q2 = dbcontext.Collection_Table.Where(f => f.CollectionFolder_Table.MemberID == memberData.MemberID && f.ReicipeID == Recipeid).Select(f2 => f2.CollectionFolder_Table.CollectionFolder).ToList(); int x = 10; int y = 10; foreach (var item in q) { CheckBox cb = new CheckBox(); cb.Location = new Point(x, y); y += 30; if (q2.Contains(item)) { cb.Checked = true; } cb.CheckedChanged += Cb_FolderCurrentChanged; cb.Name = item; AddForm.Controls.Add(cb); } x = 110; y = 10; foreach (var item in q) { Label lb = new Label(); lb.Text = item; lb.ForeColor = Color.Black; lb.Location = new Point(x, y); y += 30; AddForm.Controls.Add(lb); } AddForm.Text = dbcontext.Recipe_Table.Where(r => r.RecipeID == Recipeid).Select(r2 => r2.RecipeName).FirstOrDefault(); AddForm.Show(); }
private void Load_All_recipe() { var q = (from r in dbcontext.Recipe_Table.AsEnumerable() let like = (from r2 in dbcontext.LikeRecipe_Table.AsEnumerable() where r2.RecipeID == r.RecipeID select r2).Count() select new { r.RecipeID, r.Picture, r.RecipeName, r.Member_Table.Nickname, r.Views, like = like }).ToList(); foreach (var item in q) { RecipeControl recipe = new RecipeControl(item.RecipeID); recipe.setAll(item.Picture, item.RecipeName, item.Nickname, item.Views, item.like); flp_AllRecipe.Controls.Add(recipe); } }
private void LoadMyRecipe() { var q = (from r in dbcontext.Recipe_Table let like = (from r2 in dbcontext.LikeRecipe_Table.AsEnumerable() where r2.RecipeID == r.RecipeID select r2).Count() where r.MemberID == memberData.MemberID select new { r.RecipeID, r.Picture, r.RecipeName, r.Member_Table.Nickname, r.Views, like = like, r.DisVisible, r.DeleteOrNot }).ToList(); foreach (var item in q) { if (!item.DeleteOrNot && !item.DisVisible) { RecipeControl recipe = new RecipeControl(item.RecipeID); recipe.setAll(item.Picture, item.RecipeName, item.Nickname, item.Views, item.like); flp_myRecipe.Controls.Add(recipe); } else if (item.DeleteOrNot) { RecipeControl recipe = new RecipeControl(item.RecipeID, Color.Red); recipe.setAll(item.Picture, "此食譜已刪除", item.Nickname, item.Views, item.like); flp_myRecipe.Controls.Add(recipe); } else { RecipeControl recipe = new RecipeControl(item.RecipeID, Color.Black); recipe.setAll(item.Picture, "此食譜已被檢舉", item.Nickname, item.Views, item.like); flp_myRecipe.Controls.Add(recipe); } } }
private void Category_Search(string CategoryName) { var q = from r in dbcontext.Recipe_Table let like = (from r2 in dbcontext.LikeRecipe_Table.AsEnumerable() where r2.RecipeID == r.RecipeID select r2).Count() where r.RecipeCategory_Table.RecipeCategory == CategoryName && r.DeleteOrNot == false && r.DisVisible == false select new { r.Picture, r.RecipeName, r.Member_Table.Nickname, r.Views, r.RecipeID, like = like }; flp_Search.Controls.Clear(); foreach (var item in q) { RecipeControl recipe = new RecipeControl(item.RecipeID); recipe.setAll(item.Picture, item.RecipeName, item.Nickname, item.Views, item.like); flp_Search.Controls.Add(recipe); } }
public void RefreshRecipies() { Modified = false; RecipesCollection.Clear(); IngredientsRowsCollection.Clear(); Worker.EnqueueTask(new WorkerTask((args) => { try { using (var proxy = new WorkChannel()) { return proxy.GetRecipeTabData(new EmptyRequest { Login = ClientConfig.CurrentUser.Email, Password = ClientConfig.CurrentUser.Password }); } // using (var db = new PizzaUnitOfWork()) // { // return db.inTransaction(uof => // { // Console.WriteLine("LoadDataStart"); // var result = new Trio<IEnumerable<Recipe>, PizzaNetDataModel.Model.Size[], IEnumerable<Ingredient>> // { // First = db.Recipies.FindAllEagerly(), // Second = db.Sizes.FindAll().ToArray(), // Third = db.Ingredients.FindAll() // }; // Console.WriteLine("after query"); // Console.WriteLine("Result is null: {0}", result == null); // return result; // }); // } } catch (Exception exc) { Console.WriteLine(exc.Message); return exc; } }, (s, args) => { if (args.Result is Exception) { Utils.HandleException(args.Result as Exception); return; } var result = args.Result as TrioResponse<List<RecipeDTO>, List<SizeDTO>, List<OrderIngredientDTO>>; // var result = args.Result as Trio<IEnumerable<Recipe>, PizzaNetDataModel.Size[], IEnumerable<Ingredient>>; if (result == null) { Console.WriteLine("Result is null"); Utils.showError(Utils.Messages.UNKNOWN_ERROR_FORMAT); return; } foreach (var item in result.First) { var rc = new RecipeControl(); rc.Recipe = item; rc.Update(result.Second.ToArray()); RecipesCollection.Add(rc); } foreach (var item in result.Third) { var row = new IngredientsRowWork(item, false); row.ButtonIncludeChanged += row_PropertyChanged; IngredientsRowsCollection.Add(row); } Sizes = result.Second.ToArray(); // foreach (var item in result.First) // { // var rc = new RecipeControl(); // rc.Recipe = item; // rc.RecalculatePrices(result.Second.ToArray()); // RecipesCollection.Add(rc); // Console.WriteLine(item.Name); // } // foreach (var item in result.Third) // { // var row = new IngredientsRowWork(item, false); // row.ButtonIncludeChanged += row_PropertyChanged; // IngredientsRowsCollection.Add(row); // } })); }
internal void SaveChanges() { Worker.EnqueueTask(new WorkerTask(args => { try { using (var proxy = new WorkChannel()) { List<RecipeDTO> toUpdate = new List<RecipeDTO>(); foreach (var recControl in RecipesCollection) { toUpdate.Add(recControl.Recipe); } return proxy.UpdateOrRemoveRecipe(new UpdateOrRemoveRequest<List<RecipeDTO>> { Data = toUpdate, DataToRemove = RemovedRecipes, Login = ClientConfig.CurrentUser.Email, Password = ClientConfig.CurrentUser.Password }); } } catch (Exception exc) { Console.WriteLine(exc.Message); Console.WriteLine("Failed"); return exc; } }, (s, e) => { if (e.Result is Exception) { Utils.HandleException(e.Result as Exception); return; } var result = e.Result as TrioResponse<List<RecipeDTO>, List<OrderIngredientDTO>, int>; if (result == null) { Utils.showError(Utils.Messages.UNKNOWN_ERROR_FORMAT); return; } RecipesCollection.Clear(); IngredientsRowsCollection.Clear(); RemovedRecipes.Clear(); foreach (var item in result.First) { var rc = new RecipeControl(); rc.Recipe = item; //rc.RecalculatePrices(result.Second.ToArray()); rc.Update(Sizes); RecipesCollection.Add(rc); } foreach (var item in result.Second) { var row = new IngredientsRowWork(item, false); row.ButtonIncludeChanged += row_PropertyChanged; IngredientsRowsCollection.Add(row); } Modified = false; }, null)); }
private void btn_Search_Click(object sender, EventArgs e) { List <Recipe_Table> recipes = new List <Recipe_Table>(); PageControl.SelectedIndex = 1; if (cb_Sort.SelectedIndex == 0) { string s = tb_SearchValue.Text; string[] s2 = s.Split(' '); for (int i = 0; i < s2.Length; i++) { var q = (from r in dbcontext.Recipe_Table.AsEnumerable() where r.RecipeName.Contains(s2[i]) && r.DisVisible == false && r.DisVisible == false select r).ToList(); if (q.Count != 0) { recipes.AddRange(q); } } var q1 = from r in recipes let like = (from r2 in dbcontext.LikeRecipe_Table.AsEnumerable() where r2.RecipeID == r.RecipeID select r2).Count() select new { r.Picture, r.RecipeName, r.Member_Table.Nickname, r.Views, r.RecipeID, like = like }; flp_Search.Controls.Clear(); foreach (var item in q1) { RecipeControl recipe = new RecipeControl(item.RecipeID); recipe.setAll(item.Picture, item.RecipeName, item.Nickname, item.Views, item.like); flp_Search.Controls.Add(recipe); } } if (cb_Sort.SelectedIndex == 1) { var q2 = (from r in dbcontext.Recipe_Table let like = (from r2 in dbcontext.LikeRecipe_Table.AsEnumerable() where r2.RecipeID == r.RecipeID select r2).Count() where r.Member_Table.Nickname.Contains(tb_SearchValue.Text) && r.DisVisible == false && r.DisVisible == false select new { r.Picture, r.RecipeName, r.Member_Table.Nickname, r.Views, r.RecipeID, like = like }).ToList(); if (q2.Count != 0) { flp_Search.Controls.Clear(); foreach (var item in q2) { RecipeControl recipe = new RecipeControl(item.RecipeID); recipe.setAll(item.Picture, item.RecipeName, item.Nickname, item.Views, item.like); flp_Search.Controls.Add(recipe); } } else { MessageBox.Show("查無此作者"); } } if (cb_Sort.SelectedIndex == 2)//食材找食譜 { int[] tagids = sbt.IngdStringToIngdIds(dbcontext, tb_SearchValue.Text, checkBox1.Checked); int[] recipeids = sbt.IngdIdsToRecipeIds(dbcontext, tagids, !checkBox2.Checked); var hrecipes = dbcontext.Recipe_Table.Where(r => recipeids.Contains(r.RecipeID) && r.DisVisible == false && r.DeleteOrNot == false).Select(r => r); var hrecipes2 = (from r in hrecipes let like = (from r2 in dbcontext.LikeRecipe_Table.AsEnumerable() where r2.RecipeID == r.RecipeID select r2).Count() select new { r.Picture, r.RecipeName, r.Member_Table.Nickname, r.Views, r.RecipeID, like = like }).ToList(); flp_Search.Controls.Clear(); foreach (var item in hrecipes2) { RecipeControl recipe = new RecipeControl(item.RecipeID); recipe.setAll(item.Picture, item.RecipeName, item.Nickname, item.Views, item.like); flp_Search.Controls.Add(recipe); } string stchar = "TagIds:"; foreach (int id in tagids) { stchar += id.ToString() + ","; } } if (cb_Sort.SelectedIndex == 3)//HashTag找食譜 { int[] tagids = sbt.TagsStringToTagIds(dbcontext, tb_SearchValue.Text, checkBox1.Checked); int[] recipeids = sbt.TagIdsToRecipeIds(dbcontext, tagids, !checkBox2.Checked); var hrecipes = dbcontext.Recipe_Table.Where(r => recipeids.Contains(r.RecipeID) && r.DisVisible == false && r.DeleteOrNot == false).Select(r => r); var hrecipes2 = (from r in hrecipes let like = (from r2 in dbcontext.LikeRecipe_Table.AsEnumerable() where r2.RecipeID == r.RecipeID select r2).Count() select new { r.Picture, r.RecipeName, r.Member_Table.Nickname, r.Views, r.RecipeID, like = like }).ToList(); flp_Search.Controls.Clear(); foreach (var item in hrecipes2) { RecipeControl recipe = new RecipeControl(item.RecipeID); recipe.setAll(item.Picture, item.RecipeName, item.Nickname, item.Views, item.like); flp_Search.Controls.Add(recipe); } string stchar = "TagIds:"; foreach (int id in tagids) { stchar += id.ToString() + ","; } } }
public void RefreshRecipes() { this.IngredientsCollection.Clear(); this.RecipesCollection.Clear(); this.OrderedPizzasCollection.Clear(); this.Ingredients.Clear(); Worker.EnqueueTask(new WorkerTask((args) => { try { using (var proxy = new WorkChannel()) { return proxy.GetRecipeTabData(new PizzaNetCommon.Requests.EmptyRequest { Login = ClientConfig.CurrentUser.Email, Password = ClientConfig.CurrentUser.Password }); } //using (var db = new PizzaUnitOfWork()) //{ // return db.inTransaction(uof => // { // Console.WriteLine("LoadDataStart"); // var result = new Trio<IEnumerable<Recipe>, PizzaNetDataModel.Model.Size[], IEnumerable<Ingredient>> // { // First = uof.Db.Recipies.FindAllEagerly(), // Second = uof.Db.Sizes.FindAll().ToArray(), // Third = uof.Db.Ingredients.FindAll() // }; // Console.WriteLine("after query"); // Console.WriteLine("Result is null: {0}", result == null); // return result; // }); //} } catch (Exception exc) { return exc; } }, (s, args) => { if (args.Result is Exception) { Utils.HandleException(args.Result as Exception); return; } var result = args.Result as TrioResponse<List<RecipeDTO>, List<SizeDTO>, List<OrderIngredientDTO>>; if (result == null) { Utils.showExclamation(Utils.Messages.RECIPES_REFRESH_FAILED); return; } if (result.Second.Count != 3) throw new Exception(INVALID_SIZES_COUNT); foreach (var item in result.First) { var rc = new RecipeControl(); rc.Recipe = item; rc.RecalculatePrices(result.Second.ToArray()); RecipesCollection.Add(rc); Console.WriteLine(item.Name); } foreach (var item in result.Third) { var row = new IngredientsRow(item, 0, result.Second[0]); row.PropertyChanged += row_PropertyChanged; IngredientsCollection.Add(row); Ingredients.Add(item); } // MODIFIED Tag uses now dependency property SmallSize = result.Second[0]; MedSize = result.Second[1]; GreatSize = result.Second[2]; CurrentSizeValue = result.Second[0]; })); }