//[HttpGet(Name = MenuRouteName.PostIndex)] public async Task <IActionResult> Index( string postType, string lang = Language.KEY_fa_IR, int?categoryId = null, int page = 1 ) { var param = new IndexParams <PostIndexFilter> { PageSize = 10, PageNumber = page, Filter = new PostIndexFilter { CategoryId = categoryId, PostTypeSlug = postType, }, LangKey = lang }; var result = await _postService.GetIndexAsync(param); var model = result.Adapt <PostIndexViewModel>(); model.Title = result.PostTypeSlug.GetPostTypeDisplayName(); return(await Task.FromResult(View(model))); }
public FlannColoredModelPoints(List<Tuple<CvPoint3D64f, CvColor>> modelPoints, IndexParams indexParams, SearchParams searchParams, double colorScale) { _modelPoints = modelPoints; _modelMat = new CvMat(_modelPoints.Count, 6, MatrixType.F32C1); unsafe { float* modelArr = _modelMat.DataSingle; foreach (var tuple in _modelPoints) { *(modelArr++) = (float)tuple.Item1.X; *(modelArr++) = (float)tuple.Item1.Y; *(modelArr++) = (float)tuple.Item1.Z; *(modelArr++) = (float)(tuple.Item2.R * colorScale / 255); *(modelArr++) = (float)(tuple.Item2.G * colorScale / 255); *(modelArr++) = (float)(tuple.Item2.B * colorScale / 255); } } _colorScale = colorScale; _modelDataMat = new Mat(_modelMat); _indexParam = indexParams; _searchParam = searchParams; _indexParam.IsEnabledDispose = false; _searchParam.IsEnabledDispose = false; _flannIndex = new Index(_modelDataMat, _indexParam); }
public FlannColoredModelPoints(List <Tuple <CvPoint3D64f, CvColor> > modelPoints, IndexParams indexParams, SearchParams searchParams, double colorScale) { _modelPoints = modelPoints; _modelMat = new CvMat(_modelPoints.Count, 6, MatrixType.F32C1); unsafe { float *modelArr = _modelMat.DataSingle; foreach (var tuple in _modelPoints) { *(modelArr++) = (float)tuple.Item1.X; *(modelArr++) = (float)tuple.Item1.Y; *(modelArr++) = (float)tuple.Item1.Z; *(modelArr++) = (float)(tuple.Item2.R * colorScale / 255); *(modelArr++) = (float)(tuple.Item2.G * colorScale / 255); *(modelArr++) = (float)(tuple.Item2.B * colorScale / 255); } } _colorScale = colorScale; _modelDataMat = new Mat(_modelMat); _indexParam = indexParams; _searchParam = searchParams; _indexParam.IsEnabledDispose = false; _searchParam.IsEnabledDispose = false; _flannIndex = new Index(_modelDataMat, _indexParam); }
public async Task <IViewComponentResult> InvokeAsync( int?categoryId, string lang = Language.KEY_fa_IR, bool isComponent = false, int pageSize = 3) { var indexParam = new IndexParams { PageNumber = 1, PageSize = pageSize, OrderBy = "OrderNumber" }; var gallery = await _postService.GetGalleryAsync( indexParam, categoryId, lang, isComponent); if (gallery == null) { return(await Task.FromResult( Content(string.Empty))); } var result = gallery.Adapt <GalleryViewModel>(); return(await Task.FromResult( View(result))); }
/// <summary> /// <inheritdoc/> /// </summary> public async Task <GalleryDto> GetGalleryAsync( IndexParams param, int?categoryId = null, string lang = Language.KEY_fa_IR, bool isComponent = false) { param.CheckArgumentIsNull(nameof(param)); var postType = await _postTypeRepository .GetBySlugAsync(PostType.GALLERY); if (postType == null) { throw new PostTypeNotFoundException(); } var query = _repository .Query() .IncludeFiles() .Where(_ => _.PostTypeId == postType.Id) .Where(_ => _.Status == PostStatus.Published) .Where(_ => _.PublishDate <= _dateService.UtcNow()) .Where(_ => _.Language.LangKey == lang) .Where(_ => _.IsComponent == isComponent); if (categoryId.HasValue) { query = query.Where(_ => _.CategoryId == categoryId); } query = query.SetOrder(param.OrderBy, !param.OrderDesc); if (param.HasPaging) { query = query .Skip(param.Skip) .Take(param.Take); } var queryResult = await query.ToListAsync(); var result = new GalleryDto { Posts = queryResult.Adapt <List <PostFileGalleryDto> >() }; foreach (var post in result.Posts) { post.Files = queryResult.FirstOrDefault(_ => _.Id == post.Id) .PostFiles.OrderBy(_ => _.OrderNum) .Select(_ => _.File) .Adapt <List <PostFileGalleryItemDto> >(); } return(await Task.FromResult(result)); }
/// <summary> /// Releases managed resources /// </summary> protected override void DisposeUnmanaged() { if (detectorPtr == null && ptr != IntPtr.Zero) { NativeMethods.features2d_FlannBasedMatcher_delete(ptr); } indexParams = null; searchParams = null; ptr = IntPtr.Zero; base.DisposeUnmanaged(); }
//internal override IntPtr PtrObj => detectorPtr.CvPtr; #region Init & Disposal /// <summary> /// /// </summary> /// <param name="indexParams"></param> /// <param name="searchParams"></param> public FlannBasedMatcher(IndexParams indexParams = null, SearchParams searchParams = null) { indexParams?.ThrowIfDisposed(); searchParams?.ThrowIfDisposed(); IntPtr indexParamsPtr = indexParams?.PtrObj.CvPtr ?? IntPtr.Zero; IntPtr searchParamsPtr = searchParams?.PtrObj.CvPtr ?? IntPtr.Zero; ptr = NativeMethods.features2d_FlannBasedMatcher_new(indexParamsPtr, searchParamsPtr); this.indexParams = indexParams; this.searchParams = searchParams; }
//[HttpGet(Name = "gallery")] public async Task <IActionResult> Gallery(int?categoryId, string lang = "fa", int?page = 1) { var indexParam = new IndexParams { PageNumber = page != null ? page.Value : 1, PageSize = 10, OrderBy = "OrderNumber", OrderDesc = false }; var gallery = await _postService .GetGalleryAsync(indexParam, categoryId, lang); gallery.Title = "گالری تصاویر"; var result = gallery.Adapt <GalleryViewModel>(); return(View(result)); }
public async Task <IViewComponentResult> InvokeAsync( int?categoryId, string lang = Language.KEY_fa_IR, bool isComponent = false, int pageSize = 3, string viewName = "") { var indexParam = new IndexParams { PageNumber = 1, PageSize = pageSize, OrderBy = "ordernum" }; var gallery = await _postService.GetGalleryAsync( indexParam, categoryId, lang, isComponent); if (gallery == null) { return(await Task.FromResult( Content(string.Empty))); } var model = gallery.Adapt <GalleryViewModel>(); if (viewName.IsNotNullOrEmpty()) { return(await Task.FromResult( View(viewName, model) )); } return(await Task.FromResult( View(model))); }
public async Task <PostIndexDto> GetIndexAsync( IndexParams <PostIndexFilter> param ) { param.CheckArgumentIsNull(nameof(param)); var postType = await _postTypeRepository .GetBySlugAsync(param.Filter.PostTypeSlug); if (postType == null) { throw new PostTypeNotFoundException(); } var lang = await _languageRepository.GetByLangKeyAsync(param.LangKey) ?? await _languageRepository.GetDefaultLanguage(); var query = _repository.Query(); query = AddIndexFilter(query, param.Filter, lang); var result = new PostIndexDto { CategoryId = param.Filter.CategoryId, PostTypeId = postType.Id, PostTypeSlug = postType.Slug, LangKey = lang.LangKey, PageSize = param.PageSize, CurrentPageNumber = param.PageNumber, TotalCount = await query.CountAsync(), Categories = await getCategoryItemsAsync(postType.Id, lang.Id) }; if (result.CategoryId.HasValue) { result.CategoryTitle = (await _categoryRepository .FindAsync(result.CategoryId.Value) ).Title; } result.Items = await query .Include(_ => _.PostType) .Include(_ => _.Category) .Include(_ => _.Comments) .Include(_ => _.Likes) .Include(_ => _.PostTags) .ThenInclude(_ => _.Tag) .Skip(param.Skip) .Take(param.PageSize) .OrderByDescending(_ => _.Id) .ThenByDescending(_ => _.PublishDate) .Select(_ => new PostIndexItemDto { CoverPhoto = _.CoverPhoto, Slug = _.Slug, PublishDate = _.PublishDate, Status = _.Status, Summary = _.Summary, Title = _.Title, UserId = _.CreatorUserId, AltTitle = _.AltTitle, Author = _.CreatorUser.Title, Id = _.Id, PostTypeSlug = _.PostType.Slug, Body = _.Body, CategoryTitle = _.Category != null ? _.Category.Title : string.Empty, CommentCount = _.Comments.Count(), IconName = _.IconName, LikeCount = _.Likes.Count(), Tags = _.PostTags.Select(_ => new PostTagItemDto { Title = _.Tag.Title, Id = _.Tag.Id, Description = _.Tag.Description, Slug = _.Tag.Slug }) }).ToListAsync(); return(await Task.FromResult(result)); }
/// <summary> /// /// </summary> /// <param name="indexParams"></param> /// <param name="searchParams"></param> public FlannBasedMatcher(IndexParams indexParams = null, SearchParams searchParams = null) { ptr = NativeMethods.features2d_FlannBasedMatcher_new( Cv2.ToPtr(indexParams), Cv2.ToPtr(searchParams)); }
/// <summary> /// /// </summary> /// <param name="indexParams"></param> /// <param name="searchParams"></param> public FlannBasedMatcher(IndexParams indexParams = null, SearchParams searchParams = null) { ptr = NativeMethods.features2d_FlannBasedMatcher_new( Cv2.ToPtr(indexParams), Cv2.ToPtr(searchParams)); }