public void TestTryGetConfiguration()
        {
            Configuration result = null;

            Assert.IsFalse(ManagedConfiguration.TryGetConfiguration(Session, GetNewString(), out result));
            Assert.IsNull(result);
        }
Example #2
0
        public List <TransitAccountFeedItem> SearchAccountFeedItems(string ticket, string s, ServiceQueryOptions options)
        {
            if (string.IsNullOrEmpty(s))
            {
                return(new List <TransitAccountFeedItem>());
            }

            int maxsearchresults = 128;

            using (SnCore.Data.Hibernate.Session.OpenConnection())
            {
                ISession session = SnCore.Data.Hibernate.Session.Current;
                maxsearchresults = ManagedConfiguration.GetValue(session, "SnCore.MaxSearchResults", 128);
            }

            StringBuilder query = new StringBuilder();

            query.Append("SELECT {AccountFeedItem.*} FROM AccountFeedItem {AccountFeedItem}");
            query.AppendFormat(" INNER JOIN FREETEXTTABLE(AccountFeedItem, ([Title], [Description]), '{0}', {1}) as ft ", Renderer.SqlEncode(s), maxsearchresults);
            query.Append(" ON AccountFeedItem.AccountFeedItem_Id = ft.[KEY] ");
            query.Append(" ORDER BY ft.[RANK] DESC");

            return(WebServiceImpl <TransitAccountFeedItem, ManagedAccountFeedItem, AccountFeedItem> .GetList(
                       ticket, options, query.ToString(), "AccountFeedItem"));
        }
        public void TestGetValue()
        {
            string defaultvalue = GetNewString();
            string v            = ManagedConfiguration.GetValue(Session, GetNewString(), defaultvalue);

            Assert.AreEqual(v, defaultvalue);
        }
Example #4
0
        public List <TransitAccountStory> SearchAccountStories(string ticket, string s, ServiceQueryOptions options)
        {
            if (string.IsNullOrEmpty(s))
            {
                return(new List <TransitAccountStory>());
            }

            int maxsearchresults = 128;

            using (SnCore.Data.Hibernate.Session.OpenConnection())
            {
                ISession session = SnCore.Data.Hibernate.Session.Current;
                maxsearchresults = ManagedConfiguration.GetValue(session, "SnCore.MaxSearchResults", 128);
            }

            StringBuilder query = new StringBuilder();

            query.Append("SELECT {AccountStory.*} FROM AccountStory {AccountStory}");
            query.Append(" INNER JOIN FREETEXTTABLE(AccountStory, ([Name], [Summary]), '");
            query.Append(Renderer.SqlEncode(s));
            query.AppendFormat("', {0}) AS ft ", maxsearchresults);
            query.Append(" ON AccountStory.AccountStory_Id = ft.[KEY] ");
            query.Append(" WHERE AccountStory.Publish = 1");
            query.Append(" ORDER BY ft.[RANK] DESC");

            return(WebServiceImpl <TransitAccountStory, ManagedAccountStory, AccountStory> .GetList(
                       ticket, options, query.ToString(), "AccountStory"));
        }
Example #5
0
        public List <TransitDiscussionPost> SearchDiscussionPostsById(string ticket, int id, string s, ServiceQueryOptions options)
        {
            if (string.IsNullOrEmpty(s))
            {
                return(new List <TransitDiscussionPost>());
            }

            int maxsearchresults = 128;

            using (SnCore.Data.Hibernate.Session.OpenConnection())
            {
                ISession session = SnCore.Data.Hibernate.Session.Current;
                maxsearchresults = ManagedConfiguration.GetValue(session, "SnCore.MaxSearchResults", 128);
            }

            return(WebServiceImpl <TransitDiscussionPost, ManagedDiscussionPost, DiscussionPost> .GetList(
                       ticket, options, "SELECT {DiscussionPost.*} FROM DiscussionThread t, Discussion d, DiscussionPost {DiscussionPost}" +
                       " INNER JOIN FREETEXTTABLE(DiscussionPost, ([Subject], [Body]), '" + Renderer.SqlEncode(s) + "', " +
                       maxsearchresults.ToString() + ") AS ft " +
                       " ON DiscussionPost.DiscussionPost_Id = ft.[KEY] " +
                       " WHERE t.Discussion_Id = d.Discussion_Id" +
                       " AND t.DiscussionThread_Id = DiscussionPost.DiscussionThread_Id" +
                       " AND d.Discussion_Id = " + id.ToString() +
                       " ORDER BY ft.[RANK] DESC",
                       "DiscussionPost"));
        }
Example #6
0
 public int GetConfigurationsCount(string ticket)
 {
     using (SnCore.Data.Hibernate.Session.OpenConnection())
     {
         ISession session = SnCore.Data.Hibernate.Session.Current;
         return(ManagedConfiguration.GetAllConfigurations(session).Count);
     }
 }
Example #7
0
        public Facebook.Schema.user GetUser(string[] cookieNames, string[] cookieValues)
        {
            using (SnCore.Data.Hibernate.Session.OpenConnection())
            {
                ISession session = SnCore.Data.Hibernate.Session.Current;
                Facebook.Session.ConnectSession facebookSession = new Facebook.Session.ConnectSession(
                    ManagedConfiguration.GetValue(session, "Facebook.APIKey", ""),
                    ManagedConfiguration.GetValue(session, "Facebook.Secret", ""));

                TransitAccount ta = new TransitAccount();
                NameValueCollectionSerializer facebookCookies = new NameValueCollectionSerializer(cookieNames, cookieValues);
                facebookSession.SessionKey = facebookCookies.Collection["session_key"];
                facebookSession.UserId     = long.Parse(facebookCookies.Collection["user"]);

                Facebook.Rest.Api facebookAPI = new Facebook.Rest.Api(facebookSession);
                return(facebookAPI.Users.GetInfo());
            }
        }
Example #8
0
        public void RunQueue(ISession session, ManagedSecurityContext sec)
        {
            string path = ManagedConfiguration.GetValue(session, "SnCore.SMTP.Queue",
                                                        Path.Combine(Path.GetTempPath(), "Queue"));

            EventLogManager.WriteEntry(string.Format("Processing SMTP queue in {0}.", path));

            string[] files = Directory.GetFiles(path);

            foreach (string file in files)
            {
                if (IsStopping)
                {
                    break;
                }

                EventLogManager.WriteEntry(string.Format("Processing {0}.", file));

                try
                {
                    ProcessMessage(file);
                    File.Delete(file);
                }
                catch (ThreadAbortException)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    EventLogManager.WriteEntry(string.Format("Error processing {0}: {1}",
                                                             file, ex.Message), EventLogEntryType.Warning);
                }

                Thread.Sleep(1000 * InterruptInterval);
            }
        }
        /// <summary>
        /// Adds or updates a per-device managed configuration for an app for the specified device.
        /// Documentation https://developers.google.com/androidenterprise/v1/reference/managedconfigurationsfordevice/update
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated AndroidEnterprise service.</param>
        /// <param name="enterpriseId">The ID of the enterprise.</param>
        /// <param name="userId">The ID of the user.</param>
        /// <param name="deviceId">The Android ID of the device.</param>
        /// <param name="managedConfigurationForDeviceId">The ID of the managed configuration (a product ID), e.g. "app:com.google.android.gm".</param>
        /// <param name="body">A valid AndroidEnterprise v1 body.</param>
        /// <returns>ManagedConfigurationResponse</returns>
        public static ManagedConfiguration Update(AndroidEnterpriseService service, string enterpriseId, string userId, string deviceId, string managedConfigurationForDeviceId, ManagedConfiguration body)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }
                if (body == null)
                {
                    throw new ArgumentNullException("body");
                }
                if (enterpriseId == null)
                {
                    throw new ArgumentNullException(enterpriseId);
                }
                if (userId == null)
                {
                    throw new ArgumentNullException(userId);
                }
                if (deviceId == null)
                {
                    throw new ArgumentNullException(deviceId);
                }
                if (managedConfigurationForDeviceId == null)
                {
                    throw new ArgumentNullException(managedConfigurationForDeviceId);
                }

                // Make the request.
                return(service.Managedconfigurationsfordevice.Update(body, enterpriseId, userId, deviceId, managedConfigurationForDeviceId).Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request Managedconfigurationsfordevice.Update failed.", ex);
            }
        }
Example #10
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))));
     }
 }
        public void RunMarketingCampaign(ISession session, ManagedSecurityContext sec)
        {
            IList campaigns = session.CreateCriteria(typeof(Campaign))
                              .Add(Expression.Eq("Active", true))
                              .List();

            foreach (Campaign campaign in campaigns)
            {
                if (IsStopping)
                {
                    break;
                }

                IList recepients = session.CreateCriteria(typeof(CampaignAccountRecepient))
                                   .Add(Expression.Eq("Sent", false))
                                   .Add(Expression.Eq("Campaign.Id", campaign.Id))
                                   .List();

                if (recepients.Count == 0)
                {
                    campaign.Active = false;
                    session.Save(campaign);
                    continue;
                }

                string baseuri = ManagedConfiguration.GetValue(session, "SnCore.WebSite.Url", "http://localhost/SnCore");
                if (!baseuri.EndsWith("/"))
                {
                    baseuri = baseuri + "/";
                }
                ContentPageParameters parameters = new ContentPageParameters();
                parameters.UserAgent = ManagedConfiguration.GetValue(session, "SnCore.Web.UserAgent", "SnCore/1.0");
                parameters.BaseUri   = new Uri(baseuri);
                string content = ContentPage.GetContent(new Uri(campaign.Url), parameters);

                foreach (CampaignAccountRecepient recepient in recepients)
                {
                    if (IsStopping)
                    {
                        break;
                    }

                    try
                    {
                        ManagedAccount m_recepient = new ManagedAccount(session, recepient.Account);

                        string mailto;
                        if (!m_recepient.TryGetVerifiedEmailAddress(out mailto, sec))
                        {
                            throw new Exception("No verified e-mail address.");
                        }

                        m_recepient.SendAccountEmailMessage(
                            campaign.SenderEmailAddress, mailto,
                            campaign.Name, content, true);

                        recepient.LastError = string.Empty;
                    }
                    catch (ThreadAbortException)
                    {
                        throw;
                    }
                    catch (Exception ex)
                    {
                        recepient.LastError = ex.Message;
                    }
                    finally
                    {
                        recepient.Modified = DateTime.UtcNow;
                        recepient.Sent     = true;
                        session.Save(recepient);
                        session.Flush();
                    }

                    Thread.Sleep(100);
                }

                Thread.Sleep(1000 * InterruptInterval);
            }
        }