Example #1
0
    public int GetCachedCollectionCount <TransitType>(
        string invoke, string ticket, WebServiceQueryOptions options)
    {
        try
        {
            string key = string.Format("{0}:{1}:{2}",
                                       string.IsNullOrEmpty(ticket) ? 0 : ticket.GetHashCode(),
                                       options == null ? 0 : options.GetHashCode(),
                                       invoke);

            object count = Cache[key];

            if (count == null || IsAdministrator)
            {
                object[] args = { ticket, options };
                count = BlogService.GetType().GetMethod(invoke).Invoke(BlogService, args);
                Cache.Insert(key, count, GetTransitTypeCacheDependency <TransitType>(), DateTime.Now.AddMinutes(10), TimeSpan.Zero);
            }

            return((int)count);
        }
        catch (Exception ex)
        {
            throw new Exception(string.Format("{0}: {1}", invoke, ex.Message), ex);
        }
    }
Example #2
0
        public List<TransitComment> GetComments(string ticket, WebServiceQueryOptions options)
        {
            using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
            {
                ISession session = DBlog.Data.Hibernate.Session.Current;

                ICriteria cr = session.CreateCriteria(typeof(Comment));

                if (options != null)
                {
                    options.Apply(cr);
                }

                IList<Comment> list = cr.List<Comment>();

                List<TransitComment> result = new List<TransitComment>(list.Count);

                foreach (Comment obj in list)
                {
                    result.Add(new TransitComment(session, obj, ticket));
                }

                return result;
            }
        }
Example #3
0
 public int GetAssociatedCommentsCount(string ticket, WebServiceQueryOptions options)
 {
     return GetCommentsCount(ticket, options);
 }
Example #4
0
 public int GetBrowsersCount(string ticket, WebServiceQueryOptions options)
 {
     using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
     {
         ISession session = DBlog.Data.Hibernate.Session.Current;
         CountQuery query = new CountQuery(session, typeof(DBlog.Data.Browser), "Browser");
         if (options != null) options.Apply(query);
         return query.Execute<int>();
     }
 }
Example #5
0
 public int GetReferrerSearchQueriesCount(string ticket, WebServiceQueryOptions options)
 {
     using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
     {
         ISession session = DBlog.Data.Hibernate.Session.Current;
         return new CountQuery(session, typeof(DBlog.Data.ReferrerSearchQuery), "ReferrerSearchQuery").Execute<int>();
     }
 }
Example #6
0
        public List<TransitAssociatedComment> GetAssociatedComments(string ticket, WebServiceQueryOptions options)
        {
            using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
            {
                ISession session = DBlog.Data.Hibernate.Session.Current;
                IQuery sqlquery = session.GetNamedQuery("GetAssociatedComments");

                //if (options != null)
                //{
                //    options.Apply(sqlquery);
                //}

                IList<AssociatedComment> list = sqlquery.List<AssociatedComment>();

                List<TransitAssociatedComment> result = new List<TransitAssociatedComment>(list.Count);
                if (options == null) options = new WebServiceQueryOptions(list.Count, 0);
                for (int i = 0; i < options.PageSize; i++)
                {
                    int index = options.FirstResult + i;
                    if (index >= list.Count)
                        break;

                    result.Add(new TransitAssociatedComment(session, list[index], ticket));
                }

                return result;
            }
        }
Example #7
0
        public List<TransitReferrerSearchQuery> GetReferrerSearchQueries(string ticket, WebServiceQueryOptions options)
        {
            using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
            {
                ISession session = DBlog.Data.Hibernate.Session.Current;

                ICriteria cr = session.CreateCriteria(typeof(ReferrerSearchQuery))
                    .AddOrder(Order.Desc("RequestCount"));

                if (options != null)
                {
                    options.Apply(cr);
                }

                IList<ReferrerSearchQuery> list = cr.List<ReferrerSearchQuery>();

                List<TransitReferrerSearchQuery> result = new List<TransitReferrerSearchQuery>(list.Count);

                foreach (ReferrerSearchQuery obj in list)
                {
                    result.Add(new TransitReferrerSearchQuery(obj));
                }

                return result;
            }
        }
Example #8
0
        public List<TransitReferrerHostRollup> GetReferrerHostRollups(string ticket, WebServiceQueryOptions options)
        {
            using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
            {
                ISession session = DBlog.Data.Hibernate.Session.Current;

                ICriteria cr = session.CreateCriteria(typeof(ReferrerHostRollup));

                if (options != null)
                {
                    options.Apply(cr);
                }

                IList<ReferrerHostRollup> list = cr.List <ReferrerHostRollup>();

                List<TransitReferrerHostRollup> result = new List<TransitReferrerHostRollup>(list.Count);

                foreach (ReferrerHostRollup obj in list)
                {
                    result.Add(new TransitReferrerHostRollup(obj));
                }

                return result;
            }
        }
Example #9
0
 public int GetLoginsCount(string ticket, WebServiceQueryOptions options)
 {
     using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
     {
         ISession session = DBlog.Data.Hibernate.Session.Current;
         CheckAdministrator(session, ticket);
         CountQuery query = new CountQuery(session, typeof(DBlog.Data.Login), "Login");
         if (options != null) options.Apply(query);
         return query.Execute<int>();
     }
 }
Example #10
0
        public List<TransitLogin> GetLogins(string ticket, WebServiceQueryOptions options)
        {
            using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
            {
                ISession session = DBlog.Data.Hibernate.Session.Current;
                CheckAdministrator(session, ticket);

                ICriteria cr = session.CreateCriteria(typeof(Login));

                if (options != null)
                {
                    options.Apply(cr);
                }

                IList<Login> list = cr.List<Login>();

                List<TransitLogin> result = new List<TransitLogin>(list.Count);

                foreach (Login obj in list)
                {
                    result.Add(new TransitLogin(obj));
                }

                return result;
            }
        }
Example #11
0
        public List<TransitHighlight> GetHighlights(string ticket, WebServiceQueryOptions options)
        {
            using (DBlog.Data.Hibernate.Session.OpenConnection(GetNewConnection()))
            {
                ISession session = DBlog.Data.Hibernate.Session.Current;

                ICriteria cr = session.CreateCriteria(typeof(Highlight));

                if (options != null)
                {
                    options.Apply(cr);
                }

                cr.AddOrder(Order.Asc("Position"));

                IList<Highlight> list = cr.List<Highlight>();

                List<TransitHighlight> result = new List<TransitHighlight>(list.Count);

                foreach (Highlight obj in list)
                {
                    result.Add(new TransitHighlight(obj));
                }

                return result;
            }
        }