Beispiel #1
0
        private bool ValidateDrink()
        {
            PointInCode("DrinkViewModel: ValidateDrink");

            bool valid = true;
            _dm = new DialogMessage("Drank niet in orde");
            _dm.Nay = Visibility.Collapsed;

            if (string.IsNullOrEmpty(NewEditDrink.Name))
            {
                valid = false;
                _dm.Errors.Add("De naam mag niet leeg zijn!");
            }

            if (NewEditDrink.InitialPrice < NewEditDrink.MiniumPrice)
            {
                valid = false;
                _dm.Errors.Add("De beginprijs mag niet onder de minimumprijs liggen.");
            }

            if (NewEditDrink.MaximumPrice < NewEditDrink.InitialPrice)
            {
                valid = false;
                _dm.Errors.Add("De beginprijs mag niet boven de maximumprijs liggen.");
            }

            if (NewEditDrink.MiniumPrice > NewEditDrink.MaximumPrice)
            {
                valid = false;
                _dm.Errors.Add("De minimumprijs mag niet boven de maximumprijs liggen.");
            }

            if (!valid)
            {
                _dm.AnswerChanged += ErrorMessage_AnswerChanged;
                MessengerInstance.Send<DialogMessage>(_dm);
                SendLogMessage("Drink not valid, " + string.Join(";", _dm.Errors.ToArray()), LogType.USER_ERROR | LogType.DRINK_VM);
            }

            return valid;
        }
Beispiel #2
0
        private void DownloadImage()
        {
            PointInCode("DrinkViewModel: DownloadImage");

            Downloading = true;
            ThreadPool.QueueUserWorkItem(new WaitCallback((object target) =>
            {
                try
                {

                    string dateStamp = DateTime.Now.ToString("dd-MM-yyyy-hhmmss");
                    string originalPath = BeursfuifPaths.AssetsPath + dateStamp + "-original" + Path.GetExtension(this.DownloadUrl);
                    string destinationPath = BeursfuifPaths.AssetsPath + dateStamp + ".png";
                    //Download image
                    DownloadRemoteImageFile(this.DownloadUrl, originalPath);
                    ResizeImage(originalPath, destinationPath);
                    SendLogMessage("Image from internet downloaded and used for drink", LogType.DRINK_VM);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    _dm = new DialogMessage("Downloaden mislukt");
                    _dm.Nay = Visibility.Collapsed;
                    _dm.Errors.Add("Geen geldige url of geen internettoegang");
                    MessengerInstance.Send<DialogMessage>(_dm);
                    SendLogMessage("Image download failed, ex = " + ex.Message, LogType.ERROR | LogType.DRINK_VM);
                }
            }));
            Downloading = false;
        }
Beispiel #3
0
 private void HandleErrorMessages(DialogMessage em)
 {
     ErrorMessage = em;
     _stateChanger.GoToState("FadeIn", true,"messageGrid");
 }
Beispiel #4
0
        private void ResetFuifData()
        {
            PointInCode("SettingsViewModel: ResetFuifData");

            _dm = new DialogMessage();

            if (BeursfuifBusy)
            {
                _dm.Title = "Fuif is nog bezig";
                _dm.Errors.Add("Je kan geen reset uitvoeren zolang de fuif nog bezig is.");
                _dm.Nay = Visibility.Hidden;
                MessengerInstance.Send<DialogMessage>(_dm);
                return;
            }
            else
            {
                _dm.Title = "Ben je zeker?";
                _dm.Errors.Add("Alles behalve de dranken zal verwijderd worden.");
                _dm.Errors.Add("De data is permanent weg.");
                _dm.Errors.Add("Doorgaan?");
                _dm.Nay = Visibility.Visible;
                _dm.AnswerChanged += (s, b) =>
                {
                    if (b.Value)
                    {
                        _beursfuifData.ResetData();
                        SendLogMessage("Fuifdata removed", LogType.SETTINGS_VM);
                    }
                };

                MessengerInstance.Send<DialogMessage>(_dm);
            }
        }
Beispiel #5
0
        private async void ResumeParty()
        {
            PointInCode("SettingsViewModel: ResumeParty");

            SendLogMessage("Resuming party method", LogType.SETTINGS_VM);
            _beursfuifData.ChangeBeursfuifBusy(true);
            RaisePropertyChanged(BeursfuifBusyVisibilityPropertyName);
            _server.Active = true;

            bool succes = await _server.Start();
            
            if(!succes)
            {
                _server.Active = false;
                _beursfuifData.ChangeBeursfuifBusy(false);
                RaisePropertyChanged(BeursfuifBusyVisibilityPropertyName);
                _dm = new DialogMessage("Kon de server niet opstarten");
                _dm.Errors.Add("Werd het programma als administrator opgestart?");
                _dm.Errors.Add("Is er netwerk beschikbaar?");
                _dm.Answer = false;
                _dm.Nay = Visibility.Collapsed;
                MessengerInstance.Send<DialogMessage>(_dm);
                return;
            }


            if (_tmrMain == null)
            {
                //start timer
                _tmrMain = new System.Threading.Timer(MainTimer_Tick, null, 1000, 1000);
            }
            else
            {
                _tmrMain.Change(1000, 1000);
            }

            MainActionButtonContent = PAUSE_PARTY;

            SendToastMessage("Server restarted");
            ThreadPool.QueueUserWorkItem(SaveSettings);
        }
Beispiel #6
0
        private void GenerateIntervals()
        {
            PointInCode("IntervalViewModel: GenerateIntervals");

            if (BeginTime.CompareTo(EndTime) == 1)
            {
                _dm = new DialogMessage("Begin ligt na einde");
                _dm.Nay = System.Windows.Visibility.Collapsed;
                _dm.Errors.Add("De gewenste instelling is onmogelijk");
                _dm.Errors.Add("Het begintijdstip moet plaats vinden voor het eindtijdstip");
                MessengerInstance.Send<DialogMessage>(_dm);
                SendLogMessage("Error creating Intervals, begin is greater than end", LogType.INTERVAL_VM | LogType.USER_ERROR);
                return;
            }

            //Validate if the hours and interval match
            TimeSpan period = EndTime.Subtract(BeginTime);
            int numberOfIntervals = 0;
            if(int.TryParse(""+(period.TotalMinutes / ChosenInterval.TotalMinutes),out numberOfIntervals))
            {
                Task.Factory.StartNew(CreateIntervals, numberOfIntervals);
                return;
            }

            //else throw a message that the settings aren't correct
            Console.WriteLine("Error");
            _dm = new DialogMessage("Het is onmogelijk om intervallen aan te maken.");
            _dm.Nay = System.Windows.Visibility.Collapsed;
            _dm.Errors.Add("Het is onmogelijk om een geheel aantal intervallen van \n\r"
                + ChosenInterval.TotalMinutes + " min aan te maken tussen "+
                BeginTime.ToShortTimeString() + " en " + EndTime.ToShortTimeString() + ".");
            MessengerInstance.Send<DialogMessage>(_dm);
            SendLogMessage("Error creating Intervals, " + string.Join(";", _dm.Errors.ToArray()), LogType.INTERVAL_VM | LogType.USER_ERROR);
        }