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