Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        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());
        }