Exemplo n.º 1
0
        private void GetCombinedKeysFromEveryType(string tag, HashVector finalResult)
        {
            if (_indexMap == null)
            {
                return;
            }
            IDictionaryEnumerator typeEnumerator;

            lock (_indexMap.SyncRoot)
            {
                typeEnumerator = _indexMap.GetEnumerator();
            }

            while (typeEnumerator.MoveNext())
            {
                AttributeIndex index = typeEnumerator.Value as AttributeIndex;
                IIndexStore    store = index.GetStore("$Tag$");

                if (store != null)
                {
                    IKeyFilter keyFilter = _cache != null?_cache.GetBucketFilter() : null;

                    IKeyFilter compoundFilter = _cache != null?_cache.GetCompoundFilter() : null;

                    IQueryResult result = new ListQueryResult(keyFilter, compoundFilter);
                    store.GetData(tag.ToLower(), ComparisonType.EQUALS, result, CollectionOperation.Union);
                    foreach (string key in result)
                    {
                        finalResult[key] = null;
                    }
                }
            }
        }
        /// <summary>
        /// Creates a list response with links for the given query result using the given selector to map produce the <see cref="ListResponse{TDomain}.Data"/> type.
        /// </summary>
        /// <typeparam name="TQueryType">The data type that will be returned in the <see cref="ListQueryResult{T}"/></typeparam>
        /// <typeparam name="TResponseType">The data type that will be used in the <see cref="ListResponse{T}"/></typeparam>
        /// <param name="queryResult"></param>
        /// <param name="request"></param>
        /// <param name="properties"></param>
        /// <param name="selector"></param>
        /// <param name="currentUri">The URI of the current request.</param>
        /// <returns></returns>
        public static ListResponse <TResponseType> ToListResponse <TQueryType, TResponseType>(
            this ListQueryResult <TQueryType> queryResult,
            IListRequest request,
            IDictionary <string, ListItemPropertyInfo> properties,
            Func <TQueryType, TResponseType> selector,
            System.Uri currentUri
            )
        {
            var response = ToListResponse <TQueryType, TResponseType>(queryResult, request, properties, selector);

            response.Links = new ListResponseLinks()
            {
                Self = currentUri.AbsoluteUri
            };

            if (response.Meta?.Next?.Offset >= 0)
            {
                response.Links.Next = CreateUri(request, currentUri, response.Meta.Next.Value.Offset).ToString();
            }

            if (response.Meta?.Prev?.Offset >= 0)
            {
                response.Links.Prev = CreateUri(request, currentUri, response.Meta.Prev.Value.Offset).ToString();
            }

            return(response);
        }
 /// <summary>
 /// Creates a list response from the given query result.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="queryResult"></param>
 /// <param name="request"></param>
 /// <param name="properties"></param>
 /// <returns></returns>
 public static ListResponse <T> ToListResponse <T>(
     this ListQueryResult <T> queryResult,
     IListRequest request,
     IDictionary <string, ListItemPropertyInfo> properties) where T : new()
 {
     return(ToListResponse <T, T>(queryResult, request, properties, s => s));
 }
Exemplo n.º 4
0
        public static ListQueryResult <Reason> GetByCachedQuery <T>(this T service, ListQuery <Reason> query)
            where T : IService <Reason>
        {
            var attrs = service.GetType().GetMethod("GetByQuery").GetCustomAttributes(false);

            foreach (CacheSource attr in attrs)
            {
                if (attr != null)
                {
                    if (attr.Enable)
                    {
                        var listquery = from o in service.ToListCached()
                                        where o.IsActive = true
                                                           select o;
                        var result = new ListQueryResult <Reason>();
                        result.CurrentPage  = query.CurrentPage;
                        result.Items        = listquery.ToList();
                        result.PageSize     = listquery.Count();
                        result.TotalRecords = listquery.Count();
                        return(result);
                    }
                }
            }
            return(service.GetByQuery(query));
        }
Exemplo n.º 5
0
        public ListQueryResult <Division> GetByQuery(ListQuery <Division> query)
        {
            var result = new ListQueryResult <Division>();

            //using (Sql.InitiativeHubFinalEntities dbcontext=new Sql.InitiativeHubFinalEntities()){
            //    foreach (var item in dbcontext.Divisions.Where(it=>  it.DivisionFunctionMappings.Count > 0).OrderBy(it => it.DivisionName))
            //    {
            //        if(result.Items==null)result.Items=new List<Division>();
            //        result.Items.Add(_divisionMapper.Map(item));
            //    }
            //}
            return(result);
        }
Exemplo n.º 6
0
        private ListQueryResult <CreditRequestViewModel> Filter(ListQueryResult <CreditRequestViewModel> res,
                                                                CreditRequestsQuery query)
        {
            if (res.Value == null)
            {
                return(new ListQueryResult <CreditRequestViewModel>(query, Enumerable.Empty <CreditRequestViewModel>()));
            }
            var requests =
                res.Value.Where(r => (!query.CreditTypeId.HasValue || query.CreditTypeId == r.CreditType.Id) &&
                                (!query.CreditSumCurrencyId.HasValue ||
                                 query.CreditSumCurrencyId == r.CreditSum.Currency.Id) &&
                                (!query.MinCreditSumValue.HasValue || query.MinCreditSumValue <= r.CreditSum.Value));

            return(new ListQueryResult <CreditRequestViewModel>(query, requests));
        }
Exemplo n.º 7
0
        private void GetCombinedKeysFromEveryType(string tag, HashVector finalResult, CancellationToken token, bool wildCardSupport = false)
        {
            if (_indexMap == null)
            {
                return;
            }
            IDictionaryEnumerator typeEnumerator;

            lock (_indexMap.SyncRoot)
            {
                typeEnumerator = _indexMap.GetEnumerator();
            }

            while (typeEnumerator.MoveNext())
            {
                if (token != null && token.IsCancellationRequested)
                {
                    throw new OperationCanceledException(ExceptionsResource.OperationFailed);
                }

                AttributeIndex index = typeEnumerator.Value as AttributeIndex;
                IIndexStore    store = index.GetStore("$Tag$");

                if (store != null)
                {
                    IKeyFilter keyFilter = _cache != null?_cache.GetBucketFilter() : null;

                    IKeyFilter compoundFilter = _cache != null?_cache.GetCompoundFilter() : null;

                    IQueryResult result = new ListQueryResult(keyFilter, compoundFilter);

                    if (wildCardSupport)
                    {
                        store.GetData(tag.ToLower(), ComparisonType.LIKE, result, CollectionOperation.Union, token);
                    }
                    else
                    {
                        store.GetData(tag.ToLower(), ComparisonType.EQUALS, result, CollectionOperation.Union, token);
                    }


                    foreach (string key in result)
                    {
                        finalResult[key] = null;
                    }
                }
            }
        }
Exemplo n.º 8
0
        public ListQueryResult <Department> GetByQuery(ListQuery <Department> query)
        {
            var result = new ListQueryResult <Department>();

            using (Sql.InitiativeHubFinalEntities dbcontext = new Sql.InitiativeHubFinalEntities())
            {
                if (query.Parameters != null)
                {
                    foreach (var p in query.Parameters)
                    {
                        if (p.Name == "depName")
                        {
                            foreach (var item in dbcontext.Divisions.Where(o => o.DivisionName == p.Value).OrderBy(it => it.DivisionName))
                            {
                                if (result.Items == null)
                                {
                                    result.Items = new List <Department>();
                                }
                                result.Items.Add(_DepartmentMapper.Map(item));
                            }
                        }
                        else if (p.Name == "DealerDivision")
                        {
                            foreach (var item in dbcontext.Divisions.Where(o => o.DivisionName == "CC" || o.DivisionName == "COMMON-RURBAN/EXPORT" || o.DivisionName == "CP - ASF" || o.DivisionName == "CP - MNT" || o.DivisionName == "FV").OrderBy(it => it.DivisionName))
                            {
                                if (result.Items == null)
                                {
                                    result.Items = new List <Department>();
                                }
                                result.Items.Add(_DepartmentMapper.Map(item));
                            }
                        }
                    }
                }
                else
                {
                    foreach (var item in dbcontext.Divisions.OrderBy(it => it.DivisionName))
                    {
                        if (result.Items == null)
                        {
                            result.Items = new List <Department>();
                        }
                        result.Items.Add(_DepartmentMapper.Map(item));
                    }
                }
            }
            return(result);
        }
Exemplo n.º 9
0
        private ListQueryResult CreateRebuildIndexSetting()
        {
            var res = new ListQueryResult()
            {
                Name        = "Rebuild index",
                Description = "",
                Icon        = ResourceManager.Instance.DefaultImage
            };

            res.OnExecuteAsync = async query =>
            {
                res.Description = "Rebuilding index...";
                res.Icon        = ResourceManager.Instance.LoadingImage;

                var progress = new IndexerProgress();
                var cts      = new CancellationTokenSource();
                var updater  = Task.Run(async() =>
                {
                    while (!cts.IsCancellationRequested)
                    {
                        await Task.Delay(100);

                        if (!progress.HasStarted)
                        {
                            continue;
                        }

                        res.Description = $"Rebuilding index: {progress.CurrentIndexerName} {progress.ProcessedIndexedItemsPercentage}%% ({progress.ProcessedIndexedItems}/{progress.TotalIndexedItems})";
                    }
                });

                await Indexer.RebuildAsync(progress);

                cts.Cancel();

                await updater;

                res.Icon        = ResourceManager.Instance.DefaultImage;
                res.Description = "";

                query.HideUI    = false;
                query.ResetText = false;
            };

            return(res);
        }
Exemplo n.º 10
0
        public ListQueryResult <StatusMaster> Get(string q)
        {
            var result = new ListQueryResult <Teckraft.Core.Domian.Settings.StatusMaster>();

            using (Teckraft.Data.Sql.InitiativeHubFinalEntities dbcontext = new Teckraft.Data.Sql.InitiativeHubFinalEntities())
            {
                var dbquery = dbcontext.StatusMasters.Where(it => it.Id > 0);
                foreach (var item in dbquery.OrderByDescending(it => it.StatusDesc))
                {
                    if (result.Items == null)
                    {
                        result.Items = new List <Teckraft.Core.Domian.Settings.StatusMaster>();
                    }
                    result.Items.Add(_StatusMapper.Map(item));
                }
            }

            return(result);
        }
Exemplo n.º 11
0
        public ListQueryResult <User> GetByQuery(ListQuery <User> query)
        {
            var result = new ListQueryResult <User>();

            using (Sql.InitiativeHubFinalEntities dbcontext = new Sql.InitiativeHubFinalEntities())
            {
                var linqQuery = dbcontext.UserDetails.Where(it => it.UserId > 0);
                if (query.Parameters != null)
                {
                    foreach (var p in query.Parameters)
                    {
                        if (p.Name == "username")
                        {
                            if (p.Operator == CompareOperator.Equals)
                            {
                                linqQuery = linqQuery.Where(it => it.UserName == p.Value);
                            }
                        }
                        else if (p.Name == "filterText")
                        {
                            string val = p.Value;
                            if (p.Operator == CompareOperator.Equals)
                            {
                                linqQuery = linqQuery.Where(it => it.Title.Contains(val) || it.Email.Contains(val));
                            }
                        }
                    }
                    foreach (var item in linqQuery.Take(query.PageSize).OrderBy(it => it.Title))
                    {
                        if (result.Items == null)
                        {
                            result.Items = new List <User>();
                        }
                        var usr = _mapper.Map(item);
                        result.Items.Add(usr);
                    }
                }
            }
            return(result);
        }
        public ListQueryResult<Core.Domian.Settings.IssueManagementCommentLog> GetByQuery(ListQuery<Core.Domian.Settings.IssueManagementCommentLog> query)
        {
            var result = new ListQueryResult<Teckraft.Core.Domian.Settings.IssueManagementCommentLog>();
            var list = new List<Teckraft.Core.Domian.Settings.IssueManagementCommentLog>();

            using (Teckraft.Data.Sql.InitiativeHubFinalEntities dbcontext = new Teckraft.Data.Sql.InitiativeHubFinalEntities())
            {
                var linqquery = dbcontext.IssueManagementCommentLogs.Where(it => it.Id > 0);
                if (query.Parameters.Count > 0)
                {
                    foreach (var item in query.Parameters)
                    {
                        if (item.Name == "RequestNo")
                        {
                            var val = item.Value;
                            linqquery = linqquery.Where(k => k.ID_Request == val);
                        }
                        else if (item.Name == "ChapterName")
                        {
                            var val = item.Value;
                            linqquery = linqquery.Where(j => j.id_System_Name == val);
                        }
                        else if (item.Name == "PendingWithEmail")
                        {
                            var val = (item.Value);
                            linqquery = linqquery.Where(it => (it.ID_Pending_With_Email == val));
                        }
                    }
                    linqquery = linqquery.OrderByDescending(it => it.RCT); 
                    foreach (var dbitem in linqquery)
                    {
                        list.Add(mappingProvider.Map(dbitem));
                    }

                }
            }

            result.Items = list;
            return result;
        }
        /// <summary>
        /// Creates a list response from the given query result using the given selector to map produce the <see cref="ListResponse{T}.Data"/> type.
        /// </summary>
        /// <typeparam name="TQueryType">The data type that will be returned in the <see cref="ListQueryResult{T}"/></typeparam>
        /// <typeparam name="TResponseType">The data type that will be used in the <see cref="ListResponse{T}"/></typeparam>
        /// <param name="queryResult"></param>
        /// <param name="request"></param>
        /// <param name="properties">The properties that will be provided in <see cref="ListResponse{T}.Meta"/> properties.</param>
        /// <param name="selector">A function that maps <typeparamref name="TQueryType"/> to <typeparamref name="TResponseType"/></param>
        /// <returns></returns>
        public static ListResponse <TResponseType> ToListResponse <TQueryType, TResponseType>(
            this ListQueryResult <TQueryType> queryResult,
            IListRequest request,
            IDictionary <string, ListItemPropertyInfo> properties,
            Func <TQueryType, TResponseType> selector)
        {
            properties = properties ?? throw new ArgumentNullException(nameof(properties));

            IEnumerable <TResponseType> data = queryResult.Data.Select(selector);
            int?dataCount = queryResult.IsBuffered ? data.Count() : (int?)null;

            var response = new ListResponse <TResponseType>()
            {
                Meta = new ListResponseMeta()
                {
                    TotalCount = queryResult.TotalCount
                }
            };

            if (request.Fields != null)
            {
                response.Meta.Fields = properties.Select(s => s.Value.JsonName).Intersect(request.Fields, StringComparer.OrdinalIgnoreCase);
            }
            else
            {
                response.Meta.Fields = properties.Select(s => s.Value.JsonName);
            }

            if (dataCount.HasValue)
            {
                response.Meta.CurrentCount = dataCount;
            }

            response.Meta.Next = queryResult.NextOffset.HasValue ? new PageInfo(queryResult.NextOffset.Value) : (PageInfo?)null;
            response.Meta.Prev = queryResult.PreviousOffset.HasValue ? new PageInfo(queryResult.PreviousOffset.Value) : (PageInfo?)null;
            response.Data      = data;

            return(response);
        }
        public void ListQueryResult_MustSet_Properties()
        {
            // Arrange
            var fixture       = new Fixture();
            var data          = fixture.Create <IEnumerable <string> >();
            var totalElements = fixture.Create <long>();
            var skip          = fixture.Create <long>();
            var take          = fixture.Create <long>();
            var sortOrder     = fixture.Create <SortOrder>();
            var draw          = fixture.Create <long>();

            // Act
            var sut = new ListQueryResult <string>(data, totalElements, skip, take, sortOrder, draw);

            // Assert
            Assert.Equal(data, sut.Data);
            Assert.Equal(totalElements, sut.TotalElements);
            Assert.Equal(skip, sut.Skip);
            Assert.Equal(take, sut.Take);
            Assert.Equal(sortOrder, sut.SortOrder);
            Assert.Equal(draw, sut.Draw);
        }
Exemplo n.º 15
0
        public override IEnumerable <IListQueryResult> GetQueryResults(string term)
        {
            var items = ClipboardService
                        .History
                        .Select(h =>
            {
                var res = new ListQueryResult()
                {
                    Name        = h.Timestamp.ToString("s"),
                    Description = "",
                    OnExecute   = t => ClipboardService.Restore(h)
                };

                if (!string.IsNullOrEmpty(h.Text))
                {
                    res.Description = string.Join("", h.Text.Replace(Environment.NewLine, "").Take(40));
                }

                if (h.ImageThumbnail != null)
                {
                    res.Icon = ResourceManager.Instance.LoadImage($"cb_{h.Timestamp.ToString("s")}", h.ImageThumbnail);
                }

                return((IListQueryResult)res);
            })
                        .ToList();

            items.Add(new ListQueryResult()
            {
                Icon      = ResourceManager.DefaultImage,
                Name      = "Clear",
                OnExecute = qc => ClipboardService.Clear()
            });

            return(items);
        }
Exemplo n.º 16
0
        public ListQueryResult <User> GetByQuery(ListQuery <User> query)
        {
            var result = new ListQueryResult <User>();

            using (Sql.InitiativeHubFinalEntities dbcontext = new Sql.InitiativeHubFinalEntities())
            {
                var linqQuery = dbcontext.UserDetails.Where(it => it.UserId > 0);
                if (query.Parameters != null)
                {
                    foreach (var p in query.Parameters)
                    {
                        if (p.Name == "username")
                        {
                            if (p.Operator == CompareOperator.Equals)
                            {
                                linqQuery = linqQuery.Where(it => it.UserName == p.Value);
                            }
                        }
                        else if (p.Name == "title")
                        {
                            if (p.Operator == CompareOperator.Equals)
                            {
                                linqQuery = linqQuery.Where(it => it.Title == p.Value);
                            }
                        }
                        else if (p.Name.ToLower() == "dhdivisionid")
                        {
                            int val = 0;
                            val       = int.Parse(p.Value);
                            linqQuery = linqQuery.Where(it => it.DepartmentHeads.Count(g => g.DeparmentId == val) > 0);
                        }
                        else if (p.Name.ToLower() == "dodivisionid")
                        {
                            int val = 0;
                            val       = int.Parse(p.Value);
                            linqQuery = linqQuery.Where(it => it.DepartmentOwners.Count(g => g.DeparmentId == val) > 0);
                        }
                        else if (p.Name == "ResponsibleUsers")
                        {
                            int val = 0;
                            val       = int.Parse(p.Value);
                            linqQuery = linqQuery.Where(it => it.DivisionId == val);
                        }
                        else if (p.Name == "DependentUsers")
                        {
                            int val = 0;
                            val       = int.Parse(p.Value);
                            linqQuery = linqQuery.Where(it => it.DivisionId == val);
                        }
                    }
                }

                foreach (var item in linqQuery)
                {
                    if (result.Items == null)
                    {
                        result.Items = new List <User>();
                    }
                    var usr = _mapper.Map(item);

                    result.Items.Add(usr);
                }
            }
            return(result);
        }