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>())); } }
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)); }
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)); } }
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)); } }
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)); } }
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)); } }
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)); } }
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(); }
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)); } }
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)); } }
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(); }
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); }
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)); } }
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))); } }
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); } }
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(); } }
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(); } }
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)))); } }
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)); } }
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(); } }
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); } }
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); } }
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); } }
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(); } }
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); } }
public override void SetUp() { base.SetUp(); mAdminSecurityContext = ManagedAccount.GetAdminSecurityContext(Session); }