/// <summary> /// Called by the dna framework so that the component can have a chance at processing the request /// </summary> public override void ProcessRequest() { RootElement.RemoveAll(); MediaAssetParameters mediaAssetParams = new MediaAssetParameters(); GetPageParams(mediaAssetParams); ProcessActions(mediaAssetParams); }
private void ProcessActions(MediaAssetParameters mediaAssetParams) { _builderRoot = AddElementTag(RootElement, "MEDIAASSETBUILDER"); if (InputContext.CurrentSite.IsEmergencyClosed || InputContext.CurrentSite.IsSiteScheduledClosed(DateTime.Now)) { AddErrorXml("Site Closed", "Sites closed.", RootElement); return; } switch (mediaAssetParams.Action) { case MediaAssetParameters.MediaAssetAction.create: { ProcessCreateUpdateAssets(mediaAssetParams); } break; case MediaAssetParameters.MediaAssetAction.update: { ProcessCreateUpdateAssets(mediaAssetParams); } break; case MediaAssetParameters.MediaAssetAction.showusersassets: { ProcessShowUsersMediaAssets(mediaAssetParams); } break; case MediaAssetParameters.MediaAssetAction.showusersarticleswithassets : { ProcessShowUsersArticlesWithMediaAssets(mediaAssetParams); } break; case MediaAssetParameters.MediaAssetAction.showftpuploadqueue : { ProcessShowFTPUploadQueue(); } break; case MediaAssetParameters.MediaAssetAction.reprocessfaileduploads : { ProcessReprocessFailedUploads(mediaAssetParams.Rpmaid); } break; default: { ProcessView(mediaAssetParams); } break; } }
/// <summary> /// Generates the XML for a call to view a particular media asset /// </summary> /// <param name="dataReader"></param> /// <param name="mediaAssetParams"></param> private void GenerateMediaAssetXML(IDnaDataReader dataReader, MediaAssetParameters mediaAssetParams) { XmlElement mediaAssetInfo = AddElementTag(_builderRoot, "MEDIAASSETINFO"); AddTextElement(mediaAssetInfo, "ACTION", "View"); AddIntElement(mediaAssetInfo, "ID", mediaAssetParams.MediaAssetID); if (dataReader.HasRows) { if (dataReader.Read()) { MakeXml(dataReader, mediaAssetInfo); } } }
private void GenerateUsersArticleAssetsXML(IDnaDataReader dataReader, MediaAssetParameters mediaAssetParams) { int count = 0; int total = 0; bool more = false; XmlElement articleAsset = AddElementTag(_builderRoot, "ARTICLEMEDIAASSETINFO"); AddAttribute(articleAsset, "CONTENTTYPE", mediaAssetParams.ContentType); AddAttribute(articleAsset, "SORTBY", mediaAssetParams.SortBy); AddAttribute(articleAsset, "SKIPTO", mediaAssetParams.Skip); AddAttribute(articleAsset, "SHOW", mediaAssetParams.Show); AddTextElement(articleAsset, "ACTION", "showusersarticleswithassets"); if (dataReader.HasRows) { if (dataReader.Read()) { User user = new User(InputContext); user.AddUserXMLBlock(dataReader, mediaAssetParams.UserID, articleAsset); count = dataReader.GetInt32NullAsZero("COUNT"); total = dataReader.GetInt32NullAsZero("TOTAL"); if (total > mediaAssetParams.Skip + mediaAssetParams.Show) { more = true; } do { XmlElement article = AddElementTag(articleAsset, "ARTICLE"); AddAttribute(article, "H2G2ID", dataReader.GetInt32NullAsZero("H2G2ID")); AddTextElement(article, "SUBJECT", dataReader.GetStringNullAsEmpty("SUBJECT")); XmlDocument extrainfo = new XmlDocument(); extrainfo.LoadXml(dataReader.GetStringNullAsEmpty("EXTRAINFO")); article.AppendChild(ImportNode(extrainfo.FirstChild)); AddDateXml(dataReader, article, "DateCreated", "DATECREATED"); AddDateXml(dataReader, article, "LastUpdated", "LASTUPDATED"); MakeXml(dataReader, article); } while (dataReader.Read()); } } AddAttribute(articleAsset, "COUNT", count); AddAttribute(articleAsset, "TOTAL", total); AddAttribute(articleAsset, "MORE", more); }
private void GenerateUsersMediaAssetsXML(IDnaDataReader dataReader, MediaAssetParameters mediaAssetParams) { int count = 0; int total = 0; bool more = false; XmlElement usersMediaAssets = AddElementTag(_builderRoot, "MEDIAASSETINFO"); AddAttribute(usersMediaAssets, "CONTENTTYPE", mediaAssetParams.ContentType); AddAttribute(usersMediaAssets, "SORTBY", mediaAssetParams.SortBy); AddAttribute(usersMediaAssets, "SKIPTO", mediaAssetParams.Skip); AddAttribute(usersMediaAssets, "SHOW", mediaAssetParams.Show); AddTextElement(usersMediaAssets, "ACTION", "showusersassets"); if (dataReader.HasRows) { if (dataReader.Read()) { User user = new User(InputContext); user.AddUserXMLBlock(dataReader, mediaAssetParams.UserID, usersMediaAssets); count = dataReader.GetInt32NullAsZero("COUNT"); total = dataReader.GetInt32NullAsZero("TOTAL"); if (total > mediaAssetParams.Skip + mediaAssetParams.Show) { more = true; } do { MakeXml(dataReader, usersMediaAssets); } while (dataReader.Read()); } } AddAttribute(usersMediaAssets, "COUNT", count); AddAttribute(usersMediaAssets, "TOTAL", total); AddAttribute(usersMediaAssets, "MORE", more); }
private void ProcessShowUsersMediaAssets(MediaAssetParameters mediaAssetParams) { if (mediaAssetParams.UserID > 0) { string storedProcedure = GetUsersMediaAssetsSP(mediaAssetParams.ContentType); using (IDnaDataReader datareader = InputContext.CreateDnaDataReader(storedProcedure)) { datareader.AddParameter("userid", mediaAssetParams.UserID); datareader.AddParameter("firstindex", mediaAssetParams.Skip); datareader.AddParameter("lastindex", mediaAssetParams.Skip + mediaAssetParams.Show); if (mediaAssetParams.SortBy == "Caption") { datareader.AddParameter("sortbycaption", 1); } if (mediaAssetParams.IsOwner) { datareader.AddParameter("owner", 1); } datareader.Execute(); GenerateUsersMediaAssetsXML(datareader, mediaAssetParams); } } else { AddErrorXml("Incorrect User ID", "Zero or negative parameter passed in.", RootElement); } }
private void ProcessView(MediaAssetParameters mediaAssetParams) { if (mediaAssetParams.MediaAssetID > 0) { string storedProcedure = GetMediaAssetSP(mediaAssetParams.ContentType); using (IDnaDataReader datareader = InputContext.CreateDnaDataReader(storedProcedure)) { datareader.AddParameter("mediaassetid", mediaAssetParams.MediaAssetID); datareader.Execute(); GenerateMediaAssetXML(datareader, mediaAssetParams); } } else { AddErrorXml("Incorrect Media Asset ID", "Zero or negative parameter passed in.", RootElement); } }
/// <summary> /// Generate the XML page to show the as particular users Media Assets /// </summary> /// <param name="mediaAssetParams"></param> void ProcessShowUsersArticlesWithMediaAssets(MediaAssetParameters mediaAssetParams) { string storedProcedureName = GetUsersArticlesWithMediaAssetsSP(mediaAssetParams.ContentType); // Get the information from the database using (IDnaDataReader datareader = InputContext.CreateDnaDataReader(storedProcedureName)) { datareader.AddParameter("userid", mediaAssetParams.UserID); datareader.AddParameter("firstindex", mediaAssetParams.Skip); datareader.AddParameter("lastindex", mediaAssetParams.Skip + mediaAssetParams.Show); if ( mediaAssetParams.SortBy == "Caption" ) { datareader.AddParameter("sortbycaption", 1); } else if ( mediaAssetParams.SortBy == "Rating" ) { datareader.AddParameter("sortbyrating", 1); } if ( mediaAssetParams.IsOwner ) { datareader.AddParameter("owner", 1); } datareader.Execute(); GenerateUsersArticleAssetsXML(datareader, mediaAssetParams); } }
private void GetPageParams(MediaAssetParameters mediaAssetParams) { int defaultShow = InputContext.GetSiteOptionValueInt("ArticleSearch", "DefaultShow"); mediaAssetParams.MediaAssetID = InputContext.GetParamIntOrZero("ID", _docDnaMediaAssetID); mediaAssetParams.H2G2ID = InputContext.GetParamIntOrZero("h2g2id", _docDnaMediaAssetID); mediaAssetParams.Skip = InputContext.GetParamIntOrZero("skip", _docDnaSkip); mediaAssetParams.Show = InputContext.GetParamIntOrZero("show", _docDnaShow); if (mediaAssetParams.Show > 200) { mediaAssetParams.Show = 200; } else if (mediaAssetParams.Show < 1) { mediaAssetParams.Show = defaultShow; } mediaAssetParams.ContentType = InputContext.GetParamIntOrZero("contenttype", _docDnaContentType); mediaAssetParams.SortBy = InputContext.GetParamStringOrEmpty("sortby", _docDnaArticleSortBy); string action = String.Empty; InputContext.TryGetParamString("action", ref action, _docDnaAction); try { mediaAssetParams.Action = (MediaAssetParameters.MediaAssetAction)Enum.Parse(typeof(MediaAssetParameters.MediaAssetAction), action); } catch (Exception) { mediaAssetParams.Action = MediaAssetParameters.MediaAssetAction.view; } mediaAssetParams.AddToLibrary = InputContext.GetParamBoolOrFalse("AddToLibrary", _docDnaAddToLibrary); mediaAssetParams.IsManualUpload = InputContext.GetParamBoolOrFalse("manualupload", _docDnaManualUpload); mediaAssetParams.UpdateDataLoaded = InputContext.GetParamBoolOrFalse("updatedatauploaded", _docDnaUpdateDataUploaded); mediaAssetParams.IsExternalLink = InputContext.GetParamBoolOrFalse("externallink", _docDnaExternalLink); mediaAssetParams.Rpmaid = InputContext.GetParamIntOrZero("Rpmaid", _docDnaRPMAID); mediaAssetParams.UserID = InputContext.GetParamIntOrZero("userid", _docDnaUserID); if (mediaAssetParams.UserID == InputContext.ViewingUser.UserID) { mediaAssetParams.IsOwner = true; } }
private void ProcessCreateUpdateAssets(MediaAssetParameters mediaAssetParams) { if (!InputContext.ViewingUser.UserLoggedIn) { AddErrorXml("ProcessCreateUpdateAssets", "No logged in user", RootElement); return; } }