public static void SetNoXmlDocErrorMsg(ContentURI uri, DataHelpers.GeneralHelpers.DOC_STATE_NUMBER displayDocType) { if (displayDocType == DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.firstdoc) { uri.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_NODOCFORTHISNODE"); } else if (displayDocType == DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.seconddoc) { uri.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_NOADDIN"); } else if (displayDocType == DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.thirddoc) { uri.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_NOCALCULATIONS"); } if (uri.URIDataManager.AppType == DataHelpers.GeneralHelpers.APPLICATION_TYPES.devpacks && uri.URIDataManager.ServerSubActionType == DataHelpers.GeneralHelpers.SERVER_SUBACTION_TYPES.respondwithhtml) { uri.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_DEVPACKSINIT"); } }
//hold for potential future use public static async Task <ContentURI> DisplayResourcePackURI(ContentURI docToCalcURI) { ContentURI rpURI = new ContentURI(); string sRPURL = string.Empty; //xhtml state is saved to increase performance and improve packaging string sDocToReadPath = await DataHelpers.AddInHelper.GetDevTrekPath(docToCalcURI, DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.seconddoc); XmlReader oReader = null; if (await DataHelpers.FileStorageIO.URIAbsoluteExists(docToCalcURI, sDocToReadPath)) { oReader = await DataHelpers.FileStorageIO.GetXmlReaderAsync(docToCalcURI, sDocToReadPath); } else { SetNoXmlDocErrorMsg(rpURI, DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.seconddoc); } if (oReader != null) { using (oReader) { while (oReader.ReadToFollowing(DataAppHelpers.LinkedViews.LINKEDVIEWS_TYPES.linkedview.ToString())) { //standard Recommended IRI from Preview panel sRPURL = oReader .GetAttribute(DataAppHelpers.Calculator.cMediaURL); if (!string.IsNullOrEmpty(sRPURL)) { break; } } } } //sRPURL = "https://localhost:44300/agtreks/preview/crops/resourcepack/Agricultural Production, Capital Investment Media Pack/260/none "; if (!string.IsNullOrEmpty(sRPURL)) { if (!sRPURL.Contains(DataAppHelpers.Resources.RESOURCES_TYPES.resourcepack.ToString()) || !sRPURL.Contains(DataHelpers.GeneralHelpers.SERVER_ACTION_TYPES.preview.ToString())) { rpURI.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_BADMEDIAURL"); } else { rpURI = ContentURI.GetContentURIFromFullURL(sRPURL); //add subactionview to url rpURI.URIDataManager.SubActionView = DataHelpers.GeneralHelpers.SUBACTION_VIEWS.graph.ToString(); } } else { rpURI.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_NOMEDIA"); } return(rpURI); }
public static void SetNoHtmlDocErrorMsg(ContentURI uri, DataHelpers.GeneralHelpers.DOC_STATE_NUMBER displayDocType) { if (displayDocType == DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.firstdoc) { uri.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_NODOCFORTHISNODE"); } else if (displayDocType == DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.seconddoc) { uri.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_NOADDIN"); } else if (displayDocType == DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.thirddoc) { //not every step needs a calculated result if (string.IsNullOrEmpty(uri.ErrorMessage)) { uri.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_NOCALCULATIONS"); } } }
public async Task <bool> DisplayURIAsync(StringWriter writer, ContentURI uri, DataHelpers.GeneralHelpers.DOC_STATE_NUMBER displayDocType) { bool bIsCompleted = false; if (displayDocType == DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.thirddoc) { if (uri.URIDataManager.NeedsFullView == false && uri.URIDataManager.NeedsSummaryView == false) { uri.ErrorMessage += AppHelper.GetErrorMessage("DISPLAYHELPER_DONTNEEDHTMLDOC"); return(bIsCompleted); } } //don't let existing errors interfere with html generation string sErrorMsg = uri.ErrorMessage; uri.ErrorMessage = string.Empty; //xhtml state is saved to increase performance and improve packaging string sDocToReadPath = await DataHelpers.AddInHelper.GetDevTrekPath(uri, displayDocType); if (await DataHelpers.FileStorageIO.URIAbsoluteExists(uri, sDocToReadPath)) { //first uri string sHtmlFragDocPath = string.Empty; string sHtmlDocPath = string.Empty; //ajax state management needs html fragments (for partial page updates) //the html fragment can be reused in full html doc bool bHasHtmlDoc = await SaveFullXhtmlDocFromXmlDoc2Async(uri, sDocToReadPath, sHtmlFragDocPath, DataAppHelpers.Resources.FILEEXTENSION_TYPES.frag, displayDocType); sHtmlFragDocPath = uri.URIDataManager.MiscDocPath; if (bHasHtmlDoc) { //init with frag file sHtmlDocPath = sHtmlFragDocPath; //restful state management needs full xhtml documents (for ebook packages) await SaveFullXhtmlDocFromXmlDoc2Async(uri, sDocToReadPath, sHtmlDocPath, DataAppHelpers.Resources.FILEEXTENSION_TYPES.html, displayDocType); sHtmlDocPath = uri.URIDataManager.MiscDocPath; //write the fragment html doc to the writer DataHelpers.FileStorageIO oFileStorageIO = new DataHelpers.FileStorageIO(); await oFileStorageIO.SaveHtmlURIToWriterAsync(uri, writer, sHtmlFragDocPath); if (string.IsNullOrEmpty(uri.ErrorMessage)) { //check whether additional html files are needed //(i.e. full, rather than summary, docs) await SaveFullXhtmlDocFromFullXmlDoc1Async(writer, uri, sDocToReadPath, displayDocType); } } else { if (displayDocType == DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.seconddoc) { //if it doesn't have an addin it's not an error bool bHasAddIn = DataHelpers.LinqHelpers.LinkedViewHaveAddIn(uri.URIDataManager.LinkedView); if (bHasAddIn) { string sComplexMsg = uri.ErrorMessage; uri.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_NOHTMLFILE"); uri.ErrorMessage += sComplexMsg; } } else { string sComplexMsg = uri.ErrorMessage; uri.ErrorMessage = AppHelper.GetErrorMessage("DISPLAYHELPER_NOHTMLFILE"); uri.ErrorMessage += sComplexMsg; } } } else { if (displayDocType == DataHelpers.GeneralHelpers.DOC_STATE_NUMBER.seconddoc) { if (uri.URIDataManager.UseSelectedLinkedView) { if ((uri.URIDataManager.AppType == DataHelpers.GeneralHelpers.APPLICATION_TYPES.linkedviews || uri.URIDataManager.AppType == DataHelpers.GeneralHelpers.APPLICATION_TYPES.devpacks) && uri.URIDataManager.ServerSubActionType == DataHelpers.GeneralHelpers.SERVER_SUBACTION_TYPES.runaddin) { //if it doesn't have an addin it's not an error bool bHasAddIn = DataHelpers.LinqHelpers.LinkedViewHaveAddIn(uri.URIDataManager.LinkedView); if (bHasAddIn) { SetNoXmlDocErrorMsg(uri, displayDocType); } } //no error -just showing a selected view explanation } else { //if it doesn't have an addin it's not an error bool bHasAddIn = DataHelpers.LinqHelpers.LinkedViewHaveAddIn(uri.URIDataManager.LinkedView); if (bHasAddIn) { SetNoXmlDocErrorMsg(uri, displayDocType); } } } else { SetNoXmlDocErrorMsg(uri, displayDocType); } } uri.ErrorMessage = string.Concat(sErrorMsg, uri.ErrorMessage); bIsCompleted = true; return(bIsCompleted); }