private static string ReplaceKeywords(string html, Users user, int rank) { Gravatar img = new Gravatar(user.email[0], Gravatar.IconSets.identicon, Gravatar.Ratings.g, 50); string gravatar = img.GravatarURL(); return html.Replace("<!-- rank -->", rank.ToString()) .Replace("<!-- name -->", user.Name) .Replace("<!-- code -->", user.CodeAdded().ToString()) .Replace("<!-- email -->", user.email[0]) .Replace("<!-- Gravatar -->", gravatar) .Replace("<!-- Image -->", ReplaceImageName(user)) .Replace("<!-- score -->", user.Score().ToString()) .Replace("<!-- commits -->", user.CommitCount().ToString()); }
/// <summary> /// Encapsulates git data in an object. /// </summary> /// <param name="data"> /// git data<see cref="System.String"/> /// </param> private void ParseGitData(string data, string project) { //user[0] is the commit #, user[1] is the name, and user[2] is email. char[] chars = new char[2]; chars[0] = '\r'; chars[1] = '\n'; string[] sdata = data.Split(chars); Users previousUser = new Users(); bool newcommit = false; foreach (string line in sdata) { if (line.Contains("files changed")) { if (newcommit) { string[] changes = line.Split(','); int added = int.Parse(changes[1].Trim().Split(' ')[0]); int removed = int.Parse(changes[2].Trim().Split(' ')[0]); previousUser.CodeAdded(added, project); previousUser.CodeRemoved(removed, project); if (added > removed) { previousUser.CodeCurved(added - removed, project); } else if (removed > added) { previousUser.CodeCurved(removed - added, project); } } } else if (line.Trim() != "") { string[] user = line.Split(';'); if (UserExists(user[2], user[1])) { previousUser = GetUser(user[2]); newcommit = previousUser.AddCommit(user[0], project); } else { Users aUser = new Users(user[2], user[1]); users.Add(aUser); newcommit = aUser.AddCommit(user[0], project); previousUser = aUser; } } } }