/// <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); }
/// <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); }