Exemple #1
0
        public void A1TestAddDeltagare()
        {
            var deltagarVm = new DeltagareViewModel
            {
                DeltagarNamn = deltagarNamn,
                Måndag       = BI.Models.WorkDay.Heldag,
                Tisdag       = BI.Models.WorkDay.Heldag,
                Onsdag       = BI.Models.WorkDay.Heldag,
                Torsdag      = BI.Models.WorkDay.Heldag,
                Fredag       = BI.Models.WorkDay.Heldag,
                IsActive     = true,
                MatId        = "1231532531231"
            };

            deltagareVMLogic.AddDeltagare(deltagarVm);
            Assert.AreEqual(deltagarNamn, deltagareVMLogic.GetAllDeltagare().FirstOrDefault(x => x.DeltagarNamn == deltagarNamn).DeltagarNamn);
        }
        public List <ViewModelDeltagareAttendence> GetAllDeltagareViewData()
        {
            var returningList = new List <ViewModelDeltagareAttendence>();
            var deltagare     = deltagarLogic.GetAllDeltagare();

            foreach (var deltagarn in deltagare)
            {
                returningList.Add(GetDeltagareViewData(deltagarn.Id));
            }
            return(returningList);
        }
Exemple #3
0
        public void b5TestAddDeltagare()
        {
            deltagarNamn = "UTestUser2";
            var viewModel = new DeltagareViewModel
            {
                DeltagarNamn = deltagarNamn,
                Måndag       = WorkDay.Halvdag,
                Tisdag       = WorkDay.Halvdag,
                Onsdag       = WorkDay.Halvdag,
                Torsdag      = WorkDay.Halvdag,
                Fredag       = WorkDay.Halvdag,
                IsActive     = true
            };

            deltagareVMLogic.AddDeltagare(viewModel);
            Assert.AreEqual(1, deltagareVMLogic.GetAllDeltagare().Where(x => x.DeltagarNamn == deltagarNamn).ToList().Count);
        }
        public List <MatListaMonthViewModel> GetAttendenceForMonth(int month, int year)
        {
            var returningList = new List <MatListaMonthViewModel>();

            var attendenceData = närvaroLogic.GetAllAttendence().Where(x => x.DateConcerning.Month == month && x.DateConcerning.Year == year);
            var deltagarna     = deltagarLogic.GetAllDeltagare();

            foreach (var deltagare in deltagarna)
            {
                int beställningarAntal = 0;
                var deltagarAttendence = attendenceData.Where(x => x.DeltagarIdInQuestion == deltagare.Id).OrderBy(x => x.DateConcerning).ToList();
                if (deltagarAttendence.Count != 0)
                {
                    var firstWeekDate = deltagarAttendence.FirstOrDefault().DateConcerning;
                    var check3DaysBeforeIfSameMonth = firstWeekDate.AddDays(-3).Month;
                    if (check3DaysBeforeIfSameMonth == firstWeekDate.Month)
                    {
                        // kolla sista datumet på sista veckan månaden innan
                        var daysToCountFromFridayBackwars = 0;
                        if (firstWeekDate.AddDays(-6).Month == firstWeekDate.Month)
                        {
                            daysToCountFromFridayBackwars = 3;
                        }
                        else if (firstWeekDate.AddDays(-5).Month == firstWeekDate.Month)
                        {
                            daysToCountFromFridayBackwars = 2;
                        }
                        else if (firstWeekDate.AddDays(-4).Month == firstWeekDate.Month)
                        {
                            daysToCountFromFridayBackwars = 1;
                        }
                        var oldmonth = month - 1;
                        var oldyear  = year;
                        if (month == 1)
                        {
                            oldmonth = 12;
                            oldyear  = year - 1;
                        }
                        var attendenceForDatWeek = närvaroLogic.GetAllAttendence().Where(x => x.DateConcerning.Month == oldmonth && x.DateConcerning.Year == oldyear && x.DeltagarIdInQuestion == deltagare.Id).OrderByDescending(x => x.DateConcerning).ToList().FirstOrDefault();
                        if (attendenceForDatWeek != null)
                        {
                            if (attendenceForDatWeek.Fredag == Models.Attendence.AttendenceOption.HeldagMat ||
                                attendenceForDatWeek.Fredag == Models.Attendence.AttendenceOption.HalvdagMat ||
                                attendenceForDatWeek.Fredag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                            {
                                beställningarAntal++;
                            }
                            if (daysToCountFromFridayBackwars >= 1)
                            {
                                if (attendenceForDatWeek.Torsdag == Models.Attendence.AttendenceOption.HeldagMat ||
                                    attendenceForDatWeek.Torsdag == Models.Attendence.AttendenceOption.HalvdagMat ||
                                    attendenceForDatWeek.Torsdag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                                {
                                    beställningarAntal++;
                                }
                            }
                            if (daysToCountFromFridayBackwars >= 2)
                            {
                                if (attendenceForDatWeek.Onsdag == Models.Attendence.AttendenceOption.HeldagMat ||
                                    attendenceForDatWeek.Onsdag == Models.Attendence.AttendenceOption.HalvdagMat ||
                                    attendenceForDatWeek.Onsdag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                                {
                                    beställningarAntal++;
                                }
                            }
                            if (daysToCountFromFridayBackwars == 3)
                            {
                                if (attendenceForDatWeek.Tisdag == Models.Attendence.AttendenceOption.HeldagMat ||
                                    attendenceForDatWeek.Tisdag == Models.Attendence.AttendenceOption.HalvdagMat ||
                                    attendenceForDatWeek.Tisdag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                                {
                                    beställningarAntal++;
                                }
                            }
                        }
                    }
                }
                for (int i = 0; i < deltagarAttendence.Count; i++)
                {
                    if (i == deltagarAttendence.Count - 1)
                    {
                        var daysToCountFromMonday = 0;
                        if (deltagarAttendence[i].DateConcerning.AddDays(1).Month == deltagarAttendence[i].DateConcerning.Month)
                        {
                            daysToCountFromMonday = 1;
                        }
                        if (deltagarAttendence[i].DateConcerning.AddDays(2).Month == deltagarAttendence[i].DateConcerning.Month)
                        {
                            daysToCountFromMonday = 2;
                        }
                        if (deltagarAttendence[i].DateConcerning.AddDays(3).Month == deltagarAttendence[i].DateConcerning.Month)
                        {
                            daysToCountFromMonday = 3;
                        }
                        if (deltagarAttendence[i].DateConcerning.AddDays(4).Month == deltagarAttendence[i].DateConcerning.Month)
                        {
                            daysToCountFromMonday = 4;
                        }

                        if (daysToCountFromMonday == 4)
                        {
                            if (deltagarAttendence[i].Fredag == Models.Attendence.AttendenceOption.HeldagMat ||
                                deltagarAttendence[i].Fredag == Models.Attendence.AttendenceOption.HalvdagMat ||
                                deltagarAttendence[i].Fredag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                            {
                                beställningarAntal++;
                            }
                        }
                        if (daysToCountFromMonday >= 3)
                        {
                            if (deltagarAttendence[i].Torsdag == Models.Attendence.AttendenceOption.HeldagMat ||
                                deltagarAttendence[i].Torsdag == Models.Attendence.AttendenceOption.HalvdagMat ||
                                deltagarAttendence[i].Torsdag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                            {
                                beställningarAntal++;
                            }
                        }
                        if (daysToCountFromMonday >= 2)
                        {
                            if (deltagarAttendence[i].Onsdag == Models.Attendence.AttendenceOption.HeldagMat ||
                                deltagarAttendence[i].Onsdag == Models.Attendence.AttendenceOption.HalvdagMat ||
                                deltagarAttendence[i].Onsdag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                            {
                                beställningarAntal++;
                            }
                        }
                        if (daysToCountFromMonday >= 1)
                        {
                            if (deltagarAttendence[i].Tisdag == Models.Attendence.AttendenceOption.HeldagMat ||
                                deltagarAttendence[i].Tisdag == Models.Attendence.AttendenceOption.HalvdagMat ||
                                deltagarAttendence[i].Tisdag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                            {
                                beställningarAntal++;
                            }
                        }
                        if (deltagarAttendence[i].Måndag == Models.Attendence.AttendenceOption.HeldagMat ||
                            deltagarAttendence[i].Måndag == Models.Attendence.AttendenceOption.HalvdagMat ||
                            deltagarAttendence[i].Måndag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                        {
                            beställningarAntal++;
                        }
                    }
                    else
                    {
                        if (deltagarAttendence[i].Måndag == Models.Attendence.AttendenceOption.HeldagMat ||
                            deltagarAttendence[i].Måndag == Models.Attendence.AttendenceOption.HalvdagMat ||
                            deltagarAttendence[i].Måndag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                        {
                            beställningarAntal++;
                        }
                        if (deltagarAttendence[i].Tisdag == Models.Attendence.AttendenceOption.HeldagMat ||
                            deltagarAttendence[i].Tisdag == Models.Attendence.AttendenceOption.HalvdagMat ||
                            deltagarAttendence[i].Tisdag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                        {
                            beställningarAntal++;
                        }
                        if (deltagarAttendence[i].Onsdag == Models.Attendence.AttendenceOption.HeldagMat ||
                            deltagarAttendence[i].Onsdag == Models.Attendence.AttendenceOption.HalvdagMat ||
                            deltagarAttendence[i].Onsdag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                        {
                            beställningarAntal++;
                        }
                        if (deltagarAttendence[i].Torsdag == Models.Attendence.AttendenceOption.HeldagMat ||
                            deltagarAttendence[i].Torsdag == Models.Attendence.AttendenceOption.HalvdagMat ||
                            deltagarAttendence[i].Torsdag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                        {
                            beställningarAntal++;
                        }
                        if (deltagarAttendence[i].Fredag == Models.Attendence.AttendenceOption.HeldagMat ||
                            deltagarAttendence[i].Fredag == Models.Attendence.AttendenceOption.HalvdagMat ||
                            deltagarAttendence[i].Fredag == Models.Attendence.AttendenceOption.FrånvarandeMat)
                        {
                            beställningarAntal++;
                        }
                    }
                }
                var pris  = PrisDb.Find(x => true).FirstOrDefault().Pris;
                var model = new MatListaMonthViewModel
                {
                    Antal          = beställningarAntal,
                    DateConcerning = Convert.ToDateTime(year.ToString() + "-" + month.ToString() + "-01"),
                    MatId          = deltagare.MatId,
                    DeltagarNamn   = deltagare.DeltagarNamn,
                    PrisPerMatlåda = pris,
                    TotalKostnad   = (pris * beställningarAntal)
                };
                returningList.Add(model);
            }
            return(returningList);
        }