Ejemplo n.º 1
0
 public IngredientListModel MapIngredientEntityToListModel(IngredientEntity ingredientEntity)
 {
     return(new IngredientListModel
     {
         Name = ingredientEntity.Name
     });
 }
        public async Task UpdateIngridients(IngredientEntity model)
        {
            var cloudTable = await _tableStorage.GetTableReference(_ingredientsTable);

            TableOperation op     = TableOperation.Replace(model);
            var            result = cloudTable.ExecuteAsync(op);
        }
        public ControllerMessage Delete(string ingredientName)
        {
            string message = String.Empty;
            bool   success = true;

            try
            {
                IngredientEntity ingredientEntity = unitOfWork.Ingredients.Get(ingredientName);
                if (ingredientEntity != null)
                {
                    unitOfWork.Ingredients.Remove(ingredientEntity);
                    unitOfWork.Commit();

                    message = "Ingredient deleted";
                }
                else
                {
                    success = false;
                    message = "Ingredient not found";
                }
            }
            catch (Exception ex)
            {
                success = false;
                message = ExceptionMessageBuilder.BuildMessage(ex);
            }

            return(new ControllerMessage(success, message));
        }
Ejemplo n.º 4
0
 public static IngredientDetailModel MapDetailModel(IngredientEntity entity) =>
 new IngredientDetailModel
 {
     Id          = entity.Id,
     Name        = entity.Name,
     Description = entity.Description
 };
        public void NewEntities_Insert_EntitiesInserted()
        {
            //Arrange
            var ingredientEntity1 = new IngredientEntity {
                Name = "Entity1Name", Description = "Entity1Description", Id = Guid.Parse("70923986-c08b-4798-9658-fd2c98ca8da5"),
            };
            var ingredientEntity2 = new IngredientEntity {
                Name = "Entity2Name", Description = "Entity2Description", Id = Guid.Parse("80923986-c08b-4798-9658-fd2c98ca8da6"),
            };
            var ingredientEntity3 = new IngredientEntity {
                Name = "Entity3Name", Description = "Entity3Description", Id = Guid.Parse("90923986-c08b-4798-9658-fd2c98ca8da7"),
            };

            //Act
            this._repositorySUT.Insert(ingredientEntity1);
            this._repositorySUT.Insert(ingredientEntity2);
            this._repositorySUT.Insert(ingredientEntity3);

            //Assert
            this._ingredientDbSetMock.Verify(set => set.Add(ingredientEntity1), Times.Once);
            this._ingredientDbSetMock.Verify(set => set.Add(ingredientEntity2), Times.Once);
            this._ingredientDbSetMock.Verify(set => set.Add(ingredientEntity3), Times.Once);

            Assert.Contains(ingredientEntity1, this._ingredientDbSetMock.Object.Local);
            Assert.Contains(ingredientEntity2, this._ingredientDbSetMock.Object.Local);
            Assert.Contains(ingredientEntity3, this._ingredientDbSetMock.Object.Local);
        }
        public async Task DeleteIngredient_When_IngredientExists()
        {
            var testIngredientId   = 2;
            var testIngredientName = "TestIngredientName";
            var timesUsed          = 1;

            var testIngredientEntity = new IngredientEntity()
            {
                Id        = testIngredientId,
                Name      = testIngredientName,
                TimesUsed = timesUsed
            };

            var options = TestUtilities.GetOptions(nameof(DeleteIngredient_When_IngredientExists));

            using (var arrangeContext = new AppDBContext(options))
            {
                await arrangeContext.Ingredients.AddAsync(testIngredientEntity);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new AppDBContext(options))
            {
                var sut = new IngredientService(assertContext);

                await sut.Delete(testIngredientId);

                Assert.AreEqual(0, assertContext.Ingredients.Count());
            }
        }
        public ControllerMessage Update(IngredientEditDTO ingredientEditDTO)
        {
            string message = String.Empty;
            bool   success = Validate(ingredientEditDTO.NewName, ref message);

            if (success)
            {
                try
                {
                    IngredientEntity ingredientEntity = unitOfWork.Ingredients.Get(ingredientEditDTO.OldName);
                    if (ingredientEntity != null)
                    {
                        ingredientEntity.Name = ingredientEditDTO.NewName;
                        unitOfWork.Commit();

                        message = "Ingredient changed";
                    }
                    else
                    {
                        success = false;
                        message = "Ingredient not found";
                    }
                }
                catch (Exception ex)
                {
                    success = false;
                    message = ExceptionMessageBuilder.BuildMessage(ex);
                }
            }

            return(new ControllerMessage(success, message));
        }
        public DataControllerMessage <IngredientEditDTO> Get(string ingredientName)
        {
            string            message = String.Empty;
            bool              success = true;
            IngredientEditDTO data    = null;

            try
            {
                IngredientEntity ingredientEntity = unitOfWork.Ingredients.Get(ingredientName);
                if (ingredientEntity != null)
                {
                    data = new IngredientEditDTO
                    {
                        NewName         = ingredientEntity.Name,
                        OldName         = ingredientEntity.Name,
                        StocksAvailable = unitOfWork.Stocks.GetAllWithIngredient(ingredientName)
                                          .Select(stock => stock.StockNo)
                                          .OrderBy(stockNo => stockNo)
                                          .ToList()
                    };
                }
                else
                {
                    success = false;
                    message = "Ingredient not found";
                }
            }
            catch (Exception ex)
            {
                success = false;
                message = ExceptionMessageBuilder.BuildMessage(ex);
            }

            return(new DataControllerMessage <IngredientEditDTO>(success, message, data));
        }
Ejemplo n.º 9
0
 public static IngredientListModel MapIngredientEntityToListModel(IngredientEntity entity)
 {
     return(new IngredientListModel
     {
         Id = entity.Id,
         Name = entity.Name
     });
 }
Ejemplo n.º 10
0
        public void AddNew_Ingredient()
        {
            var ingredientEntity = new IngredientEntity(Guid.NewGuid(), "Test Name", "Test Decription");

            using var dbx = _dbContextFactory.Create();
            dbx.Ingredients.Add(ingredientEntity);
            dbx.SaveChanges();
        }
Ejemplo n.º 11
0
 public static IngredientListModel MapListModel(IngredientEntity entity) =>
 entity == null
         ? null
         : new IngredientListModel
 {
     Id   = entity.Id,
     Name = entity.Name
 };
Ejemplo n.º 12
0
 public IngredienceDetailModel Map(IngredientEntity recipeEntity)
 {
     return(new IngredienceDetailModel
     {
         Id = recipeEntity.Id,
         Name = recipeEntity.Name,
         Description = recipeEntity.Description
     });
 }
Ejemplo n.º 13
0
 // Ingredient models and entity mappings.
 public IngredientDetailModel MapIngredientEntityToDetailModel(IngredientEntity ingredientEntity)
 {
     return(new IngredientDetailModel
     {
         Id = ingredientEntity.Id,
         Name = ingredientEntity.Name,
         Description = ingredientEntity.Description
     });
 }
Ejemplo n.º 14
0
 public static IngredientDTO MapDto(IngredientEntity entity)
 {
     return(new IngredientDTO()
     {
         Id = entity.Id,
         Name = entity.Name,
         Description = entity.Description
     });
 }
Ejemplo n.º 15
0
        public void Delete(Guid id)
        {
            using var dbContext = _dbContextFactory.Create();

            var entity = new IngredientEntity(id);

            dbContext.Remove(entity);
            dbContext.SaveChanges();
        }
Ejemplo n.º 16
0
 public static IngredientDetailModel MapDetailModel(IngredientEntity entity) =>
 entity == null
         ? null
         : new IngredientDetailModel
 {
     Id          = entity.Id,
     Name        = entity.Name,
     Description = entity.Description,
     ImageUrl    = entity.ImageUrl
 };
        public void NewEntity_Insert_EntityInserted()
        {
            //Arrange
            var ingredientEntity = new IngredientEntity();

            //Act
            this._repositorySUT.Insert(ingredientEntity);

            //Assert
            this._ingredientDbSetMock.Verify(set => set.Add(ingredientEntity), Times.Once);
        }
Ejemplo n.º 18
0
        public ControllerMessage Add(RecipeAddDTO recipeAddDTO)
        {
            string message = String.Empty;
            bool   success = Validate(recipeAddDTO, ref message);

            if (success)
            {
                try
                {
                    DishEntity dish = unitOfWork.Dishes.Get(recipeAddDTO.DishName);
                    if (dish != null)
                    {
                        RecipeEntity recipeEntity = new RecipeEntity
                        {
                            Name              = recipeAddDTO.Name,
                            Description       = recipeAddDTO.Description,
                            Dish              = dish,
                            RecipeIngredients = new List <RecipeIngredientEntity>()
                        };

                        foreach (IngredientPortion ingredientPortion in recipeAddDTO.Ingredients)
                        {
                            IngredientEntity ingredientEntity = unitOfWork.Ingredients.Get(ingredientPortion.Ingredient);
                            if (ingredientEntity != null)
                            {
                                recipeEntity.RecipeIngredients.Add(new RecipeIngredientEntity
                                {
                                    Ingredient = ingredientEntity,
                                    Recipe     = recipeEntity,
                                    Portion    = ingredientPortion.Portion
                                });
                            }
                        }

                        unitOfWork.Recipes.Add(recipeEntity);
                        unitOfWork.Commit();

                        message = "Recipe added";
                    }
                    else
                    {
                        success = false;
                        message = "Dish not found";
                    }
                }
                catch (Exception ex)
                {
                    success = false;
                    message = ExceptionMessageBuilder.BuildMessage(ex);
                }
            }

            return(new ControllerMessage(success, message));
        }
 public async Task DeleteAsync(Guid id)
 {
     using (var dbx = _contextFactory.CreateDbContext())
     {
         var ingredient = new IngredientEntity()
         {
             Id = id
         };
         dbx.Ingredients.Remove(ingredient);
         await dbx.SaveChangesAsync();
     }
 }
        public void OneItemNonExisting_DeleteById_ShouldCallRemove()
        {
            //Arrange
            var deletedIngredient = new IngredientEntity();

            //Act
            this._repositorySUT.Delete(deletedIngredient.Id);

            //Assert
            this._ingredientDbSetMock.Verify(
                set => set.Remove(It.Is <IngredientEntity>(entity => entity.Id == deletedIngredient.Id)), Times.Once);
        }
Ejemplo n.º 21
0
 public static Ingredient ToDomain(this IngredientEntity ingredientEntity)
 {
     return(new Ingredient
     {
         Id = ingredientEntity.Id,
         RecipeId = ingredientEntity.Id,
         ProductId = ingredientEntity.ProductId,
         AmountInGrams = ingredientEntity.AmountInGrams,
         Recipe = ingredientEntity.Recipe.ToDomain(),
         Product = ingredientEntity.Product.ToDomain()
     });
 }
Ejemplo n.º 22
0
        public void NewEntity_Insert_EntityInserted()
        {
            //Arrange
            var ingredientEntity = new IngredientEntity();

            //Act
            var insertedIngredient = _repositorySUT.Insert(ingredientEntity);

            //Assert
            Assert.NotNull(insertedIngredient);
            Assert.NotEqual(Guid.Empty, insertedIngredient.Id);
        }
 public static Ingredient ToContract(this IngredientEntity entity)
 {
     if (entity == null)
     {
         return(null);
     }
     return(new Ingredient
     {
         Id = entity.Id,
         Name = entity.Name,
         TimesUsed = entity.TimesUsed
     });
 }
        public void Delete(Guid id)
        {
            using (var dbx = _contextFactory.CreateDbContext())
            {
                var ingredient = new IngredientEntity()
                {
                    Id = id
                };
                dbx.Ingredients.Remove(ingredient);

                dbx.SaveChanges();
            }
        }
Ejemplo n.º 25
0
        public void Add_Ingredient_IngredientAdded()
        {
            //Arrange
            var ingredient = new IngredientEntity();

            //Act
            _testContext.CookBookDbContextSUT.Ingredients.Add(ingredient);
            _testContext.CookBookDbContextSUT.SaveChanges();

            //Assert
            using (var dbx = _testContext.DbContextFactory.CreateDbContext())
            {
                var _ = dbx.Ingredients.Single(i => i.Id == ingredient.Id);
            }
        }
Ejemplo n.º 26
0
        public async Task IncrementIngredientsCounter_When_CocktailIsCreated()
        {
            var testCocktailId      = 5;
            var testIngredientId    = 3;
            var testIngredidentName = "TestIngredient";

            var cocktailIngredient = new CocktailIngredientEntity()
            {
                CocktailEntityId   = testCocktailId,
                IngredientEntityId = testIngredientId
            };

            var cocktailCreateRequest = new CocktailCreateRequest()
            {
                Name        = testIngredidentName,
                Recipe      = "TestRecipe",
                Ingredients = new List <int>()
                {
                    testIngredientId
                }
            };

            var ingredientEntity = new IngredientEntity()
            {
                Id        = testIngredientId,
                Name      = testIngredidentName,
                TimesUsed = 5,
            };
            var options = TestUtilities.GetOptions(nameof(IncrementIngredientsCounter_When_CocktailIsCreated));

            using (var arrangeContext = new AppDBContext(options))
            {
                await arrangeContext.Ingredients.AddAsync(ingredientEntity);

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new AppDBContext(options))
            {
                var sut = new CocktailService(assertContext);

                await sut.Create(cocktailCreateRequest);

                var testIngredient = await assertContext.Ingredients.SingleOrDefaultAsync(x => x.Id == testIngredientId);

                Assert.AreEqual(6, testIngredient.TimesUsed);
            }
        }
Ejemplo n.º 27
0
        public void AddNew_Ingredient_Persisted()
        {
            //Arrange
            var ingredientEntity = new IngredientEntity("Salt", "Mountain salt");

            //Act
            _cookBookDbContextSUT.Ingredients.Add(ingredientEntity);
            _cookBookDbContextSUT.SaveChanges();


            //Assert
            using var dbx = _dbContextFactory.Create();
            var retrievedIngredient = dbx.Ingredients.Single(entity => entity.Id == ingredientEntity.Id);

            Assert.Equal(ingredientEntity, retrievedIngredient);
        }
Ejemplo n.º 28
0
        internal RecipeEntity Map(RecipeDetailModel recipeDetailModel)
        {
            var recipeEntity = new RecipeEntity
            {
                Name        = recipeDetailModel.Name,
                Description = recipeDetailModel.Description,
                Type        = (DAL.Entities.FoodType)recipeDetailModel.Type,
                Duration    = recipeDetailModel.Duration
            };

            if (recipeDetailModel.Id == Guid.Empty)
            {
                recipeDetailModel.Id = recipeEntity.Id;
            }
            else
            {
                recipeEntity.Id = recipeDetailModel.Id;
            }

            foreach (var ingredientModel in recipeDetailModel.Ingredients)
            {
                var ingredientAmount = new IngredientAmountEntity
                {
                    Amount = ingredientModel.Amount,
                    Unit   = (DAL.Entities.Unit)ingredientModel.Unit
                };

                var ingredient = new IngredientEntity
                {
                    Name        = ingredientModel.Name,
                    Description = ingredientModel.Description
                };
                if (ingredientModel.Id == Guid.Empty)
                {
                    ingredientModel.Id = ingredient.Id;
                }
                else
                {
                    ingredient.Id = ingredientModel.Id;
                }

                ingredientAmount.Ingredient = ingredient;
                recipeEntity.Ingredients.Add(ingredientAmount);
            }
            return(recipeEntity);
        }
Ejemplo n.º 29
0
        public void AddIngredienceTest()
        {
            var ingredient = new IngredientEntity
            {
                Name        = "Ingredient name",
                Description = "Ingredient description"
            };

            this.DbContext.Ingredients.Add(ingredient);
            this.DbContext.SaveChanges();

            var ingredientEntity = this.DbContext.Ingredients.FirstOrDefault();

            Assert.NotNull(ingredientEntity);
            Assert.AreEqual(ingredient.Name, ingredientEntity.Name);
            Assert.AreEqual(ingredient.Description, ingredientEntity.Description);
        }
        public async Task <IngredientsModel> InsertIngredientsIntoTable(IngredientsModel model)
        {
            var table = await _tableStorage.GetTableReference(_ingredientsTable);

            model.IdIngredient = Guid.NewGuid().ToString();
            var entity = new IngredientEntity()
            {
                PartitionKey         = model.IdIngredient,
                RowKey               = new Guid().ToString(),
                IngredientsModelData = model
            };

            var tableOperation = TableOperation.InsertOrMerge(entity);
            await table.ExecuteAsync(tableOperation);

            return(model);
        }