private static void BuildFileCompareResultExistInOneFolderOnly(IEnumerable<string> fileNotExistInOtherFolder,
            FileInfo[] fileInFolder
            , FeatureFolderCompareResult featureCompareResult,
            bool isFirstFolder)
        {
            foreach (var fileName in fileNotExistInOtherFolder)
            {
                var fileInfo = fileInFolder.First(x => x.Name == fileName);
                var fileCompareResult = new DataFileCompareResult();
                fileCompareResult.FileName = fileName;
                fileCompareResult.FullName = fileInfo.FullName;
                fileCompareResult.Status = isFirstFolder
                    ? FileCompareStatus.FirstFolderOnly
                    : FileCompareStatus.SecondFolderOnly;

                featureCompareResult.ListDataFileCompareResult.Add(fileCompareResult);
            }
        }
        static void Main(string[] args)
        {
            string path = @"D:\Sherlock.S03E01.HDTV.x264-ChameE";//\Sherlock.S03E01.HDTV.x264-ChameE.mkv";
            string finalPath = string.Empty;
            FileInfo[] fileList = new FileInfo[] { };
            List<string> patterns = new List<string>();
            patterns.Add("*.avi");
            patterns.Add("*.mp4");
            patterns.Add("*.mkv");
            patterns.Add("*.mpg");
            patterns.Add("*.mpeg");
            DirectoryInfo dir = new DirectoryInfo(path);
            foreach (string pattern in patterns)
            {
                if (dir.GetFiles(pattern).Count() > 0)
                {
                    fileList = dir.GetFiles(pattern);
                }
            }
            finalPath = fileList.First().FullName;
            foreach (FileInfo file in fileList)
            {
                if (file.Length > new FileInfo(finalPath).Length)
                    finalPath = file.FullName;
            }
            PythonInstance py = new PythonInstance();
            py.CallMethod("somemethod");

            var hash = py.CallFunction("get_hash", finalPath);
            string url = "http://api.thesubdb.com/?action=download&hash=" + hash + "&language=en";
            //WebClient client = new WebClient();
            //client.BaseAddress = url;
            //client.Headers.Add("UserAgent", "SubDB/1.0 (subtitle-downloader/1.0; http://github.com/manojmj92/subtitle-downloader)");
            //byte[] data = client.DownloadData(url);

            HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
            webRequest.UserAgent = "SubDB/1.0 (movie-subtitles/1.0; https://github.com/nalawade41/movie-subtitles)";
            WebResponse response = webRequest.GetResponse();
            Console.WriteLine(hash);
            Console.ReadLine();
        }
        private static void CompareFileContent(FileInfo[] filesInFirstFolder, string fileName, FileInfo[] filesInSecondFolder,
            FeatureFolderCompareResult featureCompareResult)
        {
            //compare file content with just read content as string and compare string
            var file1 = filesInFirstFolder.First(x => x.Name == fileName);
            var file2 = filesInSecondFolder.First(x => x.Name == fileName);

            var fileContent1 = File.ReadAllText(file1.FullName);
            var fileContent2 = File.ReadAllText(file2.FullName);

            // Compare the JSON versions of the file
            var json1 = JsonConvert.DeserializeObject(fileContent1) as JToken;
            var json2 = JsonConvert.DeserializeObject(fileContent2) as JToken;

            // To compare strings, use:
            // if (String.CompareOrdinal(fileContent1, fileContent2) != 0)

            if (!JToken.DeepEquals(json1, json2))
            {
                //content is different
                var fileCompareResult = new DataFileCompareResult();
                fileCompareResult.FileName = fileName;
                fileCompareResult.Status = FileCompareStatus.DifferentContent;

                featureCompareResult.ListDataFileCompareResult.Add(fileCompareResult);
            }
        }