示例#1
0
        //User adds meal
        public async Task AddMealAsync(UserModel user, MealModel meal)
        {
            if (user.Position == (int)UserPosition.HasNotHome)
            {
                CustomException errors = new CustomException((int)HttpStatusCode.BadRequest);
                errors.AddError("Home Not Exist", "User is not member of a home");
                errors.Throw();
            }

            user = await _userRepository.GetByIdAsync(user.Id, true);

            HomeModel home = await _homeRepository.GetByIdAsync(user.Home.Id, true);

            MealModel tmp = await _mealRepository.GetHomeMealByNameAsync(home.Id, meal.Name);

            if (tmp != null)
            {
                CustomException errors = new CustomException((int)HttpStatusCode.BadRequest);
                errors.AddError("Meal Already Exist", "This meal has already exist");
                errors.Throw();
            }

            meal.Home = home;

            _mealRepository.Insert(meal);

            foreach (var friend in home.Users)
            {
                FCMModel fcm = new FCMModel(friend.DeviceId, type: "AddMeal");
                fcm.data.Add("Meal", meal);
                await _fcmService.SendFCMAsync(fcm);
            }
        }