Exemplo n.º 1
0
        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
                }
            }
        }
Exemplo n.º 2
0
        /// <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");
        }
Exemplo n.º 3
0
        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");
            }
        }
Exemplo n.º 4
0
    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
        }