private async void ReportProblem_Tapped(object sender, EventArgs e)
        {
            var result = await UserDialogs.Instance.PromptAsync(new PromptConfig
            {
                Title      = "Report a Problem",
                Message    = "Add an explanation",
                OkText     = "Submit",
                CancelText = "Cancel",
                MaxLength  = 255,
                InputType  = InputType.Default
            });

            String problem = result.Value;

            Debug.WriteLine(result);
            if (result.Ok && problem.Length < 255)
            {
                //Objec bug klaarmaken om te versturen
                Bug bug = new Bug();
                bug.UserId  = GlobalVariables.user.UserId;
                bug.Date    = DateTime.Now;
                bug.BugText = problem;
                //Schrijven naar database en foto in blob zetten
                await ImaniManager.AddBugAsync(bug);
                await DisplayAlert("Succes", "Thank you for your feedback!", "Ok");
            }
            else if (result.Ok == false)
            {
            }
            else
            {
                await DisplayAlert("Error", "There went something wrong", "OK");
            }
        }
        private async void RegisterUser(User user)
        {
            User user_controle = await ImaniManager.AddUserAsync(user);

            if (user_controle.Email != "NOK")
            {
                SendPicToBlob(profilepic, user.UserId);
                await DisplayAlert("Succes", "You are successfully registered!", "OK");

                Application.Current.MainPage = new LoginPage();
            }
            else if (imgProfilePic.Source == null)
            {
                await DisplayAlert("Attention!", "Don't be shy, take a picture", "OK");

                frameLayer.IsVisible      = false;
                indicatorLoader.IsRunning = false;
            }
            else if (user_controle.Email == "NOK")
            {
                await DisplayAlert("Attention!", "This email already exsists!", "OK");

                frameLayer.IsVisible      = false;
                indicatorLoader.IsRunning = false;
            }
            else
            {
                await DisplayAlert("Attention!", "Something went wrong!", "OK");

                frameLayer.IsVisible      = false;
                indicatorLoader.IsRunning = false;
            }
        }
        private async Task btnSaveChanges_Clicked(object sender, EventArgs e)
        {
            var result = await UserDialogs.Instance.PromptAsync(new PromptConfig
            {
                Title      = "Confirm",
                Message    = "To confirm changes, please enter your old password!",
                OkText     = "Ok",
                CancelText = "Cancel",
                InputType  = InputType.Password,
            });

            var EnteredPassword = result.Value;

            if (result.Ok)
            {
                try
                {
                    User user_try = new User();
                    user_try.UserId   = GlobalVariables.user.UserId;
                    user_try.Password = EnteredPassword;
                    var response = await ImaniManager.CHeckPswAsync(user_try);

                    if (response == "NOK")
                    {
                        await DisplayAlert("Attention!", "The password does not match!", "Ok");
                    }
                    else if (response == "OK")
                    {
                        user_try.Email = txtEmail.Text;
                        user_try.Name  = txtName.Text;
                        if (txtNewPass.Text != null)
                        {
                            user_try.Password = txtNewPass.Text;
                        }
                        else
                        {
                            user_try.Password = EnteredPassword;
                        }
                        await ImaniManager.UpdateUserAsync(user_try);

                        GlobalVariables.user.Name = txtName.Text;
                        await DisplayAlert("Succes!", "Succefully saved!", "Ok");
                    }
                }
                catch
                {
                    await DisplayAlert("Alert!", "Something went wrong!", "Ok");
                }

                Application.Current.MainPage = new SettingsPage();
            }
        }
        //BIJ KLIKKEN OP DELETE ACCOUNT
        private async void btnDeleteAccount_Clicked(object sender, EventArgs e)
        {
            //Na het succesvol verwijderen terug naar de login pagina gaan (LAAT DIT STAAN, DIT IS AL IN ORDE):
            var resultaat = await UserDialogs.Instance.ConfirmAsync(new ConfirmConfig
            {
                OkText     = "Ok",
                CancelText = "Cancel",
                Message    = "Are you sure you would like to delete your account? You will lose all your data!",
                Title      = "Alert!",
            });

            if (resultaat)
            {
                var result = await UserDialogs.Instance.PromptAsync(new PromptConfig
                {
                    Title      = "Confirm",
                    Message    = "To DELETE your account, please enter your password!",
                    OkText     = "Ok",
                    CancelText = "Cancel",
                    InputType  = InputType.Password,
                });

                var EnteredPassword = result.Value;
                try
                {
                    User user_try = new User();
                    user_try.UserId   = GlobalVariables.user.UserId;
                    user_try.Password = EnteredPassword;
                    var response = await ImaniManager.CHeckPswAsync(user_try);

                    if (response == "NOK")
                    {
                        await DisplayAlert("Attention!", "The password does not match!", "Ok");
                    }
                    else if (response == "OK")
                    {
                        await ImaniManager.DeleteUserAsync(GlobalVariables.user.UserId.ToString());
                        await DisplayAlert("Succes!", "Succefully deleted your account! We are now navigating to the login page", "Ok");

                        GlobalVariables.displayedScreen = "Dashboard";
                        Application.Current.MainPage    = new LoginPage();
                    }
                }
                catch
                {
                    await DisplayAlert("Alert!", "Something went wrong!", "Ok");
                }
            }
        }
        private async void GetColleaguesAsync()
        {
            List <User> users = await ImaniManager.GetFollowersAsync(GlobalVariables.user.UserId.ToString());

            if (users.Count() == 0)
            {
                lvwColleagues.IsVisible  = false;
                StackNoFriends.IsVisible = true;
            }
            else
            {
                lvwColleagues.ItemsSource       = users;
                lvwColleaguesDelete.ItemsSource = users;
            }
        }
        private async void TapGestureRecognizer_Tapped(object sender, EventArgs e)
        {
            Image t = (sender) as Image;
            User  GeselecteerdeGebruiker = t.BindingContext as User;

            try
            {
                await ImaniManager.UnfollowUserAsync(GlobalVariables.user.UserId.ToString().ToUpper(), GeselecteerdeGebruiker.UserId.ToString().ToUpper());
                await DisplayAlert("Succes!", "Colleague successfully unfollowed!", "Ok");
            }
            catch
            {
                await DisplayAlert("Alert!", "Something went wrong!", "Ok");
            }

            Application.Current.MainPage = new ColleaguesPage();
        }
        private async Task Switch_Toggled(object sender, ToggledEventArgs e)
        {
            if (toggleNotifications.IsToggled == true)
            {
                await DisplayAlert("Notifications enabled", "You will recieve a notification if you haven't stood for almost an hour", "OK");

                await ImaniManager.UpdateNotification(GlobalVariables.user.UserId.ToString(), "true");

                GlobalVariables.user.WantsNotifications = true;
            }
            else if (toggleNotifications.IsToggled == false)
            {
                await DisplayAlert("Notifications disabled", "You will no longer recieve standing notifications", "OK");

                await ImaniManager.UpdateNotification(GlobalVariables.user.UserId.ToString(), "false");

                GlobalVariables.user.WantsNotifications = false;
            }
        }
Example #8
0
        private async void loop()
        {
            bool previousResult = false;

            try
            {
                while (true)
                {
                    if (GlobalVariables.connection == true)
                    {
                        //Specifieke GuiD van de SERVICE (nodig)
                        service = await GlobalVariables.device.GetServiceAsync(Guid.Parse("6E400001-B5A3-F393-E0A9-E50E24DCCA9E"));

                        //Specifieke GuiD van de characteristic NOTIFY
                        characteristic = await service.GetCharacteristicAsync(Guid.Parse("6E400003-B5A3-F393-E0A9-E50E24DCCA9E"));

                        //De waarden van die characteristic Updaten en vervolgens in een variabele plaatsen genaamd "bytes"
                        characteristic.ValueUpdated += (o, args) =>
                        {
                            //var bytes = args.Characteristic.Value;
                        };

                        await characteristic.StartUpdatesAsync();


                        //de bytes opvangen in een variabele
                        var bytes = characteristic.Value;

                        //Bytes omzetten naar een string
                        GlobalVariables.result = System.Text.Encoding.UTF8.GetString(bytes, 0, bytes.Length);

                        var date = DateTime.Now;


                        //Boolean voor 1 of 0
                        Boolean isStanding = false;
                        if (GlobalVariables.result == "1.00")
                        {
                            isStanding = true;
                        }

                        //Als er verandering is in de waarde dan verstuurd hij deze naar de database
                        if (previousResult != isStanding)
                        {
                            Track track = new Track();
                            track.UserId     = GlobalVariables.user.UserId;
                            track.Date       = DateTime.Now.AddHours(1);
                            track.isStanding = isStanding;
                            track.MacDevice  = GlobalVariables.device.Name;

                            await ImaniManager.AddTrack(track);

                            previousResult = isStanding;
                        }
                        await Task.Delay(5000);
                    }

                    else if (GlobalVariables.connection == false)
                    {
                        await Task.Delay(1000);
                    }
                }
            }
            catch (Exception)
            {
                await MainPage.DisplayAlert("Disconnected", "You are no longer connected with your shoe", "Ok");

                CrossLocalNotifications.Current.Show("Connection lost", "You are no longer connected with your shoe");
                GlobalVariables.connection = false;
            }
        }
Example #9
0
        private async void GetTimestandingDayAsync()
        {
            #region Object lijst opvullen
            DateTime datenow = DateTime.Now;
            List <TimeStandingDay> list_timestandingday = new List <TimeStandingDay>();
            //Datum van vandaag klaarmaken om te versturen
            int date_last_hour = 0;
            int zitminuten     = 60;
            int stauur         = 1;



            DateTime datefirst = new DateTime(datenow.Year, datenow.Month, datenow.Day, 9, 0, 0);

            //Lijst ophalen van vandaag per uur
            if (datenow.Hour >= 9 && datenow.Hour < 17) // enkel de data tot en met het vorige uur worden weergegeven --> deze worden in een lijst gestoken
            {
                date_last_hour = datenow.Hour;
                DateTime datelast = new DateTime(datenow.Year, datenow.Month, datenow.Day, 17, 0, 0);
                list_timestandingday = await ImaniManager.GetTimeStandingDayAsync(requestedUser.UserId.ToString(), datefirst, datelast);

                int teVerwijderenIndex = date_last_hour - 9;

                if (list_timestandingday.Count == 0)
                {
                    zitminuten = 0;
                    stauur     = 0;
                }
                else
                {
                    for (int i = date_last_hour; i < 17; i++)
                    {
                        list_timestandingday.RemoveAt(teVerwijderenIndex);
                        TimeStandingDay emptyTime = new TimeStandingDay {
                            Hour = i, TimeStandingSeconds = 0
                        };
                        list_timestandingday.Add(emptyTime);
                    }
                }
            }

            else if (datenow.Hour >= 17) // hele dag wordt uitgevoerd
            {
                date_last_hour = 17;
                DateTime datelast = new DateTime(datenow.Year, datenow.Month, datenow.Day, date_last_hour, 0, 0);
                list_timestandingday = await ImaniManager.GetTimeStandingDayAsync(requestedUser.UserId.ToString(), datefirst, datelast);

                if (list_timestandingday.Count == 0)
                {
                    list_timestandingday.Clear();
                    for (int i = 9; i < 17; i++)
                    {
                        TimeStandingDay emptyTime = new TimeStandingDay {
                            Hour = i, TimeStandingSeconds = 0
                        };
                        list_timestandingday.Add(emptyTime);
                    }
                    zitminuten = 0;
                    stauur     = 0;
                }
            }
            else if (datenow.Hour < 9) //alles van vandaag zal nog op 0 staan, leeg zijn.
            {
                for (int i = 9; i < 17; i++)
                {
                    TimeStandingDay emptyTime = new TimeStandingDay {
                        Hour = i, TimeStandingSeconds = 0
                    };
                    list_timestandingday.Add(emptyTime);
                }
                zitminuten = 0;
                stauur     = 0;
            }


            #endregion

            #region Grafieken opuvllen met waarden
            //Opvullen Staaf diagrammen ----------------------------

            for (int x = 0; x <= list_timestandingday.Count - 1; x++) //de waarden klaarstomen om per staaf weer te geven
            {
                if (list_timestandingday[x].TimeStandingSeconds == 0 && list_timestandingday[x].Hour < datenow.Hour)
                {
                    dagUren.Add(new Entry(1)
                    {
                        Color = SkiaSharp.SKColor.Parse("#cf6b00"), Label = list_timestandingday[x].Hour.ToString()
                    });
                }
                else
                {
                    dagUren.Add(new Entry(Convert.ToInt64(list_timestandingday[x].TimeStandingSeconds / 60))
                    {
                        Color = SkiaSharp.SKColor.Parse("#cf6b00"), Label = list_timestandingday[x].Hour.ToString()
                    });
                }
            }
            if (list_timestandingday.Count == 0)
            {
                for (int x = 9; x < 17; x++)
                {
                    dagUren.Add(new Entry(0)
                    {
                        Color = SkiaSharp.SKColor.Parse("#cf6b00"), Label = x.ToString()
                    });
                }
            }
            ChartStavenUren.Chart = new BarChart {
                Entries = dagUren, MaxValue = 60, LabelTextSize = 32
            };

            //Opvullen cirkeldiagram -------------------------------
            Double som_standing = 0;
            int    totaalUur    = 3600;
            for (int x = 0; x <= list_timestandingday.Count - 1; x++)
            {
                som_standing += list_timestandingday[x].TimeStandingSeconds;

                if (list_timestandingday[x].TimeStandingSeconds != 0)  //als er een uur gepaseerd is wordt er 3600 bijgevoegd.
                {
                    totaalUur += 3600;
                }
            }
            int ExtraTijd = 0;
            if (totaalUur > (datenow - datefirst).TotalSeconds)//bugfix
            {
                ExtraTijd = 1;
            }
            ChartsStaVsZit.Chart = new DonutChart {
                Entries = staZitDagEntry, MaxValue = totaalUur - 3600, LabelTextSize = 32, HoleRadius = 0.5F
            };
            staZitDagEntry.Add(new Entry(Convert.ToInt32(som_standing))
            {
                Color = SkiaSharp.SKColor.Parse("#cf6b00")
            });
            staZitDagEntry.Add(new Entry(Convert.ToInt32(totaalUur - som_standing - (ExtraTijd * 3600)))
            {
                Color = SkiaSharp.SKColor.Parse("#F9ECDF")
            });

            //Opvullen linkerdeel ----------------------------------
            List <TimeStandingDay> list_standing = new List <TimeStandingDay>();


            int punten = 0;
            for (int x = 0; x <= list_timestandingday.Count - 1; x++)
            {
                if (list_timestandingday[x].TimeStandingSeconds != 0)
                {
                    punten += 1;
                }
            }



            urenEntry.Add(new Entry(punten)
            {
                Color = SkiaSharp.SKColor.Parse("#cf6b00")
            });
            urenEntry.Add(new Entry(8 - punten)
            {
                Color = SkiaSharp.SKColor.Parse("#F7F7F7")
            });
            txtStandingHours.Text = punten.ToString(); //Deze waarde is voor de tekstbox in de ring


            ChartCirkelUren.Chart = new DonutChart {
                Entries = urenEntry, MaxValue = 8, HoleRadius = 0.9F
            };


            //Opvullen rechterdeel ---------------------------------
            for (int x = 0; x <= list_timestandingday.Count - 1; x++)
            {
                if (list_timestandingday[x].Hour < datenow.Hour)
                {
                    list_standing.Add(list_timestandingday[x]);
                }
            }

            int standing = list_standing.Count;
            if (datenow.Hour > 9)
            {
                var som_standing_uur = Convert.ToInt32((som_standing / 3600));
                var som_standing_min = Convert.ToInt32(som_standing / 60 % 60);
                lblUurStand.Text = (som_standing_uur).ToString() + "h " + som_standing_min.ToString() + "m";
                if (zitminuten == 60)
                {
                    standing  += 1;
                    zitminuten = 0;
                }

                if ((standing - som_standing_uur - ExtraTijd) > datenow.Hour - 9)
                {
                    standing -= 1;
                }
                if (som_standing_min > zitminuten)
                {
                    zitminuten += 60;
                    ExtraTijd  += 1;
                }
                lblUurZit.Text = Convert.ToString(standing - som_standing_uur - ExtraTijd) + "h " + Convert.ToString(zitminuten - som_standing_min) + "m";
            }
            else
            {
                lblUurStand.Text = "0h 0m";
                lblUurZit.Text   = "0h 0m";
            }



            #endregion
        }
        private async void getData()
        {
            DateTime datefirst   = new DateTime(datenow.Year, datenow.Month, firstDay, 9, 0, 0);
            DateTime datelast    = new DateTime(datenow.Year, datenow.Month, firstDay, 17, 0, 0);
            DateTime datumTotUur = new DateTime(datenow.Year, datenow.Month, firstDay, datenow.Hour, 0, 0);

            if (vandaag > 0) //maandag
            {
                list_maandag = await ImaniManager.GetTimeStandingDayAsync(requestedUser.UserId.ToString(), datefirst, datelast);

                for (int i = 0; i < list_maandag.Count(); i++)
                {
                    if (list_maandag[i].Hour < datenow.Hour || (1 < vandaag))
                    {
                        standMinutesMon += Convert.ToInt16(list_maandag[i].TimeStandingSeconds);
                    }
                }
                standMinutesMon = standMinutesMon / 60; //om naar minuten te gaan, kan ook in 1lijn bij de if hierboven maar zo worden er minder bewerkingen gedaan
                if (vandaag != 1)                       //de verlopen tijd wordt bijgehouden om de cirkeldiagram te kunnen opmaken
                {
                    weekTimePassed += 480;
                }
                else
                {
                    weekTimePassed = Convert.ToInt16((datumTotUur - datefirst).TotalMinutes);
                }
            }
            if (vandaag > 1) //dinsdag
            {
                DateTime newFirst       = datefirst.AddDays(1);
                DateTime newLast        = datelast.AddDays(1);
                DateTime newdatumTotUur = datumTotUur.AddDays(1);
                list_dinsdag = await ImaniManager.GetTimeStandingDayAsync(requestedUser.UserId.ToString(), newFirst, newLast);

                for (int i = 0; i < list_dinsdag.Count() - 1; i++)
                {
                    if (list_dinsdag[i].Hour < datenow.Hour || (2 < vandaag))
                    {
                        standMinutesTue += Convert.ToInt16(list_dinsdag[i].TimeStandingSeconds);
                    }
                }
                standMinutesTue = standMinutesTue / 60; //om naar minuten te gaan
                if (vandaag != 2)
                {
                    weekTimePassed += 480;
                }
                else
                {
                    weekTimePassed += Convert.ToInt16((newdatumTotUur - newFirst).TotalMinutes);
                }
            }
            if (vandaag > 2) //woensdag
            {
                DateTime newFirst       = datefirst.AddDays(2);
                DateTime newLast        = datelast.AddDays(2);
                DateTime newdatumTotUur = datumTotUur.AddDays(2);

                list_woensdag = await ImaniManager.GetTimeStandingDayAsync(requestedUser.UserId.ToString(), newFirst, newLast);

                for (int i = 0; i < list_woensdag.Count() - 1; i++)
                {
                    if (list_woensdag[i].Hour < datenow.Hour || (3 < vandaag))
                    {
                        standMinutesWed += Convert.ToInt16(list_woensdag[i].TimeStandingSeconds);
                    }
                }
                standMinutesWed = standMinutesWed / 60; //om naar minuten te gaan
                if (vandaag != 3)
                {
                    weekTimePassed += 480;
                }
                else
                {
                    weekTimePassed += Convert.ToInt16((newdatumTotUur - newFirst).TotalMinutes);
                }
            }
            if (vandaag > 3) //donderdag
            {
                DateTime newFirst       = datefirst.AddDays(3);
                DateTime newLast        = datelast.AddDays(3);
                DateTime newdatumTotUur = datumTotUur.AddDays(3);
                list_donderdag = await ImaniManager.GetTimeStandingDayAsync(requestedUser.UserId.ToString(), newFirst, newLast);

                for (int i = 0; i < list_donderdag.Count() - 1; i++)
                {
                    if (list_donderdag[i].Hour < datenow.Hour || (4 < vandaag))
                    {
                        standMinutesThu += Convert.ToInt16(list_donderdag[i].TimeStandingSeconds);
                    }
                }
                standMinutesThu = standMinutesThu / 60; //om naar minuten te gaan
                if (vandaag != 4)
                {
                    weekTimePassed += 480;
                }
                else
                {
                    weekTimePassed += Convert.ToInt16((newdatumTotUur - newFirst).TotalMinutes);
                }
            }
            if (vandaag > 4) //vrijdag
            {
                DateTime newFirst       = datefirst.AddDays(4);
                DateTime newLast        = datelast.AddDays(4);
                DateTime newdatumTotUur = datumTotUur.AddDays(4);
                list_vrijdag = await ImaniManager.GetTimeStandingDayAsync(requestedUser.UserId.ToString(), newFirst, newLast);

                for (int i = 0; i < list_vrijdag.Count() - 1; i++)

                {
                    if (list_donderdag[i].Hour < datenow.Hour || (5 < vandaag))
                    {
                        standMinutesFri += Convert.ToInt16(list_vrijdag[i].TimeStandingSeconds);
                    }
                }
                standMinutesFri = standMinutesFri / 60; //om naar minuten te gaan
                if (vandaag != 5)
                {
                    weekTimePassed += 480;
                }
                else
                {
                    weekTimePassed += Convert.ToInt16((newdatumTotUur - newFirst).TotalMinutes);
                }
            }


            #region DEZE WAARDEN MOETEN DUS AANGEPAST WORDEN
            //Donut chart --> 2400 minuts in a week
            int standMinutes = standMinutesMon + standMinutesTue + standMinutesWed + standMinutesThu + standMinutesFri;
            int sitMinutes   = weekTimePassed - standMinutes;
            int StandHours   = 0;

            //Waarden voor cirkel met 40 uur
            //het aantal uren dat gestaan werd optellen
            for (int i = 0; i < list_maandag.Count - 1; i++)
            {
                if ((list_maandag[i].TimeStandingSeconds != 0) && ((list_maandag[i].Hour < datenow.Hour) || (1 < vandaag)))
                {
                    StandHours += 1;
                }
            }
            for (int i = 0; i < list_dinsdag.Count - 1; i++)
            {
                if (list_dinsdag[i].TimeStandingSeconds != 0 && ((list_dinsdag[i].Hour < datenow.Hour) || (2 < vandaag)))
                {
                    StandHours += 1;
                }
            }
            for (int i = 0; i < list_woensdag.Count - 1; i++)
            {
                if (list_woensdag[i].TimeStandingSeconds != 0 && ((list_woensdag[i].Hour < datenow.Hour) || (3 < vandaag)))
                {
                    StandHours += 1;
                }
            }
            for (int i = 0; i < list_donderdag.Count - 1; i++)
            {
                if (list_donderdag[i].TimeStandingSeconds != 0 && ((list_donderdag[i].Hour < datenow.Hour) || (4 < vandaag)))
                {
                    StandHours += 1;
                }
            }
            for (int i = 0; i < list_vrijdag.Count - 1; i++)
            {
                if (list_vrijdag[i].TimeStandingSeconds != 0 && ((list_vrijdag[i].Hour < datenow.Hour) || (5 < vandaag)))
                {
                    StandHours += 1;
                }
            }

            //Waarden voor Tekst (40 uren in week)
            string tekstUrenZit = sitMinutes.ToString();
            //string teksUrenSta = standMinutes.ToString();
            #endregion

            #region Waarden aan charts toewijzen (No need to change)
            //Donut chart
            staZitWeekEntry.Add(new Entry(standMinutes)
            {
                Color = SkiaSharp.SKColor.Parse("#cf6b00")
            });
            staZitWeekEntry.Add(new Entry(sitMinutes)
            {
                Color = SkiaSharp.SKColor.Parse("#F9ECDF")
            });

            //Staafdriagrammen
            WeekDagStaven.Add(new Entry(standMinutesMon)
            {
                Color = SkiaSharp.SKColor.Parse("#cf6b00"), Label = "Mon"
            });
            WeekDagStaven.Add(new Entry(standMinutesTue)
            {
                Color = SkiaSharp.SKColor.Parse("#cf6b00"), Label = "Tue"
            });
            WeekDagStaven.Add(new Entry(standMinutesWed)
            {
                Color = SkiaSharp.SKColor.Parse("#cf6b00"), Label = "Wed"
            });
            WeekDagStaven.Add(new Entry(standMinutesThu)
            {
                Color = SkiaSharp.SKColor.Parse("#cf6b00"), Label = "Thu"
            });
            WeekDagStaven.Add(new Entry(standMinutesFri)
            {
                Color = SkiaSharp.SKColor.Parse("#cf6b00"), Label = "Fri"
            });


            //Waarden voor cirkel met 8 uur

            int CalculateRest = 40 - StandHours;
            CirkelUren.Add(new Entry(StandHours)
            {
                Color = SkiaSharp.SKColor.Parse("#cf6b00")
            });
            CirkelUren.Add(new Entry(CalculateRest)
            {
                Color = SkiaSharp.SKColor.Parse("#F7F7F7")
            });
            txtStandingHours.Text = StandHours.ToString(); //Deze waarde is voor de tekstbox in de ring
            int daysNotRecorded = 0;

            //Waarden voor Tekst (uren)
            // als er een hele dag geen recordings zijn wordt dit aangepast

            if (list_maandag.Count == 0 && list_dinsdag.Count == 0 && list_woensdag.Count == 0 && list_donderdag.Count == 0 && list_vrijdag.Count == 0)
            {
                lblUurStand.Text = "0h 0m";
                lblUurZit.Text   = "0h 0m";
            }
            else
            {
                var som_standing_uur = standMinutes / 60;
                var som_standing_min = Convert.ToInt32(standMinutes % 60);
                var som_sitting_uur  = (sitMinutes / 60) - (daysNotRecorded * 8);
                var som_sitting_min  = sitMinutes % 60;
                lblUurStand.Text = (som_standing_uur + "h " + som_standing_min + "m").ToString();    //teksUrenSta;
                lblUurZit.Text   = Convert.ToString(som_sitting_uur + "h " + som_sitting_min + "m"); //teksUren ;
            }
            if (list_maandag.Count == 0)
            {
                daysNotRecorded += 1;
            }
            if (list_dinsdag.Count == 0)
            {
                daysNotRecorded += 1;
            }
            if (list_woensdag.Count == 0)
            {
                daysNotRecorded += 1;
            }
            if (list_donderdag.Count == 0)
            {
                daysNotRecorded += 1;
            }
            if (list_vrijdag.Count == 0)
            {
                daysNotRecorded += 1;
            }



            //lblUurZit.Text = Convert.ToString(standing - som_standing_uur - stauur) + " h " + Convert.ToString(zitminuten - som_standing_min) + " m";

            #endregion

            #region Aanmaken Charts
            //----------------------------------------
            //Donut
            ChartsStaVsZit.Chart = new DonutChart {
                Entries = staZitWeekEntry, MaxValue = weekTimePassed, LabelTextSize = 32, HoleRadius = 0.5F
            };

            //Staven
            ChartStavenUren.Chart = new BarChart {
                Entries = WeekDagStaven, MaxValue = 400, LabelTextSize = 32
            };

            // Cirkel van 8 uur
            ChartCirkelUren.Chart = new DonutChart {
                Entries = CirkelUren, MaxValue = 40, HoleRadius = 0.9F
            };
            //----------------------------------------
            #endregion
        }
        private async void  AddColleague_Tapped(object sender, EventArgs e)
        {
            var action = await DisplayActionSheet("How would you like to add a colleague?", "Cancel", null, "Scan QR-Code", "Enter code manually");

            switch (action)
            {
            case "Scan QR-Code":
                //Hier komt de code voor de QR-Code Camera
                var ResultaatCode = "0";
                var scan          = new ZXingScannerPage();
                Navigation.PushAsync(scan);
                scan.OnScanResult += (resultaat) =>
                {
                    Device.BeginInvokeOnMainThread(async() =>
                    {
                        Navigation.PopAsync();
                        ResultaatCode = resultaat.Text;

                        if (ResultaatCode.Length == 6)
                        {
                            try
                            {
                                var response = await ImaniManager.FollowUserAsync(GlobalVariables.user.UserId.ToString().ToUpper(), ResultaatCode);
                                if (response != "User niet gevonden")
                                {
                                    await DisplayAlert("Attention!", "You are now succesfully following: " + response, "Ok");
                                }
                                else
                                {
                                    await DisplayAlert("Attention!", "The sharekey does not match a user!", "Ok");
                                }
                            }
                            catch
                            {
                                await DisplayAlert("Alert!", "Something went wrong!", "Ok");
                            }

                            Application.Current.MainPage = new ColleaguesPage();
                        }
                    });
                };



                break;

            case "Enter code manually":
                var result = await UserDialogs.Instance.PromptAsync(new PromptConfig
                {
                    Title      = "Add Colleague",
                    Message    = "Give the share key!",
                    OkText     = "Ok",
                    CancelText = "Cancel",
                    MaxLength  = 6
                });

                var EnteredCode = result.Value;
                if (result.Ok && EnteredCode.Length == 6)
                {
                    try
                    {
                        var response = await ImaniManager.FollowUserAsync(GlobalVariables.user.UserId.ToString().ToUpper(), EnteredCode);

                        if (EnteredCode.ToUpper() == GlobalVariables.user.Sharekey)
                        {
                            await DisplayAlert("UHMMM", "You can't follow your own account, please find some friends :)", "OK :'(");
                        }
                        else if (response != "User niet gevonden")
                        {
                            await DisplayAlert("Attention!", "You are now succesfully following: " + response, "Ok");
                        }
                        else
                        {
                            await DisplayAlert("Attention!", "The sharekey does not match a user!", "Ok");
                        }
                        if (response == "Er is iets fout gegaan")
                        {
                            await DisplayAlert("Attention!", "There went something wrong!", "Ok");
                        }
                    }
                    catch
                    {
                        await DisplayAlert("Alert!", "Something went wrong!", "Ok");
                    }

                    Application.Current.MainPage = new ColleaguesPage();
                }
                else
                {
                    await DisplayAlert("Invalid!", "Please enter a valid share key!", "Ok, sorry");
                }
                break;
            }
        }
Example #12
0
        private async void btnLogin_Clicked(object sender, EventArgs e)
        {
            try
            {
                if (!string.IsNullOrWhiteSpace(entMail.Text) && !string.IsNullOrWhiteSpace(entPassword.Text))
                {
                    var semiTransparentColor = new Color(0, 0, 0, 0.5);
                    frameLayer.BackgroundColor = semiTransparentColor;
                    frameLayer.IsVisible       = true;
                    indicatorLoader.IsRunning  = true;

                    User user_try = new User();
                    user_try.Email    = entMail.Text.Trim();
                    user_try.Password = entPassword.Text;

                    User user = await ImaniManager.LoginUserAsync(user_try);

                    if (user.Name != null)
                    {
                        GlobalVariables.user         = user;
                        Application.Current.MainPage = new Dashboard.DashboardContent();

                        try
                        {
                            if (ble.State == BluetoothState.Off)
                            {
                                Debug.WriteLine("Bluetooth uit");
                            }
                            else if (ble.State == BluetoothState.On)
                            {
                                adapter.DeviceDiscovered += (s, a) =>
                                {
                                    if (a.Device.Name == "Imani tracker 0001")
                                    {
                                        GlobalVariables.device         = a.Device;
                                        GlobalVariables.deviceAanwezig = true;
                                    }
                                };
                                await adapter.StartScanningForDevicesAsync();

                                if (GlobalVariables.deviceAanwezig == true)
                                {
                                    await adapter.ConnectToDeviceAsync(GlobalVariables.device);

                                    GlobalVariables.connection = true;
                                    Debug.WriteLine("Succes");
                                }
                                else
                                {
                                    Debug.WriteLine("No device");
                                }
                            }
                            else
                            {
                                Debug.WriteLine("ERROR");
                            }
                        }
                        catch (Exception ex)
                        {
                            throw ex;
                        }


                        if (GlobalVariables.connection == false)
                        {
                            var reslutaat = await UserDialogs.Instance.ConfirmAsync(new ConfirmConfig
                            {
                                Title      = "Not connected",
                                Message    = "You are not connected to your shoe sole!",
                                OkText     = "Go to settings",
                                CancelText = "I'm okay",
                            });

                            if (reslutaat)
                            {
                                GlobalVariables.doorverwijzenBluetooth = true;
                                GlobalVariables.displayedScreen        = "Settings";
                                Application.Current.MainPage           = new SettingsPage();
                            }
                        }
                    }
                    else
                    {
                        await DisplayAlert("Attention", "Email/wachtwoord incorrect", "OK");

                        frameLayer.IsVisible      = false;
                        indicatorLoader.IsRunning = false;
                    }
                }
                else
                {
                    await DisplayAlert("Attention!", "Your input was incorrect!", "OK");

                    frameLayer.IsVisible      = false;
                    indicatorLoader.IsRunning = false;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }