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