示例#1
0
        public async Task <ActionResult <StudentLabViewModel> > AddStudentLab(StudentLabInputViewModel viewModel)
        {
            if (viewModel == null)
            {
                return(BadRequest());
            }

            StudentLab createdLab = await LabService.AddLab(Mapper.Map <StudentLab>(viewModel)).ConfigureAwait(false);

            return(CreatedAtAction(nameof(AddStudentLab), new { id = createdLab.Id }, Mapper.Map <StudentLabViewModel>(createdLab)));
        }
示例#2
0
        public async Task <ActionResult <StudentLabViewModel> > GetStudentLabById(int id)
        {
            StudentLab fetchedLab = await LabService.GetById(id).ConfigureAwait(false);

            if (fetchedLab == null)
            {
                return(NotFound());
            }

            return(Ok(Mapper.Map <StudentLabViewModel>(fetchedLab)));
        }
示例#3
0
        public async Task <StudentLab> UpdateLab(StudentLab lab)
        {
            if (lab == null)
            {
                throw new ArgumentNullException(nameof(lab));
            }

            DbContext.StudentLabs.Update(lab);
            await DbContext.SaveChangesAsync().ConfigureAwait(false);

            return(lab);
        }
示例#4
0
        public async Task <bool> DeleteLab(int labId)
        {
            StudentLab labToDelete = await DbContext.StudentLabs.FindAsync(labId).ConfigureAwait(false);

            if (labToDelete == null)
            {
                DbContext.StudentLabs.Remove(labToDelete);
                DbContext.SaveChanges();

                return(true);
            }

            return(false);
        }
示例#5
0
        public async Task <ActionResult <StudentLabViewModel> > UpdatStudentLab(int id, StudentLabInputViewModel viewModel)
        {
            if (viewModel == null)
            {
                return(BadRequest());
            }
            StudentLab fetchedLab = await LabService.GetById(id).ConfigureAwait(false);

            if (fetchedLab == null)
            {
                return(NotFound());
            }

            Mapper.Map(viewModel, fetchedLab);
            await LabService.UpdateLab(fetchedLab).ConfigureAwait(false);

            return(NoContent());
        }
示例#6
0
        public async Task AddStudentLab_PersistsStudentLab()
        {
            var lab = new StudentLab
            {
                StudentId = 1
            };

            using (var context = new ApplicationDbContext(Options))
            {
                var service = new StudentLabService(context);

                StudentLab addedStudentLab = await service.AddLab(lab);

                Assert.AreNotEqual(0, addedStudentLab.Id);
            }

            using (var context = new ApplicationDbContext(Options))
            {
                StudentLab retrievedStudentLab = context.StudentLabs.Single();
                Assert.AreEqual(lab.Id, retrievedStudentLab.Id);
                Assert.AreEqual(lab.StudentId, retrievedStudentLab.StudentId);
            }
        }
示例#7
0
        public async Task <StudentLab> GetById(int labId)
        {
            StudentLab fetchedLab = await DbContext.StudentLabs.SingleOrDefaultAsync(lab => lab.Id == labId).ConfigureAwait(false);

            return(fetchedLab);
        }