public List <CocktailModel> GetCocktailWithParticuarAmountouOfAlcohol(double alcohol)
        {
            List <CocktailModel> cocktailModels = null;

            cocktailDAO = new CocktailDAO();

            cocktailModels = cocktailDAO.GetCocktailWithParticuarAmountouOfAlcohol(alcohol);

            int idCocktail = 0;
            List <CocktailModel> cocktailReturnColl = new List <CocktailModel>();
            CocktailModel        cocktailReturn     = null;

            if (cocktailModels != null)
            {
                foreach (var cocktail in cocktailModels)
                {
                    var id = cocktail.Id;

                    if (idCocktail != id)
                    {
                        idCocktail     = id;
                        cocktailReturn = new CocktailModel();
                        cocktailReturn = cocktail;
                        cocktailReturnColl.Add(cocktailReturn);
                    }
                    else
                    {
                        cocktailReturn.OrderIngredient.Add(cocktail.OrderIngredient[0]);
                    }
                }
            }

            return(cocktailReturnColl);
        }
Esempio n. 2
0
        public int InsertNewGeneratedCocktail(CocktailModel cocktail)
        {
            dynamic id = 0;

            string query = "insert into [EyesAppIncTest.DB.Context].[dbo].[CocktailModels] " +
                           "(Name, PercentageOfAlcohol, HexadecimalColor) " +
                           "values " +
                           "(@Name, @PercentageAlcohol, @HexaColor); " +
                           "SELECT SCOPE_IDENTITY() ";

            using (SqlConnection connection = Connection.createConnection())
            {
                SqlCommand command = new SqlCommand(query, connection);
                command.Parameters.AddWithValue("@Name", cocktail.Name);
                command.Parameters.AddWithValue("@PercentageAlcohol", cocktail.PercentageOfAlcohol);
                command.Parameters.AddWithValue("@HexaColor", cocktail.HexadecimalColor);

                connection.Open();
                try
                {
                    id = command.ExecuteScalar();
                }
                finally
                {
                    // Always call Close when done reading.
                    connection.Close();
                }
            }
            return(Convert.ToInt32(id));
        }
Esempio n. 3
0
        public async Task <JsonResult> Update(CocktailModel cocktail)
        {
            var response = string.Empty;

            if (ModelState.IsValid)
            {
                response = await service.UpdateAsync(cocktail);
            }
            else
            {
                response = "Data is not valid";
            }
            return(Json(response));
        }
Esempio n. 4
0
        public async Task <IActionResult> PostAsync([FromBody, Required] CocktailModel model, CancellationToken cancellationToken)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ApiBadRequestResponse(ModelState)));
            }

            try
            {
                var result = await _service.CreateAsync(model, cancellationToken);

                return(CreatedAtRoute("GetCocktail", new { Id = result.Id }, result));
            }
            catch (BadRequestException ex)
            {
                return(BadRequest(new ApiErrorResponse(400, ex.Message)));
            }
        }
Esempio n. 5
0
        public async Task <IActionResult> PutAsync([FromRoute] Guid id, [FromBody, Required] CocktailModel model, CancellationToken cancellationToken)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ApiBadRequestResponse(ModelState)));
            }

            try
            {
                var result = await _service.UpdateAsync(id, model, cancellationToken);

                return(Ok(result));
            }
            catch (NotFoundException ex)
            {
                return(NotFound(new ApiErrorResponse(404, ex.Message)));
            }
            catch (BadRequestException ex)
            {
                return(BadRequest(new ApiErrorResponse(400, ex.Message)));
            }
        }
Esempio n. 6
0
        public async Task <IActionResult> Delete(CocktailModel cocktail)
        {
            var response = await service.DeleteAsync(cocktail);

            return(Json(response));
        }
        public List <CocktailModel> GetNewGeneratedCocktail(int numberOfIngridients, double finalPercentageOfAlcohol, string drinkName)
        {
            List <CocktailModel>   cocktailReturnColl = new List <CocktailModel>();
            CocktailModel          cocktailReturn     = null;
            List <IngredientModel> ingredientColl     = null;

            cocktailDAO    = new CocktailDAO();
            ingredientsDAO = new IngredientsDAO();

            if (numberOfIngridients == 0)
            {
                numberOfIngridients = 2;
            }

            if (finalPercentageOfAlcohol == 0)
            {
                finalPercentageOfAlcohol = 0.15;
            }

            ingredientColl = ingredientsDAO.ListAll();

            cocktailReturn      = new CocktailModel();
            cocktailReturn.Name = "".Equals(drinkName) ? "New Drink" : drinkName;

            Random r = new Random();

            for (int i = 0; i < numberOfIngridients; i++)
            {
                int x          = r.Next(ingredientColl.Count);
                var ingridient = ingredientColl[x];
                if (cocktailReturn.OrderIngredient == null)
                {
                    cocktailReturn.OrderIngredient = new List <IngredientModel>();
                    cocktailReturn.OrderIngredient.Add(ingridient);
                }
                else
                {
                    if (cocktailReturn.OrderIngredient.Exists(item => item.Name == "Champagne"))
                    {
                        if (ingridient.Name.Equals("Campari"))
                        {
                            cocktailReturn.OrderIngredient.Add(ingredientColl.Single(item => item.Name != "Campari"));
                        }
                    }
                    else if (cocktailReturn.OrderIngredient.Exists(item => item.Name == "Campari"))
                    {
                        {
                            if (ingridient.Name.Equals("Champagne"))
                            {
                                cocktailReturn.OrderIngredient.Add(ingredientColl.Single(item => item.Name != "Champagne"));
                            }
                        }
                    }
                    else
                    {
                        cocktailReturn.OrderIngredient.Add(ingridient);
                    }
                }
            }

            if (Util.Utils.SumAlcohol(cocktailReturn.OrderIngredient) <= finalPercentageOfAlcohol)
            {
                cocktailReturn.HexadecimalColor    = Util.Utils.GetHexaDrink(cocktailReturn.OrderIngredient);
                cocktailReturn.PercentageOfAlcohol = Util.Utils.SumAlcohol(cocktailReturn.OrderIngredient);
                cocktailReturnColl.Add(cocktailReturn);
            }

            return(cocktailReturnColl);
        }
Esempio n. 8
0
        public List <CocktailModel> GetCocktailWithParticuarAmountouOfAlcohol(double alcohol)
        {
            List <CocktailModel> returnObject = null;
            string query = "select co.Id as CocktailId, " +
                           "co.Name as CocktailName, " +
                           "co.PercentageOfAlcohol, " +
                           "co.HexadecimalColor, " +
                           "i.Id as IngredientId, " +
                           "i.Name as IngredientName, " +
                           "i.Quantity as IngredientQt, " +
                           "i.QuantityUnit as IngredienteQtUni, " +
                           "i.HexaColor, " +
                           "i.Alcohol " +
                           "from [EyesAppIncTest.DB.Context].[dbo].[CocktailModels] co " +
                           " inner join [EyesAppIncTest.DB.Context].[dbo].[CocktailIngredients] ci " +
                           "on co.id = ci.CocktailId" +
                           " inner join [EyesAppIncTest.DB.Context].[dbo].[IngredientModels] i " +
                           "on i.id = ci.IngredientId" +
                           " where co.PercentageOfAlcohol = @alcohol" +
                           " order by ci.CocktailId, ci.IngredientId";

            using (SqlConnection connection = Connection.createConnection())
            {
                SqlCommand command = new SqlCommand(query, connection);
                command.Parameters.AddWithValue("@alcohol", alcohol);

                connection.Open();
                SqlDataReader reader = command.ExecuteReader();
                try
                {
                    if (reader.HasRows)
                    {
                        returnObject = new List <CocktailModel>();

                        while (reader.Read())
                        {
                            CocktailModel cocktail = new CocktailModel();
                            cocktail.Id   = Convert.ToInt32(reader["CocktailId"]);
                            cocktail.Name = reader["CocktailName"].ToString();
                            cocktail.PercentageOfAlcohol = Convert.ToDouble(reader["PercentageOfAlcohol"]);
                            cocktail.HexadecimalColor    = reader["HexadecimalColor"].ToString();

                            IngredientModel ingredient = new IngredientModel();
                            ingredient.Id            = Convert.ToInt32(reader["IngredientId"]);
                            ingredient.Name          = reader["IngredientName"].ToString();
                            ingredient.Quantity      = Convert.ToInt32(reader["IngredientQt"]);
                            ingredient.QuantityUnit  = reader["IngredienteQtUni"].ToString();
                            ingredient.HexaColor     = reader["HexaColor"].ToString();
                            ingredient.Alcohol       = Convert.ToDouble(reader["Alcohol"]);
                            cocktail.OrderIngredient = new List <IngredientModel>();

                            cocktail.OrderIngredient.Add(ingredient);

                            returnObject.Add(cocktail);
                        }
                    }
                }
                finally
                {
                    // Always call Close when done reading.
                    reader.Close();
                    connection.Close();
                }
            }

            return(returnObject);
        }