示例#1
0
        /// <summary>
        /// Searches the publication for feedback.
        /// </summary>
        /// <param name="siteId">The site id.</param>
        /// <param name="contactId">The contact id.</param>
        /// <param name="text">The text.</param>
        /// <param name="pageIndex">Index of the page.</param>
        /// <param name="publicationType">Type of the publication.</param>
        /// <param name="totalCount">The total count.</param>
        /// <returns></returns>
        public List <ActivityPublicationMap> SearchPublicationForFeedback(Guid siteId, Guid?contactId, string text, int pageIndex, Guid publicationType, out int totalCount)
        {
            var publicationMaps = new List <ActivityPublicationMap>();

            totalCount = 0;

            using (var connection = new SqlConnection(Settings.ADONetConnectionString))
            {
                connection.Open();
                var command = new SqlCommand("SearchPublication", connection)
                {
                    CommandType = CommandType.StoredProcedure
                };
                command.Parameters.AddWithValue("@SiteID", siteId);
                command.Parameters.AddWithValue("@ContactID", contactId);
                command.Parameters.AddWithValue("@Word", string.IsNullOrEmpty(text) ? "*" : text);
                command.Parameters.AddWithValue("@PageIndex", pageIndex);
                command.Parameters.AddWithValue("@PageSize", 5);
                command.Parameters.AddWithValue("@IsPortal", true);
                command.Parameters.AddWithValue("@PublicationTypeID", publicationType);

                var reader = command.ExecuteReader();
                while (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        var publicationMap = new ActivityPublicationMap
                        {
                            ID                = (Guid)reader["ID"],
                            Date              = (DateTime)reader["Date"],
                            Title             = (string)reader["Title"],
                            Text              = reader["Text"] != DBNull.Value ? (string)reader["Text"] : null,
                            Noun              = reader["Noun"] != DBNull.Value ? (string)reader["Noun"] : null,
                            PublicationKindID = reader["PublicationKindID"] != DBNull.Value ? (int?)reader["PublicationKindID"] : null
                        };

                        totalCount = (int)reader["TotalCount"];
                        publicationMaps.Add(publicationMap);
                    }
                    reader.NextResult();
                }
            }

            foreach (var publicationMap in publicationMaps)
            {
                if (string.IsNullOrEmpty(publicationMap.Noun))
                {
                    publicationMap.Noun = publicationMap.Text;
                    publicationMap.Text = string.Empty;
                }
                publicationMap.Noun = publicationMap.Noun.Truncate(300, true, true);
            }

            return(publicationMaps);
        }
示例#2
0
        /// <summary>
        /// Searches the publication.
        /// </summary>
        /// <param name="siteId">The site id.</param>
        /// <param name="contactId">The contact id.</param>
        /// <param name="publicationKind">Kind of the publication.</param>
        /// <param name="text">The text.</param>
        /// <param name="pageIndex">Index of the page.</param>
        /// <param name="totalCount">The total count.</param>
        /// <param name="portalSettingsId">The portal settings id.</param>
        /// <param name="publicationType">Type of the publication.</param>
        /// <param name="initUrls">if set to <c>true</c> [init urls].</param>
        /// <param name="isPortal">if set to <c>true</c> [is portal].</param>
        /// <returns></returns>
        public List <ActivityPublicationMap> SearchPublication(Guid siteId, Guid?contactId, int?publicationKind, string text, int pageIndex, out int totalCount, Guid?portalSettingsId = null, Guid?publicationType = null, bool initUrls = true, bool isPortal = false)
        {
            var publicationMaps = new List <ActivityPublicationMap>();

            totalCount = 0;

            using (var connection = new SqlConnection(Settings.ADONetConnectionString))
            {
                connection.Open();
                var command = new SqlCommand("SearchPublication", connection)
                {
                    CommandType = CommandType.StoredProcedure
                };
                command.Parameters.AddWithValue("@SiteID", siteId);
                command.Parameters.AddWithValue("@ContactID", contactId);
                command.Parameters.AddWithValue("@Word", string.IsNullOrEmpty(text) ? "*" : text);
                command.Parameters.AddWithValue("@PageIndex", pageIndex);
                command.Parameters.AddWithValue("@PageSize", 5);
                command.Parameters.AddWithValue("@IsPortal", portalSettingsId.HasValue || isPortal);
                if (publicationKind != -1)
                {
                    command.Parameters.AddWithValue("@PublicationKindID", publicationKind);
                }
                command.Parameters.AddWithValue("@PublicationTypeID", publicationType);

                var reader = command.ExecuteReader();
                while (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        var publicationMap = new ActivityPublicationMap
                        {
                            ID                = (Guid)reader["ID"],
                            Date              = (DateTime)reader["Date"],
                            Title             = (string)reader["Title"],
                            Text              = reader["Text"] != DBNull.Value ? (string)reader["Text"] : null,
                            Noun              = reader["Noun"] != DBNull.Value ? (string)reader["Noun"] : null,
                            PublicationKindID = reader["PublicationKindID"] != DBNull.Value ? (int?)reader["PublicationKindID"] : null
                        };

                        totalCount = (int)reader["TotalCount"];
                        publicationMaps.Add(publicationMap);
                    }
                    reader.NextResult();
                }
            }

            var dataManager = new DataManager();
            PortalSettingsMap portalSettings = null;

            if (!portalSettingsId.HasValue)
            {
                portalSettings = dataManager.PortalSettings.SelectMapBySiteId(siteId, true);
            }

            foreach (var publicationMap in publicationMaps)
            {
                if (string.IsNullOrEmpty(publicationMap.Noun))
                {
                    publicationMap.Noun = publicationMap.Text;
                    publicationMap.Text = string.Empty;
                }

                publicationMap.Noun = publicationMap.Noun.Truncate(300, true, true);

                if (initUrls)
                {
                    if (portalSettingsId.HasValue)
                    {
                        if (publicationMap.PublicationKindID == (int)PublicationKind.Discussion)
                        {
                            publicationMap.PublicationUrl = UrlsData.LFP_Discussion((Guid)portalSettingsId,
                                                                                    publicationMap.ID);
                        }
                        else
                        {
                            publicationMap.PublicationUrl = UrlsData.LFP_Article((Guid)portalSettingsId,
                                                                                 publicationMap.ID);
                        }
                    }
                    else
                    {
                        publicationMap.PublicationUrl = UrlsData.AP_PublicationEdit(publicationMap.ID, "Materials");
                    }

                    if (portalSettings != null)
                    {
                        publicationMap.PortalUrl = string.Concat(Settings.LabitecLeadForcePortalUrl,
                                                                 string.Format("/{0}/KnowledgeBase/Article/{1}",
                                                                               portalSettings.ID, publicationMap.ID));
                    }
                }
            }

            return(publicationMaps);
        }