예제 #1
0
        public void ReLoad(List <int> listVakmannen2, DateTime datum)
        {
            dbRepository         dbrep = new dbRepository();
            dbOriginalRepository dbo   = new dbOriginalRepository();
            DbTools dbtools            = new DbTools();

            // haal alle mandegen van deze week
            //Logfile.Log("Haal alle mandagen op (database)");

            // risky business, idem zie projectoverzicht
            List <Mandagen> listMandagenTotal = dbrep.datacontext.Mandagens.Where(m => m.Begintijd >= datum && m.Eindtijd <= datum.AddDays(1) && m.Begintijd != m.Eindtijd).ToList();

            foreach (Control control in spUren.Children)
            {
                if (control.GetType() == typeof(Button))
                {
                    // per dag extra tooltip informatie:
                    //string strTooltip = string.Empty;
                    StackPanel strTooltip = new StackPanel();
                    //Logfile.Log("volgende dag, dag " + i.ToString());

                    // filter alleen de mandagen voor vandaag,
                    // van de huidige vakman waar we naar kijken
                    //Logfile.Log("filter mandagen");
                    Button   lblDag    = (Button)control;
                    vwVakman objVakman = ((vwVakman)((List <object>)lblDag.Tag)[0]);
                    DateTime objDatum  = ((DateTime)((List <object>)lblDag.Tag)[1]);

                    if (objDatum == datum && listVakmannen2.Contains(objVakman.VakmanId))
                    {
                        // EXPERIMENT uitzetten LET OP: Juraci
                        List <Mandagen> listMandagen = listMandagenTotal.Where(m => m.VakmanId == objVakman.VakmanId && m.Begintijd >= objDatum && m.Eindtijd <= objDatum.AddDays(1)).ToList();

                        // als in deze pool van mandagen een aanvraag zit:
                        // vandaag, ander project, geen projectleider, niet bevestigd (dus aanvraag)
                        //Logfile.Log("filter aanvragen");
                        //List<Mandagen> listAanvragen = listMandagenTotal.Where(m => m.VakmanId == objVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1) && !m.Status).ToList();


                        //long totalTicks = 0;
                        bool hasAanvraag  = false;
                        int  totalHours   = 0;
                        int  totalMinutes = 0;


                        // extra stukje als experiment LET OP: Juraci

                        //totalHours = listMandagenTotal.Where(m => m.Status && m.VakmanId == objVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1)).Sum(m => m.Uren);
                        //totalMinutes = listMandagenTotal.Where(m => m.Status && m.VakmanId == objVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1)).Sum(m => m.Minuten);

                        //hasAanvraag = listMandagenTotal.Any(m => !m.Status && m.VakmanId == objVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1));

                        strTooltip = dbtools.AddTooltipAanvraagAll(dbtools.GetVakman(objVakman), new Project(), objDatum, false, true);


                        hasAanvraag  = listMandagen.Any(a => !a.Status);
                        totalHours   = listMandagen.Sum(a => a.Uren);
                        totalMinutes = listMandagen.Sum(a => a.Minuten);

                        //foreach (Mandagen mandag in listMandagen)
                        //{
                        //    //Logfile.Log("volgende mandag");
                        //    // bereken de som der uren
                        //    //ALLEEN ALS HET EEN BEVESTIGD UUR IS
                        //    if (mandag.Status)
                        //    {
                        //        //long lnMandagTicks = (mandag.Eindtijd.Ticks - mandag.Begintijd.Ticks);
                        //        //totalTicks += lnMandagTicks;
                        //        //TimeSpan tsMandag = TimeSpan.FromTicks(lnMandagTicks);

                        //        //Logfile.Log("haal project titel bij daan (database)");
                        //        MDRproject objProject = dbo.GetProject((int)mandag.Project.ProjectNr, true);

                        //        //Logfile.Log("bereken uren");
                        //        totalHours += mandag.Uren;
                        //        totalMinutes += mandag.Minuten;

                        //        //Logfile.Log("set tooltip");
                        //        if (objProject != null)
                        //        {
                        //            strTooltip += Environment.NewLine;
                        //            //strTooltip += "(" + ((int)Math.Ceiling(tsMandag.TotalHours)).ToString() + "u) " + objProject.project_NR.ToString(5) + " " + objProject.naam_project;
                        //            strTooltip += "(" + mandag.Uren.ToString() + ":" + (mandag.Minuten < 10 ? "0" : "") + mandag.Minuten.ToString() + ") " + objProject.project_NR.ToString(5) + " " + objProject.naam_project;
                        //        }

                        //    }

                        //    // als de betreffende mandag een aanvraag is
                        //    // OF er een aanvraag is die deze overlapt qua tijden, voor een ander project is, maar voor dezelfde vakman, en nog niet geannulleerd dus lopende aanvraag
                        //    //if ((!mandag.Status && !mandag.Geannulleerd) || listAanvragen.Any(a => a.Eindtijd > mandag.Begintijd && a.Begintijd < mandag.Eindtijd && a.ProjectId != mandag.ProjectId && a.VakmanId == mandag.VakmanId && !a.Geannulleerd))
                        //    //if ((!mandag.Status && mandag.ProjectleiderId == ApplicationState.GetValue<Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId) || (!mandag.Status && !mandag.Geannulleerd && mandag.ProjectleiderId != ApplicationState.GetValue<Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId))
                        //    if (!mandag.Status)
                        //    {
                        //        hasAanvraag = true;
                        //    }
                        //}
                        //// CHECKECN


                        //Logfile.Log("klaar met loopje mandagen");

                        //TimeSpan totalTimespan = TimeSpan.FromTicks(totalTicks);
                        lblDag.Width    = 24;
                        lblDag.Height   = 17;
                        lblDag.Margin   = new Thickness(2, 2, 2, 2);
                        lblDag.FontSize = 11;
                        lblDag.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Right;

                        lblDag.Padding = new Thickness(0, -1, 2, 0);

                        //Logfile.Log("haal contact bij daan (database)");

                        MDRpersoon objPersoon = dbo.GetContact(objVakman.ContactIdOrigineel, true);

                        //Logfile.Log("toon naam");
                        lblDag.ToolTip = ToonNaam(objPersoon) + strTooltip;

                        int totalHoursRounded = 0;
                        //totalHoursRounded = (int)Math.Ceiling(totalTimespan.TotalHours);
                        int minutesRemainder = totalMinutes % 60;

                        //Logfile.Log("bereken totaal uren om te tonen");
                        totalHoursRounded = totalHours + (int)((totalMinutes - minutesRemainder) / 60) + (minutesRemainder == 0 ? 0 : 1);

                        //Logfile.Log("bereken kleuren en andere toon opties");
                        lblDag.Content = totalHoursRounded == 0 ? "" : totalHoursRounded.ToString();
                        bool blnUseInvisibleColorsAKASwitchColors = false;

                        // 0 niet tonen
                        if (totalHoursRounded == 0 && !hasAanvraag)
                        {
                            blnUseInvisibleColorsAKASwitchColors = true;
                            //lblDag.Visibility = System.Windows.Visibility.Hidden;
                        }
                        else
                        {
                            HasHours = true;
                        }

                        List <object> tag = new List <object>();
                        tag.Add(objVakman);
                        tag.Add(objDatum);

                        lblDag.Tag = tag;



                        // END CHECKEN


                        // standaard kleuren van de border
                        if (weeknummer % 2 == 0)
                        {
                            if (blnUseInvisibleColorsAKASwitchColors)
                            {
                                // use this color to make it invisible (same color as background)
                                lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFD8E4BC"));
                            }
                            else
                            {
                                // original color
                                lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
                            }
                        }
                        else
                        {
                            if (blnUseInvisibleColorsAKASwitchColors)
                            {
                                // use this color to make it invisible (same color as background)
                                lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
                            }
                            else
                            {
                                lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFD8E4BC"));
                            }
                        }


                        // zwarte rand maken bij een aanvraag
                        if (hasAanvraag)
                        {
                            double[]  dimensions      = new double[] { 2, 2 };
                            Rectangle dottedRectangle = new Rectangle();
                            dottedRectangle.Stroke = new SolidColorBrush(Colors.Gray);
                            dottedRectangle.SnapsToDevicePixels = true;
                            dottedRectangle.Height          = 2;
                            dottedRectangle.StrokeThickness = 2;
                            dottedRectangle.Height          = 24;
                            dottedRectangle.Width           = 45;
                            dottedRectangle.StrokeDashArray = new DoubleCollection(dimensions);

                            VisualBrush vb = new VisualBrush();
                            vb.Visual = dottedRectangle;

                            lblDag.BorderBrush = vb; // new SolidColorBrush(Colors.Black); // (SolidColorBrush)(new BrushConverter().ConvertFrom("#00000000"));
                        }



                        //Logfile.Log("voeg de dag toe");
                    }
                }
            }


            //Logfile.Log("klaar met vakmannen");
        }
예제 #2
0
        public void Load()
        {
            DbTools dbtools = new DbTools();

            // datums onder tooltip
            lblMa.ToolTip = GetDagTooltip(dtDag);
            lblDi.ToolTip = GetDagTooltip(dtDag.AddDays(1));
            lblWo.ToolTip = GetDagTooltip(dtDag.AddDays(2));
            lblDo.ToolTip = GetDagTooltip(dtDag.AddDays(3));
            lblVr.ToolTip = GetDagTooltip(dtDag.AddDays(4));
            lblZa.ToolTip = GetDagTooltip(dtDag.AddDays(5));
            lblZo.ToolTip = GetDagTooltip(dtDag.AddDays(6));

            if (!IsWeekVisible)
            {
                // datums onder tooltip
                lblMa.Visibility     = System.Windows.Visibility.Collapsed;
                lblDi.Visibility     = System.Windows.Visibility.Collapsed;
                lblWo.Visibility     = System.Windows.Visibility.Collapsed;
                lblDo.Visibility     = System.Windows.Visibility.Collapsed;
                lblVr.Visibility     = System.Windows.Visibility.Collapsed;
                lblZa.Visibility     = System.Windows.Visibility.Collapsed;
                lblZo.Visibility     = System.Windows.Visibility.Collapsed;
                bbDivider.Visibility = System.Windows.Visibility.Collapsed;
            }

            if (weeknummer % 2 == 0)
            {
                bbDivider.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
            }
            else
            {
                bbDivider.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFD8E4BC"));
            }


            dbRepository         dbrep = new dbRepository();
            dbOriginalRepository dbo   = new dbOriginalRepository();

            // haal alle mandegen van deze week
            //Logfile.Log("Haal alle mandagen op (database)");
            //listMandagenTotal = listMandagenTotal.Where(m => m.Begintijd >= dtDag && m.Eindtijd <= dtDag.AddDays(7) && m.Begintijd != m.Eindtijd).ToList();

            foreach (vwVakman objVwVakman in listVwVakmannen)
            {
                //
                //Logfile.Log("volgende vakman");
                Vakman     objVakman  = listVakmannen.FirstOrDefault(a => a.VakmanId == objVwVakman.VakmanId);
                MDRpersoon objPersoon = listMDRpersoons.FirstOrDefault(a => a.persoon_ID == objVwVakman.ContactIdOrigineel);

                for (int i = 0; i < 7; i++)
                {
                    // per dag extra tooltip informatie:
                    StackPanel strTooltip = new StackPanel();
                    //StackPanel strTooltipAanvraag = new StackPanel();

                    //Logfile.Log("volgende dag, dag " + i.ToString());

                    //strTooltip.AddText(ToonNaam(objPersoon));

                    // filter alleen de mandagen voor vandaag,
                    // van de huidige vakman waar we naar kijken
                    //Logfile.Log("filter mandagen");

                    // EXPERIMENT uitzetten LET OP: Juraci
                    List <Mandagen> listMandagen = listMandagenTotal.Where(m => m.VakmanId == objVwVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1)).OrderBy(m => m.Begintijd).ToList();

                    // als in deze pool van mandagen een aanvraag zit:
                    // vandaag, ander project, geen projectleider, niet bevestigd (dus aanvraag)
                    //Logfile.Log("filter aanvragen");
                    //List<Mandagen> listAanvragen = listMandagenTotal.Where(m => m.VakmanId == objVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1) && !m.Status).ToList();
                    // als in deze pool van mandagen een aanvraag zit:
                    // vandaag, ander project, geen projectleider, wel bevestigd (dus waar dit de aanvraag van is)
                    //List<Mandagen> listMandagenWaarDitDeAanvraagVanIs = listMandagenTotal.Where(m => m.ProjectleiderId != ApplicationState.GetValue<Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId && m.VakmanId == objVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1) && m.Status).OrderBy(m => m.Begintijd).ToList();


                    //long totalTicks = 0;
                    bool hasAanvraag  = false;
                    int  totalHours   = 0;
                    int  totalMinutes = 0;


                    // extra stukje als experiment LET OP: Juraci

                    //totalHours = listMandagenTotal.Where(m => m.Status && m.VakmanId == objVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1)).Sum(m => m.Uren);
                    //totalMinutes = listMandagenTotal.Where(m => m.Status && m.VakmanId == objVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1)).Sum(m => m.Minuten);

                    //hasAanvraag = listMandagenTotal.Any(m => !m.Status && m.VakmanId == objVakman.VakmanId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1));

                    int vakmanId = -1;



                    hasAanvraag  = listMandagen.Any(a => !a.Status);
                    totalHours   = listMandagen.Where(a => a.Status).Sum(a => a.Uren);
                    totalMinutes = listMandagen.Where(a => a.Status).Sum(a => a.Minuten);

                    bool hasUren = totalHours > 0 || totalMinutes > 0;

                    strTooltip = dbtools.AddTooltipAanvraagAll(objVakman, new Project(), dtDag.AddDays(i), false, true, listMandagenTotal.Where(m => m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1)).ToList(), hasAanvraag, hasUren);


                    //TimeSpan totalTimespan = TimeSpan.FromTicks(totalTicks);
                    Button lblDag = new Button();
                    lblDag.Width    = 24;
                    lblDag.Height   = 17;
                    lblDag.Margin   = new Thickness(2, 2, 2, 2);
                    lblDag.FontSize = 11;
                    lblDag.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Right;

                    lblDag.Padding = new Thickness(0, -1, 2, 0);

                    ToolTipService.SetShowDuration(lblDag, 20000);

                    lblDag.ToolTip = strTooltip;

                    int totalHoursRounded = 0;
                    //totalHoursRounded = (int)Math.Ceiling(totalTimespan.TotalHours);
                    int minutesRemainder = totalMinutes % 60;

                    //Logfile.Log("bereken totaal uren om te tonen");
                    totalHoursRounded = totalHours + (int)((totalMinutes - minutesRemainder) / 60) + (minutesRemainder == 0 ? 0 : 1);

                    //if (totalTimespan.Minutes > 0)
                    //{
                    //    totalHoursRounded ++;
                    //}

                    //Logfile.Log("bereken kleuren en andere toon opties");
                    lblDag.Content = totalHoursRounded == 0 ? "" : totalHoursRounded.ToString();
                    bool blnUseInvisibleColorsAKASwitchColors = false;

                    // 0 niet tonen
                    if (totalHoursRounded == 0 && !hasAanvraag)
                    {
                        blnUseInvisibleColorsAKASwitchColors = true;
                        //lblDag.Visibility = System.Windows.Visibility.Hidden;
                    }
                    else
                    {
                        HasHours = true;
                    }

                    List <object> tag = new List <object>();
                    tag.Add(objVwVakman);
                    tag.Add(dtDag.AddDays(i));

                    lblDag.Tag = tag;

                    // standaard kleuren van de border
                    if (weeknummer % 2 == 0)
                    {
                        if (blnUseInvisibleColorsAKASwitchColors)
                        {
                            // use this color to make it invisible (same color as background)
                            lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFD8E4BC"));
                        }
                        else
                        {
                            // original color
                            lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
                        }
                    }
                    else
                    {
                        if (blnUseInvisibleColorsAKASwitchColors)
                        {
                            // use this color to make it invisible (same color as background)
                            lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
                        }
                        else
                        {
                            lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFD8E4BC"));
                        }
                    }

                    // zwarte rand maken bij een aanvraag
                    if (hasAanvraag)
                    {
                        double[]  dimensions      = new double[] { 2, 2 };
                        Rectangle dottedRectangle = new Rectangle();
                        dottedRectangle.Stroke = new SolidColorBrush(Colors.Gray);
                        dottedRectangle.SnapsToDevicePixels = true;
                        dottedRectangle.Height          = 2;
                        dottedRectangle.StrokeThickness = 2;
                        dottedRectangle.Height          = 24;
                        dottedRectangle.Width           = 45;
                        dottedRectangle.StrokeDashArray = new DoubleCollection(dimensions);

                        VisualBrush vb = new VisualBrush();
                        vb.Visual = dottedRectangle;

                        lblDag.BorderBrush = vb; // new SolidColorBrush(Colors.Black); // (SolidColorBrush)(new BrushConverter().ConvertFrom("#00000000"));
                    }

                    // standaard achtergrondkleuren van de dagen
                    if (weeknummer % 2 == 0)
                    {
                        lblDag.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFD8E4BC"));
                    }
                    else
                    {
                        lblDag.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
                    }


                    lblDag.BorderThickness = new Thickness(2);

                    //lblDag.MouseLeftButtonDown += lblDag_Click;
                    lblDag.Click += lblDag_Click;
                    spUren.Children.Add(lblDag);

                    //Logfile.Log("voeg de dag toe");
                }
            }


            //Logfile.Log("klaar met vakmannen");
        }
        protected virtual void OnPropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;

            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }

            switch (propertyName)
            {
            case "Project":
                dbRepository dbrep         = new dbRepository();
                DateTime     dtSelectedDay = ApplicationState.GetValue <DateTime>(ApplicationVariables.dtSelectedDay);
                DbTools      dbtools       = new DbTools();

                StackPanel strTooltip         = new StackPanel();
                StackPanel strTooltipAanvraag = new StackPanel();

                dbOriginalRepository dbreporiginal = new dbOriginalRepository();
                MDRpersoon           pp            = dbreporiginal.GetContact(dbrep.GetProjectleider(project.ProjectleiderId, project.ProjectId, dtSelectedDay).ContactIdOrigineel);
                lblHeader.Content           = ToonNaam(pp);
                lblHeader.VerticalAlignment = System.Windows.VerticalAlignment.Top;
                //lblHeader.BorderThickness = new Thickness(1);
                //lblHeader.BorderBrush = new SolidColorBrush(Colors.Black);


                btnHeader.Style = this.FindResource("LinkButton") as Style;

                MDRproject pr = dbreporiginal.GetProject((int)project.ProjectNr);
                double     ww = 400;
                if (btnHeader.Width > 0)
                {
                    ww = btnHeader.Width;
                }

                if (btnHeader.FontSize > 11)
                {
                    ww = ww * 0.8;
                }

                // TOOLTIP
                // TOOLTIP
                // TOOLTIP
                DateTime dtdag  = ApplicationState.GetValue <DateTime>(ApplicationVariables.dtSelectedDay);
                Vakman   vakman = dbrep.GetVakman(ApplicationState.GetValue <int>(ApplicationVariables.intVakmanId));
                strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(vakman, project, dtdag, true, true));

                if (pr != null)
                {
                    btnHeader.Content = pr.project_NR.ToString(5) + " " + pr.naam_project.ToString(ww);
                    // de naam van het project ook tonen in de tooltip bovenaan
                    //strTooltip.AddText(pr.naam_project.ToString() + " (Project " + pr.project_NR + ")");
                }
                else
                {
                    btnHeader.Content = "      " + project.Naam.ToString(ww);
                    // de naam van het project ook tonen in de tooltip bovenaan
                    //strTooltip.AddText(project.Naam.ToString() + " (Project --)");
                }

                //List<Mandagen> listMandagenTotal = dbrep.datacontext.Mandagens.Where(m => m.Begintijd != m.Eindtijd && m.Begintijd >= ApplicationState.GetValue<DateTime>(ApplicationVariables.dtSelectedDay) && m.Eindtijd <= ApplicationState.GetValue<DateTime>(ApplicationVariables.dtSelectedDay).AddDays(1)).ToList();

                //List<Mandagen> listMandagen = listMandagenTotal.Where(m => m.ProjectId == project.ProjectId).ToList();
                //// als in deze pool van mandagen een aanvraag zit:

                //// vandaag, ander project, geen projectleider, niet bevestigd (dus aanvraag)
                //List<Mandagen> listAanvragen = listMandagenTotal.Where(m => m.ProjectleiderId != ApplicationState.GetValue<Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId && m.ProjectId != project.ProjectId && m.Begintijd >= ApplicationState.GetValue<DateTime>(ApplicationVariables.dtSelectedDay) && m.Eindtijd <= ApplicationState.GetValue<DateTime>(ApplicationVariables.dtSelectedDay).AddDays(1) && !m.Status).ToList();

                //// als in deze pool van mandagen een aanvraag zit:
                //// vandaag, ander project, geen projectleider, wel bevestigd (dus waar dit de aanvraag van is)
                //List<Mandagen> listMandagenWaarDitDeAanvraagVanIs = listMandagenTotal.Where(m => m.ProjectId != project.ProjectId && m.ProjectleiderId != ApplicationState.GetValue<Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId && m.ProjectId != project.ProjectId && m.Begintijd >= dtSelectedDay && m.Eindtijd <= dtSelectedDay.AddDays(1) && m.Status).ToList();

                //int previousVakmanId = -1;

                //foreach (Mandagen mandag in listMandagen)
                //{


                //    if (mandag.Status)
                //    {
                //        bool isBold = mandag.VakmanId == ApplicationState.GetValue<int>(ApplicationVariables.intVakmanId);
                //        //strTooltip.AddText("(" + ToonTijd(mandag) + ")" + " " + ToonNaam(dbreporiginal.GetContact(mandag.Vakman.ContactIdOrigineel, true)), isBold);

                //        // OF we hebben te maken met externe aanvragen
                //        Mandagen aanvraag = listAanvragen.FirstOrDefault(m => m.Begintijd < mandag.Eindtijd && m.Eindtijd > mandag.Begintijd && m.VakmanId == mandag.VakmanId);

                //        if (aanvraag != null)
                //        {
                //            List<Mandagen> listIngeplandeMandagen = new List<Mandagen>();
                //            listIngeplandeMandagen.Add(mandag);
                //            if (previousVakmanId == mandag.VakmanId)
                //            {
                //                //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagMinOnly(listIngeplandeMandagen, aanvraag, false));
                //                //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(mandag.Vakman, mandag.Project, dbtools.GetHeleDag(mandag.Begintijd)));
                //            }
                //            else
                //            {
                //                //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraag(listIngeplandeMandagen, aanvraag, false));
                //                //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(mandag.Vakman, mandag.Project, dbtools.GetHeleDag(mandag.Begintijd)));
                //            }
                //            previousVakmanId = mandag.VakmanId;

                //        }

                //    }
                //    else
                //    {

                //        if (previousVakmanId == mandag.VakmanId)
                //        {
                //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagMinOnly(listMandagenWaarDitDeAanvraagVanIs, mandag, true));
                //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(mandag.Vakman, mandag.Project, dbtools.GetHeleDag(mandag.Begintijd), true, false));
                //        }
                //        else
                //        {
                //            // OF het is zelf de aanvraag
                //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraag(listMandagenWaarDitDeAanvraagVanIs, mandag, true));
                //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(mandag.Vakman, mandag.Project, dbtools.GetHeleDag(mandag.Begintijd), true, false));
                //        }

                //        previousVakmanId = mandag.VakmanId;
                //    }
                //}

                //foreach (Mandagen mandag in listAanvragen)
                //{
                //    if (!mandag.Status)
                //    {
                //        // OF dit project heeft een andere aanvraag lopen die de vakman VAN het project af wil halen
                //        listMandagenWaarDitDeAanvraagVanIs = listMandagenTotal.Where(m => m.VakmanId == mandag.VakmanId &&  m.ProjectId != mandag.ProjectId && m.ProjectleiderId != ApplicationState.GetValue<Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId && m.Begintijd >= dtSelectedDay && m.Eindtijd <= dtSelectedDay.AddDays(1) && m.Status).ToList();
                //        strTooltipAanvraag += AddTooltipAanvraag(listMandagenWaarDitDeAanvraagVanIs, mandag, false);
                //    }
                //}

                ToolTipService.SetShowDuration(btnHeader, 20000);
                strTooltip.Children.Add(strTooltipAanvraag);
                btnHeader.ToolTip = strTooltip;
                btnHeader.Margin  = new Thickness(0, 0, 0, -8);

                if (ApplicationState.GetValue <int>("intProjectId") == project.ProjectId)
                {
                    // make bold
                    //btnHeader.FontWeight = FontWeights.ExtraBold;
                }

                break;

            default:
                break;
            }
        }
예제 #4
0
        public void Load()
        {
            DbTools dbtools = new DbTools();

            // datums onder tooltip
            lblMa.ToolTip = GetDagTooltip(dtDag);
            lblDi.ToolTip = GetDagTooltip(dtDag.AddDays(1));
            lblWo.ToolTip = GetDagTooltip(dtDag.AddDays(2));
            lblDo.ToolTip = GetDagTooltip(dtDag.AddDays(3));
            lblVr.ToolTip = GetDagTooltip(dtDag.AddDays(4));
            lblZa.ToolTip = GetDagTooltip(dtDag.AddDays(5));
            lblZo.ToolTip = GetDagTooltip(dtDag.AddDays(6));

            if (!IsWeekVisible)
            {
                // datums onder tooltip
                lblMa.Visibility     = System.Windows.Visibility.Hidden;
                lblDi.Visibility     = System.Windows.Visibility.Hidden;
                lblWo.Visibility     = System.Windows.Visibility.Hidden;
                lblDo.Visibility     = System.Windows.Visibility.Hidden;
                lblVr.Visibility     = System.Windows.Visibility.Hidden;
                lblZa.Visibility     = System.Windows.Visibility.Hidden;
                lblZo.Visibility     = System.Windows.Visibility.Hidden;
                bbDivider.Visibility = System.Windows.Visibility.Collapsed;
            }

            if (weeknummer % 2 == 0)
            {
                bbDivider.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
            }
            else
            {
                bbDivider.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFC5D9F1"));
            }

            int intProjectleider = ApplicationState.GetValue <int>(ApplicationVariables.intProjectleider);

            blnOwner = objProjectleider.ProjectleiderId == intProjectleider;

            dbRepository         dbrep = new dbRepository();
            dbOriginalRepository dbo   = new dbOriginalRepository();

            // haal alle mandegen van deze week
            //List<Mandagen> listMandagenTotal = dbrep.datacontext.Mandagens.Where(m => m.Begintijd >= dtDag && m.Eindtijd <= dtDag.AddDays(7) && m.Begintijd != m.Eindtijd).ToList();

            foreach (Project objProject in listProjecten)
            {
                //

                for (int i = 0; i < 7; i++)
                {
                    // per dag extra tooltip informatie:
                    StackPanel strTooltip         = new StackPanel();
                    StackPanel strTooltipAanvraag = new StackPanel();


                    // filter alleen de mandagen voor vandaag, waarvan de ingelogde kijker projectleider is,
                    // van het huidige project waar we naar kijken
                    List <Mandagen> listMandagen = listMandagenTotal.Where(m => m.ProjectleiderId == objProjectleider.ProjectleiderId && m.ProjectId == objProject.ProjectId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1)).OrderBy(m => dbo.GetContact(m.Vakman.ContactIdOrigineel, true) == null ? "" : dbo.GetContact(m.Vakman.ContactIdOrigineel, true).voornaam).ThenByDescending(m => m.Status).ToList();

                    // als in deze pool van mandagen een aanvraag zit:
                    // vandaag, ander project, geen projectleider, niet bevestigd (dus aanvraag)
                    List <Mandagen> listAanvragen = listMandagenTotal.Where(m => m.ProjectleiderId != objProjectleider.ProjectleiderId && m.ProjectId != objProject.ProjectId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1) && !m.Status).ToList();

                    // als in deze pool van mandagen een aanvraag zit:
                    // vandaag, ander project, geen projectleider, wel bevestigd (dus waar dit de aanvraag van is)
                    List <Mandagen> listMandagenWaarDitDeAanvraagVanIs = listMandagenTotal.Where(m => m.Begintijd != m.Eindtijd && m.ProjectleiderId != objProjectleider.ProjectleiderId && m.ProjectId != objProject.ProjectId && m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1) && m.Status).ToList();


                    //long totalTicks = 0;
                    bool hasAanvraag  = false;
                    int  totalHours   = 0;
                    int  totalMinutes = 0;

                    int previousVakmanId = -1;

                    //if ((listMandagen.Any(m=> !m.Status) || listAanvragen.Any(a => !a.Geannulleerd && a.Eindtijd > listMandagen.Min(m=>m.Begintijd) && a.Begintijd < listMandagen.Max(m=>m.Eindtijd && a.ProjectId != mandag.ProjectId && a.VakmanId == mandag.VakmanId))
                    //{
                    //    hasAanvraag = true;
                    //}


                    // TODO: WEER AANZETTEN, CACHE TEST
                    foreach (Mandagen mandag in listMandagen)
                    {
                        // bereken de som der uren
                        //ALLEEN ALS HET EEN BEVESTIGD UUR IS
                        if (mandag.Status)
                        {
                            totalHours   += mandag.Uren;
                            totalMinutes += mandag.Minuten;


                            ////long lnMandagTicks = (mandag.Eindtijd.Ticks - mandag.Begintijd.Ticks);
                            ////totalTicks += lnMandagTicks;
                            ////TimeSpan tsMandag = TimeSpan.FromTicks(lnMandagTicks);

                            //MDRpersoon persoon = dbo.GetContact(mandag.Vakman.ContactIdOrigineel, true);

                            //if (persoon != null)
                            //{
                            //    strTooltip += "(" + ((int)Math.Ceiling(tsMandag.TotalHours)).ToString() + "u) " + (persoon.voornaam + " " + persoon.tussenvoegsel + " " + persoon.achternaam).ToStringTrimmed();
                            //    strTooltip.AddText("(" + mandag.Uren.ToString() + ":" + (mandag.Minuten < 10 ? "0" : "") + mandag.Minuten.ToString() + ") " + (persoon.voornaam + " " + persoon.tussenvoegsel + " " + persoon.achternaam).ToStringTrimmed());
                            //}


                            ////
                            //bool blnToonAanvraagtext = listAanvragen.Any(m => m.Begintijd < mandag.Eindtijd && m.Eindtijd > mandag.Begintijd && m.VakmanId == mandag.VakmanId && !m.Geannulleerd);

                            //if (blnToonAanvraagtext)
                            //{

                            //    strTooltipAanvraag.AddText("Aanvraag " + (persoon.voornaam + " " + persoon.tussenvoegsel + " " + persoon.achternaam).ToStringTrimmed(), true);


                            //    // OF we hebben te maken met een externe aanvraag voor deze mandag
                            //    foreach (Mandagen aanvraag in listAanvragen.Where(m => m.Begintijd < mandag.Eindtijd && m.Eindtijd > mandag.Begintijd && m.VakmanId == mandag.VakmanId))
                            //    {

                            //        if (aanvraag != null && !aanvraag.Geannulleerd)
                            //        {
                            //            MDRpersoon persoonAanvraag = dbo.GetContact(aanvraag.Vakman.ContactIdOrigineel, true);

                            //            if (persoonAanvraag != null)
                            //            {
                            //                strTooltipAanvraag.AddText("(" + dbtools.GetIngeplandeTijd(objProject, aanvraag.Vakman, dbtools.GetHeleDag(aanvraag.Begintijd)) + ") \u2212 (" + aanvraag.Uren.ToString() + ":" + (aanvraag.Minuten < 10 ? "0" : "") + aanvraag.Minuten.ToString() + ") " + objProject.Naam + " (Project " + objProject.ProjectNr.ToString() + ")", true);
                            //                strTooltipAanvraag.AddText("(" + dbtools.GetIngeplandeTijd(aanvraag.Project, aanvraag.Vakman, dbtools.GetHeleDag(aanvraag.Begintijd)) + ") + (" + aanvraag.Uren.ToString() + ":" + (aanvraag.Minuten < 10 ? "0" : "") + aanvraag.Minuten.ToString() + ") " + aanvraag.Project.Naam + " (Project " + aanvraag.Project.ProjectNr.ToString() + ")", true);
                            //            }
                            //        }
                            //    }


                            //}
                        }
                        //else
                        //{
                        //    // OF dit is zelf de aanvraag
                        //    MDRpersoon persoon = dbo.GetContact(mandag.Vakman.ContactIdOrigineel, true);


                        //    if (persoon != null && (listAanvragen.Any(m => m.VakmanId == mandag.VakmanId) || listMandagenWaarDitDeAanvraagVanIs.Any(m => m.VakmanId == mandag.VakmanId)))
                        //    {
                        //        // dit hoeft niet dubbel te worden weergegeven als de vakman al is ingepland, of als er meerdere aanvragen lopen
                        //        if (previousVakmanId != mandag.VakmanId)
                        //        {
                        //            // INDIEN ER EEN AANVRAAG IS, DEZE PERSOON OOK WEERGEVEN ALS ZOGENAAMD 0:00 INGEVULD OP HET PROJECT
                        //            // strTooltip += "(" + ((int)Math.Ceiling(tsMandag.TotalHours)).ToString() + "u) " + (persoon.voornaam + " " + persoon.tussenvoegsel + " " + persoon.achternaam).ToStringTrimmed();
                        //            // strTooltip.AddText("(" + dbtools.GetIngeplandeTijd(mandag.Project, mandag.Vakman, dbtools.GetHeleDag(mandag.Begintijd)) + ")" + (persoon.voornaam + " " + persoon.tussenvoegsel + " " + persoon.achternaam).ToStringTrimmed());
                        //        }

                        //        if (previousVakmanId == mandag.VakmanId)
                        //        {
                        //            // dezelfde vakman, alleen de minnen toevoegen
                        //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagMinOnly(listMandagenWaarDitDeAanvraagVanIs, mandag, true));
                        //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(mandag.Vakman, mandag.Project, dbtools.GetHeleDag(mandag.Begintijd), true, true));
                        //        }
                        //        else
                        //        {
                        //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraag(listMandagenWaarDitDeAanvraagVanIs, mandag, true));
                        //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(mandag.Vakman, mandag.Project, dbtools.GetHeleDag(mandag.Begintijd)));
                        //        }
                        //        //strTooltipAanvraag += Environment.NewLine;
                        //        //strTooltipAanvraag += Environment.NewLine;
                        //        //strTooltipAanvraag += "Aanvraag test2" + (persoon.voornaam + " " + persoon.tussenvoegsel + " " + persoon.achternaam).ToStringTrimmed();

                        //        //if (mandag.Geannulleerd)
                        //        //{
                        //        //    strTooltipAanvraag += " AFGEWEZEN";
                        //        //}

                        //        //// plustext is cumulatief
                        //        //strTooltipAanvraag += Environment.NewLine;
                        //        //strTooltipAanvraag += dbtools.GetIngeplandeTijd(mandag.Project, mandag.Vakman, dbtools.GetHeleDag(mandag.Begintijd)) + " + (" + dbtools.GetAangevraagdeTijd(mandag.Project, mandag.Vakman, dbtools.GetHeleDag(mandag.Begintijd)) + ") " + mandag.Project.Naam + " (Project " + mandag.Project.ProjectNr.ToString() + ")";

                        //        //// minus text is een opsomming van alle mandagen die beinvloed worden door de aanvraag
                        //        //foreach (Mandagen origineel in listMandagenWaarDitDeAanvraagVanIs.Where(m => m.Begintijd <= mandag.Eindtijd && m.Eindtijd >= mandag.Begintijd && m.VakmanId == mandag.VakmanId))
                        //        //{

                        //        //    Project objProject2 = origineel.Project;
                        //        //    // minustext
                        //        //    strTooltipAanvraag += Environment.NewLine;
                        //        //    strTooltipAanvraag += dbtools.GetIngeplandeTijd(objProject2, mandag.Vakman, dbtools.GetHeleDag(mandag.Begintijd)) + " \u2212 (" + mandag.Uren.ToString() + ":" + (mandag.Minuten < 10 ? "0" : "") + mandag.Minuten.ToString() + ") " + objProject2.Naam + " (Project " + objProject2.ProjectNr.ToString() + ")";
                        //        //}
                        //    }

                        //    previousVakmanId = mandag.VakmanId;
                        //}

                        // zwart randje tonen als: een van de vakmannen een aanvraag is,
                        // of er voor een van de vakmannen een aanvraag is gedaan die invloed heeft op dit project
                        // en nog niet geannuleerd is als die door iemand anders is gedaan, of wel geannuleerd als die door mij is gedaan
                        //
                        // DUS:
                        // als de betreffende mandag een aanvraag is
                        // OF er een aanvraag is die deze overlapt qua tijden, voor een ander project is, maar voor dezelfde vakman, en nog niet geannulleerd dus lopende aanvraag
                        //if ((!mandag.Status && !mandag.Geannulleerd) || listAanvragen.Any(a => a.Eindtijd > mandag.Begintijd && a.Begintijd < mandag.Eindtijd && a.ProjectId != mandag.ProjectId && a.VakmanId == mandag.VakmanId && !a.Geannulleerd))
                        if ((!mandag.Status) || listAanvragen.Any(a => !a.Geannulleerd && a.Eindtijd > mandag.Begintijd && a.Begintijd < mandag.Eindtijd && a.ProjectId != mandag.ProjectId && a.VakmanId == mandag.VakmanId))
                        {
                            hasAanvraag = true;
                        }
                    }
                    // END TODO: WEER AANZETTEN, CACHE TEST

                    //foreach (Mandagen mandag in listAanvragen)
                    //{

                    //    // OF dit is het originele project, waarop is aangevraagd

                    //    // bereken de som der uren
                    //    //ALLEEN ALS HET EEN BEVESTIGD UUR IS
                    //    if (!mandag.Status)
                    //    {
                    //        MDRpersoon persoon = dbo.GetContact(mandag.Vakman.ContactIdOrigineel, true);

                    //        Mandagen temp = listMandagenWaarDitDeAanvraagVanIs.FirstOrDefault(m => m.Begintijd <= mandag.Eindtijd && m.Eindtijd >= mandag.Begintijd && m.VakmanId == mandag.VakmanId);

                    //        if (persoon != null && temp != null && temp.VakmanId == mandag.VakmanId && objProject.ProjectId == temp.ProjectId)
                    //        {
                    //            strTooltipAanvraag += Environment.NewLine;
                    //            strTooltipAanvraag += Environment.NewLine;
                    //            strTooltipAanvraag += "Aanvraag " + (persoon.voornaam + " " + persoon.tussenvoegsel + " " + persoon.achternaam).ToStringTrimmed();
                    //            if (mandag.Geannulleerd)
                    //            {
                    //                strTooltipAanvraag += " AFGEWEZEN";
                    //            }
                    //            strTooltipAanvraag += Environment.NewLine;
                    //            strTooltipAanvraag += "\u2212 (" + mandag.Uren.ToString() + ":" + (mandag.Minuten < 10 ? "0" : "") + mandag.Minuten.ToString() + ") " + objProject.Naam + " (Project " + objProject.ProjectNr.ToString() + ")";
                    //            strTooltipAanvraag += Environment.NewLine;
                    //            strTooltipAanvraag += "+ (" + mandag.Uren.ToString() + ":" + (mandag.Minuten < 10 ? "0" : "") + mandag.Minuten.ToString() + ") " + mandag.Project.Naam + " (Project " + mandag.Project.ProjectNr.ToString() + ")";
                    //        }
                    //    }
                    //}

                    bool hasUren = totalHours > 0 || totalMinutes > 0;
                    //strTooltip.AddText(objProject.Naam + " (Project " + objProject.ProjectNr.ToString() + ")");
                    strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(new Vakman(), objProject, dbtools.GetHeleDag(dtDag.AddDays(i)), true, true, listMandagenTotal.Where(m => m.Begintijd >= dtDag.AddDays(i) && m.Eindtijd <= dtDag.AddDays(i + 1)).ToList(), hasAanvraag, hasUren));



                    //TimeSpan totalTimespan = TimeSpan.FromTicks(totalTicks);
                    Button lblDag = new Button();
                    lblDag.Width    = 24;
                    lblDag.Height   = 17;
                    lblDag.Margin   = new Thickness(2, 2, 2, 2);
                    lblDag.FontSize = 11;
                    lblDag.HorizontalContentAlignment = System.Windows.HorizontalAlignment.Right;

                    lblDag.Padding = new Thickness(0, -1, 2, 0);

                    ToolTipService.SetShowDuration(lblDag, 20000);


                    strTooltip.Children.Add(strTooltipAanvraag);
                    lblDag.ToolTip = strTooltip;

                    // test
                    //lblDag.ToolTip = objProject.Naam + " (Project " + objProject.ProjectNr.ToString() + ")" + strTooltip + strTooltipAanvraag;


                    int totalHoursRounded = 0;
                    //totalHoursRounded = (int)Math.Ceiling(totalTimespan.TotalHours);
                    int minutesRemainder = totalMinutes % 60;

                    totalHoursRounded = totalHours + (int)((totalMinutes - minutesRemainder) / 60) + (minutesRemainder == 0 ? 0 : 1);

                    //if (totalTimespan.Minutes > 0)
                    //{
                    //    totalHoursRounded ++;
                    //}

                    lblDag.Content = totalHoursRounded == 0 ? "" : totalHoursRounded.ToString();
                    bool blnUseInvisibleColorsAKASwitchColors = false;

                    // 0 niet tonen
                    if (totalHoursRounded == 0 && !hasAanvraag)
                    {
                        blnUseInvisibleColorsAKASwitchColors = true;
                        //lblDag.Visibility = System.Windows.Visibility.Hidden;
                    }
                    else
                    {
                        HasHours = true;
                    }

                    List <object> tag = new List <object>();
                    tag.Add(objProject);
                    tag.Add(dtDag.AddDays(i));

                    lblDag.Tag = tag;

                    // standaard kleuren van de border
                    if (weeknummer % 2 == 0)
                    {
                        if (blnUseInvisibleColorsAKASwitchColors)
                        {
                            // use this color to make it invisible (same color as background)
                            lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFC5D9F1"));
                        }
                        else
                        {
                            // original color
                            lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
                        }
                    }
                    else
                    {
                        if (blnUseInvisibleColorsAKASwitchColors)
                        {
                            // use this color to make it invisible (same color as background)
                            lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
                        }
                        else
                        {
                            lblDag.BorderBrush = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFC5D9F1"));
                        }
                    }

                    // zwarte rand maken bij een aanvraag
                    if (hasAanvraag)
                    {
                        double[]  dimensions      = new double[] { 2, 2 };
                        Rectangle dottedRectangle = new Rectangle();
                        dottedRectangle.Stroke = blnOwner ? new SolidColorBrush(Colors.Black) : new SolidColorBrush(Colors.Gray);
                        dottedRectangle.SnapsToDevicePixels = true;
                        dottedRectangle.Height          = 2;
                        dottedRectangle.StrokeThickness = 2;
                        dottedRectangle.Height          = 24;
                        dottedRectangle.Width           = 45;
                        dottedRectangle.StrokeDashArray = new DoubleCollection(dimensions);

                        VisualBrush vb = new VisualBrush();
                        vb.Visual = dottedRectangle;

                        lblDag.BorderBrush = vb; // new SolidColorBrush(Colors.Black); // (SolidColorBrush)(new BrushConverter().ConvertFrom("#00000000"));
                    }

                    // standaard achtergrondkleuren van de dagen
                    if (weeknummer % 2 == 0)
                    {
                        lblDag.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFC5D9F1"));
                    }
                    else
                    {
                        lblDag.Background = (SolidColorBrush)(new BrushConverter().ConvertFrom("#FFFFFFFF"));
                    }


                    lblDag.BorderThickness = new Thickness(2);

                    lblDag.Click += lblDag_Click;
                    spUren.Children.Add(lblDag);
                }
            }
        }
예제 #5
0
        protected virtual void OnPropertyChanged(string propertyName)
        {
            PropertyChangedEventHandler handler = PropertyChanged;

            if (handler != null)
            {
                handler(this, new PropertyChangedEventArgs(propertyName));
            }

            switch (propertyName)
            {
            case "Vakman":

                try
                {
                    StackPanel strTooltip         = new StackPanel();
                    StackPanel strTooltipAanvraag = new StackPanel();

                    btnHeader.Style = this.FindResource("LinkButton") as Style;
                    //btnHeader.Style = Tools.FindVisualParent<PageContainer>(this).FindResource("LinkButton") as Style;
                    dbOriginalRepository dbRepOriginal = new dbOriginalRepository();
                    dbRepository         dbrep         = new dbRepository();
                    DbTools dbtools = new DbTools();

                    MDRpersoon p = dbRepOriginal.GetContact(vakman.ContactIdOrigineel);


                    // TOOLTIP
                    // TOOLTIP
                    // TOOLTIP
                    DateTime dtdag     = ApplicationState.GetValue <DateTime>(ApplicationVariables.dtSelectedDay);
                    Project  project   = dbrep.GetProject(ApplicationState.GetValue <int>(ApplicationVariables.intProjectId));
                    Vakman   objVakman = dbrep.GetVakman(vakman.VakmanId);
                    strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(objVakman, project, dtdag, false, false));



                    if (p != null)
                    {
                        btnHeader.Content = (p.voornaam + " " + (p.tussenvoegsel == null ? "" : p.tussenvoegsel) + " " + p.achternaam).ToStringTrimmed();
                        bool isBold = vakman.VakmanId == ApplicationState.GetValue <int>(ApplicationVariables.intVakmanId);
                        //strTooltip.AddText((p.voornaam + " " + (p.tussenvoegsel == null ? "" : p.tussenvoegsel) + " " + p.achternaam).ToStringTrimmed(), isBold);
                    }

                    //List<Mandagen> listMandagenTotal = dbrep.GetMandagen(vakman.VakmanId, ApplicationState.GetValue<DateTime>(ApplicationVariables.dtSelectedDay)).Where(m => m.Begintijd != m.Eindtijd).OrderBy(m => m.Status).ToList();


                    //int previousVakmanId = -1;
                    //foreach (Mandagen mandag in listMandagenTotal)
                    //{

                    //    // als in deze pool van mandagen een aanvraag zit:
                    //    // vandaag, ander project, geen projectleider, wel bevestigd (dus waar dit de aanvraag van is)
                    //    List<Mandagen> listMandagenWaarDitDeAanvraagVanIs = listMandagenTotal.Where(m => m.ProjectId != mandag.ProjectId && m.ProjectleiderId != ApplicationState.GetValue<Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId && m.ProjectId != mandag.ProjectId && m.Begintijd >= ApplicationState.GetValue<DateTime>(ApplicationVariables.dtSelectedDay) && m.Eindtijd <= ApplicationState.GetValue<DateTime>(ApplicationVariables.dtSelectedDay).AddDays(1) && m.Status).ToList();

                    //    if (mandag.Status)
                    //    {
                    //        bool isBold = (ApplicationState.GetValue<int>(ApplicationVariables.intProjectId) == mandag.ProjectId);
                    //        strTooltip.AddText("(" + ToonTijd(mandag) + ")" + " " + dbRepOriginal.GetProject((int)mandag.Project.ProjectNr).naam_project, isBold);
                    //    }

                    //    if (!mandag.Status)
                    //    {


                    //        bool reverse = false;
                    //        if (ApplicationState.GetValue<int>(ApplicationVariables.intProjectId) == mandag.ProjectId)
                    //        {
                    //            reverse = true;
                    //        }
                    //        if (previousVakmanId == mandag.VakmanId)
                    //        {
                    //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagMinOnly(listMandagenWaarDitDeAanvraagVanIs, mandag, reverse));
                    //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(mandag.Vakman, mandag.Project, dbtools.GetHeleDag(mandag.Begintijd)));
                    //        }
                    //        else
                    //        {
                    //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraag(listMandagenWaarDitDeAanvraagVanIs, mandag, reverse));
                    //            //strTooltipAanvraag.Children.Add(dbtools.AddTooltipAanvraagAll(mandag.Vakman, mandag.Project, dbtools.GetHeleDag(mandag.Begintijd)));
                    //        }
                    //    }

                    //    previousVakmanId = mandag.VakmanId;

                    //}

                    ToolTipService.SetShowDuration(btnHeader, 20000);
                    strTooltip.Children.Add(strTooltipAanvraag);
                    btnHeader.ToolTip = strTooltip;

                    if (ApplicationState.GetValue <int>(ApplicationVariables.intVakmanId) == vakman.VakmanId)
                    {
                        // make bold
                        //btnHeader.FontWeight = FontWeights.ExtraBold;
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }

                break;

            default:
                break;
            }
        }