/// <summary> /// Build <see cref="PostCreateViewModel"/> based on PostType. /// </summary> /// <param name="postType">PostType to load base data for Post.</param> /// <returns>A <see cref="PostCreateViewModel"/> populated with base data.</returns> public async Task <PostCreateViewModel> BuildCreateViewModelAsync( string postType ) { var postTypeRes = await _postTypeService.GetBySlugAsync(postType); if (postTypeRes == null) { throw new NullReferenceException(nameof(PostType)); } var model = new PostCreateViewModel { Status = PostStatus.Draft, //PostTypeTitle = postTypeRes.Title, PostTypeSlug = postTypeRes.Slug, PostTypeId = postTypeRes.Id, PublishDateModel = new PersianDateViewModel() }; await setBaseDataAsync(model); model.CategorySelectList = await _categoryProvider .GetSelectListAsync(postTypeRes.Id, model.LangId); return(await Task.FromResult(model)); }
public async Task <CategoryCreateViewModel> BuildCreateViewModelAsync( string postType, int?parentId ) { var postTypeRes = await _postTypeService.GetBySlugAsync(postType); if (postTypeRes == null) { throw new NullReferenceException(nameof(PostType)); } var model = new CategoryCreateViewModel { LanguageSelectList = await _languageViewModelProvider.GetSelectListAsync(), Status = EntityStatus.Enabled, PostTypeId = postTypeRes.Id, PostTypeTitle = postTypeRes.Title }; if (parentId.HasValue) { var parent = await _categoryService.FindAsync(parentId.Value); model.ParentTitle = parent.Title; } else { model.ParentTitle = "[ریشه]"; } return(model); }
public async Task <IActionResult> Index(string postType = "page") { var _postType = await _postTypeService.GetBySlugAsync(postType); var model = new CategoryAdminViewModel { PostTypeId = _postType.Id }; var result = await _categoryService.GetGridDataAsync( _postType.Id, new CategoryGridOptions { PageSize = 10, StartIndex = 0 }); var langs = await _languageService.GetAllAsync(); model.Languages = langs.Select(_ => _.Adapt <LanguageItemViewModel>()); model.Items = result.Items .Select(_ => _.Adapt <CategoryListItemViewModel>()); return(View(model)); }