示例#1
0
        public async Task <ActionResult <MealInstanceModel> > AddMeal([FromBody] AddMealRequest request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            try
            {
                var result = await _repository.AddMeal(
                    User.Claims.GetUserId(),
                    new MealInstanceEntity
                {
                    Goal = new GoalEntity {
                        GoalId = request.GoalId
                    },
                    Product = new ProductEntityRef {
                        ProductId = request.ProductId
                    },
                    MealType = new MealTypeEntity {
                        MealTypeId = request.MealTypeId
                    },
                    Date   = request.Date,
                    Amount = request.Amount
                });

                var response = new MealInstanceModel
                {
                    MealInstanceId = result.MealInstanceId,
                    GoalId         = result.Goal.GoalId,
                    Amount         = result.Amount,
                    Date           = result.Date,
                    Product        = new MealProductModel {
                        ProductId = result.Product.ProductId, Name = result.Product.Name
                    },
                    MealType = new MealTypeModel {
                        Id = result.MealType.MealTypeId, Name = result.MealType.Name
                    }
                };

                return(response);
            }
            catch (DbException ex)
            {
                if (ex.Code == 50100)
                {
                    return(Forbid());
                }

                return(BadRequest(ex.Message));
            }
            catch (Exception)
            {
                return(StatusCode(500));
            }
        }
        public AddMealViewModel(
            IWeightAppClient client,
            MealInstanceModel model,
            IEnumerable <ProductModel> products,
            IEnumerable <MealTypeModel> mealTypes)
        {
            _client   = client;
            _model    = model;
            Products  = new ObservableCollection <ProductModel>(products);
            MealTypes = new ObservableCollection <MealTypeModel>(mealTypes);

            AddMeal = new RelayCommand(
                AddMealExecute,
                p => _selectedProduct != null && _selectedMealType != null
                );
            Cancel = new RelayCommand(CancelExecute);
        }
示例#3
0
        private void AddNewMealExecute(object obj)
        {
            var addNewMealModel = new MealInstanceModel {
                Date = DateTime.Now, GoalId = _selectedGoal.GoalId
            };
            var addNewMealViewModel = new AddMealViewModel(
                _client,
                addNewMealModel,
                Products,
                _mealTypes
                );
            var dialog = new AddNewMeal();

            dialog.DataContext = addNewMealViewModel;
            var result = dialog.ShowDialog();

            if (result.GetValueOrDefault())
            {
                UpdateMeals();
            }
        }
示例#4
0
 public MealViewModel(MealInstanceModel model, ProductModel products)
 {
     _model    = model;
     _products = products;
 }