public ActionResult AddFileInformation(FileInformationModel fileInformation) { List <string> _errList = new List <string>(); bool _success = false; if (ModelState.IsValid) { try { var ff = Mapper.Map <FileInformation>(fileInformation); new FileInformationRepository().Add(Mapper.Map <FileInformation>(fileInformation)); _success = true; } catch (DalException e) { _errList.Add(e.Message); } catch (Exception) { _errList.Add("DataBase Error"); } } else { _errList = GetModelErrors(); } return(Json(new { success = _success, error = _errList })); }
public ActionResult DeleteFileInformationR(int id) { var fileInformation = new FileInformationModel() { Id = id }; return(PartialView("DeleteFileInformationView", fileInformation)); }
public bool IsVideoFile(FileInformationModel file) { bool result = false; switch (file.Filetype) { case ".webm": case ".mkv": case ".flv": case ".vob": case ".ogv": case ".ogg": case ".drc": case ".gif": case ".gifv": case ".mng": case ".avi": case ".mov": case ".qt": case ".wmv": case ".yuv": case ".rm": case ".rmvb": case ".asf": case ".amv": case ".mp4": case ".m4p": case ".m4v": case ".mpg": case ".mp2": case ".mpeg": case ".mpe": case ".mpv": case ".m2v": case ".svi": case ".3gp": case ".3g2": case ".mxf": case ".roq": case ".nsv": case ".f4v": case ".f4p": case ".f4a": case ".f4b": result = true; break; default: result = false; break; } return(result); }
public async Task <DbResult> AddFileInformationAsync(FileInformationModel fileInformation) { var entity = new SavedFile() { FileFullPath = fileInformation.FileInfo.FullName, Filename = fileInformation.Filename, SiteRelativeImageUrl = fileInformation.FileImageUrl, TvdbSeriesId = fileInformation.TvdbSeriesId }; var result = await AddSavedFileAsync(entity); return(result); }
public void CopyMediaFiles(List <SeriesFileStructureModel> seriesFileStructures, List <FileInformationModel> files) { string writeLocation = appSettings.MediaFileOutputLocation; if (!Directory.Exists(writeLocation)) { Directory.CreateDirectory(writeLocation); } var movies = files.Where(x => x.MediaInformation.IsMovie == true); files.RemoveAll(x => x.MediaInformation.IsMovie == true); var personal = files.Where(x => x.MediaInformation.IsPersonal == true); files.RemoveAll(x => x.MediaInformation.IsPersonal == true); Console.WriteLine("Building File Structure"); //Write the files structure foreach (var struc in seriesFileStructures) { Directory.CreateDirectory(writeLocation + struc.SeriesName); foreach (var season in struc.Seasons) { Directory.CreateDirectory(writeLocation + struc.SeriesName + "//" + "Season" + season); } } if (movies.Count() > 0) { if (!Directory.Exists(writeLocation + "Movies//")) { Directory.CreateDirectory(writeLocation + "Movies//"); } } if (personal.Count() > 0) { if (!Directory.Exists(writeLocation + "Personal//")) { Directory.CreateDirectory(writeLocation + "Personal//"); } } Console.WriteLine("Copying Movies"); foreach (var movie in movies) { File.Copy(movie.FileInfo.FullName, writeLocation + "Movies//" + movie.Filename); } Console.WriteLine("Copying Personal Files"); foreach (var pers in personal) { File.Copy(pers.FileInfo.FullName, writeLocation + "Personal//" + pers.Filename); } var dirList = Directory.GetDirectories(writeLocation); //Write the files //List<FileInfo> transferringFiles = new List<FileInfo>(); List <(Thread thread, FileInfo fileInfo)> runningThreads = new List <(Thread thread, FileInfo fileInfo)>(); List <int> threads = new List <int>(); long count = 0; var maxThreads = 10; var totalTransferSize = files.Sum(x => x.FileInfo.Length); long totalTransferred = 0; foreach (var file in files) { string fileCheckPath = string.Concat(writeLocation, file.MediaInformation.Name, "//", "Season", file.MediaInformation.Season, "//", file.Filename); //make a temp object FileInformationModel tmp = file; //spin up a new thread var thisThread = new Thread(new ThreadStart(() => FileCopyThread(tmp, writeLocation))); try { while (runningThreads.Count > maxThreads - 1) { List <int> rmFiles = new List <int>(); var rmThreads = new List <(Thread thread, FileInfo fileInfo)>(); foreach (var x in runningThreads) { if (!x.thread.IsAlive) { rmThreads.Add(x); } } if (rmThreads.Count <= 0) { Thread.Sleep(1000); } foreach (var rm in rmThreads) { runningThreads.RemoveAll(x => x.thread == rm.thread); totalTransferred += rm.fileInfo.Length; } } //File.Copy(file.FileInfo.FullName, , false); thisThread.Start(); count++; //transferringFiles.Add(file.FileInfo); (Thread Thread, FileInfo fileInfo)temp = (thisThread, file.FileInfo); runningThreads.Add(temp); //Console.SetCursorPosition(0, Console.CursorTop); //Console.Write("Copying File {0} of {1}" + Environment.NewLine, count, files.Count); //FileSystem.CopyFile(file.FileInfo.FullName, string.Concat(writeLocation, file.MediaInformation.Name, "//", "Season", file.MediaInformation.Season, "//", file.Filename), UIOption.AllDialogs, UICancelOption.ThrowException); } catch (Exception ex) { Console.WriteLine("File {0} could not be copied. Caught Exception {1}", file.Filename, ex); } } }
public static void FileCopyThread(FileInformationModel file, string writeLocation) { //FileSystem.CopyFile(file.FileInfo.FullName, string.Concat(writeLocation, file.MediaInformation.Name, "//", "Season", file.MediaInformation.Season, "//", file.Filename), UIOption.AllDialogs, UICancelOption.ThrowException); File.Copy(file.FileInfo.FullName, string.Concat(writeLocation, file.MediaInformation.Name, "//", "Season", file.MediaInformation.Season, "//", file.Filename), false); }
public List <FileInformationModel> GetFolderInformation(string directory, bool recursive = true) { DirectoryInfo di = new DirectoryInfo(directory); List <FileInfo> fi = new List <FileInfo>(); List <FileInformationModel> result = new List <FileInformationModel>(); if (recursive) { //fi = di.GetFiles("*", SearchOption.AllDirectories).ToList(); try { var dirs = di.GetDirectories(); foreach (var dir in dirs) { try { fi.AddRange(dir.GetFiles("*", SearchOption.AllDirectories).ToList()); } catch (Exception ex) { Console.WriteLine("Couldn't get file {0}. {1}", dir.FullName, ex.Message); } } } catch { Console.WriteLine("Failed to get directory {0}", di.FullName); return(result); } } else { try { fi.AddRange(di.GetFiles().ToList()); } catch { Console.WriteLine("Failed to get directory {0}", di.FullName); return(result); } } foreach (var f in fi) { var fileInfo = new FileInformationModel(); try { fileInfo = new FileInformationModel() { //FileAttributes = File.GetAttributes(f.FullName), FileInfo = f, FileSizeBytes = f.Length, Filename = f.Name, Filetype = f.Extension, LastUsed = f.LastAccessTime }; } catch (Exception ex) { Console.WriteLine("Caught exception trying to read file", f.Name); } result.Add(fileInfo); } return(result); }
public ActionResult AddFileInformation() { var fileInformation = new FileInformationModel(); return(PartialView("AddFileInformationView", fileInformation)); }