/// <summary> /// Recupere les 5 meilleurs recettes du meilleur cdr /// </summary> /// <param name="nb"></param> /// <returns></returns> private List <Recipe> GetTop5RecipesOfBestCdr(int nb = 5, bool ofWeek = false) { RecipeCreator bestCdr = GetTop5BestCDR(1, ofWeek).First(); // recupere le meilleur cdr DDB ddb = new DDB(User.DataBase, User.Username, User.Password); BestCDRAllTB.Text = ddb.SelectClient(new string[] { "numero" }, new string[] { $"'{bestCdr.Id}'" })[0].Name; List <Recipe> recipes = GetTop5Recipes(-1); // recupere les meilleurs recettes List <Recipe> top5RecipesOfBestCdr = new List <Recipe>(); ddb.Close(); nb = (nb == -1) ? recipes.Count() : nb; int cpt = 0; while (top5RecipesOfBestCdr.Count < nb && cpt < recipes.Count) // recupre les nb premieres { if (recipes[cpt].NumberCreator.Equals(bestCdr.Id)) { top5RecipesOfBestCdr.Add(recipes[cpt]); } cpt++; } return(top5RecipesOfBestCdr); }
private void ButtonRemove_Click(object sender, RoutedEventArgs e) { RecipeCreator recipeCreatorToRemove = (RecipeCreator)((Button)sender).Tag; ServiceRecipeCreator.Remove(recipeCreatorToRemove); RecipeCreators.Remove(recipeCreatorToRemove); }
private void Page_Loaded(object sender, RoutedEventArgs e) { ServiceRecipeCreator = new ServiceRecipeCreator(); RecipeCreator recipeCreatorOfTheWeek = ServiceRecipeCreator.BestOfTheWeek(); if (recipeCreatorOfTheWeek != null) { TextBlockRecipeCreatorOfTheWeek.Text = recipeCreatorOfTheWeek.Client.FullName; TextBlockCountRecipesOfCreatorOfTheWeek.Text = $"{recipeCreatorOfTheWeek.RecipesSold} recipes sold last 7 days"; } else { TextBlockCountRecipesOfCreatorOfTheWeek.Text = "No recipes sold last 7 days"; } RecipeCreator recipeCreatorOfAllTime = ServiceRecipeCreator.BestOfAllTime(); ServiceRecipe = new ServiceRecipe(); if (recipeCreatorOfAllTime != null) { TextBlockRecipeCreatorOfAllTime.Text = recipeCreatorOfAllTime.Client.FullName; TextBlockCountRecipesOfCreatorOfAllTime.Text = $"{recipeCreatorOfAllTime.RecipesSold} recipes sold"; TextBlockTopOfBestCreatorTitle.Text = "Top 5 recipes of: " + recipeCreatorOfAllTime.Client.FullName; ListViewTopRecipesOfBestCreator.ItemsSource = ServiceRecipe.AllOf(recipeCreatorOfAllTime, 5); } else { TextBlockCountRecipesOfCreatorOfTheWeek.Text = "No recipes sold"; } ListViewTop5Recipes.ItemsSource = ServiceRecipe.Top(5); }
/// <summary> /// Met à jour les infos du cdr notamment pour son solde cook. /// </summary> /// <param name="recipeCreator">cdr à update</param> /// <returns>retourne le cdr inchangé</returns> public RecipeCreator Update(RecipeCreator recipeCreator) { try { Database.Connection.Open(); MySqlCommand commande = Database.Connection.CreateCommand(); commande.CommandText = "UPDATE cdr, client " + "SET client.solde = @cooks " + "WHERE cdr.identifiant_client = client.identifiant_client " + "AND identifiant_cdr = @id"; commande.Parameters.AddWithValue("@id", recipeCreator.Id); commande.Parameters.AddWithValue("@cooks", recipeCreator.Cooks); commande.ExecuteNonQuery(); } catch (Exception exception) { Console.WriteLine(exception.Message); } Database.Connection.Close(); return(recipeCreator); }
public static void ShowRecipeCreator() //metoda wyświetlająca kreator przepisów { RecipeCreator rc = new RecipeCreator(); rc.Initialize(recipeSource); rc.ShowDialog(); }
/// <summary> /// Crée le cdr dans la DB en fonction du client rentré en paramètre /// </summary> /// <param name="client">client qu'on veut faire devenir cdr</param> /// <returns>le cdr lié au client</returns> public RecipeCreator Save(Client client) { RecipeCreator recipeCreator = new RecipeCreator(); recipeCreator.Client = client; return(DaoRecipeCreator.Create(recipeCreator)); }
/// <summary> /// Récupère les informations du cdr de la DB à partir de son identifiant. /// On veut aussi et surtout récupérer les infos du client relié à ce cdr. /// </summary> /// <param name="id">id du cdr dont on veut les données</param> /// <returns>retourne les infos du cdr</returns> public RecipeCreator Read(int id) { try { Database.Connection.Open(); MySqlCommand commande = Database.Connection.CreateCommand(); commande.CommandText = "SELECT * FROM cdr, client WHERE cdr.identifiant_client = client.identifiant_client AND identifiant_cdr = @Id;"; commande.Parameters.AddWithValue("@Id", id); MySqlDataReader reader = commande.ExecuteReader(); reader.Read(); RecipeCreator recipeCreator = new RecipeCreator(); recipeCreator.Id = id; recipeCreator.Client = new Client(); recipeCreator.Client.Id = reader.GetInt32(reader.GetOrdinal("identifiant_client")); recipeCreator.Client.Mail = reader.GetString(reader.GetOrdinal("mail")); recipeCreator.Client.FirstName = reader.GetString(reader.GetOrdinal("prenom")); recipeCreator.Client.LastName = reader.GetString(reader.GetOrdinal("nom")); recipeCreator.Client.Phone = reader.GetString(reader.GetOrdinal("telephone")); recipeCreator.Cooks = reader.GetInt32(reader.GetOrdinal("solde")); Database.Connection.Close(); return(recipeCreator); } catch (MySqlException mySqlException) { Console.WriteLine(mySqlException.Message); return(null); } }
/// <summary> /// Enregistre le Cdr dans la BDD. /// </summary> /// <param name="recipeCreator">cdr à créer</param> /// <returns>retourne le Cdr avec sa référence en plus</returns> public RecipeCreator Create(RecipeCreator recipeCreator) { try { Database.Connection.Open(); MySqlCommand commande = Database.Connection.CreateCommand(); commande.CommandText = "INSERT INTO cdr ( identifiant_client ) " + "VALUES (@clientId); " + "SELECT cdr.identifiant_cdr FROM cdr ORDER BY cdr.identifiant_cdr DESC LIMIT 1"; commande.Parameters.AddWithValue("@clientId", recipeCreator.Client.Id); recipeCreator.Id = (int)commande.ExecuteScalar(); Database.Connection.Close(); return(recipeCreator); } catch (MySqlException mySqlException) { Console.WriteLine(mySqlException.Message); return(null); } }
private void FillCDROfTheWeek() { RecipeCreator bestCdrOfWeek = GetTop5BestCDR(1, true).First(); DDB ddb = new DDB(); CDRWeekTB.Text = ddb.SelectClient(new string[] { "numero" }, new string[] { $"'{bestCdrOfWeek.Id}'" }).First().Name; ddb.Close(); }
public void RecipeCreatorSetDescription_ShouldSetRecipeDescription() { var recipeCreator = new RecipeCreator(this.Context); var description = "Description"; recipeCreator.SetDescription(description); Assert.AreEqual(description, recipeCreator.Recipe.Description); }
public void RecipeCreatorSetPrepTime_ShouldSetRecipePrepTime() { var recipeCreator = new RecipeCreator(this.Context); short prepTime = 10; recipeCreator.SetPrepTime(prepTime); Assert.AreEqual(prepTime, recipeCreator.Recipe.PrepTime); }
public void RecipeCreatorSetImage_ShouldSetRecipeImage() { var recipeCreator = new RecipeCreator(this.Context); var image = "https://www.image.com"; recipeCreator.SetImage(new Uri(image)); Assert.AreEqual(image + "/", recipeCreator.Recipe.ImageUrl); }
public void RecipeCreatorSetCredit_ShouldSetRecipeCredit() { var recipeCreator = new RecipeCreator(this.Context); var credit = "https://www.google.com"; recipeCreator.SetCredit(credit); Assert.AreEqual(credit, recipeCreator.Recipe.Credit); }
public void RecipeCreatorSetServingSize_ShouldSetRecipeServingSize() { var recipeCreator = new RecipeCreator(this.Context); short servingSize = 4; recipeCreator.SetServingSize(servingSize); Assert.AreEqual(servingSize, recipeCreator.Recipe.ServingSize); }
public void RecipeCreatorSetTags_ShouldSetRecipeTags() { var recipeCreator = new RecipeCreator(this.Context); var tags = new RecipeTags(RecipeTag.CommonIngredients); recipeCreator.SetTags(tags); CollectionAssert.AreEqual(tags, recipeCreator.Recipe.Tags); }
public void RecipeCreatorSetCreditUrl_ShouldSetRecipeCreditUrl() { var recipeCreator = new RecipeCreator(this.Context); var creditUrl = "https://www.google.com"; recipeCreator.SetCreditUrl(new Uri(creditUrl)); Assert.AreEqual(creditUrl + "/", recipeCreator.Recipe.CreditUrl); }
public void RecipeCreatorSetCookTime_ShouldSetRecipeCookTime() { var recipeCreator = new RecipeCreator(this.Context); short cookTime = 10; recipeCreator.SetCookTime(cookTime); Assert.AreEqual(cookTime, recipeCreator.Recipe.CookTime); }
public void RecipeCreatorSetTitle_ShouldSetRecipeTitle() { var recipeCreator = new RecipeCreator(this.Context); var title = "Title"; recipeCreator.SetTitle(title); Assert.AreEqual(title, recipeCreator.Recipe.Title); }
public void RecipeCreatorSetDate_ShouldSetRecipeDate() { var recipeCreator = new RecipeCreator(this.Context); var date = new DateTime(2000, 6, 6); recipeCreator.SetDateEntered(date); Assert.AreEqual(date, recipeCreator.Recipe.DateEntered); }
public void RecipeCreatorSetMethod_ShouldSetRecipeMethod() { var recipeCreator = new RecipeCreator(this.Context); var method = "Method"; recipeCreator.SetMethod(method); Assert.AreEqual(method, recipeCreator.Recipe.Method); }
public void RecipeCreatorSetRating_ShouldSetRecipeRating() { var recipeCreator = new RecipeCreator(this.Context); var rating = Rating.FiveStars; recipeCreator.SetRating(rating); Assert.AreEqual(rating, recipeCreator.Recipe.UserRating); }
/// <summary> /// Récupère tous les cdr de la DB avec toutes les recettes qu'ils ont crée /// </summary> /// <returns>retourne la liste des cdr</returns> public List <RecipeCreator> ReadAll() { List <RecipeCreator> recipeCreators = new List <RecipeCreator>(); try { Database.Connection.Open(); MySqlCommand commande = Database.Connection.CreateCommand(); commande.CommandText = "SELECT *, client.nom as nom_client FROM cdr, client, recette " + "WHERE cdr.identifiant_client = client.identifiant_client " + "AND cdr.identifiant_cdr = recette.identifiant_cdr;"; MySqlDataReader reader = commande.ExecuteReader(); while (reader.Read()) { Recipe recipe = new Recipe(); recipe.Ref = reader.GetInt32(reader.GetOrdinal("ref_recette")); recipe.TimesOrdered = reader.GetInt32(reader.GetOrdinal("nbr_commande")); int recipeCreatorId = reader.GetInt32(reader.GetOrdinal("identifiant_cdr")); RecipeCreator recipeCreator = null; if (recipeCreators.Any(recipeCr => recipeCr.Id == recipeCreatorId)) { recipeCreator = recipeCreators.First(recipeCr => recipeCr.Id == recipeCreatorId); } if (recipeCreator == null) { recipeCreator = new RecipeCreator(); recipeCreator.Id = reader.GetInt32(reader.GetOrdinal("identifiant_cdr")); recipeCreator.Client = new Client(); recipeCreator.Client.Id = reader.GetInt32(reader.GetOrdinal("identifiant_client")); recipeCreator.Client.Mail = reader.GetString(reader.GetOrdinal("mail")); recipeCreator.Client.FirstName = reader.GetString(reader.GetOrdinal("prenom")); recipeCreator.Client.LastName = reader.GetString(reader.GetOrdinal("nom_client")); recipeCreator.Client.Phone = reader.GetString(reader.GetOrdinal("telephone")); recipeCreator.Recipes = new List <Recipe>(); recipeCreators.Add(recipeCreator); } recipeCreator.Recipes.Add(recipe); } } catch (Exception exception) { Console.WriteLine(exception.Message); } Database.Connection.Close(); return(recipeCreators); }
public RecipeCreateDialogForm(ClientsService clientsService, DiseasesService diseasesService, RecipeCreator recipeCreator) { _clientsService = clientsService; _diseasesService = diseasesService; _recipeCreator = recipeCreator; InitializeComponent(); }
public void RecipeCreatorCommit_ShouldCallContextCreateRecipeMethod() { var recipeCreator = new RecipeCreator(this.Context); this.Context.CRCalledTimes = 0; recipeCreator.Commit(); Assert.AreEqual(1, this.Context.CRCalledTimes); }
/// <summary> /// Récupère le Cdr le plus commandé sur les 7 derniers jours. /// </summary> /// <returns>renvoie le Cdr de la semaine</returns> public RecipeCreator ReadOfTheWeek() { try { Database.Connection.Open(); MySqlCommand command = Database.Connection.CreateCommand(); command.CommandText = "select sum(contenir.nombre) as best, cl.*, cd.* " + "from cdr as cd, client as cl, commande as c, recette, contenir " + "where cl.identifiant_client = cd.identifiant_client " + "and cd.identifiant_cdr = recette.identifiant_cdr " + "and recette.ref_recette = contenir.ref_recette " + "and contenir.ref_commande = c.ref_commande " + "and date_format(c.date,'%Y-%m-%d') >= @Date " + "group by cd.identifiant_cdr " + "order by best desc " + "limit 1"; TimeSpan decalage = new TimeSpan(7, 0, 0, 0); DateTime DayLastWeek = DateTime.Today - decalage; command.Parameters.AddWithValue("@Date", DayLastWeek.ToString("yyyy-MM-dd")); MySqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) { reader.Read(); RecipeCreator recipeCreator = new RecipeCreator(); recipeCreator.Id = reader.GetInt32(reader.GetOrdinal("identifiant_cdr")); recipeCreator.RecipesSold = reader.GetInt32(reader.GetOrdinal("best")); recipeCreator.Client = new Client(); recipeCreator.Client.Id = reader.GetInt32(reader.GetOrdinal("identifiant_client")); recipeCreator.Client.Mail = reader.GetString(reader.GetOrdinal("mail")); recipeCreator.Client.FirstName = reader.GetString(reader.GetOrdinal("prenom")); recipeCreator.Client.LastName = reader.GetString(reader.GetOrdinal("nom")); recipeCreator.Client.Phone = reader.GetString(reader.GetOrdinal("telephone")); recipeCreator.Cooks = reader.GetInt32(reader.GetOrdinal("solde")); reader.Close(); Database.Connection.Close(); return(recipeCreator); } } catch (MySqlException mySqlException) { Console.WriteLine(mySqlException.Message); } Database.Connection.Close(); return(null); }
/// <summary> /// Pay the creator of the recipe /// </summary> /// <param name="recipe"></param> private static void PayingCDR(Recipe recipe) { DDB ddB = new DDB(User.DataBase, User.Username, User.Password); RecipeCreator recipeCreator = ddB.SelectRecipeCreator(new string[] { "numero" }, new string[] { $"'{recipe.NumberCreator}'" })[0]; Client client = ddB.SelectClient(new string[] { "numero" }, new string[] { $"'{recipeCreator.Id}'" })[0]; client.Money += recipe.IsTrending ? 4 : 2; ddB.UpdateClient(client, new string[] { "nom" }, new string[] { $"'{client}'" }); ddB.Close(); }
/// <summary> /// Si le cdr n'existe pas déjà dans la DB, le crée. /// Sinon, update ses informations. /// </summary> /// <param name="recipeCreator">cdr à créer ou modifier</param> /// <returns>le cdr crée ou modifié</returns> public RecipeCreator Save(RecipeCreator recipeCreator) { if (recipeCreator.Id == 0) { return(DaoRecipeCreator.Create(recipeCreator)); } else { return(DaoRecipeCreator.Update(recipeCreator)); } }
public void RecipeCreatorChainingMethods_ShouldCorrectlyDoAllMethods() { var recipeCreator = new RecipeCreator(this.Context); var title = "Title"; var desc = "Description"; var method = "Method"; recipeCreator.SetTitle(title).SetDescription(desc).SetMethod(method); Assert.AreEqual(title, recipeCreator.Recipe.Title); Assert.AreEqual(desc, recipeCreator.Recipe.Description); Assert.AreEqual(method, recipeCreator.Recipe.Method); }
public void RecipeCreatorSetIngredients_ShouldSetRecipeIngredients() { var recipeCreator = new RecipeCreator(this.Context); var recipeCreator2 = new RecipeCreator(this.Context); var ingredients = new IngredientUsage[] { new IngredientUsage() }; var section = "Section"; recipeCreator.SetIngredients(ingredients); recipeCreator2.SetIngredients(section, ingredients); CollectionAssert.AreEqual(ingredients, recipeCreator.Recipe.Ingredients); CollectionAssert.AreEqual(ingredients, recipeCreator2.Recipe.Ingredients); }
/// <summary> /// Récupère le Cdr qui cumule le plus de commandes de ses recettes depuis la création /// du site. c'est presque la même méthode que pour récupérer le cdr de la semaine à /// l'exception près que dans cette requête, on ne fait pas attention à la date des commandes. /// </summary> /// <returns>retourne le cdr d'or</returns> public RecipeCreator ReadOfAllTime() { try { Database.Connection.Open(); MySqlCommand command = Database.Connection.CreateCommand(); command.CommandText = "select sum(contenir.nombre) as best, cl.*, cd.* " + "from cdr as cd, client as cl, commande as c, recette, contenir " + "where cl.identifiant_client = cd.identifiant_client " + "and cd.identifiant_cdr = recette.identifiant_cdr " + "and recette.ref_recette = contenir.ref_recette " + "and contenir.ref_commande = c.ref_commande " + "group by cd.identifiant_cdr " + "order by best desc " + "limit 1"; MySqlDataReader reader = command.ExecuteReader(); if (reader.HasRows) { reader.Read(); RecipeCreator recipeCreator = new RecipeCreator(); recipeCreator.Id = reader.GetInt32(reader.GetOrdinal("identifiant_cdr")); recipeCreator.RecipesSold = reader.GetInt32(reader.GetOrdinal("best")); recipeCreator.Client = new Client(); recipeCreator.Client.Id = reader.GetInt32(reader.GetOrdinal("identifiant_client")); recipeCreator.Client.Mail = reader.GetString(reader.GetOrdinal("mail")); recipeCreator.Client.FirstName = reader.GetString(reader.GetOrdinal("prenom")); recipeCreator.Client.LastName = reader.GetString(reader.GetOrdinal("nom")); recipeCreator.Client.Phone = reader.GetString(reader.GetOrdinal("telephone")); recipeCreator.Cooks = reader.GetInt32(reader.GetOrdinal("solde")); reader.Close(); Database.Connection.Close(); return(recipeCreator); } } catch (Exception exception) { Console.WriteLine(exception.Message); } Database.Connection.Close(); return(null); }