public override void update() { CswNbtMetaDataNodeType ReportNT = _CswNbtSchemaModTrnsctn.MetaData.getNodeType("Report"); if (null != ReportNT) { CswNbtObjClassReport ReportNode = _CswNbtSchemaModTrnsctn.Nodes.makeNodeFromNodeTypeId(ReportNT.NodeTypeId, OnAfterMakeNode : delegate(CswNbtNode newNode) { CswNbtObjClassReport report = newNode; report.ReportName.Text = "Custom Text Barcode"; report.Category.Text = "System Reports"; report.SQL.Text = "select UPPER('{text}') as text from dual"; CswNbtMetaDataObjectClass ReportGroupOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass(CswEnumNbtObjectClass.ReportGroupClass); CswNbtObjClassReportGroup SystemReportGroup = ReportGroupOC.getNodes(forceReInit: false, includeSystemNodes: true) .FirstOrDefault(ReportGroup => ((CswNbtObjClassReportGroup)ReportGroup).Name.Text == "System Reports"); if (null != SystemReportGroup) { report.ReportGroup.RelatedNodeId = SystemReportGroup.NodeId; } }); // upload .RPT string Filename = "customtextbarcode.rpt"; CswPropIdAttr PropId = new CswPropIdAttr(ReportNode.Node, ReportNode.RPTFile.NodeTypeProp); string Filepath = CswFilePath.getConfigurationFilePath(CswEnumSetupMode.NbtExe) + "\\" + Filename; byte[] ReportFile = File.ReadAllBytes(Filepath); const string ContentType = "application/octet-stream"; string Href; CswNbtSdBlobData SdBlobData = _CswNbtSchemaModTrnsctn.CswNbtSdBlobData; SdBlobData.saveFile(PropId.ToString(), ReportFile, ContentType, Filename, out Href); } // if( null != ReportNT ) } // update()
public static void runCrystalReport( ICswResources CswResources, CswNbtWebServiceReport.CrystalReportReturn Return, CswNbtWebServiceReport.ReportData reportParams ) { CswNbtResources CswNbtResources = (CswNbtResources) CswResources; DataTable ReportTable = _getReportTable( CswNbtResources, reportParams ); if( ReportTable.Rows.Count > 0 ) { // Get the Report Layout File Int32 JctNodePropId = reportParams.ReportNode.RPTFile.JctNodePropId; if( JctNodePropId > 0 ) { CswFilePath FilePathTools = new CswFilePath( CswNbtResources ); string ReportTempFileName = FilePathTools.getFullReportFilePath( JctNodePropId.ToString() ); if( !File.Exists( ReportTempFileName ) ) { DirectoryInfo DirectoryInfo = ( new FileInfo( ReportTempFileName ) ).Directory; if( DirectoryInfo != null ) { DirectoryInfo.Create(); //creates the /rpt directory if it doesn't exist } CswTableSelect JctSelect = CswNbtResources.makeCswTableSelect( "getReportLayoutBlob_select", "blob_data" ); JctSelect.AllowBlobColumns = true; CswCommaDelimitedString SelectColumns = new CswCommaDelimitedString(); SelectColumns.Add( "blobdata" ); DataTable JctTable = JctSelect.getTable( SelectColumns, "jctnodepropid", JctNodePropId, "", true ); if( JctTable.Rows.Count > 0 ) { if( !JctTable.Rows[0].IsNull( "blobdata" ) ) { byte[] BlobData = JctTable.Rows[0]["blobdata"] as byte[]; FileStream fs = new FileStream( ReportTempFileName, FileMode.CreateNew ); BinaryWriter BWriter = new BinaryWriter( fs, System.Text.Encoding.Default ); if( BlobData != null ) { BWriter.Write( BlobData ); } } else { throw new CswDniException( CswEnumErrorType.Warning, "Report is missing RPT file", "Report's RPTFile blobdata is null" ); } } } if( File.Exists( ReportTempFileName ) ) { Return.Data.reportUrl = _saveCrystalReport( CswNbtResources, ReportTempFileName, reportParams.ReportNode.ReportName.Text, ReportTable ); Return.Data.hasResults = true; } } // if( JctNodePropId > 0 ) } // if(ReportTable.Rows.Count > 0) else { Return.Data.hasResults = false; } } // LoadReport()
public static void downloadImportData(ICswResources CswResources, CswNbtImportWcf.GenerateSQLReturn Ret, string Filename) { CswNbtResources CswNbtResources = (CswNbtResources)CswResources; CswFilePath FilePathMgr = new CswFilePath(CswResources); string FullFilePath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + "\\import\\" + FilePathMgr.getFileNameForSchema(Filename); FileStream DataFile = File.OpenRead(FullFilePath); DataFile.CopyTo(Ret.stream); DataFile.Close(); }
private void _uploadBlobData( CswNbtObjClassReport ReportNode, string Filename ) { CswPropIdAttr PropId = new CswPropIdAttr( ReportNode.Node, ReportNode.RPTFile.NodeTypeProp ); string Filepath = CswFilePath.getConfigurationFilePath( CswEnumSetupMode.NbtExe ) + "\\" + Filename; byte[] ReportFile = File.ReadAllBytes( Filepath ); const string ContentType = "application/octet-stream"; string Href; CswNbtSdBlobData SdBlobData = _CswNbtSchemaModTrnsctn.CswNbtSdBlobData; SdBlobData.saveFile( PropId.ToString(), ReportFile, ContentType, Filename, out Href ); }
public override void update() { CswNbtMetaDataObjectClass GHSPhraseOC = _CswNbtSchemaModTrnsctn.MetaData.getObjectClass( CswEnumNbtObjectClass.GHSPhraseClass ); Dictionary<string, CswNbtObjClassGHSPhrase> GHSPhrases = _getAllGHSPhrases(); string FilePath = CswFilePath.getConfigurationFilePath( CswEnumSetupMode.NbtExe ) + "\\" + "signalwords_hs_ps_en.xlsx"; DataSet GHSLanguageData = _readExcel( FilePath ); //Note - we are ignoring the signal words sheet here DataTable HazardStatementsTbl = GHSLanguageData.Tables["'Hazard statements$'"]; DataTable PrecationaryStatementsTbl = GHSLanguageData.Tables["'Precautionary statements $'"]; _handleData( HazardStatementsTbl, 2, 88, GHSPhrases, GHSPhraseOC.getNodeTypeIds().FirstOrDefault() ); _handleData( PrecationaryStatementsTbl, 3, 139, GHSPhrases, GHSPhraseOC.getNodeTypeIds().FirstOrDefault() ); }
public static void uploadImportData(ICswResources CswResources, CswNbtImportWcf.ImportDataReturn ret, CswNbtImportWcf.ImportFileParams parms) { CswNbtResources CswNbtResources = (CswNbtResources)CswResources; // Write uploaded file to temp dir CswFilePath FilePathMgr = new CswFilePath(CswResources); string FullFilePath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath + "\\import\\" + FilePathMgr.getFileNameForSchema(parms.PostedFile.FileName); FileStream ImportDataFile = File.Create(FullFilePath); parms.PostedFile.InputStream.CopyTo(ImportDataFile); ImportDataFile.Close(); parms.PostedFile.InputStream.Close(); ret.JobId = CswNbtImportTools.storeData(CswNbtResources, parms.PostedFile.FileName, FullFilePath, parms.ImportDefName, parms.Overwrite); }
public int saveFile(string PropIdAttr, byte[] BlobData, string ContentType, string FileName, out string Href, int BlobDataId = Int32.MinValue, bool PostChanges = true, CswNbtNode Node = null) { CswPropIdAttr PropId = new CswPropIdAttr(PropIdAttr); CswNbtMetaDataNodeTypeProp MetaDataProp = _CswNbtResources.MetaData.getNodeTypeProp(PropId.NodeTypePropId); if (null == Node) { Node = _CswNbtResources.Nodes[PropId.NodeId]; } CswNbtNodePropWrapper FileProp = Node.Properties[MetaDataProp]; if (_CswNbtResources.Permit.canNodeType(CswEnumNbtNodeTypePermission.Edit, MetaDataProp.getNodeType(), _CswNbtResources.CurrentNbtUser) && _CswNbtResources.Permit.isPropWritable(CswEnumNbtNodeTypePermission.Edit, MetaDataProp, null, FileProp)) { if (Int32.MinValue == FileProp.JctNodePropId) { FileProp.makePropRow(); //if we don't have a jct_node_prop row for this prop, we do now if (PostChanges) { Node.postChanges(true); } } if (FileProp.getFieldType().FieldType == CswEnumNbtFieldType.Image) { //case 29692: support EXIF image rotation metadata to properly orient photos bool img_ok = false; MemoryStream ms = new MemoryStream(BlobData, 0, BlobData.Length); ms.Write(BlobData, 0, BlobData.Length); System.Drawing.Image img = null; try { img = Image.FromStream(ms, true); img_ok = true; } catch { } if (img_ok == true) { FixOrientation(ref img); ImageConverter converter = new ImageConverter(); BlobData = (byte[])converter.ConvertTo(img, typeof(byte[])); } } //Save the file to blob_data CswTableUpdate BlobUpdate = _CswNbtResources.makeCswTableUpdate("saveBlob", "blob_data"); string whereClause = "where jctnodepropid = " + FileProp.JctNodePropId; if (Int32.MinValue != BlobDataId) { whereClause += " and blobdataid = " + BlobDataId; } DataTable BlobTbl = BlobUpdate.getTable(whereClause); if (BlobTbl.Rows.Count > 0 && (Int32.MinValue != BlobDataId || FileProp.getFieldTypeValue() == CswEnumNbtFieldType.File || FileProp.getFieldTypeValue() == CswEnumNbtFieldType.MOL)) { BlobTbl.Rows[0]["blobdata"] = BlobData; BlobTbl.Rows[0]["contenttype"] = ContentType; BlobTbl.Rows[0]["filename"] = FileName; BlobTbl.Rows[0]["auditlevel"] = MetaDataProp.AuditLevel; BlobDataId = CswConvert.ToInt32(BlobTbl.Rows[0]["blobdataid"]); } else { DataRow NewRow = BlobTbl.NewRow(); NewRow["jctnodepropid"] = FileProp.JctNodePropId; NewRow["blobdata"] = BlobData; NewRow["contenttype"] = ContentType; NewRow["filename"] = FileName; NewRow["auditlevel"] = MetaDataProp.AuditLevel; BlobDataId = CswConvert.ToInt32(NewRow["blobdataid"]); BlobTbl.Rows.Add(NewRow); } BlobUpdate.update(BlobTbl); if (Node.getObjectClass().ObjectClass == CswEnumNbtObjectClass.ReportClass) { CswNbtObjClassReport Report = Node; CswFilePath FilePathTools = new CswFilePath(_CswNbtResources); string ReportPath = FilePathTools.getFullReportFilePath(Report.RPTFile.JctNodePropId.ToString()); _createReportFile(ReportPath, Report.RPTFile.JctNodePropId, BlobData); } if (CswEnumNbtFieldType.File == FileProp.getFieldTypeValue()) { SetLastModified(FileProp); } FileProp.SyncGestalt(); if (PostChanges) { Node.postChanges(false); } Href = CswNbtNodePropBlob.getLink(FileProp.JctNodePropId, PropId.NodeId, BlobDataId); } //canNodeType() && isPropWritable() else { Href = string.Empty; //To satifsy the "ref string Href" throw new CswDniException(CswEnumErrorType.Error, "You do not have sufficient priveledges to save files", "User " + _CswNbtResources.CurrentNbtUser.UserId + " attemped to save blobdata on JctNodeProp " + FileProp.JctNodePropId); } return(BlobDataId); }