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