public static BlogFilterServiceModel FromViewModel(BlogGetViewModel viewModel) { return(new BlogFilterServiceModel { Name = viewModel.Name, Title = viewModel.Title }); }
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)); }