public async Task <IActionResult> PutLesson([FromRoute] int id, [FromBody] PostLessonViewModel source)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != source.LessonId)
            {
                return(BadRequest());
            }

            var lesson = await _lessonRepository.Find(id);

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

            lesson.Slug      = Slug.GenerateSlug(source.Name);
            lesson.CourseId  = source.CourseId;
            lesson.SortOrder = source.SortOrder;
            lesson.Name      = source.Name;
            lesson.IsActive  = source.IsActive;

            try
            {
                await _lessonRepository.Update(lesson);
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!await _lessonRepository.Exists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }
            return(NoContent());
        }
        public async Task <IActionResult> PostLesson([FromBody] PostLessonViewModel source)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            //if (await _lessonRepository.Exists(source.Name))
            //{
            //    return BadRequest(new { errors = "Already Exists" });
            //}
            var result = await _lessonRepository.Add(new Lesson
            {
                Slug      = Slug.GenerateSlug(source.Name),
                CourseId  = source.CourseId,
                Name      = source.Name,
                IsActive  = source.IsActive,
                SortOrder = source.SortOrder
            });

            return(CreatedAtAction("getLesson", new { id = result.LessonId }, source));
        }