// GET: FileConfigs public void DefaultConfigs(GroupFileOfOneUpload groupFiles) { const int FILE_LIFE_TIME = 5; FileConfigs fileConfigs = new FileConfigs { GroupFileId = groupFiles.GroupFileId, DateOfDeletion = groupFiles.FileUploadDate.AddDays(FILE_LIFE_TIME), DownloadCounter = 0 }; RepositoryFileConfigs.AddConfig(fileConfigs); }
public ActionResult SaveFiles(HttpPostedFileBase[] file) { if (file == null || file[0] == null) { return(RedirectToAction("ErrorPage", "ErrorController")); } const int NUMBER_OF_ATTEMPTS_TO_GENERATE = 10; const string ROOT_PATH = @"~\AllUsersFiles\"; string fileGuid = null; #region генерация guid для папки файла //если за 10 попыток не генерируется уникальный guid, то возвращается страница с ошибкой for (int i = 0; i < NUMBER_OF_ATTEMPTS_TO_GENERATE; i++) { fileGuid = CreateFolderGuid(); if (fileGuid != null) { break; } } if (fileGuid == null) { return(RedirectToAction("ErrorPage", "ErrorController")); } #endregion string fullPathForAllFiles = ROOT_PATH + fileGuid; int userFilesIndexCounter = 0; string fullPathForEachFiles; Directory.CreateDirectory(Server.MapPath(fullPathForAllFiles)); List <AllFiles> allFiles = new List <AllFiles>(file.Length); AllFilesAndGroupFilesLink filesLink = new AllFilesAndGroupFilesLink(); GroupFileOfOneUpload groupFilesOfOneUpload = new GroupFileOfOneUpload { UserName = Request.IsAuthenticated ? User.Identity.GetUserName() : "Anonymous", FileUploadDate = DateTime.Now, GroupFileGuid = fileGuid }; //Добавляем в таблицу групповую инфу о файлах RepositoryGroupFiles.AddGroup(groupFilesOfOneUpload); //Добавляем дефолтную инфу о файле new FileConfigsController(groupFilesOfOneUpload, RepositoryFileConfigs); //получаем из файлов инфу и добавляем ее в таблицу по каждому файлу foreach (var item in file) { allFiles.Add(new AllFiles { FileName = item.FileName, FileExtension = Path.GetExtension(item.FileName), //FileGuid = fileGuid, FileSize = item.ContentLength, //FileUploadTime = DateTime.Now, //UserLogin = Request.IsAuthenticated ? User.Identity.GetUserName() : "Anonymous" }); RepositoryAllFiles.AddFile(allFiles[userFilesIndexCounter]); //Добавляем в линкующую таблицу, айдишники отдельных файлов и айдишник группы этих файлов filesLink.FileId = allFiles[userFilesIndexCounter].FileId; filesLink.GroupFileId = groupFilesOfOneUpload.GroupFileId; RepositoryLinkFiles.AddLink(filesLink); fullPathForEachFiles = Server.MapPath(fullPathForAllFiles) + @"\" + allFiles[userFilesIndexCounter].FileId; Directory.CreateDirectory(fullPathForEachFiles); item.SaveAs(fullPathForEachFiles + @"\" + item.FileName); userFilesIndexCounter++; } return(RedirectToAction("ShowUploadedFile", new { id = fileGuid })); }
public FileConfigsController(GroupFileOfOneUpload groupFiles, IFileConfigsRepository fileConfigs) { RepositoryFileConfigs = fileConfigs; DefaultConfigs(groupFiles); }
public void AddGroup(GroupFileOfOneUpload groupFiles) { context.GroupFilesOfOneUpload.Add(groupFiles); context.SaveChanges(); }