public async Task <ActionResult> CreateAbsence([FromBody] AbsenceCreateDTO absenceDTO)
        {
            if (absenceDTO == null)
            {
                return(BadRequest(ModelState));
            }

            var absence = await _repository.CreateAbsence(absenceDTO);

            if (absence == null)
            {
                return(Conflict("An employee may only have one absence per day."));
            }

            return(CreatedAtAction(nameof(GetAbsence), new { id = absence.Id }, absence));
        }
Example #2
0
        [Authorize(Policy = "GivFraværPolicy")] //mangler implementation i visning
        public IActionResult AbsenceList(StudentListViewModel model)
        {
            List <string>  statusList  = model.StatusList.ToList();
            List <Absence> absenceList = new List <Absence>();

            // If education is selected
            if (model.Education.EducationId != 0)
            {
                Education     education = educationRepo.Educations.FirstOrDefault(e => e.EducationId == model.Education.EducationId);
                List <Course> courses   = courseRepo.CoursesByEducationAndDate(education, model.Date);

                if (!model.Edit)
                {
                    foreach (string s in statusList)
                    {
                        string[] split = s.Split(":", 2);

                        foreach (Student student in studentRepo.Students)
                        {
                            if (student.StudentId.ToString() == split[0])
                            {
                                foreach (Course course in courses)
                                {
                                    foreach (StudentCourse studentCourse in course.StudentCourses)
                                    {
                                        if (student.StudentId == studentCourse.StudentId)
                                        {
                                            Absence absence = new Absence {
                                                Student = student,
                                                Date    = model.Date,
                                                Course  = course,
                                                Status  = split[1]
                                            };
                                            absenceList.Add(absence);
                                        }
                                    }
                                }
                                break;
                            }
                        }
                    }

                    absenceRepo.CreateAbsence(absenceList);
                }
                else
                {
                    absenceList = absenceRepo.AbsencesForDateEducation(model.Education, model.Date).ToList();

                    absenceRepo.UpdateAbsence(absenceList, statusList);
                }

                // If course is selected
            }
            else if (model.Course.CourseId != 0)
            {
                if (!model.Edit)
                {
                    foreach (string s in statusList)
                    {
                        string[] split = s.Split(":", 2);

                        foreach (Student student in studentRepo.Students)
                        {
                            if (student.StudentId.ToString() == split[0])
                            {
                                Course selectedCourse = new Course();
                                foreach (Course course in courseRepo.Courses)
                                {
                                    if (course.CourseId == model.Course.CourseId)
                                    {
                                        selectedCourse = course;
                                    }
                                }

                                Absence absence = new Absence {
                                    Student = student,
                                    Date    = model.Date,
                                    Course  = selectedCourse,
                                    Status  = split[1]
                                };
                                absenceList.Add(absence);
                                break;
                            }
                        }
                    }

                    absenceRepo.CreateAbsence(absenceList);
                }
                else
                {
                    absenceList = absenceRepo.AbsencesForDateCourse(model.Course, model.Date).ToList();

                    absenceRepo.UpdateAbsence(absenceList, statusList);
                }
            }

            ViewBag.Check = false;

            return(RedirectToAction("Index", "Home"));
        }
Example #3
0
        public AbsenceModel CreateAbsence(AbsenceModel model)
        {
            var absenceCreation = _repo.CreateAbsence(model);

            return(absenceCreation);
        }