Exemplo n.º 1
0
 public abstract IEnumerable <Entry> GetEntries(string keyword, DateTime from, DateTime to, int page, int entriesCount, EntryOrderBy eo);
Exemplo n.º 2
0
        /// <summary>
        /// Returns the entries by a keyword.
        /// </summary>
        /// <param name="keyword">Search keyword.</param>
        /// <param name="from">Date From.</param>
        /// <param name="to">Date To.</param>
        /// <param name="page">Page number.</param>
        /// <param name="entriesCount">Number of entries.</param>
        /// <param name="heo">EntryOrderBy</param>
        /// <returns>Returns all the entries</returns>
        public Entry[] GetEntries(string keyword, DateTime from, DateTime to, int page, int entriesCount, EntryOrderBy heo)
        {
            var col = Database.GetEntries(keyword, from, to, page, entriesCount, heo);

            if (!col.Any())
            {
                return(new Entry[] { });
            }
            else
            {
                return(col.ToArray());
            }
        }
Exemplo n.º 3
0
        public override IEnumerable <Core.Db.Entry> GetEntries(string keyword, DateTime from, DateTime to, int page, int entriesCount, EntryOrderBy eo)
        {
            var col            = _db.GetCollection <Entry>(Core.Db.Entry.DocumentName);
            var keywordToLower = keyword.ToLower();
            int skip           = (page - 1) * entriesCount;

            switch (eo)
            {
            case EntryOrderBy.StatusDateAscending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Ascending(e => e.StatusDate)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.StatusDateDescending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Descending(e => e.StatusDate)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.WorkflowIdAscending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Ascending(e => e.WorkflowId)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.WorkflowIdDescending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Descending(e => e.WorkflowId)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.NameAscending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Ascending(e => e.Name)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.NameDescending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Descending(e => e.Name)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.LaunchTypeAscending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Ascending(e => e.LaunchType)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.LaunchTypeDescending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Descending(e => e.LaunchType)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.DescriptionAscending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Ascending(e => e.Description)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.DescriptionDescending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Descending(e => e.Description)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.StatusAscending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Ascending(e => e.Status)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));

            case EntryOrderBy.StatusDescending:

                return(col.Find(e => (e.Name.ToLower().Contains(keywordToLower) || e.Description.ToLower().Contains(keywordToLower)) && e.StatusDate > from && e.StatusDate < to).Sort(Builders <Entry> .Sort.Descending(e => e.Status)).ToEnumerable().Skip((page - 1) * entriesCount).Take(entriesCount));
            }

            return(new Entry[] { });
        }
Exemplo n.º 4
0
Arquivo: Db.cs Projeto: yresk/Wexflow
        public override IEnumerable <Core.Db.HistoryEntry> GetHistoryEntries(string keyword, DateTime from, DateTime to, int page, int entriesCount, EntryOrderBy heo)
        {
            using (var session = _store.OpenSession())
            {
                try
                {
                    var col            = session.Query <HistoryEntry>();
                    var keywordToLower = string.IsNullOrEmpty(keyword) ? "*" : "*" + keyword.ToLower() + "*";
                    int skip           = (page - 1) * entriesCount;

                    switch (heo)
                    {
                    case EntryOrderBy.StatusDateAscending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderBy(e => e.StatusDate).Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.StatusDateDescending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderByDescending(e => e.StatusDate)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.WorkflowIdAscending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderBy(e => e.WorkflowId)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.WorkflowIdDescending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderByDescending(e => e.WorkflowId)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.NameAscending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderBy(e => e.Name)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.NameDescending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderByDescending(e => e.Name)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.LaunchTypeAscending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderBy(e => e.LaunchType)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.LaunchTypeDescending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderByDescending(e => e.LaunchType)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.DescriptionAscending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderBy(e => e.Description)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.DescriptionDescending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderByDescending(e => e.Description)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.StatusAscending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderBy(e => e.Status)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());

                    case EntryOrderBy.StatusDescending:

                        return(col
                               .Search(e => e.Name, keywordToLower, options: SearchOptions.Or)
                               .Search(e => e.Description, keywordToLower)
                               .Where(e => e.StatusDate > from && e.StatusDate < to)
                               .OrderByDescending(e => e.Status)
                               .Skip((page - 1) * entriesCount)
                               .Take(entriesCount)
                               .ToArray());
                    }

                    return(new HistoryEntry[] { });
                }
                catch (Exception)
                {
                    return(new HistoryEntry[] { });
                }
            }
        }
Exemplo n.º 5
0
        public override IEnumerable <Core.Db.Entry> GetEntries(string keyword, DateTime from, DateTime to, int page, int entriesCount, EntryOrderBy eo)
        {
            var   col            = _db.GetCollection <Entry>(Core.Db.Entry.DocumentName);
            var   keywordToLower = keyword.ToLower();
            int   skip           = (page - 1) * entriesCount;
            Query query;

            if (!string.IsNullOrEmpty(keyword))
            {
                query = Query.And(Query.Or(Query.Contains("Name", keywordToLower), Query.Contains("Description", keywordToLower))
                                  , Query.And(Query.GTE("StatusDate", from), Query.LTE("StatusDate", to)));
            }
            else
            {
                query = Query.And(Query.GTE("StatusDate", from), Query.LTE("StatusDate", to));
            }

            switch (eo)
            {
            case EntryOrderBy.StatusDateAscending:

                return(col.Find(
                           Query.And(
                               Query.All("StatusDate")
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.StatusDateDescending:

                return(col.Find(
                           Query.And(
                               Query.All("StatusDate", Query.Descending)
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.WorkflowIdAscending:

                return(col.Find(
                           Query.And(
                               Query.All("WorkflowId")
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.WorkflowIdDescending:

                return(col.Find(
                           Query.And(
                               Query.All("WorkflowId", Query.Descending)
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.NameAscending:

                return(col.Find(
                           Query.And(
                               Query.All("Name")
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.NameDescending:

                return(col.Find(
                           Query.And(
                               Query.All("Name", Query.Descending)
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.LaunchTypeAscending:

                return(col.Find(
                           Query.And(
                               Query.All("LaunchType")
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.LaunchTypeDescending:

                return(col.Find(
                           Query.And(
                               Query.All("LaunchType", Query.Descending)
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.DescriptionAscending:

                return(col.Find(
                           Query.And(
                               Query.All("Description")
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.DescriptionDescending:

                return(col.Find(
                           Query.And(
                               Query.All("Description", Query.Descending)
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.StatusAscending:

                return(col.Find(
                           Query.And(
                               Query.All("Status")
                               , query
                               )
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.StatusDescending:

                return(col.Find(
                           Query.And(
                               Query.All("Status", Query.Descending)
                               , query
                               )
                           , skip
                           , entriesCount
                           ));
            }

            return(new Entry[] { });
        }
Exemplo n.º 6
0
        public IEnumerable <HistoryEntry> GetHistoryEntries(string keyword, DateTime from, DateTime to, int page, int entriesCount, EntryOrderBy heo)
        {
            using (var db = new LiteDatabase(ConnectionString))
            {
                var   col            = db.GetCollection <HistoryEntry>("historyEntries");
                var   keywordToLower = keyword.ToLower();
                int   skip           = (page - 1) * entriesCount;
                Query query;

                if (!string.IsNullOrEmpty(keyword))
                {
                    query = Query.And(Query.Or(Query.Contains("Name", keywordToLower), Query.Contains("Description", keywordToLower))
                                      , Query.And(Query.GTE("StatusDate", from), Query.LTE("StatusDate", to)));
                }
                else
                {
                    query = Query.And(Query.GTE("StatusDate", from), Query.LTE("StatusDate", to));
                }

                switch (heo)
                {
                case EntryOrderBy.StatusDateAscending:

                    return(col.Find(
                               Query.And(
                                   Query.All("StatusDate")
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.StatusDateDescending:

                    return(col.Find(
                               Query.And(
                                   Query.All("StatusDate", Query.Descending)
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.WorkflowIdAscending:

                    return(col.Find(
                               Query.And(
                                   Query.All("WorkflowId")
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.WorkflowIdDescending:

                    return(col.Find(
                               Query.And(
                                   Query.All("WorkflowId", Query.Descending)
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.NameAscending:

                    return(col.Find(
                               Query.And(
                                   Query.All("Name")
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.NameDescending:

                    return(col.Find(
                               Query.And(
                                   Query.All("Name", Query.Descending)
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.LaunchTypeAscending:

                    return(col.Find(
                               Query.And(
                                   Query.All("LaunchType")
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.LaunchTypeDescending:

                    return(col.Find(
                               Query.And(
                                   Query.All("LaunchType", Query.Descending)
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.DescriptionAscending:

                    return(col.Find(
                               Query.And(
                                   Query.All("Description")
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.DescriptionDescending:

                    return(col.Find(
                               Query.And(
                                   Query.All("Description", Query.Descending)
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.StatusAscending:

                    return(col.Find(
                               Query.And(
                                   Query.All("Status")
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));

                case EntryOrderBy.StatusDescending:

                    return(col.Find(
                               Query.And(
                                   Query.All("Status", Query.Descending)
                                   , query
                                   )
                               , skip
                               , entriesCount
                               ));
                }

                return(new HistoryEntry[] { });
            }
        }
Exemplo n.º 7
0
        public override IEnumerable <Core.Db.Entry> GetEntries(string keyword, DateTime from, DateTime to, int page, int entriesCount, EntryOrderBy eo)
        {
            var            col            = _db.GetCollection <Entry>(Core.Db.Entry.DocumentName);
            var            keywordToLower = keyword.ToLower();
            int            skip           = (page - 1) * entriesCount;
            BsonExpression query;

            if (!string.IsNullOrEmpty(keyword))
            {
                query = Query.And(Query.Or(Query.Contains("Name", keywordToLower), Query.Contains("Description", keywordToLower))
                                  , Query.And(Query.GTE("StatusDate", from), Query.LTE("StatusDate", to)));
            }
            else
            {
                query = Query.And(Query.GTE("StatusDate", from), Query.LTE("StatusDate", to));
            }

            switch (eo)
            {
            case EntryOrderBy.StatusDateAscending:

                //return col.Find(
                //    Query.And(
                //        Query.All("StatusDate")
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q1 = Query.All("StatusDate");
                q1.Where.Add(query);

                return(col.Find(
                           q1
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.StatusDateDescending:

                //return col.Find(
                //    Query.And(
                //        Query.All("StatusDate", Query.Descending)
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q2 = Query.All("StatusDate", Query.Descending);
                q2.Where.Add(query);

                return(col.Find(
                           q2
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.WorkflowIdAscending:

                //return col.Find(
                //    Query.And(
                //        Query.All("WorkflowId")
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q3 = Query.All("WorkflowId");
                q3.Where.Add(query);

                return(col.Find(
                           q3
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.WorkflowIdDescending:

                //return col.Find(
                //    Query.And(
                //        Query.All("WorkflowId", Query.Descending)
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q4 = Query.All("WorkflowId", Query.Descending);
                q4.Where.Add(query);

                return(col.Find(
                           q4
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.NameAscending:

                //return col.Find(
                //    Query.And(
                //        Query.All("Name")
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q5 = Query.All("Name");
                q5.Where.Add(query);

                return(col.Find(
                           q5
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.NameDescending:

                //return col.Find(
                //    Query.And(
                //        Query.All("Name", Query.Descending)
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q6 = Query.All("Name", Query.Descending);
                q6.Where.Add(query);

                return(col.Find(
                           q6
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.LaunchTypeAscending:

                //return col.Find(
                //    Query.And(
                //        Query.All("LaunchType")
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q7 = Query.All("LaunchType");
                q7.Where.Add(query);

                return(col.Find(
                           q7
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.LaunchTypeDescending:

                //return col.Find(
                //    Query.And(
                //        Query.All("LaunchType", Query.Descending)
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q8 = Query.All("LaunchType", Query.Descending);
                q8.Where.Add(query);

                return(col.Find(
                           q8
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.DescriptionAscending:

                //return col.Find(
                //    Query.And(
                //        Query.All("Description")
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q9 = Query.All("Description");
                q9.Where.Add(query);

                return(col.Find(
                           q9
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.DescriptionDescending:

                //return col.Find(
                //    Query.And(
                //        Query.All("Description", Query.Descending)
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q10 = Query.All("Description", Query.Descending);
                q10.Where.Add(query);

                return(col.Find(
                           q10
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.StatusAscending:

                //return col.Find(
                //    Query.And(
                //        Query.All("Status")
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q11 = Query.All("Status");
                q11.Where.Add(query);

                return(col.Find(
                           q11
                           , skip
                           , entriesCount
                           ));

            case EntryOrderBy.StatusDescending:

                //return col.Find(
                //    Query.And(
                //        Query.All("Status", Query.Descending)
                //        , query
                //    )
                //    , skip
                //    , entriesCount
                //);

                var q12 = Query.All("Status", Query.Descending);
                q12.Where.Add(query);

                return(col.Find(
                           q12
                           , skip
                           , entriesCount
                           ));
            }

            return(new Entry[] { });
        }