/// <summary> /// Fetches the gravatar image for a single committer and saves it to the specified path. /// </summary> /// <param name="committer">The committer.</param> /// <param name="imagePath">The image path.</param> /// <param name="fileFormat"></param> /// <exception cref="System.NotImplementedException"></exception> internal async Task FetchSingleGravatar(Committer committer, string imagePath) { var gravatarId = Committer.GetGravatarMd5Hash(committer.EmailAddress); var query = string.Format(QueryString, gravatarId, 90); var result = await httpClient.GetAsync(query); Log.Debug() .Message("HTTP Status {status} retrieving image for committer {committer}", result.StatusCode, committer) .Write(); if (result.IsSuccessStatusCode) { var imageStream = await result.Content.ReadAsStreamAsync(); var bitmap = new Bitmap(imageStream); var filename = committer.Name + ".png"; var fileToSave = Path.Combine(imagePath, filename); fileSystem.SaveImage(fileToSave, bitmap, ImageFormat.Png); Log.Info().Message("Saved {committer} => {filename}", committer, filename).Write(); } else { Log.Info().Message("Unable to retrieve Gravatar for {committer}", committer).Write(); } }
public IEnumerable <Committer> GetListOfUniqueCommitters(ProcessStartInfo gitPsi = null) { var logStream = GetLogStream(gitPsi); var uniqueCommitters = new SortedSet <Committer>(); var committersAdded = 0; while (!logStream.EndOfStream) { try { var logLine = logStream.ReadLine(); Log.Debug().Message("Read from log stream => {logLine}", logLine).Write(); var parts = logLine.Split('|'); if (parts.Length != 2) // Must hav { continue; } if (string.IsNullOrEmpty(parts[0])) // Must have a non-blank email address { continue; } var committer = new Committer(parts[1], parts[0]); var added = uniqueCommitters.Add(committer); Log.Debug().Message("Committer={committer}, Added={added}", committer, added).Write(); if (added) { ++committersAdded; } } catch (Exception ex) { Log.Warn().Exception(ex).Write(); } } Log.Info().Message("Added a total of {count} committers", committersAdded).Write(); return(uniqueCommitters); }