public static BlogFilterServiceModel FromViewModel(BlogGetViewModel viewModel)
 {
     return(new BlogFilterServiceModel
     {
         Name = viewModel.Name,
         Title = viewModel.Title
     });
 }
Exemple #2
0
        public async Task <OkObjectResult> GetBlogs(BlogGetViewModel searchParams)
        {
            var serviceModel = BlogFilterServiceModel.FromViewModel(searchParams);
            var entities     = _services.GetBlogs(serviceModel);
            var pageList     = await PaginatedList <BlogEntity> .CreateAsync(entities, searchParams.Page, searchParams.PageSize);

            var result = new PaginationResult <BlogEntity, BlogViewModel>(pageList, entity => BlogViewModel.FromEntity(entity));

            return(Ok(result));
        }
        public async Task <OkObjectResult> Get(BlogGetViewModel viewModel)
        {
            var entityIds = new List <long>();

            if (viewModel.Id != default)
            {
                entityIds.Add(viewModel.Id);
            }

            var filterServiceModel = AutoMapper.Mapper.Map <BlogFilterServiceModel>(viewModel);

            filterServiceModel.Ids = entityIds;

            var blogs = _blogService.GetBlogs(filterServiceModel);

            if (string.IsNullOrEmpty(viewModel.SortField) == false)
            {
                if (viewModel.SortField == "title")
                {
                    blogs = (viewModel.SortOrder == "ascend") ? blogs.OrderBy(o => o.Details.FirstOrDefault().Title) : blogs.OrderByDescending(o => o.Details.FirstOrDefault().Title);
                }
            }

            object actionOkResult = null;

            if (viewModel.GetMode == (int)GetMode.Paginated)
            {
                var pageList = await PaginatedList <BlogEntity> .CreateAsync(blogs, viewModel.Page, viewModel.PageSize);

                var result = new PageEntityViewModel <BlogEntity, BlogViewModel>(pageList, entity => BlogViewModel.FromEntity(entity));

                actionOkResult = result;
            }
            else if (viewModel.GetMode == (int)GetMode.List)
            {
                var result = blogs.Select(o => BlogEditViewModel.FromEntity(o));
                actionOkResult = result;
            }
            else
            {
                var blog = blogs.FirstOrDefault(o => o.Id == viewModel.Id || o.Name == viewModel.Name);

                var result = new BlogEditViewModel();

                if (blog != null)
                {
                    result = BlogEditViewModel.FromEntity(blog);
                }

                actionOkResult = result;
            }

            return(Ok(actionOkResult));
        }