public ActionResult Upload(SubtitlesFileUploadViewModel form) { try { // parse subtitles string finResult = new StreamReader(form.FinnishSubtitleFile.InputStream, Encoding.GetEncoding(1250)).ReadToEnd(); SubtitleList finSubList = srtToSubtitleList(finResult); string engResult = new StreamReader(form.EnglishSubtitleFile.InputStream, Encoding.GetEncoding(1250)).ReadToEnd(); SubtitleList enSubList = srtToSubtitleList(engResult); finSubList.CompareTo(enSubList); // send to 'compare' SubtitleCompareVM vm = new SubtitleCompareVM(); vm.leftList = finSubList; vm.rightList = enSubList; string id = SaveSubtitleFiles(form); return(RedirectToAction("Compare", new { controller = "Subtitles", action = "Compare", id = id })); } catch (Exception e) { Debug.WriteLine(e.Message); return(HttpNotFound(e.Message)); } }
public ActionResult Compare(string id) { SubtitleCompare st = SubtitleCompare.SingleOrDefault("WHERE Link=@0", id); if (st == null || st.SubtitleFileA == 0 || st.SubtitleFileB == 0) { return(RedirectToAction("Index")); } SubtitleFile A = SubtitleFile.FirstOrDefault("WHERE ID=@0", st.SubtitleFileA); SubtitleFile B = SubtitleFile.FirstOrDefault("WHERE ID=@0", st.SubtitleFileB); SubtitleFile fiFile = A.LanguageID == FI ? A : B; string fiFullPath = Path.Combine(Server.MapPath(FILE_PATH), fiFile.Filename); SubtitleFile enFile = A.LanguageID == EN ? A : B; string enFullPath = Path.Combine(Server.MapPath(FILE_PATH), enFile.Filename); if (!System.IO.File.Exists(fiFullPath) || !System.IO.File.Exists(enFullPath)) { return(HttpNotFound("File not found on server.")); } string fiFileContent = System.IO.File.ReadAllText(fiFullPath, Encoding.GetEncoding(1250)); SubtitleList fiSubList = srtToSubtitleList(fiFileContent); string enFileContent = System.IO.File.ReadAllText(enFullPath, Encoding.GetEncoding(1250)); SubtitleList enSubList = srtToSubtitleList(enFileContent); fiSubList.CompareTo(enSubList); // send to 'compare' SubtitleCompareVM vm = new SubtitleCompareVM(); vm.leftList = fiSubList; vm.rightList = enSubList; return(View("Compare", vm)); }