public static QueryTypeEnum ToQueryType(this string src)
        {
            QueryTypeEnum type;

            QueryTypeEnum.TryParse(src, out type);
            return(type);
        }
Esempio n. 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="QasParamsImpl"/> class.
 /// </summary>
 /// <param name="query">The query.</param>
 /// <param name="type">The type.</param>
 /// <param name="maxResultCount">The max result count.</param>
 /// <param name="minRelevance">The min relevance.</param>
 public QasParams(string query, QueryTypeEnum type, int maxResultCount, double minRelevance)
 {
     Query          = query;
     QasQueryType   = type;
     MaxResultCount = maxResultCount;
     MinRelevance   = minRelevance;
 }
Esempio n. 3
0
 public void Update(string Query, QueryTypeEnum Type, DateTime MaxAge)
 {
     if (!_BackgroundWorker.IsBusy)
     {
         _BackgroundWorker.RunWorkerAsync(new WorkerParam
         {
             Query  = Query,
             Type   = Type,
             MaxAge = MaxAge
         });
     }
 }
Esempio n. 4
0
 protected static string GetUrlPartFromEnum(QueryTypeEnum Enum)
 {
     switch (Enum)
     {
         case QueryTypeEnum.Character:
             return "player";
         case QueryTypeEnum.Alliance:
             return "alliance";
         case QueryTypeEnum.Corporation:
             return "corp";
         default:
             return "player";
     }
 }
Esempio n. 5
0
        private List <Kill> ParseAllData(string Query, QueryTypeEnum Type, DateTime MaxAge)
        {
            ReportProgress("Downloading killmail pages");
            Document = DownloadDocument(KillBoardUrl(Query, Type, true, 1));

            var KillTime = GetKillTimes();

            for (int i = 2; i <= Pages; i++)
            {
                if (Worker.CancellationPending)
                {
                    WorkEventArgs.Cancel = true;
                    return(new List <Kill>());
                }

                if (KillTime[KillTime.Count - 1].Time < MaxAge)
                {
                    break;
                }
                Document = DownloadDocument(KillBoardUrl(Query, Type, true, i));

                KillTime.AddRange(GetKillTimes());
            }

            ReportProgress("Downloading lossmail pages");
            Document = DownloadDocument(KillBoardUrl(Query, Type, false, 1));
            KillTime.AddRange(GetKillTimes());

            for (int i = 2; i <= Pages; i++)
            {
                if (Worker.CancellationPending)
                {
                    WorkEventArgs.Cancel = true;
                    return(new List <Kill>());
                }

                if (KillTime[KillTime.Count - 1].Time < MaxAge)
                {
                    break;
                }
                Document = DownloadDocument(KillBoardUrl(Query, Type, false, i));
                KillTime.AddRange(GetKillTimes());
            }

            var result = ParseKillMails(KillTime);

            return(result);
        }
Esempio n. 6
0
        public override List <Kill> GetKillMails(string Query, QueryTypeEnum Type, DateTime MaxAge)
        {
            var kills = new List <Kill>();

            try
            {
                kills = ParseAllData(Query, Type, MaxAge);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                Log.Error(ex.StackTrace);
            }

            return(kills);
        }
Esempio n. 7
0
        public override List<Kill> GetKillMails(string Query, QueryTypeEnum Type, DateTime MaxAge)
        {
            var kills = new List<Kill>();

            try
            {
                kills = ParseAllData(Query, Type, MaxAge);
            }
            catch(Exception ex)
            {
                Log.Error(ex.Message);
                Log.Error(ex.StackTrace);
            }

            return kills;
        }
Esempio n. 8
0
        /// <summary>
        /// Returns a list of all players in db matching Query/Type
        /// </summary>
        /// <param name="Query"></param>
        /// <param name="Type"></param>
        /// <param name="FromDate"></param>
        /// <returns></returns>
        public List <Player> GetPilots(string Query, QueryTypeEnum Type, DateTime FromDate)
        {
            switch (Type)
            {
            case QueryTypeEnum.Alliance:
                return(GetAlliancePilots(Query, FromDate));

            case QueryTypeEnum.Corporation:
                return(GetCorporationPilots(Query, FromDate));

            case QueryTypeEnum.Character:
                return(GetCharacter(Query, FromDate));

            default:
                return(new List <Player>());
            }
        }
Esempio n. 9
0
        protected static string GetUrlPartFromEnum(QueryTypeEnum Enum)
        {
            switch (Enum)
            {
            case QueryTypeEnum.Character:
                return("player");

            case QueryTypeEnum.Alliance:
                return("alliance");

            case QueryTypeEnum.Corporation:
                return("corp");

            default:
                return("player");
            }
        }
Esempio n. 10
0
        /// <summary>
        /// Updates db with new killmails from battleclinic
        /// </summary>
        /// <param name="Query"></param>
        /// <param name="Type"></param>
        /// <param name="MaxAge"></param>
        /// <param name="worker"></param>
        /// <param name="workEventArgs"></param>
        /// <returns></returns>
        public bool UpdateData(string Query, QueryTypeEnum Type, DateTime MaxAge, BackgroundWorker worker,
                               DoWorkEventArgs workEventArgs)
        {
            //TODO: Add support for other parsers
            try
            {
                Worker = worker;
                _WorkEventArgs = workEventArgs;
                var bcp = new BattleClinicParser(worker, workEventArgs);
                List<Kill> Kills = bcp.GetKillMails(Query, Type, MaxAge);

                StoreKills(Kills);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                Log.Error(ex.StackTrace);                
                return false;
            }
            return true;
        }
Esempio n. 11
0
        /// <summary>
        /// Updates db with new killmails from battleclinic
        /// </summary>
        /// <param name="Query"></param>
        /// <param name="Type"></param>
        /// <param name="MaxAge"></param>
        /// <param name="worker"></param>
        /// <param name="workEventArgs"></param>
        /// <returns></returns>
        public bool UpdateData(string Query, QueryTypeEnum Type, DateTime MaxAge, BackgroundWorker worker,
                               DoWorkEventArgs workEventArgs)
        {
            //TODO: Add support for other parsers
            try
            {
                Worker         = worker;
                _WorkEventArgs = workEventArgs;
                var         bcp   = new BattleClinicParser(worker, workEventArgs);
                List <Kill> Kills = bcp.GetKillMails(Query, Type, MaxAge);

                StoreKills(Kills);
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                Log.Error(ex.StackTrace);
                return(false);
            }
            return(true);
        }
Esempio n. 12
0
 public void Search(string Query, QueryTypeEnum Type, DateTime FromDate)
 {
     CurrentPlayers = new ObservableCollection <Player>(_repository.GetPilots(Query, Type, FromDate));
     View.tiSearchResults.Focus();
 }
        protected override Expression VisitMethodCall(MethodCallExpression m)
        {
            #region Method On Querable
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "Take")
            {
                Limit = (int)((m.Arguments[1] as ConstantExpression).Value);
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) &&
                (m.Method.Name == "First" || m.Method.Name == "FirstOrDefault" ||
                 m.Method.Name == "Single" || m.Method.Name == "SingleOrDefault"))
            {
                QueryType = (QueryTypeEnum)Enum.Parse(typeof(QueryTypeEnum), m.Method.Name);
                Limit = 2;
                if (m.Arguments.Count > 1)
                {
                    WhereExpression.Insert(0, (this.Visit(m.Arguments[1]) as ConstantExpression).Value.ToString());
                }
                this.Visit(m.Arguments[0]);
            }

            if (m.Method.DeclaringType == typeof(Queryable) && (m.Method.Name == "Any" || m.Method.Name == "Count"))
            {
                QueryType = (QueryTypeEnum)Enum.Parse(typeof(QueryTypeEnum), m.Method.Name);
                if (m.Arguments.Count > 1)
                {
                    WhereExpression.Insert(0, (this.Visit(m.Arguments[1]) as ConstantExpression).Value.ToString());
                }
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "Select")
            {
                this.Visit(m.Arguments[1]);
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "Where")
            {
                WhereExpression.Insert(0, (this.Visit(m.Arguments[1]) as ConstantExpression).Value.ToString());
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "OrderBy")
            {
                var result = this.Visit(m.Arguments[1]) as ConstantExpression;
                if (result != null)
                {
                    OrderByExpression.Insert(0, result.Value.ToString());
                }
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "OrderByDescending")
            {
                var result = this.Visit(m.Arguments[1]) as ConstantExpression;
                if (result != null)
                {
                    OrderByExpression.Insert(0, result.Value.ToString() + " DESC");
                }
                this.Visit(m.Arguments[0]);
            }
            #endregion

            #region Method On TSource
            if (m.Method.DeclaringType == typeof(string) && m.Method.Name == "Contains")
            {
                var result = string.Format("{0} LIKE '%{1}%'",
                          (this.Visit(m.Object) as ConstantExpression).Value.ToString(),
                          (this.Visit(m.Arguments[0]) as ConstantExpression).Value.ToString().Trim('\''));
                WhereExpression.Add(result);
            }
            if (m.Method.DeclaringType == typeof(string) && m.Method.Name == "StartsWith")
            {
                var result = string.Format("{0} LIKE '{1}%'",
                          (this.Visit(m.Object) as ConstantExpression).Value.ToString(),
                          (this.Visit(m.Arguments[0]) as ConstantExpression).Value.ToString().Trim('\''));
                WhereExpression.Add(result);
            }
            if (m.Method.DeclaringType == typeof(string) && m.Method.Name == "EndsWith")
            {
                var result = string.Format("{0} LIKE '%{1}'",
                          (this.Visit(m.Object) as ConstantExpression).Value.ToString(),
                          (this.Visit(m.Arguments[0]) as ConstantExpression).Value.ToString().Trim('\''));
                WhereExpression.Add(result);
            }
            #endregion

            return m;
        }
 private void Add(QueryTypeEnum queryType, string queryPart)
 {
     _queryStack.AddLast(new QueryPart { QueryType = queryType, QueryString = queryPart });
 }
Esempio n. 15
0
 public override List <Kill> GetKillMails(string Query, QueryTypeEnum Type, DateTime MaxAge)
 {
     throw new NotImplementedException();
 }
Esempio n. 16
0
 public REST(string endPoint, QueryTypeEnum queryMethod)
 {
     this.endPoint    = endPoint;
     this.queryMethod = queryMethod;
 }
Esempio n. 17
0
 private static string KillBoardUrl(string Query, QueryTypeEnum Type, bool Kills, int Page)
 {
     return(String.Format(KillBoardUrlBase, GetUrlPartFromEnum(Type),
                          Query, (Kills ? "kills" : "losses"), Page));
 }
Esempio n. 18
0
 public abstract List <Kill> GetKillMails(string Query, QueryTypeEnum Type, DateTime MaxAge);
Esempio n. 19
0
        private List<Kill> ParseAllData(string Query, QueryTypeEnum Type, DateTime MaxAge)
        {
            ReportProgress("Downloading killmail pages");
            Document = DownloadDocument(KillBoardUrl(Query, Type, true, 1));

            var KillTime = GetKillTimes();

            for (int i = 2; i <= Pages; i++ )
            {
                if(Worker.CancellationPending)
                {
                    WorkEventArgs.Cancel = true;
                    return new List<Kill>();
                }

                if (KillTime[KillTime.Count - 1].Time < MaxAge)
                    break;
                Document = DownloadDocument(KillBoardUrl(Query, Type, true, i));

                KillTime.AddRange(GetKillTimes());
            }

            ReportProgress("Downloading lossmail pages");
            Document = DownloadDocument(KillBoardUrl(Query, Type, false, 1));
            KillTime.AddRange(GetKillTimes());

            for (int i = 2; i <= Pages; i++)
            {
                if (Worker.CancellationPending)
                {
                    WorkEventArgs.Cancel = true;
                    return new List<Kill>();
                }

                if (KillTime[KillTime.Count - 1].Time < MaxAge)
                    break;
                Document = DownloadDocument(KillBoardUrl(Query, Type, false, i));
                KillTime.AddRange(GetKillTimes());
            }

            var result = ParseKillMails(KillTime);

            return result;
        }
Esempio n. 20
0
 public virtual int GetFavoriteQueriesCount(long?labelId, BookTypeEnum bookTypeEnum, QueryTypeEnum queryTypeEnum, string filterByTitle, int userId)
 {
     using (var session = GetSession())
     {
         var query = CreateFavoriteQueriesQuery(session, labelId, bookTypeEnum, queryTypeEnum, filterByTitle, userId);
         return(query.RowCount());
     }
 }
Esempio n. 21
0
        public virtual IList <FavoriteQuery> GetFavoriteQueries(long?labelId, BookTypeEnum bookTypeEnum, QueryTypeEnum queryTypeEnum, string filterByTitle, int start, int count, int userId)
        {
            FavoriteLabel favoriteLabelAlias = null;

            using (var session = GetSession())
            {
                var query = CreateFavoriteQueriesQuery(session, labelId, bookTypeEnum, queryTypeEnum, filterByTitle, userId);

                return(query.JoinAlias(x => x.FavoriteLabel, () => favoriteLabelAlias)
                       .Fetch(x => x.FavoriteLabel).Eager
                       .Fetch(x => x.BookType).Eager
                       .OrderBy(x => x.Title).Asc
                       .OrderBy(() => favoriteLabelAlias.Name).Asc
                       .Skip(start)
                       .Take(count)
                       .List());
            }
        }
Esempio n. 22
0
        private IQueryOver <FavoriteQuery, FavoriteQuery> CreateFavoriteQueriesQuery(ISession session, long?labelId, BookTypeEnum bookTypeEnum, QueryTypeEnum queryTypeEnum, string filterByTitle, int userId)
        {
            FavoriteQuery favoriteQueryAlias = null;
            BookType      bookTypeAlias      = null;

            var query = session.QueryOver(() => favoriteQueryAlias)
                        .JoinAlias(() => favoriteQueryAlias.BookType, () => bookTypeAlias)
                        .Where(() => bookTypeAlias.Type == bookTypeEnum && favoriteQueryAlias.QueryType == queryTypeEnum && favoriteQueryAlias.User.Id == userId);

            if (labelId != null)
            {
                query.And(() => favoriteQueryAlias.FavoriteLabel.Id == labelId.Value);
            }
            if (!string.IsNullOrEmpty(filterByTitle))
            {
                query.AndRestrictionOn(() => favoriteQueryAlias.Title).IsLike(filterByTitle, MatchMode.Anywhere);
            }

            return(query);
        }
Esempio n. 23
0
 private static string KillBoardUrl(string Query, QueryTypeEnum Type)
 {
     return(KillBoardUrl(Query, Type, true, 1));
 }
Esempio n. 24
0
        /// <summary>
        /// 添加对象
        /// </summary>
        /// <param name="entities"></param>
        /// <param name="MemberName">成员名称</param>
        /// <param name="MemberValue">成员值</param>
        /// <param name="MemberBelong">成员所属表 t,a,b等</param>
        /// <param name="MemberType">成员数据对象</param>
        /// <param name="qte">成员条件类型</param>
        public static void AddMember(this List <DBMemberEntity> entities, string MemberName, object MemberValue, QueryTypeEnum qte = QueryTypeEnum.equal, string MemberBelong = null, DbType MemberType = DbType.String)
        {
            DBMemberEntity entity = new DBMemberEntity()
            {
                MemberName   = MemberName,
                MemberType   = MemberType,
                MemberValue  = MemberValue,
                QueryType    = qte,
                MemberBelong = MemberBelong
            };

            entities.Add(entity);
        }
        protected override Expression VisitMethodCall(MethodCallExpression m)
        {
            #region Method On Querable
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "Take")
            {
                Limit = (int)((m.Arguments[1] as ConstantExpression).Value);
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) &&
                (m.Method.Name == "First" || m.Method.Name == "FirstOrDefault" ||
                 m.Method.Name == "Single" || m.Method.Name == "SingleOrDefault"))
            {
                QueryType = (QueryTypeEnum)Enum.Parse(typeof(QueryTypeEnum), m.Method.Name);
                Limit     = 2;
                if (m.Arguments.Count > 1)
                {
                    WhereExpression.Insert(0, (this.Visit(m.Arguments[1]) as ConstantExpression).Value.ToString());
                }
                this.Visit(m.Arguments[0]);
            }

            if (m.Method.DeclaringType == typeof(Queryable) && (m.Method.Name == "Any" || m.Method.Name == "Count"))
            {
                QueryType = (QueryTypeEnum)Enum.Parse(typeof(QueryTypeEnum), m.Method.Name);
                if (m.Arguments.Count > 1)
                {
                    WhereExpression.Insert(0, (this.Visit(m.Arguments[1]) as ConstantExpression).Value.ToString());
                }
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "Select")
            {
                this.Visit(m.Arguments[1]);
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "Where")
            {
                WhereExpression.Insert(0, (this.Visit(m.Arguments[1]) as ConstantExpression).Value.ToString());
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "OrderBy")
            {
                var result = this.Visit(m.Arguments[1]) as ConstantExpression;
                if (result != null)
                {
                    OrderByExpression.Insert(0, result.Value.ToString());
                }
                this.Visit(m.Arguments[0]);
            }
            if (m.Method.DeclaringType == typeof(Queryable) && m.Method.Name == "OrderByDescending")
            {
                var result = this.Visit(m.Arguments[1]) as ConstantExpression;
                if (result != null)
                {
                    OrderByExpression.Insert(0, result.Value.ToString() + " DESC");
                }
                this.Visit(m.Arguments[0]);
            }
            #endregion

            #region Method On TSource
            if (m.Method.DeclaringType == typeof(string) && m.Method.Name == "Contains")
            {
                var result = string.Format("{0} LIKE '%{1}%'",
                                           (this.Visit(m.Object) as ConstantExpression).Value.ToString(),
                                           (this.Visit(m.Arguments[0]) as ConstantExpression).Value.ToString().Trim('\''));
                WhereExpression.Add(result);
            }
            if (m.Method.DeclaringType == typeof(string) && m.Method.Name == "StartsWith")
            {
                var result = string.Format("{0} LIKE '{1}%'",
                                           (this.Visit(m.Object) as ConstantExpression).Value.ToString(),
                                           (this.Visit(m.Arguments[0]) as ConstantExpression).Value.ToString().Trim('\''));
                WhereExpression.Add(result);
            }
            if (m.Method.DeclaringType == typeof(string) && m.Method.Name == "EndsWith")
            {
                var result = string.Format("{0} LIKE '%{1}'",
                                           (this.Visit(m.Object) as ConstantExpression).Value.ToString(),
                                           (this.Visit(m.Arguments[0]) as ConstantExpression).Value.ToString().Trim('\''));
                WhereExpression.Add(result);
            }
            #endregion

            return(m);
        }
Esempio n. 26
0
 private static string KillBoardUrl(string Query, QueryTypeEnum Type)
 {
     return KillBoardUrl(Query, Type, true, 1);
 }
Esempio n. 27
0
 private MatchQueryBase GenerateMatchQuery(QueryTypeEnum type)
 {
     if (type.ImplementationType == typeof(MatchQuery))
         return new MatchQuery();
     else if (type.ImplementationType == typeof(MatchPhraseQuery))
         return new MatchPhraseQuery();
     else if (type.ImplementationType == typeof(MatchPhrasePrefixQuery))
         return new MatchPhrasePrefixQuery();
     else
         throw new Exception("Don't know what type of match query to create.");
 }
 public static List <string> GetAllQueryType(this QueryTypeEnum src)
 {
     return(Enum.GetNames(typeof(QueryTypeEnum)).ToList());
 }
Esempio n. 29
0
        public virtual ListWithTotalCountResult <FavoriteQuery> GetFavoriteQueries(long?labelId, BookTypeEnum bookTypeEnum, QueryTypeEnum queryTypeEnum, string filterByTitle, int start, int count, int userId)
        {
            FavoriteQuery favoriteQueryAlias = null;
            FavoriteLabel favoriteLabelAlias = null;
            BookType      bookTypeAlias      = null;

            var query = GetSession().QueryOver(() => favoriteQueryAlias)
                        .JoinAlias(() => favoriteQueryAlias.FavoriteLabel, () => favoriteLabelAlias)
                        .JoinAlias(() => favoriteQueryAlias.BookType, () => bookTypeAlias)
                        .Where(() => bookTypeAlias.Type == bookTypeEnum && favoriteQueryAlias.QueryType == queryTypeEnum && favoriteLabelAlias.User.Id == userId)
                        .Fetch(SelectMode.Fetch, x => x.FavoriteLabel)
                        .Fetch(SelectMode.Fetch, x => x.BookType)
                        .OrderBy(x => x.Title).Asc
                        .OrderBy(() => favoriteLabelAlias.Name).Asc;

            if (labelId != null)
            {
                query.And(() => favoriteQueryAlias.FavoriteLabel.Id == labelId.Value);
            }

            if (!string.IsNullOrEmpty(filterByTitle))
            {
                filterByTitle = EscapeQuery(filterByTitle);
                query.AndRestrictionOn(() => favoriteQueryAlias.Title).IsLike(filterByTitle, MatchMode.Anywhere);
            }

            var list = query.Skip(start)
                       .Take(count)
                       .Future();

            var totalCount = query.ToRowCountQuery()
                             .FutureValue <int>();

            return(new ListWithTotalCountResult <FavoriteQuery>
            {
                List = list.ToList(),
                Count = totalCount.Value,
            });
        }
Esempio n. 30
0
        /// <summary>
        /// Returns a list of all players in db matching Query/Type
        /// </summary>
        /// <param name="Query"></param>
        /// <param name="Type"></param>
        /// <param name="FromDate"></param>
        /// <returns></returns>
        public List<Player> GetPilots(string Query, QueryTypeEnum Type, DateTime FromDate)
        {
            switch (Type)
            {
                case QueryTypeEnum.Alliance:
                    return GetAlliancePilots(Query, FromDate);

                case QueryTypeEnum.Corporation:
                    return GetCorporationPilots(Query, FromDate);

                case QueryTypeEnum.Character:
                    return GetCharacter(Query, FromDate);

                default:
                    return new List<Player>();
            }
        }
Esempio n. 31
0
 public abstract List<Kill> GetKillMails(string Query, QueryTypeEnum Type, DateTime MaxAge);
Esempio n. 32
0
 private static string KillBoardUrl(string Query, QueryTypeEnum Type, bool Kills, int Page)
 {
     return String.Format(KillBoardUrlBase, GetUrlPartFromEnum(Type),
         Query, (Kills ? "kills" : "losses"), Page);
 }
Esempio n. 33
0
 public override List<Kill> GetKillMails(string Query, QueryTypeEnum Type, DateTime MaxAge)
 {
     throw new NotImplementedException();
 }