Beispiel #1
0
        public async Task <T> CreateTeacher <T>(TeacherInputModel inputModel)
        {
            var schoolId = int.Parse(inputModel.SchoolId);
            var school   = _schoolsRepository.All().FirstOrDefault(s => s.Id == schoolId);

            if (school != null)
            {
                var teacher = new Teacher()
                {
                    FirstName = inputModel.FirstName,
                    LastName  = inputModel.LastName,
                    School    = school,
                    UniqueId  = _idGeneratorService.GenerateTeacherId()
                };

                await _teachersRepository.AddAsync(teacher);

                await _teachersRepository.SaveChangesAsync();

                BasePersonModel baseModel = _teachersRepository.All().FirstOrDefault(t => t.UniqueId == teacher.UniqueId);

                return(AutoMapperConfig.MapperInstance.Map <T>(baseModel));
            }

            throw new ArgumentException($"Sorry, we couldn't find school with id {schoolId}");
        }
Beispiel #2
0
        public IActionResult Create()
        {
            var viewModel = new TeacherInputModel();

            viewModel.GroupsItems = this.groupsService.GetAllAsKeyValuePairs();

            return(this.View(viewModel));
        }
Beispiel #3
0
        public async Task <IActionResult> Create(TeacherInputModel input)
        {
            if (!this.ModelState.IsValid)
            {
                return(this.View(input));
            }

            await this.teachersService.AddAsync(input);

            return(this.RedirectToAction(nameof(this.Index)));
        }
Beispiel #4
0
        public async Task <IActionResult> Edit(int id, TeacherInputModel input)
        {
            var currentTeacher = this.teachersRepository.AllAsNoTracking()
                                 .FirstOrDefault(x => x.Id == id);

            var groupId = input.Group == null ? currentTeacher.NurseryGroupId
                                                        : int.Parse(input.Group);
            var teacher = new Teacher
            {
                Id             = input.Id,
                FirstName      = input.FirstName,
                LastName       = input.LastName,
                Address        = input.Address,
                IsDeleted      = currentTeacher.IsDeleted,
                DeletedOn      = currentTeacher.DeletedOn,
                CreatedOn      = currentTeacher.CreatedOn,
                ModifiedOn     = input.ModifiedOn,
                NurseryGroupId = groupId,
                DateOfBirth    = currentTeacher.DateOfBirth,
                Gender         = currentTeacher.Gender,
            };

            if (id != teacher.Id)
            {
                return(this.NotFound());
            }

            if (this.ModelState.IsValid)
            {
                try
                {
                    this.teachersRepository.Update(teacher);
                    await this.teachersRepository.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!this.TeacherExists(teacher.Id))
                    {
                        return(this.NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }

                return(this.RedirectToAction(nameof(this.Index)));
            }

            return(this.View(teacher));
        }
        public async Task AddAsync(TeacherInputModel input)
        {
            var groupId = this.groupsRepository.AllAsNoTracking()
                          .Where(x => x.Id == int.Parse(input.Group))
                          .Select(x => x.Id)
                          .FirstOrDefault();

            var teacher = new Teacher
            {
                FirstName      = input.FirstName,
                LastName       = input.LastName,
                Address        = input.Address,
                DateOfBirth    = input.DateOfBirth,
                NurseryGroupId = groupId,
            };

            await this.teachersRepository.AddAsync(teacher);

            await this.teachersRepository.SaveChangesAsync();
        }