标签:size lin access original tostring rip span created 上传文件
public ResultM UploadFile(FileInfoM pFileInfoM) { ResultM result = new ResultM() { Flag = 1 }; DbModel db = new DbModel(); DbDocModel dbDoc = new DbDocModel(); var tranDB = db.Database.BeginTransaction(); var tranDBDoc = dbDoc.Database.BeginTransaction(); try { //validate var fdmtM = db.RefDocMgtType.FirstOrDefault(t => t.RefDocMgtTypeName == pFileInfoM.DocType); if (fdmtM == null) { result.Flag = 0; result.Msg = "不支持此文件类型!"; return result; } var recordM = db.Record.SingleOrDefault(t => t.ReferenceNumber == pFileInfoM.ReferenceNumber && t.RecordTypeId == 20); if (recordM == null) { result.Flag = 0; result.Msg = "找不到ReferenceNumber:" + pFileInfoM.ReferenceNumber + "对应记录!"; return result; } if (pFileInfoM.FileData.Length <= 0) { result.Flag = 0; result.Msg = "上传文件大小不正确!"; return result; } byte[] bytes = pFileInfoM.FileData; //流转换为byte //byte[] bytes = new byte[pFileInfoM.File.Length]; //pFileInfoM.File.Read(bytes, 0, bytes.Length); //pFileInfoM.File.Seek(0, SeekOrigin.Begin);// 设置当前流的位置为流的开始 //Create DBDocManagement var docManagementModel = new DBDocManagement() { CreateDate = DateTime.Now, Blob = bytes, FileExtension = pFileInfoM.ExtendName }; dbDoc.DBDocManagement.Add(docManagementModel); dbDoc.SaveChanges(); //Create FileInformation FileInformation fileInfoModel = new FileInformation { Title = "Document", FileSize = (new Func<int>(() => { int val; int.TryParse(pFileInfoM.FileSize, out val); return val; })).Invoke(), OriginalFile = pFileInfoM.DocName, AuditUserId = pFileInfoM.AuditUserId, CreatedByUserId = pFileInfoM.AuditUserId, UploadDate = DateTime.Now, FileExtension = pFileInfoM.ExtendName, CorrespondenceDate = DateTime.Now, StatusChangedDate = DateTime.Now, StatusChangedBy = pFileInfoM.AuditUserId, DocMgtStatus = "I", ExternalFileId = docManagementModel.FileId,//DocDb RefDocMgtTypeId = fdmtM.RefDocMgtTypeId, DocDescription = pFileInfoM.DocName.Replace("." + pFileInfoM.ExtendName, ""), Author = pFileInfoM.Author, StatusChangedComment = "Default Comment", Recipient = "" }; db.FileInformation.Add(fileInfoModel); db.SaveChanges(); //Create Link Relationship db.LnkRecordFile.Add(new LnkRecordFile() { RecordId = recordM.RecordID, FileId = fileInfoModel.FileId, DocMgtFolderId = 1,//select DocMgtFolderId from RefDocMgtFolder where DocMgtFolderName=‘Documents‘ = 1 AuditUserId = pFileInfoM.AuditUserId }); //Create DocMgtUserAccessControl for (int i = 1; i <= 3; i++) { db.DocMgtUserAccessControl.Add(new DocMgtUserAccessControl() { FileId = fileInfoModel.FileId, UserTypeId = i,//UserTypeId = RefUserType.UserTypeId AuditUserId = 1 }); } db.SaveChanges(); tranDB.Commit(); tranDBDoc.Commit(); } catch (Exception ex) { Log.Writer(ex, "UploadFile"); tranDB.Rollback(); tranDBDoc.Rollback(); result.Flag = 0; result.Msg = ex.ToString(); } finally { tranDB.Dispose(); tranDBDoc.Dispose(); } return result; }
Multi-Database Transaction Demo
标签:size lin access original tostring rip span created 上传文件
原文地址:http://www.cnblogs.com/lee2011/p/6233204.html