public void AddDeltagare(DeltagareViewModel viewModel)
        {
            int index = 0;

            try
            {
                var lastDeltagare = deltagareDb.GetAllDeltagarModels().LastOrDefault();
                index = lastDeltagare.IdAccess + 1;
            }
            catch
            {
            }
            var model = new DeltagareModel
            {
                IdAccess     = index,
                DeltagarNamn = viewModel.DeltagarNamn,
                MatId        = viewModel.MatId,
                Måndag       = viewModel.Måndag.ToString(),
                Tisdag       = viewModel.Tisdag.ToString(),
                Onsdag       = viewModel.Onsdag.ToString(),
                Torsdag      = viewModel.Torsdag.ToString(),
                Fredag       = viewModel.Fredag.ToString(),
                IsActive     = true
            };

            deltagareDb.AddDeltagare(model);
        }
Example #2
0
 public IActionResult AddDeltagare(DeltagareViewModel viewModel)
 {
     if (User.Identity.Name != "admin" && User.Identity.Name != "piahag")
     {
         return(RedirectToAction("index", "inventarie"));
     }
     if (viewModel.DeltagarNamn == null)
     {
         return(Redirect("../Närvaro/AddDeltagare?message=InkorrektInmatning"));
     }
     deltagarLogic.AddDeltagare(viewModel);
     deltagarList = deltagarLogic.GetAllDeltagare();
     return(RedirectToAction("index"));
 }
Example #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);
        }
Example #4
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);
        }
Example #5
0
        public IActionResult EditDeltagare(DeltagareViewModel viewModel)
        {
            if (User.Identity.Name != "admin" && User.Identity.Name != "piahag")
            {
                return(RedirectToAction("index", "inventarie"));
            }
            var ogDeltagare = deltagarList.First(x => x.IdAcesss == viewModel.IdAcesss);

            viewModel.Id = ogDeltagare.Id;
            if (viewModel.DeltagarNamn == null)
            {
                return(Redirect("../Närvaro/EditDeltagare?id=" + viewModel.IdAcesss.ToString() + "&message=InkorrektInmatning"));
            }
            deltagarLogic.UpdateDeltagare(viewModel);
            deltagarList = deltagarLogic.GetAllDeltagare();
            return(RedirectToAction("index"));
        }
        public void UpdateDeltagare(DeltagareViewModel viewModel)
        {
            var model = new DeltagareModel
            {
                IdAccess     = viewModel.IdAcesss,
                DeltagarNamn = viewModel.DeltagarNamn,
                MatId        = viewModel.MatId,
                Fredag       = viewModel.Fredag.ToString(),
                Torsdag      = viewModel.Torsdag.ToString(),
                Onsdag       = viewModel.Onsdag.ToString(),
                Tisdag       = viewModel.Tisdag.ToString(),
                Måndag       = viewModel.Måndag.ToString(),
                Id           = viewModel.Id,
                IsActive     = viewModel.IsActive
            };

            deltagareDb.UpdateDeltagare(model);
        }
        public DeltagareViewModel GetDeltagare(ObjectId Id)
        {
            var model     = deltagareDb.GetDeltagare(Id);
            var viewModel = new DeltagareViewModel
            {
                IdAcesss     = model.IdAccess,
                DeltagarNamn = model.DeltagarNamn,
                MatId        = model.MatId,
                Fredag       = HelperConvertLogic.GetWorkDayFromString(model.Fredag),
                Torsdag      = HelperConvertLogic.GetWorkDayFromString(model.Fredag),
                Onsdag       = HelperConvertLogic.GetWorkDayFromString(model.Fredag),
                Tisdag       = HelperConvertLogic.GetWorkDayFromString(model.Fredag),
                Måndag       = HelperConvertLogic.GetWorkDayFromString(model.Fredag),
                Id           = model.Id,
                IsActive     = model.IsActive
            };

            return(viewModel);
        }
        public List <DeltagareViewModel> GetAllDeltagare()
        {
            var returningList = new List <DeltagareViewModel>();
            var models        = deltagareDb.GetAllDeltagarModels();

            foreach (var model in models)
            {
                var viewModel = new DeltagareViewModel
                {
                    IdAcesss     = model.IdAccess,
                    DeltagarNamn = model.DeltagarNamn,
                    MatId        = model.MatId,
                    Fredag       = HelperConvertLogic.GetWorkDayFromString(model.Fredag),
                    Torsdag      = HelperConvertLogic.GetWorkDayFromString(model.Torsdag),
                    Onsdag       = HelperConvertLogic.GetWorkDayFromString(model.Onsdag),
                    Tisdag       = HelperConvertLogic.GetWorkDayFromString(model.Tisdag),
                    Måndag       = HelperConvertLogic.GetWorkDayFromString(model.Måndag),
                    Id           = model.Id,
                    IsActive     = model.IsActive
                };
                returningList.Add(viewModel);
            }
            return(returningList);
        }
        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);
        }
        public ViewModelMonthAttendence GetAttendenceForDeltagareForMonth(int monthsToLookBack, DateTime dateTime, DeltagareViewModel deltagarn)
        {
            var model = new ViewModelMonthAttendence
            {
                deltagaren = deltagarn,
                MånadNamn  = dateTime.ToString("yyyy-MM")
            };

            var attendenceData  = närvaroLogic.GetAttendenceFörDeltagare(deltagarn.Id).Where(x => x.DateConcerning.Month == dateTime.Month && x.DateConcerning.Year == dateTime.Year).ToList();
            var attendenceModel = GetAttendence(new ViewModelDeltagareAttendence(), attendenceData, deltagarn);

            model.AttendendedDays      = attendenceModel.AttendendedDays;
            model.ExpectedDays         = attendenceModel.ExpectedDays;
            model.Frånvarande          = attendenceModel.Frånvarande;
            model.Halvdagar            = attendenceModel.Halvdagar;
            model.Heldagar             = attendenceModel.Heldagar;
            model.PercentageAttendence = attendenceModel.PercentageAttendence;
            model.SjukDays             = attendenceModel.SjukDays;
            return(model);
        }
 ViewModelMonthAttendence IDeltagarViewLogic.GetAttendenceForDeltagareForMonth(int monthsToLookBack, DateTime dateTime, DeltagareViewModel deltagarn)
 {
     throw new NotImplementedException();
 }
Example #12
0
        public List <AttendenceViewModel> GetAttendenceForDate(DateTime date, DeltagareViewModel deltagarModel)
        {
            if (date.DayOfWeek == DayOfWeek.Tuesday)
            {
                date = date.AddDays(-1);
            }
            else if (date.DayOfWeek == DayOfWeek.Wednesday)
            {
                date = date.AddDays(-2);
            }
            else if (date.DayOfWeek == DayOfWeek.Thursday)
            {
                date = date.AddDays(-3);
            }
            else if (date.DayOfWeek == DayOfWeek.Friday)
            {
                date = date.AddDays(-4);
            }
            else if (date.DayOfWeek == DayOfWeek.Saturday)
            {
                date = date.AddDays(-5);
            }
            else if (date.DayOfWeek == DayOfWeek.Sunday)
            {
                date = date.AddDays(-6);
            }
            var returningList    = new List <AttendenceViewModel>();
            var deltagarnaActive = deltagareDb.GetAllDeltagarModels().Where(x => x.DeltagarNamn == deltagarModel.DeltagarNamn).ToList();

            foreach (var deltagare in deltagarnaActive)
            {
                var attendences = närvaroDb.GetAttendenceForDate(date).Where(x => x.DeltagarIdInQuestion == deltagare.Id).ToList();
                if (attendences.Count == 0)
                {
                    var model = new AttendenceModel
                    {
                        DateConcerning       = date,
                        DeltagarIdInQuestion = deltagare.Id,
                        ExpectedFredag       = deltagare.Fredag,
                        ExpectedTorsdag      = deltagare.Torsdag,
                        ExpectedOnsdag       = deltagare.Onsdag,
                        ExpectedTisdag       = deltagare.Tisdag,
                        ExpectedMåndag       = deltagare.Måndag,
                        Fredag  = AttendenceOption.Frånvarande.ToString(),
                        Torsdag = AttendenceOption.Frånvarande.ToString(),
                        Onsdag  = AttendenceOption.Frånvarande.ToString(),
                        Tisdag  = AttendenceOption.Frånvarande.ToString(),
                        Måndag  = AttendenceOption.Frånvarande.ToString()
                    };
                    närvaroDb.AddAttendence(model);
                    model = närvaroDb.GetAttendenceForDate(date).LastOrDefault(x => x.DeltagarIdInQuestion == deltagare.Id);
                    var viewModel = new AttendenceViewModel
                    {
                        DateConcerning       = date,
                        DeltagarIdInQuestion = deltagare.Id,
                        DeltagarNamn         = deltagareDb.GetDeltagare(model.DeltagarIdInQuestion).DeltagarNamn,
                        ExpectedFredag       = HelperConvertLogic.GetWorkDayFromString(deltagare.Fredag),
                        ExpectedTorsdag      = HelperConvertLogic.GetWorkDayFromString(deltagare.Torsdag),
                        ExpectedOnsdag       = HelperConvertLogic.GetWorkDayFromString(deltagare.Onsdag),
                        ExpectedTisdag       = HelperConvertLogic.GetWorkDayFromString(deltagare.Tisdag),
                        ExpectedMåndag       = HelperConvertLogic.GetWorkDayFromString(deltagare.Måndag),
                        Fredag  = AttendenceOption.Frånvarande,
                        Torsdag = AttendenceOption.Frånvarande,
                        Onsdag  = AttendenceOption.Frånvarande,
                        Tisdag  = AttendenceOption.Frånvarande,
                        Måndag  = AttendenceOption.Frånvarande,
                        Id      = model.Id
                    };
                    returningList.Add(viewModel);
                }
                else
                {
                    var model     = attendences.FirstOrDefault(x => x.DeltagarIdInQuestion == deltagare.Id);
                    var viewModel = new AttendenceViewModel
                    {
                        Id                   = model.Id,
                        DateConcerning       = date,
                        DeltagarIdInQuestion = deltagare.Id,
                        DeltagarNamn         = deltagareDb.GetDeltagare(model.DeltagarIdInQuestion).DeltagarNamn,
                        ExpectedFredag       = HelperConvertLogic.GetWorkDayFromString(deltagare.Fredag),
                        ExpectedTorsdag      = HelperConvertLogic.GetWorkDayFromString(deltagare.Torsdag),
                        ExpectedOnsdag       = HelperConvertLogic.GetWorkDayFromString(deltagare.Onsdag),
                        ExpectedTisdag       = HelperConvertLogic.GetWorkDayFromString(deltagare.Tisdag),
                        ExpectedMåndag       = HelperConvertLogic.GetWorkDayFromString(deltagare.Måndag),
                        Fredag               = HelperConvertLogic.GetAttendenceOptionFromString(model.Fredag),
                        Torsdag              = HelperConvertLogic.GetAttendenceOptionFromString(model.Torsdag),
                        Onsdag               = HelperConvertLogic.GetAttendenceOptionFromString(model.Onsdag),
                        Tisdag               = HelperConvertLogic.GetAttendenceOptionFromString(model.Tisdag),
                        Måndag               = HelperConvertLogic.GetAttendenceOptionFromString(model.Måndag)
                    };
                    returningList.Add(viewModel);
                }
            }
            return(returningList);
        }