public IHttpActionResult Post(CourseBindingModel model)
        {
            string userId = User.Identity.GetUserId();
            var    user   = userService.GetById(userId);

            if (!user.IsTeacher)
            {
                return(Unauthorized());
            }

            var course = new Course()
            {
                Name        = model.Name,
                Description = model.Description,
                Capacity    = model.Capacity,
                CreatedAt   = DateTime.Now,
                UpdatedAt   = DateTime.Now,
                TeacherId   = userId
            };

            service.Insert(course);

            var courseModel = Mapper.Map <CourseViewModel>(course);

            return(CreatedAtRoute("DefaultApi", new { id = course.Id }, courseModel));
        }
        public IHttpActionResult Put(CourseBindingModel model, int id)
        {
            string userId = User.Identity.GetUserId();
            var    user   = userService.GetById(userId);

            if (!user.IsTeacher)
            {
                return(Unauthorized());
            }

            var course = service.GetById(id);

            if (course != null)
            {
                if (course.TeacherId != userId)
                {
                    return(Unauthorized());
                }

                course.Name        = model.Name;
                course.Description = model.Description;
                course.Capacity    = model.Capacity;
                course.UpdatedAt   = DateTime.Now;
                service.Update(course);

                var courseModel = Mapper.Map <CourseViewModel>(course);

                return(Ok(courseModel));
            }
            else
            {
                return(NotFound());
            }
        }
Esempio n. 3
0
        public async Task <IActionResult> Create([FromBody] CourseBindingModel model)
        {
            if (model == null || !this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState.GetFirstError()));
            }

            var course = Mapper.Map <Course>(model);

            await this.coursesData.Add(course);

            return(this.Ok(Mapper.Map <CourseViewModel>(course)));
        }
Esempio n. 4
0
        public async Task <IActionResult> Delete([FromBody] CourseBindingModel model)
        {
            if (model == null || !this.ModelState.IsValid)
            {
                return(this.BadRequest(this.ModelState.GetFirstError()));
            }

            var course = await this.coursesData.GetByIdAsync(model.Id);

            Mapper.Map(model, course);

            await this.coursesData.Delete(course);

            return(this.Ok(Mapper.Map <CourseViewModel>(course)));
        }
Esempio n. 5
0
 public List <CourseViewModel> Read(CourseBindingModel model)
 {
     SaveToDatabase();
     return(Courses
            .Where(rec => model == null || rec.Id == model.Id || rec.Specialication == model.Specialication)
            .Select(rec => new CourseViewModel
     {
         Id = rec.Id,
         CourseName = rec.CourseName,
         Duration = rec.Duration,
         Cost = rec.Cost,
         Specialication = rec.Specialication
     })
            .ToList());
 }