Пример #1
0
        public PackageTranslator()
        {
            JObject packageTranslationsJson;

            using (var stream = GetPackageTranslationsStream())
                using (var reader = new StreamReader(stream))
                {
                    packageTranslationsJson = JObject.Parse(reader.ReadToEnd());
                }

            var packageTranslationsArray = (JArray)packageTranslationsJson["translations"];

            foreach (var packageTranslationJson in packageTranslationsArray.Children <JObject>())
            {
                var packageTranslation = new PackageTranslation
                {
                    IncorrectPackageId             = packageTranslationJson["incorrectpackageid"].ToString(),
                    IncorrectPackageVersionPattern = new Regex(string.Format("^{0}$", packageTranslationJson["incorrectpackageversionpattern"])),
                    CorrectedPackageId             = packageTranslationJson["correctedpackageid"].ToString(),
                    CorrectedPackageVersionPattern = packageTranslationJson["correctedpackageversionpattern"].ToString()
                };

                if (!_packageTranslations.ContainsKey(packageTranslation.IncorrectPackageId))
                {
                    _packageTranslations.Add(packageTranslation.IncorrectPackageId, new List <PackageTranslation>());
                }

                _packageTranslations[packageTranslation.IncorrectPackageId].Add(packageTranslation);
            }
        }
Пример #2
0
        public PackageTranslator(string packageTranslationsJsonPath)
        {
            if (!File.Exists(packageTranslationsJsonPath))
            {
                throw new FileNotFoundException("Could not find file.", packageTranslationsJsonPath);
            }

            var packageTranslationsJson = JObject.Parse(
                File.ReadAllText(packageTranslationsJsonPath));

            var packageTranslationsArray = (JArray)packageTranslationsJson["translations"];

            foreach (var packageTranslationJson in packageTranslationsArray.Children <JObject>())
            {
                var packageTranslation = new PackageTranslation
                {
                    IncorrectPackageId             = packageTranslationJson["incorrectpackageid"].ToString(),
                    IncorrectPackageVersionPattern = new Regex(string.Format("^{0}$", packageTranslationJson["incorrectpackageversionpattern"])),
                    CorrectedPackageId             = packageTranslationJson["correctedpackageid"].ToString(),
                    CorrectedPackageVersionPattern = packageTranslationJson["correctedpackageversionpattern"].ToString()
                };

                if (!_packageTranslations.ContainsKey(packageTranslation.IncorrectPackageId))
                {
                    _packageTranslations.Add(packageTranslation.IncorrectPackageId, new List <PackageTranslation>());
                }

                _packageTranslations[packageTranslation.IncorrectPackageId].Add(packageTranslation);
            }
        }
Пример #3
0
        private static async Task <IReadOnlyCollection <PackageTranslation> > RetrievePackageTranslations(IReadOnlyCollection <PackageStatistics> sourceData, SqlConnection connection)
        {
            var command = connection.CreateCommand();

            command.CommandText    = "[dbo].[GetPackageTranslations]";
            command.CommandTimeout = _defaultCommandTimeout;
            command.CommandType    = CommandType.StoredProcedure;

            var results = new List <PackageTranslation>();

            using (var dataReader = await command.ExecuteReaderAsync())
            {
                while (await dataReader.ReadAsync())
                {
                    var packageTranslation = new PackageTranslation();
                    packageTranslation.CorrectedPackageId      = dataReader.GetInt32(0);
                    packageTranslation.IncorrectPackageId      = dataReader.GetString(1);
                    packageTranslation.IncorrectPackageVersion = dataReader.GetString(2);

                    results.Add(packageTranslation);
                }
            }

            return(results);
        }