Beispiel #1
0
        public List <TransitNeighborhood> GetNeighborhoodsByLocation(string ticket, string country, string state, string city, ServiceQueryOptions options)
        {
            using (SnCore.Data.Hibernate.Session.OpenConnection())
            {
                ISession session = SnCore.Data.Hibernate.Session.Current;
                ManagedSecurityContext     sec    = new ManagedSecurityContext(session, ticket);
                List <TransitNeighborhood> result = new List <TransitNeighborhood>();

                if (string.IsNullOrEmpty(city) || string.IsNullOrEmpty(country))
                {
                    return(result);
                }

                City t_city = ManagedCity.Find(session, city, state, country);

                ICriteria cr = session.CreateCriteria(typeof(Neighborhood))
                               .Add(Expression.Eq("City.Id", t_city.Id));

                if (options != null)
                {
                    cr.SetFirstResult(options.FirstResult);
                    cr.SetMaxResults(options.PageSize);
                }

                return(WebServiceImpl <TransitNeighborhood, ManagedNeighborhood, Neighborhood> .GetTransformedList(
                           session, sec, cr.List <Neighborhood>()));
            }
        }
Beispiel #2
0
        private static TransitType GetTransformedInstanceFromId(ISession session, ManagedSecurityContext sec, int id)
        {
            ManagedType m_instance = new ManagedType();

            m_instance.LoadInstance(session, id);
            return((TransitType)m_instance.GetTransitServiceInstance(sec));
        }
Beispiel #3
0
 public static TransitType GetByCriterion(string ticket, ICriterion[] criterions, int max)
 {
     try
     {
         using (SnCore.Data.Hibernate.Session.OpenConnection())
         {
             ISession session              = SnCore.Data.Hibernate.Session.Current;
             ManagedSecurityContext sec    = new ManagedSecurityContext(session, ticket);
             ManagedType            m_type = new ManagedType();
             ICriteria criteria            = session.CreateCriteria(typeof(DataType));
             if (max > 0)
             {
                 criteria.SetMaxResults(max);
             }
             if (criterions != null)
             {
                 foreach (ICriterion criterion in criterions)
                 {
                     criteria.Add(criterion);
                 }
             }
             DataType instance = criteria.UniqueResult <DataType>();
             if (instance == null)
             {
                 return(default(TransitType));
             }
             m_type.SetDbObjectInstance(session, instance);
             return((TransitType)m_type.GetTransitServiceInstance(sec));
         }
     }
     catch (ObjectNotFoundException)
     {
         return(default(TransitType));
     }
 }
Beispiel #4
0
 public static List <TransitType> GetList(string ticket, ServiceQueryOptions options, ICriterion[] expressions, Order[] orders, GetTransformedInstanceDelegate functor)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session           = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket);
         ICriteria criteria         = session.CreateCriteria(typeof(DataType));
         // optional criterion expressions
         if (expressions != null)
         {
             foreach (ICriterion criterion in expressions)
             {
                 criteria.Add(criterion);
             }
         }
         // options orders
         if (orders != null)
         {
             foreach (Order order in orders)
             {
                 criteria.AddOrder(order);
             }
         }
         // query options
         if (options != null && options.PageSize > 0)
         {
             criteria.SetMaxResults(options.PageSize);
         }
         if (options != null && options.FirstResult > 0)
         {
             criteria.SetFirstResult(options.FirstResult);
         }
         return(GetTransformedList(session, sec, criteria.List <DataType>(), functor));
     }
 }
Beispiel #5
0
        public TransitPicture GetRandomPictureByType(string ticket, string type)
        {
            using (SnCore.Data.Hibernate.Session.OpenConnection())
            {
                ISession session                   = SnCore.Data.Hibernate.Session.Current;
                ManagedSecurityContext sec         = new ManagedSecurityContext(session, ticket);
                PictureType            picturetype = ManagedPictureType.Find(session, type);

                if (picturetype == null)
                {
                    return(null);
                }

                IList <Picture> list = session.CreateCriteria(typeof(Picture))
                                       .Add(Expression.Eq("Type.Id", picturetype.Id))
                                       .List <Picture>();

                if (list.Count == 0)
                {
                    return(null);
                }

                ManagedPicture m_instance = new ManagedPicture();
                m_instance.SetInstance(session, list[new Random().Next() % list.Count]);
                return(m_instance.GetTransitInstance(sec));
            }
        }
Beispiel #6
0
 public void RunDeleteOldEmailConfirmations(ISession session, ManagedSecurityContext sec)
 {
     session.Delete(string.Format(
                        "FROM AccountEmailConfirmation AccountEmailConfirmation" +
                        " WHERE AccountEmailConfirmation.AccountEmail.Verified = 1" +
                        " AND (AccountEmailConfirmation.Modified < '{0}')", DateTime.UtcNow.AddDays(-7).ToString(DateTimeFormatInfo.InvariantInfo)));
     session.Flush();
 }
 public void RunCleanupMedia(ISession session, ManagedSecurityContext sec)
 {
     session.Delete(string.Format(
                        "FROM AccountFeedItemMedia media " +
                        " WHERE media.Modified < '{0}'", DateTime.UtcNow.AddMonths(-1).ToString(
                            DateTimeFormatInfo.InvariantInfo)));
     session.Flush();
 }
        public void TestCleanupStaleAccounts_1()
        {
            ManagedSecurityContext sec = ManagedAccount.GetAdminSecurityContext(Session);
            string email = string.Format("{0}@sncore.com", Guid.NewGuid().ToString());

            // create an account with an unverified e-mail, make sure the e-mail is sent
            ManagedAccount ma = new ManagedAccount(Session);
            int            id = ma.Create("TestCleanupStaleAccounts", "password", email, DateTime.UtcNow, sec);

            bool fDeleted = false;

            try
            {
                Session.Flush();

                // get the account as is, update the login date/time to four months behind
                Account a = Session.Load <Account>(id);
                a.LastLogin = DateTime.UtcNow.AddMonths(-4);
                Session.Save(a);
                Session.Flush();

                // update the e-mail as if it was added 3 months ago
                AccountEmail e = (AccountEmail)a.AccountEmails[0];
                Assert.AreEqual(e.Created, e.Modified);
                e.Created = e.Modified = a.LastLogin;
                Session.Save(e);

                // check that the account has a single confirmation e-mail pending
                Console.WriteLine("Email dates: {0}/{1}", e.Created, e.Modified);

                service.RunCleanupStaleAccounts(Session, ManagedAccount.GetAdminSecurityContext(Session));

                Session.Refresh(e);
                Console.WriteLine("Email dates: {0}/{1}", e.Created, e.Modified);
                Assert.AreNotEqual(e.Created, e.Modified);

                // move e-mail modified date in the past -> account should be deleted
                e.Modified = e.Modified.AddMonths(-3);
                Session.Save(e);
                Session.Flush();

                service.RunCleanupStaleAccounts(Session, ManagedAccount.GetAdminSecurityContext(Session));

                a = (Account)Session.CreateCriteria(typeof(Account))
                    .Add(Expression.Eq("Id", id))
                    .UniqueResult();

                Assert.IsNull(a);
                fDeleted = true;
            }
            finally
            {
                if (!fDeleted)
                {
                    ma.Delete(sec);
                }
            }
        }
 public int GetOrCreateDiscussionId(string ticket, string typename, int id)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session           = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket);
         return(ManagedDiscussion.GetOrCreateDiscussionId(session, typename, id, sec));
     }
 }
Beispiel #10
0
 public TransitCounter GetCounterByUri(string ticket, string uri)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session           = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket);
         return(ManagedCounter.FindByUri(session, uri, sec));
     }
 }
Beispiel #11
0
 public void RunCleanupRefererHosts(ISession session, ManagedSecurityContext sec)
 {
     session.Delete(string.Format(
                        "FROM RefererHost rh " +
                        " WHERE rh.Total < 3 " +
                        " AND NOT EXISTS ( FROM RefererAccount ra WHERE ra.RefererHost = rh ) " +
                        " AND rh.Updated < '{0}'", DateTime.UtcNow.AddMonths(-1).ToString(DateTimeFormatInfo.InvariantInfo)));
     session.Flush();
 }
Beispiel #12
0
 public int GetAccountRssWatchItemsCount(string ticket, int id)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session                = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec      = new ManagedSecurityContext(session, ticket);
         ManagedAccountRssWatch rsswatch = new ManagedAccountRssWatch(session, id);
         return(rsswatch.GetSubscriptionUpdatesCount(sec));
     }
 }
Beispiel #13
0
 public int GetNDegreeCountById(string ticket, int id, int deg)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session            = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec  = new ManagedSecurityContext(session, ticket);
         ManagedAccount         acct = new ManagedAccount(session, id);
         return(acct.GetNDegreeCount(sec, deg));
     }
 }
Beispiel #14
0
 public void RunDeleteOldAccountMessages(ISession session, ManagedSecurityContext sec)
 {
     session.Delete(string.Format(
                        "FROM AccountMessage AccountMessage" +
                        " WHERE AccountMessage.AccountMessageFolder.System = 1" +
                        " AND AccountMessage.AccountMessageFolder.AccountMessageFolderParent IS NULL" +
                        " AND (AccountMessage.AccountMessageFolder.Name = 'Trash' OR AccountMessage.AccountMessageFolder.Name = 'Sent')" +
                        " AND (AccountMessage.Sent < '{0}')", DateTime.UtcNow.AddDays(-14).ToString(DateTimeFormatInfo.InvariantInfo)));
     session.Flush();
 }
Beispiel #15
0
        private static List <TransitType> GetTransformedList(ISession session, ManagedSecurityContext sec, IList <int> list)
        {
            List <TransitType> result = new List <TransitType>(list.Count);

            foreach (int id in list)
            {
                result.Add(GetTransformedInstanceFromId(session, sec, id));
            }
            return(result);
        }
Beispiel #16
0
 public string GetAccountEventVCalendarById(string ticket, int id)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session                  = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec        = new ManagedSecurityContext(session, ticket);
         ManagedAccountEvent    m_instance = new ManagedAccountEvent(session, id);
         return(m_instance.ToVCalendarString(sec));
     }
 }
Beispiel #17
0
 public string GetScheduleString(string ticket, TransitSchedule schedule, long offsetTicks)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session                  = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec        = new ManagedSecurityContext(session, ticket);
         ManagedSchedule        m_schedule = new ManagedSchedule(session, schedule.GetInstance(session, sec));
         return(m_schedule.ToString(new TimeSpan(offsetTicks)));
     }
 }
Beispiel #18
0
 public void MoveAccountEventPicture(string ticket, int id, int disp)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext     sec        = new ManagedSecurityContext(session, ticket);
         ManagedAccountEventPicture m_instance = new ManagedAccountEventPicture(session, id);
         m_instance.Move(sec, disp);
     }
 }
Beispiel #19
0
 public void MoveAccountBlogPost(string ticket, int postid, int targetid)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session            = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec  = new ManagedSecurityContext(session, ticket);
         ManagedAccountBlogPost post = new ManagedAccountBlogPost(session, postid);
         post.Move(sec, targetid);
         SnCore.Data.Hibernate.Session.Flush();
     }
 }
Beispiel #20
0
 public void DeleteCampaignAccountRecepients(string ticket, int id)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session                = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec      = new ManagedSecurityContext(session, ticket);
         ManagedCampaign        campaign = new ManagedCampaign(session, id);
         campaign.DeleteRecepients(sec);
         SnCore.Data.Hibernate.Session.Flush();
     }
 }
Beispiel #21
0
 public List <TransitConfiguration> GetConfigurations(string ticket, ServiceQueryOptions options)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session           = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket);
         return(WebServiceQueryOptions <TransitConfiguration> .Apply(options,
                                                                     WebServiceImpl <TransitConfiguration, ManagedConfiguration, Configuration> .GetTransformedList(
                                                                         session, sec, ManagedConfiguration.GetAllConfigurations(session))));
     }
 }
Beispiel #22
0
 public List <TransitDiscussionPost> GetDiscussionThreadPosts(string ticket, int id, ServiceQueryOptions options)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session                 = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext  sec      = new ManagedSecurityContext(session, ticket);
         ManagedDiscussionThread m_thread = new ManagedDiscussionThread(session, id);
         // TODO: apply options
         return(m_thread.GetDiscussionPosts(sec));
     }
 }
Beispiel #23
0
 public void MoveDiscussionThread(string ticket, int threadid, int targetid)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session               = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext  sec    = new ManagedSecurityContext(session, ticket);
         ManagedDiscussionThread thread = new ManagedDiscussionThread(session, threadid);
         thread.Move(sec, targetid);
         SnCore.Data.Hibernate.Session.Flush();
     }
 }
Beispiel #24
0
 public int MergeNeighborhoods(string ticket, int target_id, int merge_id)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session           = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket);
         ManagedNeighborhood    m   = new ManagedNeighborhood(session, target_id);
         int result = m.Merge(sec, merge_id);
         SnCore.Data.Hibernate.Session.Flush();
         return(result);
     }
 }
        public void RunEmailQueue(ISession session, ManagedSecurityContext sec)
        {
            IList emailmessages = session.CreateCriteria(typeof(AccountEmailMessage))
                                  .Add(Expression.Eq("Sent", false))
                                  .SetMaxResults(ChunkSize)
                                  .List();

            SleepInterval = emailmessages.Count >= ChunkSize ? 1 : 15;

            SmtpClient smtp = ManagedAccountEmailMessage.GetSmtpClientInstance(session);

            foreach (AccountEmailMessage m in emailmessages)
            {
                if (IsStopping)
                {
                    break;
                }

                try
                {
                    MailMessage message = ManagedAccountEmailMessage.GetMessageInstance(session, m);
                    smtp.Send(message);
                    m.Sent = true;
                    if (m.DeleteSent)
                    {
                        session.Delete(m);
                    }
                    else
                    {
                        session.Save(m);
                    }
                }
                catch (ThreadAbortException)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    if (m.Created.AddDays(1) < DateTime.UtcNow)
                    {
                        session.Delete(m);
                    }
                    else
                    {
                        m.SendError = ex.Message;
                        session.Save(m);
                    }
                }

                session.Flush();
                Thread.Sleep(1000 * InterruptInterval);
            }
        }
        public void CreateManyPlaces(int count)
        {
            Random r = new Random();
            ManagedSecurityContext sec = ManagedAccount.GetAdminSecurityContext(Session);

            // country
            TransitCountry t_country = new TransitCountry();

            t_country.Name = Guid.NewGuid().ToString();
            ManagedCountry country = new ManagedCountry(Session);

            country.CreateOrUpdate(t_country, sec);
            // state
            TransitState t_state = new TransitState();

            t_state.Name    = Guid.NewGuid().ToString();
            t_state.Country = t_country.Name;
            ManagedState state = new ManagedState(Session);

            state.CreateOrUpdate(t_state, sec);
            // city
            TransitCity t_city = new TransitCity();

            t_city.Name    = Guid.NewGuid().ToString();
            t_city.State   = t_state.Name;
            t_city.Country = t_country.Name;
            ManagedCity city = new ManagedCity(Session);

            city.CreateOrUpdate(t_city, sec);
            // place type
            TransitPlaceType t_placetype = new TransitPlaceType();

            t_placetype.Name = Guid.NewGuid().ToString();
            ManagedPlaceType placetype = new ManagedPlaceType(Session);

            placetype.CreateOrUpdate(t_placetype, sec);

            for (int i = 0; i < count; i++)
            {
                TransitPlace t_place = new TransitPlace();
                t_place.Name      = Guid.NewGuid().ToString();
                t_place.AccountId = sec.Account.Id;
                t_place.City      = t_city.Name;
                t_place.Country   = t_country.Name;
                t_place.State     = t_state.Name;
                t_place.Street    = string.Format("{0} {1} St.", r.Next(), Guid.NewGuid().ToString());
                t_place.Zip       = r.Next().ToString();
                t_place.Type      = t_placetype.Name;

                ManagedPlace place = new ManagedPlace(Session);
                place.CreateOrUpdate(t_place, sec);
            }
        }
Beispiel #27
0
 public int MergeCitiesByName(string ticket, int target_id, string name, string state, string country)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session           = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec = new ManagedSecurityContext(session, ticket);
         ManagedCity            m   = new ManagedCity(session, target_id);
         int result = m.Merge(sec, name, state, country);
         session.Flush();
         return(result);
     }
 }
Beispiel #28
0
 public int UpdateAccountFeedItemMedias(string ticket, int id)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session            = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec  = new ManagedSecurityContext(session, ticket);
         ManagedAccountFeed     feed = new ManagedAccountFeed(session, id);
         int count = feed.UpdateMedias(sec);
         SnCore.Data.Hibernate.Session.Flush();
         return(count);
     }
 }
Beispiel #29
0
 public static void Delete(string ticket, int id)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session                  = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec        = new ManagedSecurityContext(session, ticket);
         ManagedType            m_instance = new ManagedType();
         m_instance.LoadInstance(session, id);
         m_instance.Delete(sec);
         SnCore.Data.Hibernate.Session.Flush();
     }
 }
Beispiel #30
0
 public int MoveDiscussionPost(string ticket, int postid, int targetid)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session            = SnCore.Data.Hibernate.Session.Current;
         ManagedSecurityContext sec  = new ManagedSecurityContext(session, ticket);
         ManagedDiscussionPost  post = new ManagedDiscussionPost(session, postid);
         int id = post.Move(sec, targetid);
         SnCore.Data.Hibernate.Session.Flush();
         return(id);
     }
 }
Beispiel #31
0
 public override void SetUp()
 {
     base.SetUp();
     mAdminSecurityContext = ManagedAccount.GetAdminSecurityContext(Session);
 }