Exemple #1
0
        public async void UpdateRecipeProductChanges_AtInitializedDbTable_UpdatedRecipeProductChangesEqualExpectedRecipeProductChanges()
        {
            // arrange
            var recipeProductChanges = GetRecipeProductChanges();

            fixture.db.Add(recipeProductChanges);
            await fixture.db.SaveChangesAsync();

            var expected = new RecipeProductChanges
            {
                ProductId = recipeProductChanges.ProductId,
                RecipeId  = recipeProductChanges.RecipeId,
                Quantity  = (decimal)78.9012,
                Type      = ProductCatalogTypes.Product
            };

            // act
            await logic.UpdateDataModelAsync(expected);

            // assert
            var actual = await fixture.db.RecipeProductChanges.FirstOrDefaultAsync(i => i.ProductId == recipeProductChanges.ProductId && i.RecipeId == recipeProductChanges.RecipeId);

            Assert.Equal(expected.ProductId, actual.ProductId);
            Assert.Equal(expected.RecipeId, actual.RecipeId);
            Assert.Equal(expected.Quantity, actual.Quantity);
            Assert.Equal(expected.Type, actual.Type);
        }
        public async Task <IActionResult> EditSingleItem(RecipeProductChanges model)
        {
            var statusMessage = await logicValidation.CheckUpdateDataModelAsync((model.RecipeId, model.ProductId));

            if (statusMessage.IsCompleted)
            {
                await logic.UpdateDataModelAsync(model);

                await logProvider.AddToLogAsync($"Updated recipe product relation information (Recipe Id: {model.RecipeId}; Product Id: {model.ProductId}).");

                return(RedirectToRoute(RecipeProductsRouting.Index, new { key = model.RecipeId }));
            }
            else
            {
                return(View("CustomError", statusMessage));
            }
        }