public static IDictionary <string, IList <string> > GetUserPushTokensByOs(String databaseName, Guid userId) { using (var conn = new System.Data.SqlClient.SqlConnection(Solution.CreateFromContext(databaseName).ConnectionString)) { conn.Open(); var cmd = new System.Data.SqlClient.SqlCommand("[admin].[GetUserPushTokens]", conn); cmd.CommandType = System.Data.CommandType.StoredProcedure; try { System.Data.SqlClient.SqlCommandBuilder.DeriveParameters(cmd); } catch { throw new Exception("Database does not support push notifications"); } cmd.Parameters["@UserId"].Value = userId; var result = new Dictionary <string, IList <string> >(); using (System.Data.SqlClient.SqlDataReader r = cmd.ExecuteReader()) while (r.Read()) { string token = r.GetString(0); string os = r.GetString(1); IList <string> tokens; if (!result.TryGetValue(os, out tokens)) { result.Add(os, tokens = new List <string>()); } tokens.Add(token); } return(result); } }
public static void WriteWebDavLog(string databaseName, IDictionary <string, object> content) { using (var conn = new SqlConnection(Solution.CreateFromContext(databaseName).ConnectionString)) { conn.Open(); var cmd = new SqlCommand("[admin].[WriteWebDavLog]", conn); cmd.CommandType = CommandType.StoredProcedure; SqlCommandBuilder.DeriveParameters(cmd); for (int i = 1; i < cmd.Parameters.Count; i++) { String pName = cmd.Parameters[i].ParameterName.Substring(1).ToLower(); object value; if (content.TryGetValue(pName, out value)) { cmd.Parameters[i].Value = value ?? DBNull.Value; } else { cmd.Parameters[i].Value = DBNull.Value; } } try { cmd.ExecuteNonQuery(); } catch { } } }
public static void WriteLog(String databaseName, Dictionary <String, object> dict) { using (var conn = new SqlConnection(Solution.CreateFromContext(databaseName).ConnectionString)) { conn.Open(); var cmd = new SqlCommand("[admin].[WriteLog]", conn); cmd.CommandType = CommandType.StoredProcedure; SqlCommandBuilder.DeriveParameters(cmd); for (int i = 1; i < cmd.Parameters.Count; i++) { String pName = cmd.Parameters[i].ParameterName.Substring(1).ToLower(); if (dict.ContainsKey(pName)) { cmd.Parameters[i].Value = (dict[pName] == null ? DBNull.Value : dict[pName]); } } try { cmd.ExecuteNonQuery(); } catch { } } }
public static bool CheckIfFilterShared(String scope) { String settingsFile = Solution.CreateFromContext(scope).SettingsFile; if (System.IO.File.Exists(settingsFile)) { System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(settingsFile); System.Xml.XmlNode node = doc.DocumentElement.SelectSingleNode(@"server/filterShared"); if (node != null) { System.Xml.XmlAttribute attr = node.Attributes["value"]; if (attr != null) { if (attr.Value == null) { return(false); } else { return(attr.Value.ToLower().Equals("yes")); } } } } return(false); }
public static String GetConflictPolicy(String scope) { String settingsFile = Solution.CreateFromContext(scope).SettingsFile; if (System.IO.File.Exists(settingsFile)) { System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(settingsFile); System.Xml.XmlNode node = doc.DocumentElement.SelectSingleNode(@"server/conflictPolicy"); if (node != null) { System.Xml.XmlAttribute attr = node.Attributes["value"]; if (attr != null) { return(attr.Value); } } } return(null); }
public static void CheckCoreVersion(String scope, String coreVersion) { String settingsFile = Solution.CreateFromContext(scope).SettingsFile; if (System.IO.File.Exists(settingsFile)) { System.Xml.XmlDocument doc = new System.Xml.XmlDocument(); doc.Load(settingsFile); System.Xml.XmlNode node = doc.DocumentElement.SelectSingleNode(@"client/supportedCore"); if (node != null) { System.Xml.XmlAttribute attr = node.Attributes["version"]; if (attr != null) { String configVersion = attr.Value; CheckVersion(coreVersion, configVersion, "core"); } } } }