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); } }
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); } }
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); }