/// <summary> /// Adds the JSON payload for a moderated external link to ExLinkModHashInternal /// </summary> /// <param name="hash"></param> /// <param name="siteid"></param> public void AddToExLinkModCallbackInternal(string hash, int siteId, ExLinkModCallbackItem exLinkModCallbackItem) { string payload = JsonConvert.SerializeObject(exLinkModCallbackItem); using (IDnaDataReader reader = DnaDataReaderCreator.CreateDnaDataReader("createexlinkmodcallbackinternal")) { reader.AddParameter("hash", hash); reader.AddParameter("siteid", siteId); reader.AddParameter("payload", payload); reader.Execute(); } }
public void CreateCallbackItemInternal(string sitename, ExLinkModCallbackItem exLinkModCallbackItem) { try { ISite site = GetSite(sitename); CallingUser viewer = GetCallingUser(site); if (viewer.IsUserA(UserTypes.Editor)) { ExternalLinkModeration exLinkMod = new ExternalLinkModeration(base.dnaDiagnostic, base.readerCreator, base.cacheManager, base.siteList); string hash = QueryStringHelper.GetQueryParameterAsString("encryptionKey", ""); if (exLinkMod.IsValidHash(hash, site.SiteID)) { exLinkMod.AddToExLinkModCallbackInternal(hash, site.SiteID, exLinkModCallbackItem); } else { throw new DnaWebProtocolException(System.Net.HttpStatusCode.Unauthorized, "Invalid encryption key", null); } } else { throw new DnaWebProtocolException(System.Net.HttpStatusCode.Unauthorized, "User must be an editor", null); } } catch (DnaException ex) { throw new DnaWebProtocolException(System.Net.HttpStatusCode.InternalServerError, ex.Message, ex); } }