Пример #1
0
        /// <summary>
        /// Controleert of de opmerking niet al werd gemaakt. En indien deze al gemaakt werd of dit door een andere chauffeur wordt gedaan of door dezelfde chauffeur
        /// </summary>
        /// <param name="nieuwCommentaar">Opmerking die gecontroleerd moet worden van het type Comment</param>
        /// <returns>Task</returns>
        private async Task ControleerOpmerking()
        {
            List <Comment> opmerkingen = await OverzichtOpmerkingen.GetOverzichtComments();

            IEnumerable <Comment> dubbeleOpmerkingen =
                from evtOpmerking in opmerkingen
                where (evtOpmerking.ObjectCode.Equals(nieuwCommentaar.ObjectCode) &&
                       evtOpmerking.DefectCode.Equals(nieuwCommentaar.DefectCode))
                select evtOpmerking;

            List <Comment> dubbeleOpmerkingenlijst = dubbeleOpmerkingen.ToList <Comment>();
            bool           doorgaanMetBewerken     = false;

            if (dubbeleOpmerkingenlijst.Count == 0)
            {
                doorgaanMetBewerken = !await CommentaarToevoegen(nieuwCommentaar);
            }
            else
            {
                foreach (Comment dubbele in dubbeleOpmerkingenlijst)
                {
                    string bericht;
                    if (dubbele.Chauffeur == nieuwCommentaar.Chauffeur)
                    {
                        bericht = String.Format("U heeft eerder al een rijbericht aangemaakt voor dit onderdeel. Wilt u deze rijberichten samenvoegen?\nObjectcode: {0}, Defectcode: {1}\nOmschrijving: {2}.",
                                                dubbele.ObjectCode, dubbele.DefectCode, dubbele.Omschrijving);
                    }
                    else
                    {
                        bericht = String.Format("Chauffeur {0} heeft eerder een rijbericht gemaakt voor dit onderdeel. Wilt u deze rijberichten samenvoegen?\nObjectcode: {1}, Defectcode: {2}\nOmschrijving: {3}.",
                                                dubbele.Chauffeur, dubbele.ObjectCode, dubbele.DefectCode, dubbele.Omschrijving);
                    }

                    //Melding weergeven indien er dubbele commentaren gevonden zijn
                    MessageDialog okAnnuleer = new MessageDialog(bericht, "Dubbele rijberichten");
                    okAnnuleer.Commands.Add(new UICommand("Samenvoegen"));
                    okAnnuleer.Commands.Add(new UICommand("Doorgaan met bewerken"));
                    okAnnuleer.Commands.Add(new UICommand("Annuleren"));
                    var resultaat = await okAnnuleer.ShowAsync();

                    if (resultaat.Label.Equals("Samenvoegen"))
                    {
                        dubbele.Omschrijving += String.Format("{0}Toevoeging chauffeur {1}: {2}.", Environment.NewLine, nieuwCommentaar.Chauffeur, nieuwCommentaar.Omschrijving);
                        await CommentaarAanpassen(dubbele);
                    }
                    else if (resultaat.Label.Equals("Opmerking aanmaken annuleren"))
                    {
                        doorgaanMetBewerken = true;
                    }
                }
            }
            if (!doorgaanMetBewerken)
            {
                this.Frame.Navigate(typeof(OverzichtOpmerkingen));
            }
        }
Пример #2
0
        /// <summary>
        /// Deze constructor vult een GridView op.
        /// Daarnaast laad deze constructor een User Control in en toont deze op het scherm.
        /// </summary>
        public Hoofdscherm()
        {
            this.InitializeComponent();
            VulInspectieGridView();

            UserControls.VisueleAuto ucWagen = new UserControls.VisueleAuto();
            grUserControl.Children.Add(ucWagen);
            OverzichtOpmerkingen.HaalCommentsOp();
            ProblemenTest.HaalCodesOp();
        }
Пример #3
0
 /// <summary>
 /// Het updaten van een opmerking
 /// </summary>
 /// <param name="commentaar">De opmerking die geupdate moet worden van het type comment</param>
 private async Task CommentaarAanpassen(Comment commentaar)
 {
     if (await LocalDB.database.UpdateComment(commentaar))
     {
         //  String boodschap = "Uw probleem werd aangepast";
         OverzichtOpmerkingen.UpdateComment(commentaar);
     }
     else
     {
         lblError.Foreground = (SolidColorBrush)Application.Current.Resources["DefaultTextErrorColor"];
         lblError.Text       = "Er heeft zich een fout voorgedaan. Probeer later opnieuw of neem contact op met een beheerder.";
     }
 }
Пример #4
0
        /// <summary>
        /// Het aanmaken van een nieuwe opmerking
        /// </summary>
        /// <param name="commentaar">De opmerking die aangemaakt moet worden van het type comment</param>
        private async Task <bool> CommentaarToevoegen(Comment commentaar)
        {
            Comment toegevoegdeCommentaar = await LocalDB.database.AddComment(commentaar);

            if (toegevoegdeCommentaar != null)
            {
                OverzichtOpmerkingen.AddComment(toegevoegdeCommentaar);
                return(true);
            }
            else
            {
                lblError.Foreground = (SolidColorBrush)Application.Current.Resources["DefaultTextErrorColor"];
                lblError.Text       = "Er heeft zich een fout voorgedaan. Probeer later opnieuw of neem contact op met een beheerder.";
            }
            return(false);
        }
Пример #5
0
        /// <summary>
        /// Deze methode maakt het mogelijk om foto's te nemen. Deze foto's zullen van PNG formaat zijn met een medium resolutie.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnMaakFoto_Click(object sender, RoutedEventArgs e)
        {
            await GetphotoFolder();

            CameraCaptureUI fotoScherm = new CameraCaptureUI();

            fotoScherm.PhotoSettings.Format        = CameraCaptureUIPhotoFormat.Png; //.png is veel lichter
            fotoScherm.PhotoSettings.MaxResolution = CameraCaptureUIMaxPhotoResolution.HighestAvailable;
            fotoScherm.PhotoSettings.AllowCropping = false;

            var foto = await fotoScherm.CaptureFileAsync(CameraCaptureUIMode.Photo); //Enkel een foto maken

            if (foto != null)
            {
                int messageID;
                if (OverzichtOpmerkingen.getSelectedIndex() == 0)
                {
                    messageID = OverzichtOpmerkingen.getSelectedIndex();
                }
                else
                {
                    messageID = await LocalDB.database.getAantalCommentaren();
                }
                CompleteAuto ca = await LocalDB.database.GetToegewezenAuto();

                User gebruiker = LocalDB.database.GetIngelogdeGebruiker();
                // if-structuur werkt niet, als er te snel foto's genomen worden doet hij het nog altijd
                if (photoFolder.GetFileAsync(ca.Number + "_" + messageID + "_" + foto.DateCreated.ToString("ddMMyyyy-HHmmss") + "_" + gebruiker.Username + ".png").Equals(true))
                {
                    await foto.RenameAsync(ca.Number + "_" + messageID + "_" + foto.DateCreated.ToString("ddMMyyyy-HHmmss") + "_" + gebruiker.Username + "(" + photoCounter + ").png");

                    photoCounter++;
                    var fileStream = await foto.OpenAsync(Windows.Storage.FileAccessMode.Read);

                    await foto.MoveAsync(photoFolder);
                }
                else
                {
                    await foto.RenameAsync(ca.Number + "_" + messageID + "_" + foto.DateCreated.ToString("ddMMyyyy-HHmmss") + "_" + gebruiker.Username + ".png");

                    photoCounter = 0;
                    var fileStream = await foto.OpenAsync(Windows.Storage.FileAccessMode.Read);

                    await foto.MoveAsync(photoFolder);
                }
            }
        }
Пример #6
0
        /// <summary>
        /// Deze methode maakt het mogelijk om video's te nemen.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnMaakVideo_Click(object sender, RoutedEventArgs e)
        {
            await GetVideoFolder();

            var videoScherm = new CameraCaptureUI();

            videoScherm.VideoSettings.Format        = CameraCaptureUIVideoFormat.Mp4;
            videoScherm.VideoSettings.MaxResolution = CameraCaptureUIMaxVideoResolution.HighestAvailable;

            var video = await videoScherm.CaptureFileAsync(CameraCaptureUIMode.Video); //Video opnemen

            if (video != null)
            {
                int messageID;
                if (OverzichtOpmerkingen.getSelectedIndex() == 0)
                {
                    messageID = OverzichtOpmerkingen.getSelectedIndex();
                }
                else
                {
                    messageID = await LocalDB.database.getAantalCommentaren();
                }
                User         gebruiker       = LocalDB.database.GetIngelogdeGebruiker();
                CompleteAuto toegewezenWagen = await LocalDB.database.GetToegewezenAuto();

                // if-structuur werkt niet, als er te snel foto's genomen worden doet hij het nog altijd
                if (videoFolder.GetFileAsync(toegewezenWagen.Number + "_" + messageID + "_" + video.DateCreated.ToString("ddMMyyyy-HHmmss") + "_" + gebruiker.Username + ".mp4").Equals(true))
                {
                    await video.RenameAsync(toegewezenWagen.Number + "_" + messageID + "_" + video.DateCreated.ToString("ddMMyyyy-HHmmss") + "_" + gebruiker.Username + "(" + videoCounter + ").mp4");

                    videoCounter++;
                }
                else
                {
                    await video.RenameAsync(toegewezenWagen.Number + "_" + messageID + "_" + video.DateCreated.ToString("ddMMyyyy-HHmmss") + "_" + gebruiker.Username + ".mp4");

                    videoCounter = 0;
                }
                var fileStream = await video.OpenAsync(Windows.Storage.FileAccessMode.Read);

                await video.MoveAsync(videoFolder);
            }
        }
Пример #7
0
        /// <summary>
        /// Haalt een lijst met opmerkingen op en geeft de 5 meest recente opmerkingen weer op het bijlagenscherm.
        /// </summary>
        /// <returns></returns>
        private async Task VulRecenteCommentaren()
        {
            List <Comment> opmerkingen = await OverzichtOpmerkingen.GetOverzichtComments();

            if (opmerkingen.Count >= 5)
            {
                gvwOpmerkingen.ItemsSource = opmerkingen.GetRange(0, 5);
            }
            else
            {
                if (opmerkingen.Count > 0)
                {
                    gvwOpmerkingen.ItemsSource = opmerkingen;
                }
                else
                {
                    lblOpmerkingen.Text = "Er zijn geen rijberichten aanwezig voor de toegekende wagen.";
                }
            }
        }
Пример #8
0
        /// <summary>
        /// Deze methode kan een opmerking verwijderd worden
        /// Dit gebeurd enkel als Ja gekozen wordt in de messagedialog
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnVerwijderen_Click(object sender, RoutedEventArgs e)
        {
            bool?         result     = null;
            MessageDialog okAnnuleer = new MessageDialog("Weet u zeker dat u dit rijbericht wil verwijderen?", "Rijbericht Verwijderen");

            okAnnuleer.Commands.Add(new UICommand("Ja", new UICommandInvokedHandler((cmd) => result = true)));
            okAnnuleer.Commands.Add(new UICommand("Nee"));
            await okAnnuleer.ShowAsync();

            if (result == true)
            {
                if (await LocalDB.database.DeleteComment(opmerking))
                {
                    OverzichtOpmerkingen.DeleteComment();
                    this.Frame.Navigate(typeof(OverzichtOpmerkingen));
                }
                else
                {
                    lblError.Foreground = (SolidColorBrush)Application.Current.Resources["DefaultTextErrorColor"];
                    lblError.Text       = "Er heeft zich een fout voorgedaan. Probeer later opnieuw of neem contact op met een beheerder.";
                }
            }
        }
Пример #9
0
        /// <summary>
        /// Deze methode geeft een lijst van opmerkingen door naar de web service.
        /// De web service gebruikt deze gegevens om een .CSV-bestand te maken
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private async void BtnOpslaan_Click(object sender, RoutedEventArgs e)
        {
            btnSynchroniseren.IsEnabled = false;
            prSynchroniseren.IsActive   = true;
            lblBoodschap.Text           = "Even geduld. Gegevens worden op dit moment verstuurd...";
            lblBoodschap.Visibility     = Windows.UI.Xaml.Visibility.Visible;

            if (!swtManierOpslag.IsOn)
            {
                try
                {
                    await CopyFiles.copyPhotosToUSB();

                    await CopyFiles.copyVideosToUSB();

                    if (await LocalDB.database.SynchroniseerNaarUSB())
                    {
                        lblBoodschap.Text = "De gegevens zijn met succes verstuurd naar de USB!";
                    }
                    else
                    {
                        lblBoodschap.Text = "Er is iets fout gelopen. Controleer of u een opslagmedium ingestoken heeft...";
                    }
                }
                catch (Exception)
                {
                    lblBoodschap.Text = "Er is iets fout gelopen. Controleer of u een opslagmedium ingestoken heeft...";
                }
            }
            else
            {
                await CopyFiles.copyPhotosViaNetwork();

                await CopyFiles.copyVideosViaNetwork();

                List <String>  lijstGegevens = new List <String>();
                List <Comment> opmerkingen   = await OverzichtOpmerkingen.GetOverzichtComments();

                List <string> lijstStringGegevens = new List <string>();
                foreach (Comment opmerking in opmerkingen)
                {
                    lijstStringGegevens.Add("Chauffeur: " + opmerking.Chauffeur +
                                            ", OpmperkingID: " + opmerking.Id.ToString() +
                                            ", Aangemaakt op: " + opmerking.Datum.ToString("dd/MM/yyyy HH:mm") +
                                            ", Objectcode: " + opmerking.ObjectCode +
                                            ", Defectcode: " + opmerking.DefectCode +
                                            ", Omschrijving: " + opmerking.Omschrijving);
                }

                ArrayOfString aosGegevens = new ArrayOfString(); //Een ArrayOfString is nodig voor de web service
                aosGegevens.AddRange(lijstStringGegevens);

                var avAuto = await LocalDB.database.GetToegewezenAuto();

                string datum = String.Format("Wagen {0} - {1}-{2}-{3} {4}h{5}m", avAuto.Number, DateTime.Now.Day, DateTime.Now.Month, DateTime.Now.Year,
                                             DateTime.Now.Hour, DateTime.Now.Minute);

                string bestandsNaam = String.Format("{0} opmerkingen.csv", datum);

                //await CopyFiles.copyVideosViaNetwork();
                lblBoodschap.Text = "Videos uploaden";

                if (await LocalDB.database.SetMaakSVCvoorWebSync(aosGegevens, bestandsNaam))
                {
                    lblBoodschap.Text = "De gegevens zijn met succes verstuurd naar de server!";
                }
                else
                {
                    lblBoodschap.Text = "Er is iets fout gelopen. Controleer of u met het juiste netwerk verbonden bent...";
                }
            }

            btnSynchroniseren.IsEnabled = true;
            prSynchroniseren.IsActive   = false;
        }