/// <summary> /// Returns list of type Commit of all /// commits of current user on given date. /// </summary> /// <param name="datetime"></param> /// <returns></returns> public List <GitCommit> CommitsOnDate(DateTime datetime) { List <GitCommit> result = new List <GitCommit>(); var commits = Commits(); try { foreach (GitCommit commit in commits) { try { if (TimeServer.DateString(commit.Date) == TimeServer.DateString(datetime)) { result.Add(commit); } } catch (Exception) { // eat it } } } catch (Exception) { // eat it } return(result); }
public static string DaysToHtml(List <Day> days) { StringWriter stringWriter = new StringWriter(); using (HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter)) { htmlWriter.RenderBeginTag("html"); // Head htmlWriter.RenderBeginTag("head"); htmlWriter.RenderBeginTag("title"); htmlWriter.Write($"{TimeServer.SqlCurrentUser}'s Time Report"); htmlWriter.RenderEndTag(); htmlWriter.RenderEndTag(); // Body htmlWriter.AddStyleAttribute("margin", "auto"); htmlWriter.AddStyleAttribute("max-width", "1000"); htmlWriter.AddStyleAttribute("max-width", "700"); htmlWriter.RenderBeginTag("body"); if (days.Count > 0) { string minString = TimeServer.DateString(days.Min(d => d.Date)); string maxString = TimeServer.DateString(days.Max(d => d.Date)); // Header htmlWriter.AddStyleAttribute("color", "blue"); htmlWriter.RenderBeginTag("h1"); // Header text htmlWriter.AddAttribute("align", "center"); htmlWriter.RenderBeginTag("p"); htmlWriter.Write($"{TimeServer.SqlCurrentUser}'s time report <br> ({minString} - {maxString})"); htmlWriter.RenderEndTag(); htmlWriter.RenderEndTag(); // List of time entries htmlWriter.RenderBeginTag("ul"); foreach (Day day in days) { htmlWriter.RenderBeginTag("li"); // Date htmlWriter.AddAttribute("title", "Date"); htmlWriter.RenderBeginTag("font"); htmlWriter.Write(day.Date.DayOfWeek + " " + TimeServer.DateString(day.Date) + "<br>"); htmlWriter.RenderEndTag(); // Hours htmlWriter.AddAttribute("title", "Hours as decimal"); htmlWriter.RenderBeginTag("font"); htmlWriter.Write(day.HoursAsDecToQuarter + " hr.<br>"); htmlWriter.RenderEndTag(); // Details if (!string.IsNullOrEmpty(day.Details)) { htmlWriter.AddAttribute("title", "Work details"); htmlWriter.RenderBeginTag("font"); htmlWriter.Write(day.Details + "<br>"); htmlWriter.RenderEndTag(); } // Git commits if (AppSettings.Instance.GitEnabled) { var commits = DataBaseManager.Instance.GetCommits(day.Date.Date); if (commits.Count > 0) { htmlWriter.AddAttribute("title", "Commits"); htmlWriter.RenderBeginTag("ul"); foreach (GitCommit commit in commits) { htmlWriter.RenderBeginTag("li"); htmlWriter.AddAttribute("title", "Commit message"); htmlWriter.RenderBeginTag("font"); htmlWriter.Write($"{commit.Message} <br>"); htmlWriter.RenderEndTag(); htmlWriter.RenderEndTag(); } htmlWriter.RenderEndTag(); } } // Divider htmlWriter.RenderBeginTag("p"); htmlWriter.Write("\n"); htmlWriter.RenderEndTag(); } htmlWriter.RenderEndTag(); // Total hours htmlWriter.AddAttribute("title", "Total hours as decimal"); htmlWriter.AddAttribute("align", "center"); htmlWriter.AddStyleAttribute("color", "red"); htmlWriter.RenderBeginTag("p"); htmlWriter.AddAttribute("font size", "6"); htmlWriter.RenderBeginTag("font"); htmlWriter.Write($"Total: {days.Sum(d => d.HoursAsDecToQuarter)}"); htmlWriter.RenderEndTag(); htmlWriter.RenderEndTag(); } // Link htmlWriter.AddAttribute("align", "center"); htmlWriter.RenderBeginTag("p"); htmlWriter.Write("Brought to you by <a href = http://wrmcodeblocks.com/TheTimeApp/Downloads/ title = 'Link to download site'> TheTimeApp </a>."); htmlWriter.RenderEndTag(); htmlWriter.RenderEndTag(); htmlWriter.RenderEndTag(); } return(stringWriter.ToString()); }