Example #1
0
        /// <summary>
        /// Upsert de Food Restrictions
        /// </summary>
        /// <param name="serviceModel"></param>
        public static void UpsertFoodRestrictions(UserServiceModel serviceModel)
        {
            var user = _db.UserFood.First(x => x.codUserFood == serviceModel.UserId);

            //Adicionando as novas foodrestricions que ainda não existem associados ao User
            foreach (var foodRestriction in serviceModel.Restrictions)
            {
                if (!user.userFoodRestriction.Any(x => x.foodRestriction.ToLower().Trim() == foodRestriction.ToLower().Trim()))
                {
                    var newFoodRestriction = new UserFoodRestriction()
                    {
                        codUserFoodFK   = serviceModel.UserId,
                        foodRestriction = foodRestriction
                    };

                    _db.UserFoodRestriction.Add(newFoodRestriction);
                }
            }

            _db.SaveChanges();

            //Removendo possíveis FoodRestrictions removidas pela request
            foreach (var foodRestriction in user.userFoodRestriction.Where(x => !serviceModel.Restrictions.Any(y => y == x.foodRestriction)))
            {
                _db.UserFoodRestriction.Remove(foodRestriction);
            }

            _db.SaveChanges();
        }
Example #2
0
        public async Task <IActionResult> PostAsync([FromBody] UserFoodRestriction request)
        {
            try
            {
                _userService.SaveUserRestriction(Guid.Parse(request.UserId), request.Restrictions, request.Other);
                return(Ok());
            }
            catch (Exception ex)
            {
                await _serviceBus.SendLogAsync($"Não foi possível armazenar as retrisções para o usuário \"{request.UserId}\" ex: {ex}");

                return(BadRequest());
            }
        }