/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='request'> /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <object> AddMealAsync(this IGoals operations, AddMealRequest request, CancellationToken cancellationToken = default(CancellationToken)) { using (var _result = await operations.AddMealWithHttpMessagesAsync(request, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
public bool AddMealData(AddMealRequest request) { if (request != null) { Meals Meal = new Meals(); Meal.MealName = request.Name; Meal.Image = request.Image; Meal.CountryId = request.CountryId; Meal.ingredientsId = request.IngredientsId; _db.Meals.Add(Meal); _db.SaveChanges(); int maxm = _db.Meals.Max(p => p.Id); Requirements IngredientsData = new Requirements(); IngredientsData.Components = request.components; IngredientsData.ImagesIngredients = request.ImageIngredients; IngredientsData.Instructions = request.Instructions; IngredientsData.MealsId = maxm; _db.Requirements.Add(IngredientsData); _db.SaveChanges(); return(true); } return(false); }
public async Task <ActionResult <MealInstanceModel> > AddMeal([FromBody] AddMealRequest request) { if (!ModelState.IsValid) { return(BadRequest(ModelState.GetErrorMessages())); } try { var result = await _repository.AddMeal( User.Claims.GetUserId(), new MealInstanceEntity { Goal = new GoalEntity { GoalId = request.GoalId }, Product = new ProductEntityRef { ProductId = request.ProductId }, MealType = new MealTypeEntity { MealTypeId = request.MealTypeId }, Date = request.Date, Amount = request.Amount }); var response = new MealInstanceModel { MealInstanceId = result.MealInstanceId, GoalId = result.Goal.GoalId, Amount = result.Amount, Date = result.Date, Product = new MealProductModel { ProductId = result.Product.ProductId, Name = result.Product.Name }, MealType = new MealTypeModel { Id = result.MealType.MealTypeId, Name = result.MealType.Name } }; return(response); } catch (DbException ex) { if (ex.Code == 50100) { return(Forbid()); } return(BadRequest(ex.Message)); } catch (Exception) { return(StatusCode(500)); } }
public async Task EditAsync(long id, AddMealRequest addMealRequest) { var meal = await GetMealByIdAsync(id); meal = mapper.Map <AddMealRequest, Meal>(addMealRequest, meal); meal.Restaurant = await applicationDbContext.Restaurants.Include(t => t.Meals).ThenInclude(m => m.Price) .FirstOrDefaultAsync(t => t.RestaurantId == addMealRequest.RestaurantId); if (addMealRequest.Image != null) { CloudBlockBlob blob = await blobStorageService.MakeBlobFolderAndSaveImageAsync(id, addMealRequest.Image); await AddImageUriToMealAsync(id, blob); } await applicationDbContext.SaveChangesAsync(); }
public async Task <IActionResult> Add(AddMealRequest addMealRequest) { if (!await restaurantService.ValidateAccessAsync(addMealRequest.RestaurantId, User)) { return(RedirectToAction(nameof(HomeController.Index), "Home")); } if (ModelState.IsValid) { await mealService.SaveMealAsync(addMealRequest); return(RedirectToAction(nameof(RestaurantController.Edit), "Restaurant", new { id = addMealRequest.RestaurantId })); } return(View(addMealRequest)); }
public async Task <IActionResult> Add(long id) { if (!await restaurantService.ValidateAccessAsync(id, User)) { return(RedirectToAction(nameof(HomeController.Index), "Home")); } AddMealRequest addMealRequest = new AddMealRequest() { RestaurantId = id, Price = new Price() }; return(View(addMealRequest)); }
public async Task <IActionResult> Edit(AddMealRequest addMealRequest, long id) { if (!await mealService.ValidateAccessAsync(id, User)) { return(RedirectToAction(nameof(HomeController.Index), "Home")); } if (ModelState.IsValid) { var meal = await mealService.GetMealByIdAsync(id); if (meal != null) { await mealService.EditAsync(id, addMealRequest); } return(RedirectToAction(nameof(RestaurantController.Edit), "Restaurant", new { id = meal.Restaurant.RestaurantId })); } return(View(addMealRequest)); }
public async Task SaveMealAsync(AddMealRequest addMealRequest) { var meal = mapper.Map <AddMealRequest, Meal>(addMealRequest); meal.Restaurant = await applicationDbContext.Restaurants.Include(t => t.Meals).ThenInclude(m => m.Price) .FirstOrDefaultAsync(t => t.RestaurantId == addMealRequest.RestaurantId); await applicationDbContext.Meals.AddAsync(meal); await applicationDbContext.SaveChangesAsync(); if (addMealRequest.Image == null) { meal.ImageUri = "https://dotnetpincerstorage.blob.core.windows.net/mealimages/default/default.png"; } else { CloudBlockBlob blob = await blobStorageService.MakeBlobFolderAndSaveImageAsync(meal.MealId, addMealRequest.Image); await AddImageUriToMealAsync(meal.MealId, blob); } await applicationDbContext.SaveChangesAsync(); }
public async Task Meal_is_deleted() { using (var context = new ApplicationDbContext(options)) { var mealRequest = new AddMealRequest() { Name = "TestMeal3" }; mockMapper.Setup(x => x.Map <AddMealRequest, Meal>(It.IsAny <AddMealRequest>())) .Returns(new Meal() { Name = mealRequest.Name, }); var mealService = new MealService(context, mockMapper.Object, mockBlobStorageService.Object, mockRestaurantService.Object); var length = await context.Meals.CountAsync(); await mealService.DeleteMealAsync(3); Assert.Equal(length - 1, await context.Meals.CountAsync()); } }
public ServiceResponse AddMealToList(string userId, AddMealRequest addMealRequest) { try { var user = _userRepository.GetWhere(x => x.Id == userId); var mealToAdd = new Meal { Id = ObjectId.GenerateNewId().ToString(), Name = addMealRequest.Name, Ingredients = addMealRequest.Ingredients, Recipe = addMealRequest.Recipe, AdditionalInfo = addMealRequest.AdditionalInfo }; var result = _userRepository.AddMealToList(user.Id, mealToAdd); if (result == null) { return(ServiceResponse.Failed()); } if (result.Count() == user.MealsList.Count + 1) { return(ServiceResponse.Succeeded()); } else { return(ServiceResponse.Failed()); } } catch (Exception ex) { _logger.LogCritical(ex.ToString()); return(ServiceResponse.Failed()); } }
public IActionResult AddMealToList([FromBody] AddMealRequest request) { HttpContext.Request.Headers.TryGetValue(AppSettings.AuthenticationHeader, out var jwtValues); string jwtToken = jwtValues.FirstOrDefault(); if (!JwtHelper.IsJwtValid(jwtToken, _jwtTokenSettings.TokenKey, _jwtTokenSettings.Issuer, out var user)) { return(Unauthorized()); } if (user == null) { return(Unauthorized()); } if (request == null || !request.IsValid) { return(BadRequest()); } var result = _mealsService.AddMealToList(user.Id, request); return(result.IsSuccess ? new OkResult() : StatusCode(StatusCodes.Status500InternalServerError)); }
/// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='request'> /// </param> public static object AddMeal(this IGoals operations, AddMealRequest request) { return(Task.Factory.StartNew(s => ((IGoals)s).AddMealAsync(request), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }