public async Task <ActionResult <MealToReturnDto> > CreateMeal(MealCreateDto mealToCreate) { var email = HttpContext.User.RetrieveEmailFromPrincipal(); var user = await _userManager.FindByEmailAsync(email); var restaurants = await _unitOfWork.Repository <Restaurant>().ListAllAsync(); foreach (var restaurant in restaurants) { if (restaurant.Name == user.DisplayName) { mealToCreate.RestaurantId = restaurant.Id; } } ; var meal = _mapper.Map <MealCreateDto, Meal>(mealToCreate); _unitOfWork.Repository <Meal>().Add(meal); var result = await _unitOfWork.Complete(); if (result <= 0) { return(BadRequest(new ApiResponse(400, "Problem creating meal"))); } return(_mapper.Map <Meal, MealToReturnDto>(meal)); }
public ActionResult <MealReadDto> CreateMeal(MealCreateDto mealCreateDto) { var mealModel = _mapper.Map <Meal>(mealCreateDto); _repository.CreateMeal(mealModel); _repository.SaveChanges(); var mealReadDto = _mapper.Map <MealReadDto>(mealModel); return(CreatedAtRoute(nameof(GetMealById), new { Id = mealReadDto.Id }, mealReadDto)); }
public async Task <ActionResult <MealToReturnDto> > UpdateMeal(int id, MealCreateDto mealToUpdate) { var email = HttpContext.User.RetrieveEmailFromPrincipal(); var user = await _userManager.FindByEmailAsync(email); var restaurants = await _unitOfWork.Repository <Restaurant>().ListAllAsync(); foreach (var restaurant in restaurants) { if (restaurant.Name == user.DisplayName) { if (mealToUpdate.RestaurantId != restaurant.Id) { return(BadRequest(403)); } } } ; if (mealToUpdate.Stock < 0) { mealToUpdate.Stock = 100; } var meal = await _unitOfWork.Repository <Meal>().GetByIdAsync(id); _mapper.Map(mealToUpdate, meal); _unitOfWork.Repository <Meal>().Update(meal); var result = await _unitOfWork.Complete(); if (result <= 0) { return(BadRequest(new ApiResponse(400, "Problem updating meal"))); } return(_mapper.Map <Meal, MealToReturnDto>(meal)); }