private void MergeResxFile(FileInfo file)
        {
            var mainKeys     = GetmainResxKeys(file);
            var relativePath = _routesManager.GetRelativePathFromSourceFile(file);
            var destFile     = _routesManager.GetFileFromDestination(relativePath);

            var newResxItems    = ResourcesExtensions.GetResourcesByFile(file.FullName);
            var sourceResxItems = ResourcesExtensions.GetResourcesByFile(destFile.FullName)
                                  .Where(item => mainKeys.Contains(item.Key) && !newResxItems.Keys.Contains(item.Key));

            foreach (var item in sourceResxItems)
            {
                newResxItems.Add(item.Key, item.Value);
            }

            ResourcesExtensions.CreateResxFile(destFile.FullName, newResxItems);
        }
        internal void ExtractResourceFiles()
        {
            foreach (string directory in Routes.ResoureceDirectories)
            {
                var srcResFile    = Path.Combine(directory, Routes.ResourcesFilePath);
                var newResxValues = _validator.GetResourcesWithChanges(srcResFile);

                if (newResxValues.Any())
                {
                    var desDirectory = _routesManager.GetOrCreateDestDirectory(directory).FullName;
                    var resourceFile = ResourcesExtensions.CreateResxFile(Path.Combine(desDirectory, Routes.ResourcesFilePath), newResxValues);

                    foreach (string culture in _cultures)
                    {
                        string destResFile = Path.Combine(desDirectory, string.Format(Routes.ResourcesFilePathPattern, culture));
                        resourceFile.CopyTo(destResFile, true);
                    }

                    resourceFile.Delete();
                }
            }
        }