private IEnumerable <string> GetmainResxKeys(FileInfo file)
        {
            var relativeDirectory = _routesManager.GetRelativeDirectoryFromSource(file.Directory);
            var mainFile          = _routesManager.GetFileFromDestination(Path.Combine(relativeDirectory, Routes.ResourcesFilePath));

            return(ResourcesExtensions.GetResourcesByFile(mainFile.FullName).Keys);
        }
예제 #2
0
        // TODO: this method should not be in this class, since it is not a validating method,
        // but the _routesManager contains the necessary paths
        internal Dictionary <string, ResxItem> GetResourcesWithChanges(string resPath)
        {
            var originalResxPath = _routesManager.GetFileFromSource(resPath);
            var originalValues   = ResourcesExtensions.GetResourcesByFile(originalResxPath.FullName);

            var actualResxPath = _routesManager.GetFileFromDestination(resPath);
            var newValues      = ResourcesExtensions.GetResourcesByFile(actualResxPath.FullName);

            return(newValues.GetChangesFrom(originalValues));
        }
예제 #3
0
        internal bool HasResourceChanges(string resPath)
        {
            if (!_routesManager.ExistInSourceAndDestination(resPath))
            {
                return(true);
            }

            var originalResxPath = _routesManager.GetFileFromSource(resPath);
            var originalResx     = ResourcesExtensions.GetResourcesByFile(originalResxPath.FullName);

            var actualResxPath = _routesManager.GetFileFromDestination(resPath);
            var actualResx     = ResourcesExtensions.GetResourcesByFile(actualResxPath.FullName);

            return(!originalResx.AreEquals(actualResx));
        }
        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);
        }
예제 #5
0
        private void VerifyResourceContent(string directory, string fileName)
        {
            var resxFile  = Path.Combine(_sourceDir.FullName, directory, fileName);
            var resources = ResourcesExtensions.GetResourcesByFile(resxFile);

            foreach (var culture in _cultures)
            {
                var cultureFile = new FileInfo(Path.Combine(_sourceDir.FullName, directory, string.Format(Routes.ResourcesFilePathPattern, culture)));

                if (cultureFile.Exists)
                {
                    var cultureResources = ResourcesExtensions.GetResourcesByFile(cultureFile.FullName);
                    VerifyResourceValues(resources.Keys, cultureResources.Keys, resxFile, cultureFile.FullName);
                    VerifyResourcesFormat(resources, cultureResources, resxFile, cultureFile.FullName);
                }
            }
        }