public async void UserAddCoffee_Clicked(object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "FieldForChanges") {// Wenn sich das Feld im ContentView ändert, dann //Ermittel den Nutzer, der gerade seinen Button betätigt hat. ButtonForCoffeeDrinker userDrinkCoffee = (ButtonForCoffeeDrinker)sender; CoffeeDrinker coffeeDrinkerNow = userDrinkCoffee.GetCoffeeDrinker(); // var answer = await DisplayAlert("Hallo " + coffeeDrinkerNow.Firstname + " " + coffeeDrinkerNow.Name + ",", "hast du dir einen Kaffee genommen?", "Ja", "Nein"); if (answer == true) {// Wenn der Nutzer bestätigt, dass er gerade einen Kaffee getrunken hat. // dann wird ein neuer Kaffee mit der Id des Nutzers der Datenbank hinzugefügt OneCoffee coffee = new OneCoffee(); coffee.CoffeeCosumer_Id = coffeeDrinkerNow.ID.ToString(); coffee.Payed = false; coffee.DateTime = DateTime.Now.ToString(); coffeeDatabase.SaveCoffee(coffee); userDrinkCoffee.AddOneCoffee(); // Label wird um 1 erhöht } } }
/// <summary> /// Ein neuer Benutzer wird hinzugefügt /// Es wird ein Hinweis eingeblendet, das der Nutzer erfolgreich hinzugefügt wurde /// </summary> /// <param name="coffeeDatabase">Datenbank</param> /// <param name="newCoffeeDrinker">Neuer Kaffeetrinker</param> /// <param name="coffeeDrinkerList">Liste aller Kaffetrinker aus der Datenbank</param> private async void saveNewCoffeeDrinker(CoffeeDatabase coffeeDatabase, CoffeeDrinker newCoffeeDrinker, IEnumerable <CoffeeDrinker> coffeeDrinkerList) { //, dann wir der Benutzer in der Datenbank gespeichert. coffeeDatabase.SaveCoffeeDrinker(newCoffeeDrinker); // Außerdem wird die Liste - zum überprüfen der Namen - aktualisiert coffeeDrinkerList = coffeeDatabase.GetCoffeeDrinkers(); await DisplayAlert("Speichern erfolgreich!", "Benutzer erfolgreich hinzugefügt", "OK"); }
private async void ButtonAddNewUser_Clicked(object sender, EventArgs e) { CoffeeDrinker newCoffeeDrinker = new CoffeeDrinker(); // To DO - Wenn Felder leer! Benutzer nicht speichern! if (gridUserInputVorname.GetValue() != null || gridUserInputVorname.GetValue() != "" && gridUserInputName.GetValue() != null || gridUserInputName.GetValue() != "") { newCoffeeDrinker.Firstname = gridUserInputVorname.GetValue(); newCoffeeDrinker.Name = gridUserInputName.GetValue(); newCoffeeDrinker.ChipId = gridUserInputChipId.GetValue(); newCoffeeDrinker.Email = "-"; newCoffeeDrinker.Active = true; bool nameIsUsed = false; foreach (var item in coffeeDrinkerList) {//Liste aller Kaffetrinker wird durchlaufen // Es wird überprüft, ob der name schon vorhanden ist. if (item.Name == newCoffeeDrinker.Name && item.Firstname == newCoffeeDrinker.Firstname) { nameIsUsed = true; break;// Wenn ein Name gefunden wurde, wird die Schleife verlassen } } if (nameIsUsed == false) {// Ist der Benutzer noch kein 2. Mal vorhanden wird dieser gespeichert saveNewCoffeeDrinker(coffeeDatabase, newCoffeeDrinker, coffeeDrinkerList); } else {// Wenn der Name schon vorhanden ist, wird eine Fehlermeldung ausgegeben var answer = await DisplayAlert("Name schon vorhanden!", "Möchtest du den Benutzer " + newCoffeeDrinker.Firstname + " " + newCoffeeDrinker.Name + " ein zweites mal anlegen?", "Ja", "Nein"); if (answer == true) {// Wen der name trotzdem ein 2. mal angelegt werden soll... //dann wir der Benutzer gespeichert saveNewCoffeeDrinker(coffeeDatabase, newCoffeeDrinker, coffeeDrinkerList); } } } else {// Wenn eins der beiden Felder leer ist, //dann wird dem Nutzer ein Hinweis eingeblendet await DisplayAlert("Speichern nicht möglich!", "Die Felder \"Vornam\" und \"Name\" dürfen nicht leer sein!", "OK"); } }
static void Main(string[] args) { List <CoffeeDrinker> coffeeDrinkers = new List <CoffeeDrinker>(); List <Coffee> coffeeInventor = new List <Coffee>(); var delimeters = Console.ReadLine().Split(' ').ToList(); var deli1 = delimeters[0]; var deli2 = delimeters[1]; var inputLine = Console.ReadLine(); while (inputLine != "end of info") { if (Regex.IsMatch(inputLine, deli1)) { var tokens = inputLine.Split(char.Parse(deli1)).ToList(); var name = tokens[0]; var coffee = tokens[1]; CoffeeDrinker currentDrinker = new CoffeeDrinker { Name = name, CoffeeType = new Coffee { Name = coffee, } }; coffeeDrinkers.Add(currentDrinker); if (!coffeeInventor.Any(x => x.Name == currentDrinker.CoffeeType.Name)) { Coffee currentCoffee = new Coffee { Name = currentDrinker.CoffeeType.Name }; coffeeInventor.Add(currentCoffee); } coffeeDrinkers.Add(currentDrinker); } else { var tokens = inputLine.Split(char.Parse(deli2)).ToList(); var name = tokens[0]; var quantity = int.Parse(tokens[1]); Coffee currentCoffee = new Coffee { Name = name, Quantity = quantity }; if (coffeeDrinkers.Any(x => x.Name == name)) { //find which is the index of the current input NAME in the "coffeeDrinker" data base; var indexOfPerson = coffeeDrinkers.FindIndex(x => x.Name == name); //after this you use the index to find what type of coffe,to that same input NAME, is assigned; var coffeeName = coffeeDrinkers[indexOfPerson].CoffeeType.Name; //and then you look for the index of that same coffee type in the "coffeeInventor" data base; var indexOfCup = coffeeInventor.FindIndex(x => x.Name == coffeeName); //and then you change the quantity. coffeeInventor[indexOfCup].Quantity -= quantity; //if there is not enough coffee in the inventor if (coffeeInventor[indexOfCup].Quantity <= 0) { Console.WriteLine($"out of coffee {name}"); } } } inputLine = Console.ReadLine(); } inputLine = Console.ReadLine(); while (inputLine != "end of week") { var tokens = inputLine.Split(char.Parse(deli2)) inputLine = Console.ReadLine(); } }
/// <summary> /// Standard Konstrukor /// Bei Erstellung eines Objektes dieser Klasse müssen alle geroderten Parameter übergeben werden /// </summary> /// <param name="labelDescription">Beschreibung des Eingabefeldes. Beispiel "Vorname:"</param> /// <param name="numberOfCoffee">Dieser Text wird, vor der ersten Eingabe in dem Entry Objekt angegeben.</param> /// <param name="backgroundColor">Die Hintergrundfarbe des Objektes</param> /// <param name="textColor">Die Text Farbe des Objektes</param> public ButtonForCoffeeDrinker(CoffeeDrinker coffeeDrinkerForThisButton, int numberOfCoffee, Color backgroundColor, Color textColor) { Margin = new Thickness(6, 3, 6, 3); numberOfCoffeePerMonth = numberOfCoffee; coffeeDrinker = coffeeDrinkerForThisButton; Button buttonAddCoffeeForUser = new Button(); buttonAddCoffeeForUser.BackgroundColor = backgroundColor; buttonAddCoffeeForUser.Text = ""; buttonAddCoffeeForUser.Clicked += ButtonAddCoffeeForUser_Clicked; labelForCoffeeDrinkerName = new LabelForInput(coffeeDrinker.Firstname + " " + coffeeDrinker.Name, Color.Transparent, textColor); labelNumberOfCoffeeForDrinker = new LabelForInput(numberOfCoffeePerMonth.ToString(), Color.Transparent, textColor); labelNameCount = new LabelForInput("Anzahl Monat:", Color.Transparent, textColor); labelForCoffeeDrinkerName.SetTextsize(26); labelNameCount.VerticalTextAlignment = TextAlignment.End; labelNumberOfCoffeeForDrinker.VerticalTextAlignment = TextAlignment.Start; Grid grid = new Grid { BackgroundColor = Color.Transparent,//backgroundColor, VerticalOptions = LayoutOptions.FillAndExpand, ColumnSpacing = 0, HeightRequest = 80, #region RowDefinitions - RowDefinitions = { // new RowDefinition { Height = GridLength.Auto }, // new RowDefinition { Height = GridLength.Auto }, new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }, new RowDefinition { Height = new GridLength(1, GridUnitType.Star) } }, #endregion #region ColumnDefinition ColumnDefinitions = { // new ColumnDefinition { }, // new ColumnDefinition { }, new ColumnDefinition { Width = new GridLength(2, GridUnitType.Star) }, new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) } } #endregion }; grid.Children.Add(buttonAddCoffeeForUser, 0, 2, 0, 2); grid.Children.Add(labelForCoffeeDrinkerName, 0, 1, 0, 2); grid.Children.Add(labelNameCount, 1, 0); grid.Children.Add(labelNumberOfCoffeeForDrinker, 1, 1); //grid.Children.Add(buttonAddCoffeeForUser,0,2,0,2); this.Content = grid; // Das Grid wird diesem ContentView als Inhalt übergeben }