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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
            }
        }
示例#5
0
        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();
            }
        }