Esempio n. 1
0
        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);
                //    }
            }));
        }
Esempio n. 2
0
        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));
        }