public static bool RecycleApplication(Guid applicationId)
 {
     try
     {
         return(ProviderUtil.succeed(ProviderUtil.execute_reader(GetFullyQualifiedName("RecycleApplication"), applicationId)));
     }
     catch (Exception ex) { string strEx = ex.ToString(); return(false); }
 }
 public static bool RemoveOwnerVariable(Guid applicationId, long id, Guid currentUserId)
 {
     try
     {
         return(ProviderUtil.succeed(ProviderUtil.execute_reader(GetFullyQualifiedName("RemoveOwnerVariable"),
                                                                 applicationId, id, currentUserId, DateTime.Now)));
     }
     catch (Exception ex) { string strEx = ex.ToString(); return(false); }
 }
 public static bool SetVariable(Guid?applicationId, string name, string value, Guid currentUserId)
 {
     try
     {
         return(ProviderUtil.succeed(ProviderUtil.execute_reader(GetFullyQualifiedName("SetVariable"), applicationId,
                                                                 name, value, currentUserId, DateTime.Now)));
     }
     catch (Exception ex) { string strEx = ex.ToString(); return(false); }
 }
 public static bool AddOrModifyApplication(Guid applicationId, string name, string title, string description, Guid?currentUserId)
 {
     try
     {
         return(ProviderUtil.succeed(ProviderUtil.execute_reader(GetFullyQualifiedName("AddOrModifyApplication"),
                                                                 applicationId, name, title, description, currentUserId)));
     }
     catch (Exception ex) { string strEx = ex.ToString(); return(false); }
 }
        public static bool IsSystemAdmin(Guid?applicationId, Guid userId)
        {
            string spName = GetFullyQualifiedName("IsSystemAdmin");

            try
            {
                return(ProviderUtil.succeed((IDataReader)ProviderUtil.execute_reader(spName, applicationId, userId)));
            }
            catch (Exception ex) { return(false); }
        }
        public static bool FollowUnFollow(Guid applicationId, Guid userId, Guid followedId, bool?follow)
        {
            string spName = GetFullyQualifiedName("FollowUnfollow");

            try
            {
                return(ProviderUtil.succeed((IDataReader)ProviderUtil.execute_reader(spName, applicationId,
                                                                                     userId, followedId, follow, DateTime.Now)));
            }
            catch (Exception ex) { return(false); }
        }
        public static bool LikeDislikeUnlike(Guid applicationId, Guid userId, Guid likedId, bool?like)
        {
            string spName = GetFullyQualifiedName("LikeDislikeUnlike");

            try
            {
                return(ProviderUtil.succeed((IDataReader)ProviderUtil.execute_reader(spName, applicationId,
                                                                                     userId, likedId, like, DateTime.Now)));
            }
            catch (Exception ex) { return(false); }
        }
        public static bool SaveTaggedItems(Guid applicationId, ref List <TaggedItem> items,
                                           bool?removeOldTags, Guid currentUserId)
        {
            if (items == null || items.Count == 0 || currentUserId == Guid.Empty)
            {
                return(false);
            }

            SqlConnection con = new SqlConnection(ProviderUtil.ConnectionString);
            SqlCommand    cmd = new SqlCommand();

            cmd.Connection = con;

            //Add Items
            DataTable taggedTable = new DataTable();

            taggedTable.Columns.Add("ContextID", typeof(Guid));
            taggedTable.Columns.Add("TaggedID", typeof(Guid));
            taggedTable.Columns.Add("ContextType", typeof(string));
            taggedTable.Columns.Add("TaggedType", typeof(string));

            foreach (TaggedItem itm in items)
            {
                taggedTable.Rows.Add(itm.ContextID, itm.TaggedID, itm.ContextType, itm.TaggedType);
            }

            SqlParameter taggedParam = new SqlParameter("@TaggedItems", SqlDbType.Structured);

            taggedParam.TypeName = "[dbo].[TaggedItemTableType]";
            taggedParam.Value    = taggedTable;
            //end of Add Items

            cmd.Parameters.AddWithValue("@ApplicationID", applicationId);
            cmd.Parameters.Add(taggedParam);
            cmd.Parameters.AddWithValue("@RemoveOldTags", removeOldTags.HasValue && removeOldTags.Value);
            cmd.Parameters.AddWithValue("@CurrentUserID", currentUserId);

            string sep       = ", ";
            string arguments = "@ApplicationID" + sep + "@TaggedItems" + sep + "@RemoveOldTags" + sep + "@CurrentUserID";

            cmd.CommandText = ("EXEC" + " " + GetFullyQualifiedName("SaveTaggedItems") + " " + arguments);

            con.Open();

            try { return(ProviderUtil.succeed((IDataReader)cmd.ExecuteReader())); }
            catch (Exception ex) { string strEx = ex.ToString(); return(false); }
            finally { con.Close(); }
        }
        public static bool AddEmailsToQueue(Guid applicationId, ref List <EmailQueueItem> items)
        {
            SqlConnection con = new SqlConnection(ProviderUtil.ConnectionString);
            SqlCommand    cmd = new SqlCommand();

            cmd.Connection = con;

            //Add Items
            DataTable queueTable = new DataTable();

            queueTable.Columns.Add("ID", typeof(long));
            queueTable.Columns.Add("SenderUserID", typeof(Guid));
            queueTable.Columns.Add("Action", typeof(string));
            queueTable.Columns.Add("Email", typeof(string));
            queueTable.Columns.Add("Title", typeof(string));
            queueTable.Columns.Add("EmailBody", typeof(string));

            foreach (EmailQueueItem itm in items)
            {
                queueTable.Rows.Add(itm.ID, itm.SenderUserID, itm.Action, itm.Email, itm.Title, itm.EmailBody);
            }

            SqlParameter queueParam = new SqlParameter("@EmailQueueItems", SqlDbType.Structured);

            queueParam.TypeName = "[dbo].[EmailQueueItemTableType]";
            queueParam.Value    = queueTable;
            //end of Add Items

            cmd.Parameters.AddWithValue("@ApplicationID", applicationId);
            cmd.Parameters.Add(queueParam);

            string sep       = ", ";
            string arguments = "@ApplicationID" + sep + "@EmailQueueItems";

            cmd.CommandText = ("EXEC" + " " + GetFullyQualifiedName("AddEmailsToQueue") + " " + arguments);

            con.Open();

            try { return(ProviderUtil.succeed((IDataReader)cmd.ExecuteReader())); }
            catch (Exception ex) { string strEx = ex.ToString(); return(false); }
            finally { con.Close(); }
        }
        public static bool SetSystemSettings(Guid applicationId, Dictionary <RVSettingsItem, string> items, Guid currentUserId)
        {
            SqlConnection con = new SqlConnection(ProviderUtil.ConnectionString);
            SqlCommand    cmd = new SqlCommand();

            cmd.Connection = con;

            //Add Items
            DataTable appsTable = new DataTable();

            appsTable.Columns.Add("FirstValue", typeof(string));
            appsTable.Columns.Add("SecondValue", typeof(string));

            foreach (RVSettingsItem name in items.Keys)
            {
                appsTable.Rows.Add(name.ToString(), items[name]);
            }

            SqlParameter appParam = new SqlParameter("@Items", SqlDbType.Structured);

            appParam.TypeName = "[dbo].[StringPairTableType]";
            appParam.Value    = appsTable;
            //end of Add Items

            cmd.Parameters.AddWithValue("@ApplicationID", applicationId);
            cmd.Parameters.Add(appParam);
            cmd.Parameters.AddWithValue("@CurrentUserID", currentUserId);
            cmd.Parameters.AddWithValue("@Now", DateTime.Now);

            string sep       = ", ";
            string arguments = "@ApplicationID" + sep + "@Items" + sep + "@CurrentUserID" + sep + "@Now";

            cmd.CommandText = ("EXEC" + " " + GetFullyQualifiedName("SetSystemSettings") + " " + arguments);

            con.Open();

            try { return(ProviderUtil.succeed((IDataReader)cmd.ExecuteReader())); }
            catch (Exception ex) { string strEx = ex.ToString(); return(false); }
            finally { con.Close(); }
        }
        public static bool ArchiveEmailQueueItems(Guid applicationId, ref List <long> itemIds)
        {
            SqlConnection con = new SqlConnection(ProviderUtil.ConnectionString);
            SqlCommand    cmd = new SqlCommand();

            cmd.Connection = con;

            //Add IDs
            DataTable idsTable = new DataTable();

            idsTable.Columns.Add("Value", typeof(long));

            foreach (long id in itemIds)
            {
                idsTable.Rows.Add(id);
            }

            SqlParameter idsParam = new SqlParameter("@ItemIDs", SqlDbType.Structured);

            idsParam.TypeName = "[dbo].[BigIntTableType]";
            idsParam.Value    = idsTable;
            //end of Add IDs

            cmd.Parameters.AddWithValue("@ApplicationID", applicationId);
            cmd.Parameters.Add(idsParam);
            cmd.Parameters.AddWithValue("@Now", DateTime.Now);

            string sep       = ", ";
            string arguments = "@ApplicationID" + sep + "@ItemIDs" + sep + "@Now";

            cmd.CommandText = ("EXEC" + " " + GetFullyQualifiedName("ArchiveEmailQueueItems") + " " + arguments);

            con.Open();

            try { return(ProviderUtil.succeed((IDataReader)cmd.ExecuteReader())); }
            catch (Exception ex) { string strEx = ex.ToString(); return(false); }
            finally { con.Close(); }
        }
        public static bool SetApplications(List <KeyValuePair <Guid, string> > applications)
        {
            SqlConnection con = new SqlConnection(ProviderUtil.ConnectionString);
            SqlCommand    cmd = new SqlCommand();

            cmd.Connection = con;

            //Add Items
            DataTable appsTable = new DataTable();

            appsTable.Columns.Add("FirstValue", typeof(Guid));
            appsTable.Columns.Add("SecondValue", typeof(string));

            foreach (KeyValuePair <Guid, string> app in applications)
            {
                appsTable.Rows.Add(app.Key, app.Value);
            }

            SqlParameter appParam = new SqlParameter("@Applications", SqlDbType.Structured);

            appParam.TypeName = "[dbo].[GuidStringTableType]";
            appParam.Value    = appsTable;
            //end of Add Items

            cmd.Parameters.Add(appParam);

            string arguments = "@Applications";

            cmd.CommandText = ("EXEC" + " " + GetFullyQualifiedName("SetApplications") + " " + arguments);

            con.Open();

            try { return(ProviderUtil.succeed((IDataReader)cmd.ExecuteReader())); }
            catch (Exception ex) { string strEx = ex.ToString(); return(false); }
            finally { con.Close(); }
        }