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); }
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)); }
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)); }
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))); } }
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))); } }
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); }
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); }