public async Task <bool> AddFile(string name, Func <Task <Stream> > binaryData) { if (await _context.FileInfos.FindAsync(name) != null) { return(false); } var info = new FileBlobInfoEntity { FileName = name, CreationTime = DateTime.Now }; var blob = new FileBlobEntity { Key = name }; using var input = await binaryData(); using var output = new MemoryStream(); await Compressor.Compressor.CompressFileLzma(input, output); blob.Data = output.ToArray(); info.Size = blob.Data.LongLength; await _context.AddRangeAsync(info, blob); return(true); }
public static bool ReadBlobToFile(string idValue) { try { //byte[] b = new byte[myReader.GetBytes(PictureCol, 0, null, 0, int.MaxValue) - 1]; //myReader.GetBytes(PictureCol, 0, b, 0, b.Length); // myReader.Close(); //FILE.FILE_BLOB //System.IO.FileStream fileStream = new System.IO.FileStream( // FILE.FILE_NAME, System.IO.FileMode.Create, System.IO.FileAccess.Write); //byte[] bytes = new byte[(int)fileStream.Length]; //fileStream.Write(bytes, 0, bytes.Length); //fileStream.Close(); FileBlobEntity FILE = QualityFactory.GetByRMESID(idValue); FILE.FILE_NAME = FILE.FILE_NAME.Trim(); HttpContext.Current.Response.ContentType = "application/octet-stream"; //通知浏览器下载文件而不是打开 HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(FILE.FILE_NAME, System.Text.Encoding.ASCII)); HttpContext.Current.Response.BinaryWrite(FILE.FILE_BLOB); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); } catch { return(false); } return(true); }
private async Task FillDataBase(TestingObject <FileDatabase> testObject) { var context = testObject.GetDependency <FilesDbContext>(); _big = Properties.Resources.bm19_07777_Covers_FB_001_Einzelform_Umschlagen_LACK_pdf; _small = Properties.Resources.bm19_07777_Covers_FB_001_Einzelform_Umschlagen_LACK_tif; _bigSize = _big.Length; _smallSize = _small.Length; _databaseSize = _bigSize + _smallSize; var oldEi = new FileBlobInfoEntity { CreationTime = new DateTime(2015, 1, 1), FileName = "Old", Size = _bigSize }; var newEi = new FileBlobInfoEntity { CreationTime = new DateTime(2017, 1, 1), FileName = "New", Size = _smallSize }; var oldE = new FileBlobEntity { Data = _big, Key = OldConst }; var newE = new FileBlobEntity { Data = _small, Key = NewConst }; await context.FileInfos.AddRangeAsync(oldEi, newEi); await context.Blobs.AddRangeAsync(oldE, newE); }
public async Task CreateDocumentVersion(string userName, DocumentVersion documentVersion, FileBlob fileBlob) { try { DocumentEntity documentEntity = _documentRepository .Get(e => e.Id == documentVersion.Document.Id) .FirstOrDefault(e => e.Reviewers.Any(u => u.UserName == userName)); if (documentEntity == null) { throw new DocManagerException("Requested document does not exist or not accessible."); } //DocumentEntity document = _documentRepository // .Get(e => e.Id == documentVersion.Document.Id) // .FirstOrDefault(); //if (document?.Status.Name != "Approved") //{ // throw new DocManagerException("You cannot add new version for document in review status."); //} DocumentVersionEntity documentVersionEntity = Mapper.Map <DocumentVersion, DocumentVersionEntity>(documentVersion); FileBlobEntity fileBlobEntity = Mapper.Map <FileBlob, FileBlobEntity>(fileBlob); _fileBlobRepository.Add(fileBlobEntity); documentVersionEntity.FileBlob = fileBlobEntity; _documentVersionRepository.Add(documentVersionEntity); await _documentVersionRepository.CommitAsync(); } catch (Exception e) { throw new DocManagerException( "Error during document version creation.", e.Message, e); } }
private void GridQuality_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex == -1) { return; } if (GridQuality.Rows[e.RowIndex].ReadOnly == true) { return; } //string fileName = ""; string rmesid = ""; if (e.ColumnIndex == 5) { if (GridQuality.Rows[e.RowIndex].Cells["colUnitType"].Value.ToString() == "F") { OpenFileDialog MyFileDialog = new OpenFileDialog(); //创建打开对话框对象 MyFileDialog.ShowDialog(); //显示打开对话框 if (MyFileDialog.FileName.Trim() != "") //判断是否选择了文件 { FileStream FStream = new FileStream(MyFileDialog.FileName, FileMode.Open, FileAccess.Read); //创建FileStream对象 string fileName = MyFileDialog.FileName; string fileNamesub = MyFileDialog.SafeFileName; BinaryReader BReader = new BinaryReader(FStream); //创建BinaryReader读取对象 byte[] bytes = BReader.ReadBytes((int)FStream.Length); //读取二进制 GridQuality.Rows[e.RowIndex].Cells["colCurrentValue"].Value = fileNamesub; //quality.CurrentValue = fileName; FileBlobEntity BE = new FileBlobEntity() { FILE_BLOB = bytes, FILE_NAME = fileNamesub, USER_ID = LoginInfo.UserInfo.USER_CODE, CREAT_TIME = DateTime.Now }; PetaPoco.Database db = DB.GetInstance(); rmesid = db.Insert("QMS_FILE_BLOB", "RMES_ID", BE).ToString(); //FileStream fs = new FileStream(@fileName, FileMode.CreateNew, FileAccess.Write, FileShare.Read); //StreamWriter sw = new StreamWriter(fs); //sw.Write(bytes); FStream.Close();//关闭数据流 } } //else //{ // if (!string.IsNullOrWhiteSpace(GridQuality.Rows[e.RowIndex].Cells["colCurrentValue"].Value.ToString())) // = GridQuality.Rows[e.RowIndex].Cells["colCurrentValue"].Value.ToString(); //} } if (e.ColumnIndex == 0) { QualitySnItem quality = new QualitySnItem(); if (GridQuality.Rows[e.RowIndex].Cells["colUnitType"].Value.ToString() == "F") { quality.URL = rmesid; } else { if (string.IsNullOrWhiteSpace(GridQuality.Rows[e.RowIndex].Cells["colCurrentValue"].Value as string)) { return; } quality.URL = ""; } if (string.IsNullOrWhiteSpace(GridQuality.Rows[e.RowIndex].Cells["colCurrentValue"].Value as string)) { return; } quality.CurrentValue = GridQuality.Rows[e.RowIndex].Cells["colCurrentValue"].Value.ToString(); if (GridQuality.Rows[e.RowIndex].Cells["colCurrentResult"].Value == null) { } quality.CurrentResult = Convert.ToInt32((GridQuality.Rows[e.RowIndex].Cells["colCurrentResult"] as DataGridViewComboBoxCell).Value); quality.ProcessCode = GridQuality.Rows[e.RowIndex].Cells["colProcessCode"].Value.ToString(); //quality.BatchNo = GridQuality.Rows[e.RowIndex].Cells["colBatchNo"].Value.ToString(); quality.BatchNo = SN; //quality.RMES_ID = GridQuality.Rows[e.RowIndex].Cells["colRmesId"].Value.ToString(); quality.ItemCode = GridQuality.Rows[e.RowIndex].Cells["colItemCode"].Value.ToString(); quality.ItemName = GridQuality.Rows[e.RowIndex].Cells["colItemName"].Value.ToString(); quality.ItemDescription = GridQuality.Rows[e.RowIndex].Cells["colItemDescription"].Value.ToString(); quality.MaxValue = Convert.ToInt32(GridQuality.Rows[e.RowIndex].Cells["colMaxValue"].Value); quality.MinValue = Convert.ToInt32(GridQuality.Rows[e.RowIndex].Cells["colMinValue"].Value); if (quality.Ordering == null) { quality.Ordering = ""; } else { quality.Ordering = GridQuality.Rows[e.RowIndex].Cells["colOrdering"].Value.ToString(); } if (string.IsNullOrWhiteSpace(GridQuality.Rows[e.RowIndex].Cells["colUnitName"].Value as string)) { quality.UnitName = ""; } else { quality.UnitName = GridQuality.Rows[e.RowIndex].Cells["colUnitName"].Value.ToString(); } quality.UnitType = GridQuality.Rows[e.RowIndex].Cells["colUnitType"].Value.ToString(); //QualityType type = QualityFactory.GetByTypeName(GridQuality.Rows[e.RowIndex].Cells["colType"].Value.ToString()); if (GridQuality.Rows[e.RowIndex].Cells["colType"].Value == null) { } else { quality.FAULT_TYPE = (GridQuality.Rows[e.RowIndex].Cells["colType"] as DataGridViewComboBoxCell).Value.ToString(); } if (string.IsNullOrWhiteSpace(GridQuality.Rows[e.RowIndex].Cells["colEquipment"].Value as string)) { return; } quality.TEST_EQUIPMENT = GridQuality.Rows[e.RowIndex].Cells["colEquipment"].Value.ToString(); if (string.IsNullOrWhiteSpace(GridQuality.Rows[e.RowIndex].Cells["Remark"].Value as string)) { quality.TEMP = ""; } else { quality.TEMP = GridQuality.Rows[e.RowIndex].Cells["Remark"].Value.ToString(); } quality.WORK_TIME = System.DateTime.Now; quality.USER_ID = LoginInfo.UserInfo.USER_ID; if (quality.UnitType == "N" && quality.UnitType == "B") { QualityFactory.SaveItemOfProduct(quality, true); } else { QualityFactory.SaveItemOfProduct(quality, false); } GridQuality.DataSource = new List <QualitySnItem>(); ShowQualityList(); } }