/// <summary> /// Creates and adds the returned User Xml block to a given parent post node from the passed user parameters with a prefix /// ie the field name of OwnerUserName, OwnerFirstNames /// </summary> /// <param name="dataReader">Data reader object</param> /// <param name="userID">The users id</param> /// <param name="prefix">The prefix of the field names for a different user in the same result set</param> /// <param name="parent">The parent Node to add the user xml to</param> /// <returns>XmlNode Containing user XML from the stored procedure</returns> public void AddPrefixedUserXMLBlock(IDnaDataReader dataReader, int userID, string prefix, XmlNode parent) { string userName = ""; if (dataReader.Exists(prefix + "UserName")) { userName = dataReader.GetStringNullAsEmpty(prefix + "UserName"); } else if (dataReader.Exists(prefix + "Name")) { userName = dataReader.GetStringNullAsEmpty(prefix + "Name"); } if (userName == String.Empty) { userName = "******" + userID.ToString(); } string identityUserId = ""; if (dataReader.Exists(prefix + "identityUserId")) { identityUserId = dataReader.GetStringNullAsEmpty(prefix + "identityUserId"); } string emailAddress = ""; if (dataReader.Exists(prefix + "Email")) { emailAddress = dataReader.GetStringNullAsEmpty(prefix + "Email"); } double zeigeistScore = 0.0; if (dataReader.DoesFieldExist(prefix + "ZeitgeistScore")) { zeigeistScore = dataReader.GetDoubleNullAsZero(prefix + "ZeitgeistScore"); } string siteSuffix = ""; if (dataReader.Exists(prefix + "SiteSuffix")) { siteSuffix = dataReader.GetStringNullAsEmpty(prefix + "SiteSuffix"); } string area = ""; if (dataReader.Exists(prefix + "Area")) { area = dataReader.GetStringNullAsEmpty(prefix + "Area"); } string title = ""; if (dataReader.Exists(prefix + "Title")) { title = dataReader.GetStringNullAsEmpty(prefix + "Title"); } int subQuota = 0; if (dataReader.Exists(prefix + "SubQuota")) { subQuota = dataReader.GetInt32NullAsZero(prefix + "SubQuota"); } int allocations = 0; if (dataReader.Exists(prefix + "Allocations")) { allocations = dataReader.GetInt32NullAsZero(prefix + "Allocations"); } int journal = 0; if (dataReader.Exists(prefix + "Journal")) { journal = dataReader.GetInt32NullAsZero(prefix + "Journal"); } bool isActive = false; if (dataReader.Exists(prefix + "Active") && !dataReader.IsDBNull(prefix + "Active")) { isActive = dataReader.GetBoolean(prefix + "Active"); } DateTime dateLastNotified = DateTime.MinValue; if (dataReader.Exists(prefix + "DateLastNotified") && dataReader.GetValue(prefix + "DateLastNotified") != DBNull.Value) { dateLastNotified = dataReader.GetDateTime(prefix + "DateLastNotified"); } DateTime dateJoined = DateTime.MinValue; if (dataReader.Exists(prefix + "DateJoined") && dataReader.GetValue(prefix + "DateJoined") != DBNull.Value) { dateJoined = dataReader.GetDateTime(prefix + "DateJoined"); } int forumPostedTo = -1; if (dataReader.Exists(prefix + "ForumPostedTo")) { forumPostedTo = dataReader.GetInt32NullAsZero(prefix + "ForumPostedTo"); } int masthead = -1; if (dataReader.Exists(prefix + "Masthead")) { masthead = dataReader.GetInt32NullAsZero(prefix + "Masthead"); } int sinbin = -1; if (dataReader.Exists(prefix + "SinBin")) { sinbin = dataReader.GetInt32NullAsZero(prefix + "SinBin"); } int forumID = -1; if (dataReader.Exists(prefix + "ForumID")) { forumID = dataReader.GetInt32NullAsZero(prefix + "ForumID"); } XmlNode userXML = GenerateUserXml(userID, userName, emailAddress, dataReader.GetStringNullAsEmpty(prefix + "FirstNames"), dataReader.GetStringNullAsEmpty(prefix + "LastName"), dataReader.GetInt32NullAsZero(prefix + "Status"), dataReader.GetInt32NullAsZero(prefix + "TaxonomyNode"), isActive, zeigeistScore, siteSuffix, area, title, journal, dateLastNotified, subQuota, allocations, dateJoined, forumID, forumPostedTo, masthead, sinbin, identityUserId); if (userXML != null) { XmlNode importxml = parent.OwnerDocument.ImportNode(userXML, true); parent.AppendChild(importxml); } }
/// <summary> /// Creates a commentinfo object /// </summary> /// <param name="reader">A reader with all information</param> /// <param name="site">site information</param> /// <returns>Comment info object</returns> private CommentInfo CommentCreateFromReader(IDnaDataReader reader, ISite site) { var commentInfo = new CommentInfo { Created = new DateTimeHelper(DateTime.Parse(reader.GetDateTime("Created").ToString())), User = UserReadById(reader, site), ID = reader.GetInt32NullAsZero("id") }; commentInfo.hidden = (CommentStatus.Hidden) reader.GetInt32NullAsZero("hidden"); if (reader.IsDBNull("poststyle")) { commentInfo.PostStyle = PostStyle.Style.richtext; } else { commentInfo.PostStyle = (PostStyle.Style) reader.GetTinyIntAsInt("poststyle"); } commentInfo.IsEditorPick = reader.GetBoolean("IsEditorPick"); commentInfo.Index = reader.GetInt32NullAsZero("PostIndex"); //get complainant var replacement = new Dictionary<string, string>(); replacement.Add("sitename", site.SiteName); replacement.Add("postid", commentInfo.ID.ToString()); commentInfo.ComplaintUri = UriDiscoverability.GetUriWithReplacments(BasePath, SiteList.GetSiteOptionValueString(site.SiteID, "General", "ComplaintUrl"), replacement); replacement = new Dictionary<string, string>(); replacement.Add("commentforumid", reader.GetString("forumuid")); replacement.Add("sitename", site.SiteName); commentInfo.ForumUri = UriDiscoverability.GetUriWithReplacments(BasePath, UriDiscoverability.UriType.CommentForumById, replacement); replacement = new Dictionary<string, string>(); replacement.Add("parentUri", reader.GetString("parentUri")); replacement.Add("postid", commentInfo.ID.ToString()); commentInfo.Uri = UriDiscoverability.GetUriWithReplacments(BasePath, UriDiscoverability.UriType.Comment, replacement); if(reader.DoesFieldExist("nerovalue")) { commentInfo.NeroRatingValue = reader.GetInt32NullAsZero("nerovalue"); } if (reader.DoesFieldExist("neropositivevalue")) { commentInfo.NeroPositiveRatingValue = reader.GetInt32NullAsZero("neropositivevalue"); } if (reader.DoesFieldExist("neronegativevalue")) { commentInfo.NeroNegativeRatingValue = reader.GetInt32NullAsZero("neronegativevalue"); } if (reader.DoesFieldExist("tweetid")) { commentInfo.TweetId = reader.GetLongNullAsZero("tweetid"); } commentInfo.text = CommentInfo.FormatComment(reader.GetStringNullAsEmpty("text"), commentInfo.PostStyle, commentInfo.hidden, commentInfo.User.Editor); if (reader.DoesFieldExist("twitterscreenname")) { commentInfo.TwitterScreenName = reader.GetStringNullAsEmpty("twitterscreenname"); } if (reader.DoesFieldExist("retweetid")) { commentInfo.RetweetId = reader.GetLongNullAsZero("retweetid"); } if (reader.DoesFieldExist("retweetedby")) { commentInfo.RetweetedBy = reader.GetStringNullAsEmpty("retweetedby"); } if (reader.DoesFieldExist("DmID")) { if (reader.IsDBNull("DmID") == false) { commentInfo.DistressMessage = IncludeDistressMessage(reader, site); } } return commentInfo; }
/// <summary> /// Fills the userData Dictionary with User DB data /// </summary> /// <param name="sp">Stored Procedure Data Reader object</param> /// <returns>True if sucessful or false</returns> private bool FillUserDataDictionary(IDnaDataReader sp) { // Set member variables that are useful as values _userID = sp.GetInt32NullAsZero("userid"); _identityUserId = sp.GetStringNullAsEmpty("identityuserid"); _status = (UserStatus)sp.GetInt32NullAsZero("Status"); _userName = sp.GetStringNullAsEmpty("UserName"); _firstNames = sp.GetStringNullAsEmpty("FirstNames"); _lastName = sp.GetStringNullAsEmpty("LastName"); _userEmail = sp.GetStringNullAsEmpty("Email"); _password = sp.GetStringNullAsEmpty("Password"); if (_loginName.Length == 0) { _loginName = sp.GetStringNullAsEmpty("LoginName"); } _preferredSkin = sp.GetStringNullAsEmpty("PrefSkin"); _masthead = sp.GetInt32NullAsZero("Masthead"); _journalID = sp.GetInt32NullAsZero("Journal"); _title = sp.GetStringNullAsEmpty("Title"); _siteSuffix = sp.GetStringNullAsEmpty("SiteSuffix"); _acceptSubscriptions = sp.GetBoolean("AcceptSubscriptions"); _prefStatus = sp.GetInt32NullAsZero("PrefStatus"); _teamID = sp.GetInt32NullAsZero("TeamID"); _lastUpdated = DateTime.Now; _lastUpdated = sp.GetDateTime("LastUpdatedDate"); bool success = false; if (_gotUserData) { //AddUserDataObject("UserID", sp); //AddUserDataObject("UserName", sp); AddUserDataObject("Postcode", sp); AddUserDataObject("Region", sp); AddUserDataObject("PrefUserMode", sp); //AddUserDataObject("Status", sp); AddUserDataObject("Area", sp); AddUserDataObject("Title", sp); //AddUserDataObject("FirstNames", sp); //AddUserDataObject("LastName", sp); AddUserDataObject("SiteSuffix", sp); AddUserDataObject("TeamID", sp); AddUserDataObject("UnreadPublicMessageCount", sp); AddUserDataObject("UnreadPrivateMessageCount", sp); AddUserDataObject("TaxonomyNode", sp); AddUserDataObject("HideLocation", sp); AddUserDataObject("HideUserName", sp); //AddUserDataObject("AcceptSubscriptions", sp); if (ShowFullDetails) { AddUserDataObject("PrefXML", sp); //AddUserDataObject("Email", sp); //AddUserDataObject("LoginName", sp); AddUserDataObject("BBCUID", sp); AddUserDataObject("Cookie", sp); //AddUserDataObject("Password", sp); AddUserDataObject("Masthead", sp); AddUserDataObject("Journal", sp); AddUserDataObject("PrivateForum", sp); AddUserDataObject("DateJoined", sp); AddUserDataObject("DateReleased", sp); AddUserDataObject("Active", sp); AddUserDataObject("Anonymous", sp); AddUserDataObject("SinBin", sp); AddUserDataObject("Latitude", sp); AddUserDataObject("Longitude", sp); AddUserDataObject("PrefSkin", sp); AddUserDataObject("IsModClassMember", sp); AddUserDataObject("PrefForumStyle", sp); AddUserDataObject("AgreedTerms", sp); AddUserDataObject("PrefStatus", sp); AddUserDataObject("AutoSinBin", sp); } success = true; } return success; }
/// <summary> /// Loads the field from the database /// </summary> /// <param name="dataReader">dataReader with the field info</param> public void LoadFieldFromDatabase(IDnaDataReader dataReader) { _UIFieldID = dataReader.GetInt32NullAsZero("UIFieldID"); _name = dataReader.GetStringNullAsEmpty("Name"); _label = dataReader.GetStringNullAsEmpty("Label"); _type = (UIFieldType)Enum.Parse(typeof(UIFieldType), dataReader.GetStringNullAsEmpty("Type")); _description = dataReader.GetStringNullAsEmpty("Description"); _isKeyPhrase = dataReader.GetBoolean("IsKeyPhrase"); _keyPhraseNamespace = dataReader.GetStringNullAsEmpty("KeyPhraseNamespace"); _required = dataReader.GetBoolean("Required"); _defaultValue = dataReader.GetStringNullAsEmpty("DefaultValue"); _escape = dataReader.GetBoolean("Escape"); _rawInput = dataReader.GetBoolean("RawInput"); _includeInGuideEntry = dataReader.GetBoolean("IncludeInGuideEntry"); _validateEmpty = dataReader.GetBoolean("ValidateEmpty"); _validateNotEqualTo = dataReader.GetBoolean("ValidateNotEqualTo"); _validateParsesOK = dataReader.GetBoolean("ValidateParsesOK"); _notEqualToValue = dataReader.GetStringNullAsEmpty("NotEqualToValue"); _validateCustom = dataReader.GetBoolean("ValidateCustom"); _step = dataReader.GetInt32NullAsZero("Step"); _permissions = (UIFieldPermissions)Enum.Parse(typeof(UIFieldPermissions), dataReader.GetStringNullAsEmpty("Permissions")); }
/// <summary> /// Creates user object from given reader and user id /// </summary> /// <param name="reader"></param> /// <param name="userID"></param> /// <returns></returns> static public User CreateUserFromReader(IDnaDataReader reader, string prefix) { //IUser user = new User(_dnaDataReaderCreator, _dnaDiagnostics, _cacheManager); IUser user = new User(); if (reader.Exists(prefix + "userID")) { user.UserId = reader.GetInt32NullAsZero(prefix + "userID"); } else if (reader.Exists(prefix + "ID")) { user.UserId = reader.GetInt32NullAsZero(prefix + "ID"); } if (reader.Exists(prefix + "IdentityUserID")) { user.IdentityUserId = reader.GetStringNullAsEmpty(prefix + "IdentityUserId"); } if (reader.Exists(prefix + "IdentityUserName")) { user.IdentityUserName = reader.GetStringNullAsEmpty(prefix + "IdentityUserName"); } else if (reader.Exists(prefix + "LoginName")) { user.IdentityUserName = reader.GetStringNullAsEmpty(prefix + "LoginName"); } /* if (reader.Exists(prefix + "FirstNames")) { user.FirstNames = reader.GetStringNullAsEmpty(prefix + "FirstNames") ?? ""; } if(reader.Exists(prefix + "LastName")) { user.LastName = reader.GetStringNullAsEmpty(prefix + "LastName") ?? ""; } */ if(reader.Exists(prefix + "Status")) { user.Status= reader.GetInt32NullAsZero(prefix + "Status"); } if(reader.Exists(prefix + "TaxonomyNode")) { user.TaxonomyNode= reader.GetInt32NullAsZero(prefix + "TaxonomyNode"); } if (reader.Exists(prefix + "UserName")) { user.UserName = reader.GetStringNullAsEmpty(prefix + "UserName") ?? ""; } else if (reader.Exists(prefix + "Name")) { user.UserName = reader.GetStringNullAsEmpty(prefix + "Name") ?? ""; } if (user.UserName == String.Empty) { user.UserName = "******" + user.UserId.ToString(); } /* NO NO not emails * if (reader.Exists(prefix + "Email")) { user.Email = reader.GetStringNullAsEmpty(prefix + "Email") ?? ""; } */ if (reader.Exists(prefix + "SiteSuffix")) { user.SiteSuffix = reader.GetStringNullAsEmpty(prefix + "SiteSuffix") ?? ""; } if (reader.Exists(prefix + "Area")) { user.Area = reader.GetStringNullAsEmpty(prefix + "Area") ?? ""; } if (reader.Exists(prefix + "Title")) { user.Title = reader.GetStringNullAsEmpty(prefix + "Title") ?? ""; } if (reader.Exists(prefix + "SubQuota")) { user.SubQuota = reader.GetInt32NullAsZero(prefix + "SubQuota"); } if (reader.Exists(prefix + "Allocations")) { user.Allocations = reader.GetInt32NullAsZero(prefix + "Allocations"); } if (reader.Exists(prefix + "Journal")) { user.Journal = reader.GetInt32NullAsZero(prefix + "Journal"); } if (reader.Exists(prefix + "Active") && !reader.IsDBNull(prefix + "Active")) { user.Active = reader.GetBoolean(prefix + "Active"); } if (reader.Exists(prefix + "DateLastNotified") && reader.GetValue(prefix + "DateLastNotified") != DBNull.Value) { user.DateLastNotified = new DateElement(reader.GetDateTime(prefix + "DateLastNotified")); } if (reader.Exists(prefix + "DateJoined") && reader.GetValue(prefix + "DateJoined") != DBNull.Value) { user.DateJoined = new DateElement(reader.GetDateTime(prefix + "DateJoined")); } if (reader.Exists(prefix + "ForumPostedTo")) { user.ForumPostedTo = reader.GetInt32NullAsZero(prefix + "ForumPostedTo"); } if (reader.Exists(prefix + "Masthead")) { user.MastHead = reader.GetInt32NullAsZero(prefix + "Masthead"); } if (reader.Exists(prefix + "SinBin")) { user.SinBin = reader.GetInt32NullAsZero(prefix + "SinBin"); } if (reader.Exists(prefix + "ForumID")) { user.ForumId = reader.GetInt32NullAsZero(prefix + "ForumID"); } var siteId = 0; if (reader.Exists("SiteID")) { siteId = reader.GetInt32NullAsZero("SiteID"); } if (siteId != 0 && user.UserId != 0) { var userGroups = (UserGroups)SignalHelper.GetObject(typeof(UserGroups)); var groupList = userGroups.GetUsersGroupsForSite(user.UserId, siteId); foreach (var group in groupList) { user.Groups.Add(new Group(){Name = group.Name.ToUpper()}); } } else { } return (User)user; }
private void GenerateAltIdentitiesXml(IDnaDataReader dataReader, XmlNode parentXml) { int postPassedCount = 0; int postFailedCount = 0; int postTotalCount = 0; int articlePassedCount = 0; int articleFailedCount = 0; int articleTotalCount = 0; // Add Result Data . while (dataReader.Read()) { XmlNode memberXml = AddElementTag(parentXml,"MEMBERDETAILS"); //AddUser XML XmlNode userXml = AddElementTag(memberXml, "USER"); AddIntElement(userXml,"USERID", dataReader.GetInt32NullAsZero("userid")); AddTextTag(userXml, "USERNAME", dataReader.GetStringNullAsEmpty("username")); AddTextTag(userXml, "LOGINNAME", dataReader.GetStringNullAsEmpty("loginname")); AddTextTag(userXml, "EMAIL", dataReader.GetStringNullAsEmpty("email")); XmlNode statusXml = AddElementTag(userXml, "STATUS"); AddAttribute(statusXml, "STATUSID", dataReader.GetInt32NullAsZero("prefstatus")); AddIntElement(userXml, "ACTIVE", Convert.ToInt32(dataReader.GetBoolean("active"))); //Add Site XML. int siteId = dataReader.GetInt32NullAsZero("siteid"); ISite site = InputContext.TheSiteList.GetSite(siteId); SiteXmlBuilder siteXmlBuilder = new SiteXmlBuilder(InputContext); XmlNode siteXML = siteXmlBuilder.GenerateXml(null, site); siteXML = ImportNode(siteXML); memberXml.AppendChild(siteXML); if (!dataReader.IsDBNull("datejoined")) { AddDateXml(dataReader.GetDateTime("datejoined"), memberXml, "DATEJOINED"); } //Add Stats XML AddIntElement(memberXml, "POSTPASSEDCOUNT", dataReader.GetInt32NullAsZero("postpassedcount")); AddIntElement(memberXml, "POSTFAILEDCOUNT", dataReader.GetInt32NullAsZero("postfailedcount")); AddIntElement(memberXml, "POSTTOTALCOUNT", dataReader.GetInt32NullAsZero("totalpostcount")); AddIntElement(memberXml, "ARTICLEPASSEDCOUNT", dataReader.GetInt32NullAsZero("articlepassedcount")); AddIntElement(memberXml, "ARTICLEFAILEDCOUNT", dataReader.GetInt32NullAsZero("articlefailedcount")); AddIntElement(memberXml, "ARTICLETOTALCOUNT", dataReader.GetInt32NullAsZero("totalarticlecount")); postPassedCount += dataReader.GetInt32NullAsZero("postpassedcount"); postFailedCount += dataReader.GetInt32NullAsZero("postfailedcount"); postTotalCount += dataReader.GetInt32NullAsZero("totalpostcount"); articlePassedCount += dataReader.GetInt32NullAsZero("articlepassedcount"); articleFailedCount += dataReader.GetInt32NullAsZero("articlefailedcount"); articleTotalCount += dataReader.GetInt32NullAsZero("totalarticlecount"); } //Add Member Details Summary XML XmlNode summaryXml = AddElementTag(parentXml, "SUMMARY"); AddIntElement(summaryXml, "POSTPASSEDCOUNT", postPassedCount); AddIntElement(summaryXml, "POSTFAILEDCOUNT", postFailedCount); AddIntElement(summaryXml, "POSTTOTALCOUNT", postTotalCount); AddIntElement(summaryXml, "ARTICLEPASSEDCOUNT", articlePassedCount); AddIntElement(summaryXml,"ARTICLEFAILEDCOUNT",articleFailedCount); AddIntElement(summaryXml, "ARTICLETOTALCOUNT", articleTotalCount); }
/// <summary> /// Helper method to create the list after a specific stored procedure /// has been called to return an appropriate results set. /// </summary> /// <param name="articleList"></param> /// <param name="dataReader"></param> /// <param name="skip">Number of Articles to skip</param> /// <param name="show">Number of Articles to show</param> /// <returns></returns> public int CreateList(XmlElement articleList, IDnaDataReader dataReader, int skip, int show) { int count = show; bool records = true; //Read/skip over the skip number of rows so that the row that the first row that in the do below is //the one required for (int i = 0; i < skip; i++) { records = dataReader.Read(); if (!records) { break; } } if (records) { do { // Setup the article XmlElement article = AddElementTag(articleList, "ARTICLE"); if (dataReader.DoesFieldExist("EntryID")) { AddIntElement(article, "ENTRY-ID", dataReader.GetInt32NullAsZero("EntryID")); } if (dataReader.DoesFieldExist("h2g2ID")) { AddAttribute(article, "H2G2ID", dataReader.GetInt32NullAsZero("h2g2ID")); //TODO: remove the H2G2-ID from all schemas and skins... AddIntElement(article, "H2G2-ID", dataReader.GetInt32NullAsZero("h2g2ID")); } if (dataReader.DoesFieldExist("SiteID")) { AddIntElement(article, "SITEID", dataReader.GetInt32NullAsZero("SiteID")); } if (dataReader.DoesFieldExist("RecommendationID")) { AddIntElement(article, "RECOMMENDATION-ID", dataReader.GetInt32NullAsZero("RecommendationID")); } if (dataReader.DoesFieldExist("NotificationSent")) { AddIntElement(article, "NOTIFIED", dataReader.GetBoolean("NotificationSent") ? 1 : 0); } User user = new User(InputContext); if (dataReader.DoesFieldExist("Editor")) { // place all user details within a USER tag and structure them appropriately // editor info int editorID = dataReader.GetInt32NullAsZero("Editor"); XmlElement editorTag = AddElementTag(article, "EDITOR"); user.AddPrefixedUserXMLBlock(dataReader, editorID, "Editor", editorTag); } if (dataReader.DoesFieldExist("AuthorID")) { // author info int authorID = dataReader.GetInt32NullAsZero("AuthorID"); XmlElement authorTag = AddElementTag(article, "AUTHOR"); user.AddPrefixedUserXMLBlock(dataReader, authorID, "Author", authorTag); } if (dataReader.DoesFieldExist("AcceptorID")) { // acceptor info (user that accepted a recommendation) int acceptorID = dataReader.GetInt32NullAsZero("AcceptorID"); XmlElement acceptorTag = AddElementTag(article, "ACCEPTOR"); user.AddPrefixedUserXMLBlock(dataReader, acceptorID, "Acceptor", acceptorTag); } if (dataReader.DoesFieldExist("AllocatorID")) { // allocator info (user that allocated a recommendation to a sub) int allocatorID = dataReader.GetInt32NullAsZero("AllocatorID"); XmlElement allocatorTag = AddElementTag(article, "ALLOCATOR"); user.AddPrefixedUserXMLBlock(dataReader, allocatorID, "Allocator", allocatorTag); } if (dataReader.DoesFieldExist("ScoutID")) { // scout info int scoutID = dataReader.GetInt32NullAsZero("ScoutID"); XmlElement scoutTag = AddElementTag(article, "SCOUT"); user.AddPrefixedUserXMLBlock(dataReader, scoutID, "Scout", scoutTag); } if (dataReader.DoesFieldExist("SubEditorID")) { // sub editor info int subEditorID = dataReader.GetInt32NullAsZero("SubEditorID"); XmlElement subEditorTag = AddElementTag(article, "SUBEDITOR"); user.AddPrefixedUserXMLBlock(dataReader, subEditorID, "SubEditor", subEditorTag); } if (dataReader.DoesFieldExist("Status")) { AddIntElement(article, "STATUS", dataReader.GetInt32NullAsZero("Status")); } if (dataReader.DoesFieldExist("RecommendationStatus")) { AddIntElement(article, "RECOMMENDATION-STATUS", dataReader.GetInt32NullAsZero("RecommendationStatus")); } if (dataReader.DoesFieldExist("SubbingStatus")) { AddIntElement(article, "SUBBING-STATUS", dataReader.GetInt32NullAsZero("SubbingStatus")); } if (dataReader.DoesFieldExist("Style")) { AddIntElement(article, "STYLE", dataReader.GetInt32NullAsZero("Style")); } if (dataReader.DoesFieldExist("Subject")) { AddTextTag(article, "SUBJECT", dataReader.GetStringNullAsEmpty("Subject")); } if (dataReader.DoesFieldExist("DateCreated")) { AddDateXml(dataReader, article, "DateCreated", "DATE-CREATED"); } if (dataReader.DoesFieldExist("LastUpdated")) { AddDateXml(dataReader, article, "LastUpdated", "LASTUPDATED"); } if (dataReader.DoesFieldExist("DateRecommended")) { AddDateXml(dataReader, article, "DateRecommended", "DATE-RECOMMENDED"); } if (dataReader.DoesFieldExist("DecisionDate")) { AddDateXml(dataReader, article, "DecisionDate", "RECOMMENDATION-DECISION-DATE"); } if (dataReader.DoesFieldExist("DateAllocated")) { AddDateXml(dataReader, article, "DateAllocated", "DATE-ALLOCATED"); } if (dataReader.DoesFieldExist("DateReturned")) { AddDateXml(dataReader, article, "DateReturned", "DATE-RETURNED"); } //TODO add Extra Info correctly if (dataReader.DoesFieldExist("ExtraInfo")) { //Add Extra Info XML where it exists. string extraInfo = dataReader.GetAmpersandEscapedStringNullAsEmpty("ExtraInfo"); if (extraInfo != string.Empty) { XmlDocument extraInfoXml = new XmlDocument(); extraInfoXml.LoadXml(extraInfo); article.AppendChild(ImportNode(extraInfoXml.FirstChild)); } //TODO Use Extra Info Class will need to change SP to get out the guide entry Type //ExtraInfo extraInfo = new ExtraInfo(); //extraInfo.TryCreate(dataReader.GetInt32NullAsZero("Type"), dataReader.GetStringNullAsEmpty("ExtraInfo")); //AddInside(article, extraInfo); } if (dataReader.DoesFieldExist("ForumPostCount")) { AddIntElement(article, "FORUMPOSTCOUNT", dataReader.GetInt32NullAsZero("ForumPostCount")); AddIntElement(article, "FORUMPOSTLIMIT", InputContext.GetSiteOptionValueInt("Forum", "PostLimit")); } if (dataReader.DoesFieldExist("StartDate") && !dataReader.IsDBNull("StartDate")) { AddDateXml(dataReader, article, "StartDate", "DATERANGESTART"); } // Take a day from the end date as stored in the database for UI purposes. // E.g. User submits a date range of 01/09/1980 to 02/09/1980. They mean for this to represent 2 days i.e. 01/09/1980 00:00 - 03/09/1980 00:00. // This gets stored in the database but for display purposes we subtract a day from the database end date to return the // original dates submitted by the user inorder to match their expectations. if (dataReader.DoesFieldExist("EndDate") && !dataReader.IsDBNull("EndDate")) { AddDateXml(dataReader.GetDateTime("EndDate").AddDays(-1), article, "DATERANGEEND"); } if (dataReader.DoesFieldExist("TimeInterval")) { AddIntElement(article, "TIMEINTERVAL", dataReader.GetInt32NullAsZero("TimeInterval")); } if (dataReader.DoesFieldExist("LASTPOSTED")) { AddDateXml(dataReader, article, "LASTPOSTED", "FORUMLASTPOSTED"); } ////////// if (dataReader.DoesFieldExist("BookmarkCount")) { AddTextTag(article, "BOOKMARKCOUNT", dataReader.GetInt32NullAsZero("BookmarkCount")); } if (dataReader.DoesFieldExist("ZeitgeistScore")) { AddElement(article, "ZEITGEIST", "<SCORE>" + dataReader.GetDoubleNullAsZero("ZeitgeistScore") + "</SCORE>"); } #region LocationXML //*********************************************************************** // Location Info //*********************************************************************** if (dataReader.DoesFieldExist("Latitude") && !dataReader.IsDBNull("Latitude")) { AddTextTag(article, "LATITUDE", dataReader.GetDoubleNullAsZero("Latitude").ToString()); AddTextTag(article, "LONGITUDE", dataReader.GetDoubleNullAsZero("Longitude").ToString()); if (dataReader.DoesFieldExist("Distance")) { if (dataReader.GetDoubleNullAsZero("Distance") < 0.0001) { AddTextTag(article, "DISTANCE", "0"); } else { AddTextTag(article, "DISTANCE", dataReader.GetDoubleNullAsZero("Distance").ToString()); } } AddTextTag(article, "LOCATIONTITLE", dataReader.GetString("LocationTitle")); AddTextTag(article, "LOCATIONDESCRIPTION", dataReader.GetString("LocationDescription")); AddTextTag(article, "LOCATIONZOOMLEVEL", dataReader.GetInt32NullAsZero("LocationZoomLevel").ToString()); AddTextTag(article, "LOCATIONUSERID", dataReader.GetInt32NullAsZero("LocationUserID").ToString()); AddDateXml(dataReader.GetDateTime("LocationDateCreated"), article, "LOCATIONDATECREATED"); } //*********************************************************************** #endregion if (dataReader.DoesFieldExist("MediaAssetID")) { AddMediaAssetXml(dataReader, article, dataReader.GetInt32NullAsZero("MediaAssetID")); } if (dataReader.DoesFieldExist("CRPollID")) { AddPollXml(dataReader, article); } count--; } while (count > 0 && dataReader.Read()); // dataReader.Read won't get called if count == 0 // See if there's an extra row waiting if (count == 0 && dataReader.Read()) { AddAttribute(articleList, "MORE", 1); } } return count; }
/// <summary> /// /// </summary> /// <param name="reader"></param> /// <param name="forumId"></param> /// <param name="index"></param> /// <param name="applySkin">whether we need to apply the transform to the post</param> /// <returns></returns> public static ThreadSummary CreateThreadSummaryFromReader(IDnaDataReader reader, int forumId, int index, bool applySkin) { var thread = new ThreadSummary(); thread.ForumId = forumId; thread.Index = index; thread.Type = string.Empty; //TODO: remove as this is a legacy ripley element if (reader.DoesFieldExist("ThisCanRead")) { thread.CanRead = (byte)(reader.GetBoolean("ThisCanRead") ? 1 : 0); } if (reader.DoesFieldExist("ThisCanWrite")) { thread.CanWrite = (byte)(reader.GetBoolean("ThisCanWrite") ? 1 : 0); } thread.ThreadId = reader.GetInt32NullAsZero("ThreadID"); thread.DateLastPosted = new DateElement(reader.GetDateTime("LastPosted")); if (reader.DoesFieldExist("cnt")) { thread.TotalPosts = reader.GetInt32NullAsZero("cnt"); } if (reader.DoesFieldExist("firstpostentryid")) { thread.FirstPost = ThreadPostSummary.CreateThreadPostFromReader(reader, "FirstPost", reader.GetInt32NullAsZero("firstpostentryid"), applySkin); } if (reader.DoesFieldExist("lastpostentryid")) { thread.LastPost = ThreadPostSummary.CreateThreadPostFromReader(reader, "LastPost", reader.GetInt32NullAsZero("lastpostentryid"), applySkin); } if (reader.DoesFieldExist("FirstSubject")) { if (thread.FirstPost != null) { thread.Subject = ThreadPost.FormatSubject(reader.GetString("FirstSubject"), (CommentStatus.Hidden)thread.FirstPost.Hidden); } else { thread.Subject = ThreadPost.FormatSubject(reader.GetString("FirstSubject"), CommentStatus.Hidden.NotHidden ); } } if(reader.DoesFieldExist("IsSticky")) {//conditionally check if field exists.. thread.IsSticky = (reader.GetInt32NullAsZero("IsSticky")==1); } return thread; }
/// <summary> /// Creates a ratinginfo object /// </summary> /// <param name="reader">A reader with all information</param> /// <returns>Rating Info object</returns> public RatingInfo RatingCreateFromReader(IDnaDataReader reader, ISite site) { RatingInfo ratingInfo = new RatingInfo { Created = new DateTimeHelper(DateTime.Parse(reader.GetDateTime("Created").ToString())), User = base.UserReadById(reader, site), ID = reader.GetInt32NullAsZero("id"), rating = reader.GetByte("rating") }; ratingInfo.hidden = (CommentStatus.Hidden)reader.GetInt32NullAsZero("hidden"); if (reader.IsDBNull("poststyle")) { ratingInfo.PostStyle = PostStyle.Style.richtext; } else { ratingInfo.PostStyle = (PostStyle.Style)reader.GetTinyIntAsInt("poststyle"); } ratingInfo.IsEditorPick = reader.GetBoolean("IsEditorPick"); ratingInfo.Index = reader.GetInt32NullAsZero("PostIndex"); //get complainant Dictionary<string, string> replacement = new Dictionary<string, string>(); replacement.Add("sitename", site.SiteName); replacement.Add("postid", ratingInfo.ID.ToString()); ratingInfo.ComplaintUri = UriDiscoverability.GetUriWithReplacments(BasePath, SiteList.GetSiteOptionValueString(site.SiteID, "General", "ComplaintUrl"), replacement); replacement = new Dictionary<string, string>(); replacement.Add("RatingForumid", reader.GetString("forumuid")); replacement.Add("sitename", site.SiteName); ratingInfo.ForumUri = UriDiscoverability.GetUriWithReplacments(BasePath, UriDiscoverability.UriType.RatingsByRatingForumId, replacement); replacement = new Dictionary<string, string>(); replacement.Add("parentUri", reader.GetString("parentUri")); replacement.Add("postid", ratingInfo.ID.ToString()); ratingInfo.Uri = UriDiscoverability.GetUriWithReplacments(BasePath, UriDiscoverability.UriType.Comment, replacement); //Get Editors Pick ( this should be expanded to include any kind of poll ) /*EditorsPick editorsPick = new EditorsPick(_dnaDiagnostics, _connection, _caching); if (editorsPick.LoadPollResultsForItem(commentInfo.ID) && editorsPick.Id > 0) { commentInfo.EditorsPick = new EditorsPickInfo { Id = editorsPick.Id, Response = editorsPick.Result }; }*/ ratingInfo.text = CommentInfo.FormatComment(reader.GetString("text"), ratingInfo.PostStyle, ratingInfo.hidden, ratingInfo.User.Editor); return ratingInfo; }
/// <summary> /// Method for reading user data from user procedure calls /// </summary> /// <param name="reader">The StoredProcedure reader that contains the data</param> private void ReadUserDetails(IDnaDataReader reader) { UserID = reader.GetInt32("userid"); UserName = reader.GetString("username"); IdentityUserID = reader.GetStringNullAsEmpty("IdentityUserID"); IdentityUserName = reader.GetStringNullAsEmpty("IdentityUserName"); _status = reader.GetInt32("status"); _prefStatus = reader.GetInt32("PrefStatus"); if (_status == 1)//normal global status { if (reader.GetInt32("PrefStatus") == 4)//banned { _status = 0; } } //NO NO emails Email = reader.GetString("email"); SiteSuffix = reader.GetStringNullAsEmpty("SiteSuffix"); LastSynchronisedDate = reader.GetDateTime("LastUpdatedDate"); if (reader.Exists("AcceptSubscriptions")) { AcceptSubscriptions = reader.GetBoolean("AcceptSubscriptions"); } if (reader.Exists("SinBin")) { IsAutoSinBin = reader.GetInt32NullAsZero("SinBin"); } //PrimarySiteId = reader.GetInt32NullAsZero("PrimarySiteId"); }