/// <summary> /// Upload Files /// </summary> /// <param name="file"></param> /// <returns></returns> public bool UploadFiles(HttpPostedFileBase file, string path, FolderFile_VM Model) { if (file.FileName != null) { try { var p = path; int index = path.LastIndexOf("\\"); if (index > 0) { path = path.Substring(0, index); // or index + 1 to keep slash } if (!Directory.Exists(path)) { Directory.CreateDirectory(Path.Combine(path)); } file.SaveAs(Path.Combine(p + "." + Model.FileType)); return(true); } catch (Exception ex) { logger.Error("FileSystem_UploadFiles Error: ", ex); throw; } } else { return(false); } }
/// <summary> /// Update File Info /// </summary> /// <param name="Model"></param> /// <returns></returns> public FolderFile_VM UpdateFileInfo(FolderFile_VM Model) { using (WebPortalEntities db = new WebPortalEntities()) { using (var trans = db.Database.BeginTransaction()) { try { ObjectParameter pTxnTimestamp = new ObjectParameter("pTxnTimestamp", Model.TxnTimestamp); db.UpdateFileInfo(Model.FileID, Model.FileRemarks, pTxnTimestamp); db.SaveChanges(); trans.Commit(); Model.TxnTimestamp = (byte[])pTxnTimestamp.Value; return(Model); } catch (Exception ex) { trans.Rollback(); logger.Error("FileSystem_UpdateFileInfo Error: ", ex); throw; } } } }
/// <summary> /// Get Deleted Files Info /// </summary> /// <param name="Model"></param> /// <returns></returns> public List <FolderFile_VM> GetDeletedFilesInfo(FolderFile_VM Model) { List <FolderFile_VM> model = new List <FolderFile_VM>(); using (WebPortalEntities db = new WebPortalEntities()) { using (var trans = db.Database.BeginTransaction()) { try { var config = new MapperConfiguration(cfg => cfg.CreateMap <GetDeletedFilesInfo_Result, FolderFile_VM>()); var mapper = config.CreateMapper(); List <GetDeletedFilesInfo_Result> data = db.GetDeletedFilesInfo(Model.FileName, Model.FileType, Model.FileRemarks).ToList(); mapper.Map <List <GetDeletedFilesInfo_Result>, List <FolderFile_VM> >(data, model); trans.Commit(); return(model); } catch (Exception ex) { trans.Rollback(); logger.Error("FileSystem_GetDeletedFilesInfo Error: ", ex); throw; } } } }
/// <summary> /// Get File Info /// </summary> /// <param name="Model"></param> /// <returns></returns> public FolderFile_VM GetFileInfo(FolderFile_VM Model) { using (WebPortalEntities db = new WebPortalEntities()) { using (var trans = db.Database.BeginTransaction()) { try { ObjectParameter pFileRelativePath = new ObjectParameter("pFileRelativePath", DBNull.Value); ObjectParameter pFileName = new ObjectParameter("pFileName", DBNull.Value); ObjectParameter pFileType = new ObjectParameter("pFileType", DBNull.Value); ObjectParameter pFileRemarks = new ObjectParameter("pFileRemarks", DBNull.Value); ObjectParameter pCreatedDateTime = new ObjectParameter("pCreatedDateTime", DBNull.Value); ObjectParameter pLastAccessDateTime = new ObjectParameter("pLastAccessDateTime", DBNull.Value); ObjectParameter pAccessCount = new ObjectParameter("pAccessCount", 0); ObjectParameter pTxnTimestamp = new ObjectParameter("pTxnTimestamp", DBNull.Value); db.GetFileInfo(Model.FileID, pFileRelativePath, pFileName, pFileType, pFileRemarks, pCreatedDateTime, pLastAccessDateTime, pAccessCount, pTxnTimestamp); db.SaveChanges(); trans.Commit(); Model.FileRelativePath = pFileRelativePath.Value.ToString(); Model.FileName = pFileName.Value.ToString(); Model.FileType = pFileType.Value.ToString(); Model.FileRemarks = pFileRemarks.Value.ToString(); Model.CreatedDateTime = Convert.ToDateTime(pCreatedDateTime.Value); if (pLastAccessDateTime.Value != DBNull.Value) { Model.LastAccessDateTime = Convert.ToDateTime(pLastAccessDateTime.Value); } Model.AccessCount = Convert.ToInt32(pAccessCount.Value); Model.TxnTimestamp = (byte[])pTxnTimestamp.Value; return(Model); } catch (Exception ex) { trans.Rollback(); logger.Error("FileSystem_GetFileInfo Error: ", ex); throw; } } } }
/// <summary> /// Get Files Info /// </summary> /// <param name="Model"></param> /// <returns></returns> public List <FolderFile_VM> GetFilesInfo(FolderFile_VM Model) { List <FolderFile_VM> model = new List <FolderFile_VM>(); using (WebPortalEntities db = new WebPortalEntities()) { using (var trans = db.Database.BeginTransaction()) { try { DataTable dt_FileIDModule = new DataTable(); if (Model.FileID_TableTypeList != null && Model.FileID_TableTypeList.Count > 0) { dt_FileIDModule = ConvertToDatatable(Model.FileID_TableTypeList); } else { dt_FileIDModule = ConvertToDatatable(new List <FileID_TableType_VM>()); } var par = new SqlParameter[] { new SqlParameter("@pFileTable", dt_FileIDModule) { TypeName = "FileID_TableType" } }; model = db.Database.SqlQuery <FolderFile_VM>("exec GetFilesInfo", par).ToList(); trans.Commit(); return(model); } catch (Exception ex) { trans.Rollback(); logger.Error("FileSystem_GetFilesInfo Error: ", ex); throw; } } } }
/// <summary> /// UnDelete File /// </summary> /// <param name="Model"></param> /// <returns></returns> public bool UnDeleteFile(FolderFile_VM Model) { using (WebPortalEntities db = new WebPortalEntities()) { using (var trans = db.Database.BeginTransaction()) { try { db.UnDeleteFile(Model.FileID, Model.TxnTimestamp); db.SaveChanges(); trans.Commit(); return(true); } catch (Exception ex) { trans.Rollback(); logger.Error("FileSystem_UnDeleteFile Error: ", ex); throw; } } } }
/// <summary> /// Hard delete file /// </summary> /// <param name="Model"></param> /// <returns></returns> public bool RemoveFile(FolderFile_VM Model, string filePath) { FolderFile_VM model = new FolderFile_VM(); using (WebPortalEntities db = new WebPortalEntities()) { try { model = GetFileInfo(Model); db.RemoveFile(Model.FileID, model.TxnTimestamp); db.SaveChanges(); DeleteFilePhysical(filePath + model.FileRelativePath + "." + model.FileType); return(true); } catch (Exception ex) { logger.Error("FileSystem_RemoveFile Error: ", ex); throw; } } }
/// <summary> /// Save file /// </summary> /// <param name="Model"></param> /// <returns></returns> public FolderFile_VM AddFile(FolderFile_VM Model, HttpPostedFileBase file, string path) { using (WebPortalEntities db = new WebPortalEntities()) { using (var trans = db.Database.BeginTransaction()) { try { Model.FileName = file.FileName; Model.FileType = Path.GetExtension(file.FileName).Replace(".", "").ToLower(); //Model.FileSize = file.ContentLength; ObjectParameter pFileID = new ObjectParameter("pFileID", 0); ObjectParameter pFileRelativePath = new ObjectParameter("pFileRelativePath", ""); db.AddFile(Model.ObjectType, Model.ObjectInstanceID, Model.FileName, Model.FileType, Model.FileSize, Model.FileRemarks, pFileID, pFileRelativePath); db.SaveChanges(); Model.FileID = Convert.ToInt32(pFileID.Value); Model.FileRelativePath = pFileRelativePath.Value.ToString(); Model.FileRelativePath = path + Model.FileRelativePath; UploadFiles(file, Model.FileRelativePath, Model); trans.Commit(); return(Model); } catch (Exception ex) { trans.Rollback(); logger.Error("FileSystem_AddFile Error: ", ex); throw; } } } }