public async Task ShouldAddAuthor()
        {
            var expected = new SuccessOperationResult <Author>
            {
                Result = mockAuthor.Object,
                Code   = ConstOperationCodes.AUTHOR_CREATED
            };
            var result = await mockCourseLibraryService.Object.AddAuthor(mockAuthor.Object);

            Assert.Equal(expected, result);
        }
        public async Task ShouldGetAuthor()
        {
            //arrange
            var expected = new SuccessOperationResult <Author>
            {
                Code   = ConstOperationCodes.AUTHOR_FOUND,
                Result = mockAuthor.Object,
            };
            //act
            var result = await mockCourseLibraryService.Object.GetAuthor(Guid.NewGuid());

            var comparer = new Comparer();

            //assert

            Assert.True(comparer.Compare(result, expected));
        }
Exemple #3
0
        public async Task <ActionResult <AuthorDto> > GetAuthor(Guid id, [FromQuery] bool withCourses = false)
        {
            var result = await courseLibraryService.GetAuthor(id, withCourses);

            if (result.Success)
            {
                var successOperation = result as SuccessOperationResult <Author>;
                var authorDto        = mapper.Map <AuthorDto>(successOperation.Result);
                var operationReturn  = new SuccessOperationResult <AuthorDto>
                {
                    Result = authorDto,
                    Code   = successOperation.Code,
                };
                return(Ok(operationReturn));
            }

            return(Ok(result));
        }
Exemple #4
0
        public async Task <ActionResult <OperationResult <IEnumerable <CourseDto> > > > GetCourses([FromQuery] CoursesQueryParameters queryParameters)
        {
            OperationResult <PaginationList <Course> > result = await _courseLibraryService.GetCourses(queryParameters);

            if (result.Success)
            {
                var successOperation = result as SuccessOperationResult <PaginationList <Course> >;
                var coursesDto       = _mapper.Map <IEnumerable <CourseDto> >(successOperation.Result.ListData);
                var operationReturn  = new SuccessOperationResult <IEnumerable <CourseDto> >
                {
                    Result = coursesDto,
                    Code   = successOperation.Code,
                };
                return(Ok(operationReturn));
            }
            var failedOperation = result as FailedOperationResult <PaginationList <Course> >;

            return(Ok(failedOperation));
        }
Exemple #5
0
        public async Task <IActionResult> AddAuthor([FromBody] CreateAuthorDto createAuthorDto)
        {
            Author author = mapper.Map <Author>(createAuthorDto);
            var    result = await courseLibraryService.AddAuthor(author);

            if (result.Success)
            {
                SuccessOperationResult <Author> successOperation = result as SuccessOperationResult <Author>;
                AuthorDto authorDto = mapper.Map <AuthorDto>(successOperation.Result);
                return(Ok(new SuccessOperationResult <AuthorDto>
                {
                    Result = authorDto,
                    Code = ConstOperationCodes.AUTHOR_CREATED,
                }));
            }
            var failedOperation = result as FailedOperationResult <Author>;

            return(Ok(failedOperation));
        }
Exemple #6
0
        public async Task <IActionResult> AddCourse([FromBody] AddCourseDto addCourseDto)
        {
            var course = _mapper.Map <Course>(addCourseDto);
            var result = await _courseLibraryService.AddCourse(course);

            if (result.Success)
            {
                var successOperation = result as SuccessOperationResult <Course>;
                var courseDto        = _mapper.Map <CourseDto>(successOperation.Result);
                var operationReturn  = new SuccessOperationResult <CourseDto>
                {
                    Result = courseDto,
                    Code   = successOperation.Code,
                };
                return(Ok(operationReturn));
            }
            var failedOperation = result as FailedOperationResult <Course>;

            return(Ok(failedOperation));
        }
Exemple #7
0
        public async Task <ActionResult <CourseDto> > GetCourse(Guid courseId)
        {
            var result = await _courseLibraryService.GetCourseById(courseId);

            if (result.Success)
            {
                var successOperation = result as SuccessOperationResult <Course>;
                var courseDto        = _mapper.Map <CourseDto>(successOperation.Result);
                var operationResult  = new SuccessOperationResult <CourseDto>
                {
                    Result = courseDto,
                    Code   = successOperation.Code,
                };

                return(Ok(operationResult));
            }
            var failedOperation = result as FailedOperationResult <Course>;

            return(Ok(failedOperation));
        }
Exemple #8
0
 public ActionResult <IEnumerable <AuthorDto> > GetAuthors([FromQuery] AuthorsQueryParamters queryParamters)
 {
     try
     {
         OperationResult <PaginationList <Author> > result = courseLibraryService.GetAuthors(queryParamters);
         if (result.Success)
         {
             var successOperation = result as SuccessOperationResult <PaginationList <Author> >;
             IEnumerable <AuthorDto> mappingResult = mapper.Map <IEnumerable <AuthorDto> >(successOperation.Result.ListData);
             var paginationMetaData = new
             {
                 totalCount  = successOperation.Result.TotalCount,
                 totalPages  = successOperation.Result.TotalPages,
                 currentPage = successOperation.Result.CurrentPage,
                 pageSize    = successOperation.Result.PageSize
             };
             Response.Headers.Add("paginationMetaData", JsonConvert.SerializeObject(paginationMetaData));
             var operationReturn = new SuccessOperationResult <IEnumerable <AuthorDto> >
             {
                 Result = mappingResult,
                 Code   = successOperation.Code,
             };
             return(Ok(operationReturn));
         }
         else
         {
             var failedOperation = result as FailedOperationResult <PaginationList <Author> >;
             return(Ok(failedOperation));
         }
     }
     catch (Exception ex)
     {
         loggerService.Error($"Error in Authors Controller GetAuthors {ex}");
         return(StatusCode(StatusCodes.Status500InternalServerError));
     }
 }