public ViewModelDeltagareAttendence GetDeltagareViewData(ObjectId UserId)
        {
            var deltagarn      = deltagarLogic.GetDeltagare(UserId);
            var attendenceData = närvaroLogic.GetAttendenceFörDeltagare(UserId);
            var model          = new ViewModelDeltagareAttendence
            {
                Deltagarn      = deltagarn,
                AttendenceData = attendenceData
            };

            model = GetAttendence(model, attendenceData, deltagarn);

            return(model);
        }
        private ViewModelDeltagareAttendence GetAttendence(ViewModelDeltagareAttendence model, List <AttendenceViewModel> attendenceData, DeltagareViewModel deltagarn)
        {
            int expectedAttendence = 0;
            int actualAttendence   = 0;
            int halvdaysAttended   = 0;
            int heldaysAttended    = 0;
            int sjukDays           = 0;
            int ledigDays          = 0;
            int frånvarandeDagar   = 0;

            foreach (var data in attendenceData)
            {
                if (data.ExpectedMåndag != Models.WorkDay._)
                {
                    expectedAttendence++;
                }
                if (data.ExpectedTisdag != Models.WorkDay._)
                {
                    expectedAttendence++;
                }
                if (data.ExpectedOnsdag != Models.WorkDay._)
                {
                    expectedAttendence++;
                }
                if (data.ExpectedTorsdag != Models.WorkDay._)
                {
                    expectedAttendence++;
                }
                if (data.ExpectedFredag != Models.WorkDay._)
                {
                    expectedAttendence++;
                }

                if (data.ExpectedMåndag == Models.WorkDay.Heldag)
                {
                    if (data.Måndag == Models.Attendence.AttendenceOption.Heldag ||
                        data.Måndag == Models.Attendence.AttendenceOption.HeldagMat)
                    {
                        actualAttendence++;
                        heldaysAttended++;
                    }
                    else if (data.Måndag == Models.Attendence.AttendenceOption.Halvdag ||
                             data.Måndag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Måndag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Måndag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
                else if (data.ExpectedMåndag == Models.WorkDay.Halvdag)
                {
                    if (data.Måndag == Models.Attendence.AttendenceOption.Halvdag ||
                        data.Måndag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        actualAttendence++;
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Måndag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Måndag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
                if (data.ExpectedTisdag == Models.WorkDay.Heldag)
                {
                    if (data.Tisdag == Models.Attendence.AttendenceOption.Heldag ||
                        data.Tisdag == Models.Attendence.AttendenceOption.HeldagMat)
                    {
                        actualAttendence++;
                        heldaysAttended++;
                    }
                    else if (data.Tisdag == Models.Attendence.AttendenceOption.Halvdag ||
                             data.Tisdag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Tisdag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Tisdag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
                else if (data.ExpectedTisdag == Models.WorkDay.Halvdag)
                {
                    if (data.Tisdag == Models.Attendence.AttendenceOption.Halvdag ||
                        data.Tisdag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        actualAttendence++;
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Tisdag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Tisdag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
                if (data.ExpectedOnsdag == Models.WorkDay.Heldag)
                {
                    if (data.Onsdag == Models.Attendence.AttendenceOption.Heldag ||
                        data.Onsdag == Models.Attendence.AttendenceOption.HeldagMat)
                    {
                        actualAttendence++;
                        heldaysAttended++;
                    }
                    else if (data.Onsdag == Models.Attendence.AttendenceOption.Halvdag ||
                             data.Onsdag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Onsdag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Onsdag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
                else if (data.ExpectedOnsdag == Models.WorkDay.Halvdag)
                {
                    if (data.Onsdag == Models.Attendence.AttendenceOption.Halvdag ||
                        data.Onsdag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        actualAttendence++;
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Onsdag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Onsdag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
                if (data.ExpectedTorsdag == Models.WorkDay.Heldag)
                {
                    if (data.Torsdag == Models.Attendence.AttendenceOption.Heldag ||
                        data.Torsdag == Models.Attendence.AttendenceOption.HeldagMat)
                    {
                        actualAttendence++;
                        heldaysAttended++;
                    }
                    else if (data.Torsdag == Models.Attendence.AttendenceOption.Halvdag ||
                             data.Torsdag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Torsdag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Torsdag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
                else if (data.ExpectedTorsdag == Models.WorkDay.Halvdag)
                {
                    if (data.Torsdag == Models.Attendence.AttendenceOption.Halvdag ||
                        data.Torsdag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        actualAttendence++;
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Torsdag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Torsdag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
                if (data.ExpectedFredag == Models.WorkDay.Heldag)
                {
                    if (data.Fredag == Models.Attendence.AttendenceOption.Heldag ||
                        data.Fredag == Models.Attendence.AttendenceOption.HeldagMat)
                    {
                        actualAttendence++;
                        heldaysAttended++;
                    }
                    else if (data.Fredag == Models.Attendence.AttendenceOption.Halvdag ||
                             data.Fredag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Fredag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Fredag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
                else if (data.ExpectedFredag == Models.WorkDay.Halvdag)
                {
                    if (data.Fredag == Models.Attendence.AttendenceOption.Halvdag ||
                        data.Fredag == Models.Attendence.AttendenceOption.HalvdagMat)
                    {
                        actualAttendence++;
                        halvdaysAttended++;
                    }
                    else
                    {
                        if (data.Fredag == Models.Attendence.AttendenceOption.Sjuk)
                        {
                            sjukDays++;
                        }
                        else if (data.Fredag == Models.Attendence.AttendenceOption.Ledig)
                        {
                            ledigDays++;
                        }
                        else
                        {
                            frånvarandeDagar++;
                        }
                    }
                }
            }
            model.AttendendedDays = actualAttendence;
            model.ExpectedDays    = expectedAttendence;
            model.SjukDays        = sjukDays;
            model.LedigDays       = ledigDays;
            model.Frånvarande     = frånvarandeDagar;
            model.Heldagar        = heldaysAttended;
            model.Halvdagar       = halvdaysAttended;
            actualAttendence      = actualAttendence * 100;
            int actualAddedAttendence = 0;

            try
            {
                actualAddedAttendence = (actualAttendence / expectedAttendence);
            }
            catch
            {
            }
            model.PercentageAttendence = actualAddedAttendence;
            return(model);
        }