/// <summary> /// Checks if an item has a group alert /// </summary> /// <param name="reader"></param> /// <param name="groupId"></param> /// <param name="userId"></param> /// <param name="siteId"></param> /// <param name="itemType"></param> /// <param name="itemId"></param> static public void HasGroupAlertOnItem(IDnaDataReaderCreator readerCreator, ref int groupId, int userId, int siteId, EventItemTypes itemType, int itemId) { groupId =0; IDnaDataReader reader = null; switch (itemType) { case EventItemTypes.IT_FORUM: reader = readerCreator.CreateDnaDataReader("getforumgroupalertid"); reader.AddParameter("itemid", itemId); break; case EventItemTypes.IT_H2G2: reader = readerCreator.CreateDnaDataReader("getarticlegroupalertid"); reader.AddParameter("itemid", itemId); break; case EventItemTypes.IT_NODE: reader = readerCreator.CreateDnaDataReader("getnodegroupalertid"); reader.AddParameter("nodeid", itemId); break; case EventItemTypes.IT_THREAD: reader = readerCreator.CreateDnaDataReader("getthreadgroupalertid"); reader.AddParameter("threadid", itemId); break; case EventItemTypes.IT_CLUB: reader = readerCreator.CreateDnaDataReader("getclubgroupalertid"); reader.AddParameter("itemid", itemId); break; default: throw new NotImplementedException(); } using (reader) { reader.AddParameter("userid", userId); reader.AddParameter("siteid", siteId); reader.Execute(); if (reader.Read()) { groupId = reader.GetInt32NullAsZero("GroupID"); } } }
public static List<ArticleSummary> GetChildArticles(IDnaDataReaderCreator readerCreator, int nodeID, int siteID) { List<ArticleSummary> childArticles = new List<ArticleSummary>(); using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("getarticlesinhierarchynode")) { reader.AddParameter("nodeID", nodeID); reader.AddParameter("currentsiteid", siteID); reader.Execute(); if (reader.HasRows) { while (reader.Read()) { ArticleSummary childArticle = new ArticleSummary(); childArticle.H2G2ID = reader.GetInt32NullAsZero("h2g2id"); childArticle.Name = reader.GetStringNullAsEmpty("subject"); childArticle.StrippedName = StringUtils.StrippedName(reader.GetStringNullAsEmpty("subject")); childArticle.Type = Article.GetArticleTypeFromInt(reader.GetInt32NullAsZero("Type")); childArticle.Editor = new UserElement() { user = User.CreateUserFromReader(reader, "editor")} ; childArticle.DateCreated = new DateElement(reader.GetDateTime("datecreated")); childArticle.LastUpdated = new DateElement(reader.GetDateTime("lastupdated")); ; //childArticle.SortOrder = null; childArticle.Status = ArticleStatus.GetStatus(reader.GetInt32NullAsZero("status")); childArticles.Add(childArticle); } } } return childArticles; }
static public ReviewForum CreateFromDatabase(IDnaDataReaderCreator readerCreator, int id, bool isReviewForumID) { ReviewForum forum = new ReviewForum() { Id = id }; using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("fetchreviewforumdetails")) { if (isReviewForumID) { reader.AddParameter("reviewforumid", id); } else { reader.AddParameter("h2g2id", id); } reader.Execute(); // Check to see if we found anything if (reader.HasRows && reader.Read()) { forum.Id = reader.GetInt32NullAsZero("ReviewForumID"); forum.ForumName = reader.GetStringNullAsEmpty("forumname"); forum.UrlFriendlyName = reader.GetStringNullAsEmpty("urlfriendlyname"); forum.H2g2Id = reader.GetInt32NullAsZero("h2g2id"); forum.SiteId = reader.GetInt32NullAsZero("siteid"); forum.IncubateTime = reader.GetInt32NullAsZero("IncubateTime"); forum.Recommendable= reader.GetByteNullAsZero("recommend"); } } return forum; }
static public ArticleInfoPageAuthor CreateListForArticle(int h2g2Id, int editorId, IDnaDataReaderCreator readerCreator) { ArticleInfoPageAuthor author = new ArticleInfoPageAuthor(); // Create the datareader to get the authors using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("getauthorsfromh2g2id")) { reader.AddParameter("h2g2ID", h2g2Id); reader.Execute(); // Now go through all the results in turn int lastUserID = 0; while (reader.Read()) { // Get the current researcher int researcherID = reader.GetInt32("UserID"); if (researcherID != lastUserID) { // Check to see if we've just got the editors results User researcher = User.CreateUserFromReader(reader); author.Researchers.Add(researcher); if (researcherID == editorId) { author.Editor = new UserElement() { user = researcher }; } lastUserID = researcherID; } } } return author; }
static public ArticleInfoSubmittable CreateSubmittable(IDnaDataReaderCreator readerCreator, int h2g2Id, bool isSubmittable) { ArticleInfoSubmittable submittable = new ArticleInfoSubmittable(); using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("fetchreviewforummemberdetails")) { reader.AddParameter("h2g2id", h2g2Id); reader.Execute(); if (reader.HasRows && reader.Read()) { submittable.Forum = new SubmittableForum(){Id=reader.GetInt32("ForumID")}; submittable.Thread = new SubmittableThread() { Id = reader.GetInt32("ThreadID") }; submittable.Post = new SubmittablePost() { Id = reader.GetInt32("PostID") }; submittable.Type = "IN"; submittable.ReviewForum = ReviewForum.CreateFromDatabase(readerCreator, reader.GetInt32("ReviewForumID"), true); } else if (isSubmittable) { submittable.Type = "YES"; } else { submittable.Type = "NO"; } } return submittable; }
/// <summary> /// Calls the db and updates the term and action for a given modclassid /// </summary> /// <param name="readerCreator"></param> /// <param name="modClassId"></param> /// <param name="historyId"></param> public bool UpdateTermForModClassId(IDnaDataReaderCreator readerCreator, int modClassId, int historyId) { if (string.IsNullOrEmpty(Value)) {//if empty then throw exception throw new Exception("Term value cannot be empty."); } if (historyId == 0) {//if empty then throw exception throw new Exception("HistoryId cannot be 0."); } if (modClassId == 0) {//if empty then throw exception throw new Exception("ModClassId cannot be 0."); } bool termUpdated = true; using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("addtermsfilterterm")) { reader.AddParameter("term", Value); reader.AddParameter("actionId", (byte)Action); reader.AddParameter("modClassId", modClassId); reader.AddParameter("historyId", historyId); reader.Execute(); if (reader.HasRows && reader.Read()) { termUpdated = reader.GetBoolean("termupdated"); } } return termUpdated; }
/// <summary> /// Registers complaint against post /// </summary> /// <param name="creator"></param> /// <param name="userId"></param> /// <param name="complaintText"></param> /// <param name="email"></param> /// <param name="postId"></param> /// <param name="verificationUid"></param> /// <param name="modId"></param> public static void RegisterComplaint(IDnaDataReaderCreator creator, int userId, String complaintText, String email, int postId, string ipAddress, Guid bbcUid, out Guid verificationUid, out int modId) { verificationUid = Guid.Empty; modId = 0; using (IDnaDataReader dataReader = creator.CreateDnaDataReader("registerpostingcomplaint")) { dataReader.AddParameter("complainantid", userId); dataReader.AddParameter("correspondenceemail", email); dataReader.AddParameter("postid", postId); dataReader.AddParameter("complainttext", complaintText); dataReader.AddParameter("ipaddress", ipAddress); dataReader.AddParameter("bbcuid", bbcUid); //HashValue Guid hash = DnaHasher.GenerateHash(Convert.ToString(userId) + ":" + email + ":" + Convert.ToString(postId) + ":" + complaintText); dataReader.AddParameter("hash", hash); dataReader.Execute(); // Send Email if (dataReader.Read()) { if (dataReader.DoesFieldExist("modId")) { modId = dataReader.GetInt32NullAsZero("modId"); } if (dataReader.DoesFieldExist("verificationUid")) { verificationUid = dataReader.GetGuid("verificationUid"); } } } }
/// <summary> /// Load list of smileys which need to be replaced by Smiley XML. /// Generate XML replacements. /// Generate RegEx to match smiley shortcode. /// </summary> /// <returns></returns> public static void LoadSmileys(IDnaDataReaderCreator creator) { Replacements.Clear(); TagReplacements.Clear(); IsInitialised = false; String regex = String.Empty; using (IDnaDataReader dataReader = creator.CreateDnaDataReader("getsmileylist")) { dataReader.Execute(); while (dataReader.Read()) { String name = dataReader.GetStringNullAsEmpty("name"); String shorthand = dataReader.GetStringNullAsEmpty("tag"); String replace = "<SMILEY TYPE='***' H2G2='Smiley#***'/>"; shorthand = StringUtils.EscapeAllXml(shorthand); if (shorthand.IndexOf("<") == 0) { TagReplacements.Add(shorthand, replace.Replace("***", name)); } else { Replacements.Add(shorthand, replace.Replace("***", name)); } } } IsInitialised = true; }
public static string GetDatabaseVersion(IDnaDataReaderCreator readerCreator) { using (var dataReader = readerCreator.CreateDnaDataReader("dna.DatabaseVersion")) { dataReader.Execute(); dataReader.Read(); var databaseVersion = dataReader.GetString("DatabaseVersion"); return databaseVersion; } }
static public void ProcessUserModatedEventActivity(IDnaDataReaderCreator DataReaderCreator) { using (IDnaDataReader reader = DataReaderCreator.CreateDnaDataReader("getsiteevents_usermoderation")) { reader.Execute(); while (reader.Read()) { CreateUserModatedEventActivity(reader, DataReaderCreator); } } }
/// <summary> /// Stores the event in the db... /// </summary> /// <param name="creator"></param> public void SaveEvent(IDnaDataReaderCreator creator) { using (IDnaDataReader reader = creator.CreateDnaDataReader("insertsiteactivityitem")) { reader.AddParameter("type", (int)Type); reader.AddParameter("activitydata", ActivityData.ToString()); reader.AddParameter("datetime", Date.DateTime); reader.AddParameter("siteid", SiteId); reader.AddParameter("userid", UserId); reader.Execute(); } }
static public void ProcessArticleModerationDecisionActivity(IDnaDataReaderCreator DataReaderCreator) { //Get Article Moderation Events using (IDnaDataReader reader = DataReaderCreator.CreateDnaDataReader("getsiteevents_articlemoderationdecision")) { reader.Execute(); while (reader.Read()) { ArticleModerationDecision.CreateArticleModerationDecisionActivity(reader, DataReaderCreator); } } }
static public void ProcessComplaintArticleEventActivity(IDnaDataReaderCreator DataReaderCreator) { using (IDnaDataReader reader = DataReaderCreator.CreateDnaDataReader("getsiteevents_complaintarticle")) { reader.Execute(); while (reader.Read()) { CreateComplaintArticleEventActivity(reader, DataReaderCreator); } } }
static public void ProcessNewUserEventActivity(IDnaDataReaderCreator DataReaderCreator) { using (IDnaDataReader reader = DataReaderCreator.CreateDnaDataReader("getsiteevents_newuser")) { reader.Execute(); while (reader.Read()) { CreateNewUserEventActivity(reader, DataReaderCreator); } } }
/// <summary> /// This method creates the Crumbtrail xml for a given article id /// </summary> /// <param name="h2g2ID">The id of the article you want to get the crumbtrail for</param> static public CrumbTrails CreateArticleCrumbtrail(int h2g2ID, IDnaDataReaderCreator readerCreator) { // Create the reader to get the details using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("getarticlecrumbtrail")) { reader.AddParameter("h2g2ID", h2g2ID); reader.Execute(); // Now create the crumbtrails from the results return GetCrumbtrailForItem(reader); } }
/// <summary> /// Gets the total number of uneditted articles /// </summary> /// <param name="siteID">The site id</param> /// <returns></returns> private static int GetUneditedArticleCount(IDnaDataReaderCreator readerCreator, int siteID) { int count; using (IDnaDataReader dataReader = readerCreator.CreateDnaDataReader("totalunapprovedentries")) { dataReader.AddParameter("siteid", siteID); dataReader.Execute(); if (!dataReader.HasRows || !dataReader.Read()) { return 0; } count = dataReader.GetInt32NullAsZero("cnt"); } return count; }
public void QueueEmail(IDnaDataReaderCreator readerCreator, string toEmailAddress, string fromEmailAddress, string ccAddress, string subject, string body, string notes, EmailPriority priority) { using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("QueueEmail")) { reader.AddParameter("toEmailAddress", toEmailAddress); reader.AddParameter("fromEmailAddress", fromEmailAddress); reader.AddParameter("ccAddress", ccAddress == null ? "" : ccAddress); reader.AddParameter("subject", subject); reader.AddParameter("body", body); reader.AddParameter("priority", priority); reader.AddParameter("notes", notes); reader.Execute(); } }
/// <summary> /// Allowed URL List Class /// </summary> /// <param name="context">The context</param> public void LoadAllowedURLLists(IDnaDataReaderCreator readerCreator) { string getAllowedURLListData = "getallallowedurls"; using (IDnaDataReader dataReader = readerCreator.CreateDnaDataReader(getAllowedURLListData)) { dataReader.Execute(); if (dataReader.HasRows) { ProcessAllowedURLListData(dataReader); } } }
/// <summary> /// This metho gets all the Email Inserts for a given site or mod class /// </summary> /// <param name="readerCreator">A data reader creator to create procedure calls</param> /// <param name="insertType">The type of inserts to get, modclass or site</param> /// <param name="typeID">The ID of the modclass or site to get</param> /// <returns>An EmailInserts object that holds a list of all the email inserts for the requested object</returns> public static EmailInserts GetEmailInserts(IDnaDataReaderCreator readerCreator, EmailTemplateTypes insertType, int typeID) { // Create a new EmailInserts object and initialise the collection EmailInserts emailInserts = new EmailInserts(); emailInserts.EmailInsertList = new Collection<EmailInsert>(); // Work out which type of inserts we're trying to get string procName = "getemailinsertsbyclass"; string paramName = "ModClassID"; if (insertType == EmailTemplateTypes.SiteTemplates) { procName = "getemailinsertsbysite2"; paramName = "siteid"; } else if (insertType == EmailTemplateTypes.AllTemplates) { typeID = -1; } // Go through all the results creating the inserts and adding them to the list using (IDnaDataReader reader = readerCreator.CreateDnaDataReader(procName)) { reader.AddParameter(paramName, typeID); reader.Execute(); while (reader.HasRows && reader.Read()) { EmailInsert insert = new EmailInsert(); insert.ID = reader.GetInt32("EmailInsertID"); insert.Name = reader.GetString("InsertName"); insert.DisplayName = reader.GetString("DisplayName"); insert.Group = reader.GetString("InsertGroup"); if (!reader.IsDBNull("SiteID")) { insert.SiteID = reader.GetInt32("SiteID"); } insert.DefaultText = reader.GetString("DefaultText"); insert.InsertText = reader.GetString("InsertText"); insert.ClassID = reader.GetInt32("ModClassID"); emailInserts.EmailInsertList.Add(insert); } } // Return the new object return emailInserts; }
/// <summary> /// Gets the topics for a given site and status from the db. /// </summary> /// <param name="readerCreator"></param> /// <param name="siteId"></param> /// <param name="status"></param> /// <returns></returns> static public TopicElementList GetTopicListFromDatabase(IDnaDataReaderCreator readerCreator, int siteId, TopicStatus status, bool includeArchived) { var topicList = new TopicElementList{Status = status}; using (var reader = readerCreator.CreateDnaDataReader("gettopicsforsiteid2")) { reader.AddParameter("isiteid", siteId); reader.AddParameter("itopicstatus", (int)status); reader.AddParameter("includearchived", includeArchived ? 1 : 0); reader.Execute(); while(reader.Read()) { topicList.Topics.Add(TopicElement.GetTopicFromReader(reader)); } } return topicList; }
/// <summary> /// Updates the frontpage elements attributes of the topic /// </summary> /// <param name="readerCreator"></param> /// <param name="siteId"></param> /// <param name="userId"></param> /// <returns></returns> public BaseResult UpdateFrontPageElements(IDnaDataReaderCreator readerCreator, int userId, int topicId) { //updatetopicelement @topicelementid int, @topicid int = NULL, @templatetype int = NULL, @textboxtype int = NULL, //@textbordertype int = NULL, @frontpageposition int = NULL, @elementstatus int = NULL, @elementlinkid int = NULL, //@title varchar(256) = NULL, @text text = NULL, @imagename varchar(256) = NULL, //@applytemplatetoallinsite int = 0, @imagewidth int = NULL, @imageheight int = NULL, //@imagealttext varchar(256) = NULL, @editorid INT, @editkey uniqueidentifier using (var reader = readerCreator.CreateDnaDataReader("updatetopicelement")) { reader.AddParameter("topicelementid", Elementid); reader.AddParameter("topicid", topicId); reader.AddParameter("templatetype", TemplateElement); reader.AddParameter("frontpageposition", Position); reader.AddParameter("elementstatus", StatusElement); reader.AddParameter("title", Title); reader.AddParameter("text", Text); reader.AddParameter("imagename", ImageName); reader.AddParameter("imagealttext", ImageAltText); reader.AddParameter("editorid", userId); reader.AddParameter("editkey", Editkey); reader.Execute(); if (reader.Read()) { //SELECT 'ValidID' = 1,'NewEditKey' = @NewEditKey if (reader.GetInt32NullAsZero("ValidID") == 1) { Editkey = reader.GetGuid("NewEditKey"); } else { return new Error("UpdateFrontPageElements", "Unable to update - invalid edit key"); } } else { return new Error("UpdateFrontPageElements", "Unable to update"); } return new Result("UpdateFrontPageElements", "Update successful"); } }
/// <summary> /// This method gets all the Email Templates for a given type /// </summary> /// <param name="readerCreator">A data reader creator to create procedures</param> /// <param name="templateType">The type of templates to get</param> /// <param name="typeID">The ID of the template type</param> /// <returns>An Email Templates object that contains a collection of all the requested email templates</returns> public static EmailTemplates GetEmailTemplates(IDnaDataReaderCreator readerCreator, EmailTemplateTypes templateType, int typeID) { // Create a new email templates object and intialise the collection EmailTemplates emailTemplates = new EmailTemplates(); emailTemplates.EmailTemplatesList = new Collection<EmailTemplate>(); // Work out which procedure and params we need to call for the requested type string emailTemplateProc = "getemailtemplatesbymodclassid"; string typeIDName = "modclassid"; if (templateType == EmailTemplateTypes.SiteTemplates) { emailTemplateProc = "getemailtemplatesbysiteid"; typeIDName = "siteid"; } else if (templateType == EmailTemplateTypes.AllTemplates) { typeID = -1; } // Go through all the results creating and adding the templates to the list using (IDnaDataReader reader = readerCreator.CreateDnaDataReader(emailTemplateProc)) { reader.AddParameter(typeIDName, typeID); reader.Execute(); while (reader.HasRows && reader.Read()) { EmailTemplate emailTemplate = new EmailTemplate() { ModClassID = reader.GetInt32("ModClassID"), AutoFormat = reader.IsDBNull("AutoFormat") ? 0 : reader.GetBoolean("AutoFormat") ? 1 : 0, EmailTemplateID = reader.GetInt32("EmailTemplateID"), Name = reader.GetString("Name"), Subject = reader.GetString("Subject"), Body = reader.GetString("Body") }; emailTemplates.EmailTemplatesList.Add(emailTemplate); } } // Return the new Email template object return emailTemplates; }
/// <summary> /// Gets the latest articles for a given site /// </summary> /// <param name="siteID">The site id</param> /// <param name="skip">Number to skip</param> /// <param name="show"></param> /// <returns></returns> private static List<ArticleSummary> CreateRecentArticles(IDnaDataReaderCreator readerCreator, int siteID, int skip, int show) { List<ArticleSummary> recentArticles = new List<ArticleSummary>(); using (IDnaDataReader dataReader = readerCreator.CreateDnaDataReader("freshestarticles")) { dataReader.AddParameter("siteid", siteID); dataReader.AddParameter("show", show); dataReader.AddParameter("skip", skip); dataReader.Execute(); if (!dataReader.HasRows) { return null; } while (dataReader.Read()) { recentArticles.Add(ArticleSummary.CreateArticleSummaryFromReader(dataReader)); } } return recentArticles; }
/// <summary> /// Returns the object filles from the preview table. /// </summary> /// <param name="siteId"></param> /// <param name="readerCreator"></param> /// <returns></returns> public static SiteConfig GetPreviewSiteConfig(int siteId, IDnaDataReaderCreator readerCreator) { var siteConfig = new SiteConfig {SiteId = siteId}; using(var reader = readerCreator.CreateDnaDataReader("fetchpreviewsiteconfig")) { reader.AddParameter("siteid", siteId); reader.Execute(); if(reader.Read()) { siteConfig.EditKey = reader.GetGuid("editkey"); var siteConfigStr = reader.GetStringNullAsEmpty("config"); if(!string.IsNullOrEmpty(siteConfigStr)) { var xmlSiteConfig = new XmlDocument(); xmlSiteConfig.LoadXml(Entities.GetEntities() + siteConfigStr); /*var xmlV2Node = xmlSiteConfig.SelectSingleNode("//SITECONFIG/V2_BOARDS"); if(xmlV2Node != null) { siteConfig.V2Board = (SiteConfigV2Board)StringUtils.DeserializeObjectUsingXmlSerialiser(xmlV2Node.OuterXml, typeof(SiteConfigV2Board)); }*/ var elements = new List<XmlElement>(); foreach (XmlElement childNode in xmlSiteConfig.ChildNodes[1].ChildNodes) { if(childNode.Name == "V2_BOARDS") { siteConfig.V2Board = (SiteConfigV2Board)StringUtils.DeserializeObjectUsingXmlSerialiser(childNode.OuterXml, typeof(SiteConfigV2Board)); } else { elements.Add(childNode); } } siteConfig.LegacyElements = elements.ToArray(); } } } return siteConfig; }
/// <summary> /// This methos gets the list of related clubs for a given article /// </summary> /// <param name="h2g2ID">The id of the article you want to get the related clubs for</param> static public RelatedClubs GetRelatedClubs(int h2g2ID, IDnaDataReaderCreator readerCreator) { RelatedClubs relatedClubs = new RelatedClubs(); // Create a data reader to get all the clubs using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("getrelatedclubs")) { reader.AddParameter("h2g2ID", h2g2ID); reader.Execute(); // Add each club member in turn while (reader.Read()) { RelatedClubsMember member = new RelatedClubsMember(); member.ClubId = reader.GetInt32("ClubID"); member.Name = reader.GetString("Subject"); member.Type = Article.GetArticleTypeFromInt(reader.GetInt32NullAsZero("Type")); relatedClubs.ClubMember.Add(member); //ExtraInfo clubExtraInfo = new ExtraInfo(); //clubExtraInfo.TryCreate(reader.GetInt32("Type"), reader.GetString("ExtraInfo")); //clubNode.AppendChild(ImportNode(clubExtraInfo.RootElement.FirstChild)); //if (reader.Exists("DateCreated")) //{ // XmlNode dateCreatedNode = AddElementTag(clubNode, "DATECREATED"); // dateCreatedNode.AppendChild(DnaDateTime.GetDateTimeAsElement(RootElement.OwnerDocument, reader.GetDateTime("DateCreated"), true)); //} //if (reader.Exists("Lastupdated")) //{ // XmlNode dateCreatedNode = AddElementTag(clubNode, "LASTUPDATE"); // dateCreatedNode.AppendChild(DnaDateTime.GetDateTimeAsElement(RootElement.OwnerDocument, reader.GetDateTime("DateCreated"), true)); //} // NEED TO ADD EDITOR, CLUBMEMBERS, LOCAL, EXTRAINFO, STRIPPED NAME... CHECK CLUB MEMBERS } } return relatedClubs; }
/// <summary> /// Makes the topics and related front page elements active/live /// </summary> /// <param name="reader"></param> /// <param name="siteId"></param> /// <param name="userId"></param> /// <returns></returns> static public BaseResult MakePreviewTopicsActiveForSiteID(IDnaDataReaderCreator readerCreator, int siteId, int userId) { using (var reader = readerCreator.CreateDnaDataReader("MakePreviewTopicsActiveForSiteID")) { reader.AddIntReturnValue(); reader.AddParameter("isiteid", siteId); reader.AddParameter("ieditorid", userId); reader.Execute(); int retVal=-1; if (!reader.TryGetIntReturnValue(out retVal) || retVal != 0) { return new Error("MakePreviewTopicsActiveForSiteID", "Unable to create new topic, error returned " + retVal.ToString()); } } using (var reader = readerCreator.CreateDnaDataReader("MakePreviewTopicElementsActive")) { reader.AddParameter("siteid", siteId); reader.AddParameter("editorid", userId); reader.Execute(); } return new Result("MakePreviewTopicsActiveForSiteID", "Successful"); }
/// <summary> /// /// </summary> /// <param name="creator"></param> /// <param name="userIDs"></param> /// <returns></returns> static public List<ArticleInfoReferencesUser> CreateUserReferences(IDnaDataReaderCreator creator, List<int> userIDs) { List<ArticleInfoReferencesUser> users = new List<ArticleInfoReferencesUser>(); using (IDnaDataReader reader = creator.CreateDnaDataReader("getusernames")) { for (int i = 1; i < 90 && userIDs.Count > 0; i++) { reader.AddParameter("id" + i.ToString(), userIDs[0]); userIDs.RemoveAt(0); } reader.Execute(); while (reader.Read()) { ArticleInfoReferencesUser user = new ArticleInfoReferencesUser(); user.UserId = reader.GetInt32NullAsZero("UserID"); user.H2g2 = "U" + user.UserId.ToString(); user.Username = reader.GetStringNullAsEmpty("UserName"); users.Add(user); } } return users; }
/// <summary> /// Creates the topic from the filled in TopicElement object /// </summary> /// <param name="readerCreator"></param> /// <param name="siteId"></param> /// <param name="userId"></param> /// <returns></returns> public BaseResult CreateFrontPageElement(IDnaDataReaderCreator readerCreator, int siteId, int userId) { using (var reader = readerCreator.CreateDnaDataReader("createtopicelement")) { reader.AddParameter("siteid", siteId); reader.AddParameter("userid", userId); reader.AddParameter("ElementStatus", StatusElement); reader.Execute(); if (reader.Read()) { Elementid = reader.GetInt32NullAsZero("TopicElementID"); Editkey = reader.GetGuid("editkey"); return new Result("CreateFrontPageElement", "Created Successfully"); } else { return new Error("CreateFrontPageElement", "Unable to create new topic element"); } } }
static public List<ArticleInfoReferencesEntryLink> CreateArticleReferences(List<int> articleIDs, IDnaDataReaderCreator readerCreator) { List<ArticleInfoReferencesEntryLink> entryLinks = new List<ArticleInfoReferencesEntryLink>(); using (IDnaDataReader reader = readerCreator.CreateDnaDataReader("fetcharticles")) { // Now add all the user References for (int i = 1; i < 90 && articleIDs.Count > 0; i++) { reader.AddParameter("id" + i.ToString(), articleIDs[0]); articleIDs.RemoveAt(0); } reader.Execute(); while (reader.Read()) { ArticleInfoReferencesEntryLink link = new ArticleInfoReferencesEntryLink(); link.H2g2Id = reader.GetInt32("h2g2ID"); link.H2g2 = "A" + link.H2g2Id.ToString(); link.Subject = reader.GetString("Subject"); entryLinks.Add(link); } } return entryLinks; }
/// <summary> /// Generates user reputation object /// </summary> /// <param name="creator"></param> /// <param name="modClass"></param> /// <param name="userId"></param> /// <returns></returns> public static UserReputation GetUserReputation(IDnaDataReaderCreator creator, ModerationClass modClass, int userId) { UserReputation userRep = new UserReputation() { ModClass = modClass, UserId = userId }; using (IDnaDataReader dataReader = creator.CreateDnaDataReader("getuserreputation")) { dataReader.AddParameter("userid", userId); dataReader.AddParameter("modclassid", modClass.ClassId); dataReader.AddIntOutputParameter("@currentStatus"); dataReader.AddIntOutputParameter("@reputationDeterminedStatus"); dataReader.Execute(); if (dataReader.Read()) { userRep.CurrentStatus = (ModerationStatus.UserStatus)dataReader.GetInt32NullAsZero("currentstatus"); userRep.ReputationDeterminedStatus = (ModerationStatus.UserStatus)dataReader.GetInt32NullAsZero("ReputationDeterminedStatus"); userRep.ReputationScore = dataReader.GetInt16("accumulativescore"); userRep.UserName = dataReader.GetStringNullAsEmpty("username"); userRep.LastUpdated = new DateElement(dataReader.GetDateTime("lastupdated")); } } return userRep; }