/// <summary> /// خواندن یک فایل /// </summary> /// <param name="id">ردیف فایل</param> /// <param name="fileName">نام فایل</param> /// <returns>شی فایل</returns> public static Entity.File GetFile(string id, string fileName) { using (var db = new AsefianFileContext()) { return(db.File.Single(x => x.Id == id && x.FileName == fileName && x.StatusId != FileStatus.Deleted.Id)); } }
/// <summary> /// حذف کردن فایل آپلود شده /// </summary> /// <param name="fileId">شناسه فایل</param> /// <param name="fileName">نام فایل</param> public static void DeleteFile(string fileId, string fileName, int?userId, params string[] roles) { using (var db = new AsefianFileContext()) { var entity = db.File.Single(x => x.Id == fileId && x.FileName == fileName); entity.StatusId = FileStatus.Deleted.Id; db.SaveChanges(); } }
/// <summary> /// تایید کردن فایل آپلود شده /// </summary> /// <param name="fileId">شناسه فایل</param> /// <param name="fileName">نام فایل</param> public static void NotVerifyFile(string fileId, string fileName) { using (var db = new AsefianFileContext()) { var entity = db.File.Single(x => x.Id == fileId && x.FileName == fileName); entity.StatusId = FileStatus.NotVerify.Id; db.SaveChanges(); } }
/// <summary> /// ذخیره فایل داخل دیتابیس /// </summary> /// <param name="file">فایل ارسالی در وب</param> /// <param name="system">سیستم ذخیره کننده فایل</param> /// <param name="userId">ردیف کاربر</param> /// <param name="ip">آی پی ارسال کننده درخواست</param> /// <returns>نتیجه ذخیره فایل</returns> public static SaveFile Save(HttpPostedFileBase file, int?userId, string ip, params string[] roles) { if (file != null && file.ContentLength > 0) { if (roles != null && roles.Length > 0) { roles = roles.Select(x => string.Format("[{0}]", x)).ToArray(); } using (var db = new AsefianFileContext()) { var fileName = Path.GetFileName(file.FileName).ToStandardPersian(); var fileBytes = ConvertToByte(file); var entity = new Entity.File() { Id = Guid.NewGuid().ToString().Replace("-", ""), FileName = fileName, Extention = Path.GetExtension(fileName), MimeType = file.ContentType, Length = fileBytes.LongLength, Data = fileBytes, StatusId = FileStatus.Verify.Id, Roles = string.Join(",", roles), Download = 0, CreateUserId = userId, CreateDate = DateTime.Now, CreateIp = ip }; db.File.Add(entity); db.SaveChanges(); var data = new SaveFile { id = entity.Id, length = entity.Length, fileName = entity.FileName, link = string.Format("/upload/file/{0}/{1}", entity.Id, entity.FileName) }; return(data); } } return(null); }