Exemple #1
0
        public void ShouldInstantiateFromProperCSVLine()
        {
            DayInfo day = new DayInfo("20100101;001122;012345");

            Assert.AreEqual <string>("20100101.csv", day.getFilename());
            Assert.AreEqual <string>("2010\\01\\", day.getSubDirectory());
            Assert.AreEqual <DateTime>(Convert.ToDateTime("01/01/2010 00:11:22"), (DateTime)day.getFirstActivity());
            Assert.AreEqual <DateTime>(Convert.ToDateTime("01/01/2010 01:23:45"), (DateTime)day.getLastActivity());
            Assert.AreEqual <string>("", day.GetComment());
            day = new DayInfo("20100101;001122;012345;test");
            Assert.AreEqual <string>("20100101.csv", day.getFilename());
            Assert.AreEqual <string>("2010\\01\\", day.getSubDirectory());
            Assert.AreEqual <DateTime>(Convert.ToDateTime("01/01/2010 00:11:22"), (DateTime)day.getFirstActivity());
            Assert.AreEqual <DateTime>(Convert.ToDateTime("01/01/2010 01:23:45"), (DateTime)day.getLastActivity());
            Assert.AreEqual <string>("test", day.GetComment());
        }
Exemple #2
0
        public void UpdateRow(DayInfoRow row)
        {
            string  prefix = row.Month + row.Day;
            string  start  = row.Start.Replace(":", "");
            string  end    = row.End.Replace(":", "");
            DayInfo d      = new DayInfo(prefix + ";" + start + ";" + end + ";" + row.Comment);

            if (d.GetDateToString().Equals(today.GetDateToString()))
            {
                today.SetComment(d.GetComment());
                today.setFirstActivity(d.GetFormattedFirstActivity());
                Tick();
                PersistData();
            }
            else
            {
                io.WriteToFile(d.getSubDirectory(), d.getFilename(), d.ToCSV());
            }
        }
Exemple #3
0
        public void CalcMonth()
        {
            AverageDelta = AverageDifference = AverageEnd = AverageNet = AverageStart = TotalDelta = TotalNet = 0;
            dataset      = new List <DayInfoRow>();
            List <string> files = io.ListAllFiles(month.getSubDirectory());

            foreach (string filename in files.OrderByDescending(o => o).ToList())
            {
                DayInfo  day    = new DayInfo(io.ReadFromFile(month.getSubDirectory(), filename));
                DateTime first  = (DateTime)day.getFirstActivity();
                DateTime last   = (DateTime)day.getLastActivity();
                int      worked = (int)(last - first).TotalMinutes;

                AverageDifference += worked;
                AverageStart      += (int)first.TimeOfDay.TotalSeconds;
                AverageEnd        += (int)last.TimeOfDay.TotalSeconds;

                int raw = worked;
                if (config.Subtract)
                {
                    if (config.SubtractCondition == -1)
                    {
                        worked -= config.SubtractQuantity;
                    }
                    else if (config.SubtractCondition == 0)
                    {
                        if (first.TimeOfDay.TotalHours < 12 && last.TimeOfDay.TotalHours > 12)
                        {
                            worked -= config.SubtractQuantity;
                        }
                    }
                    else
                    {
                        if (worked > config.SubtractCondition)
                        {
                            worked -= config.SubtractQuantity;
                        }
                    }
                }
                int  delta   = worked - config.Workload;
                bool rounded = false;
                if (delta >= -config.Tolerance && delta <= config.Tolerance)
                {
                    delta   = config.Workload;
                    rounded = true;
                }

                TotalNet   += worked;
                TotalDelta += delta;

                dataset.Add(new DayInfoRow(day.GetMonth(), day.GetDay(), day.GetWeekday(), Utils.SecondsToString((int)first.TimeOfDay.TotalSeconds), Utils.SecondsToString((int)last.TimeOfDay.TotalSeconds), Utils.MinutesToString(raw), Utils.MinutesToString(worked), (rounded? "•" : "") + Utils.MinutesToString(delta), "", day.GetComment()));
            }
            if (files.Count > 0)
            {
                AverageStart      /= files.Count;
                AverageEnd        /= files.Count;
                AverageDifference /= files.Count;
                AverageNet         = TotalNet / files.Count;
                AverageDelta       = TotalDelta / files.Count;
            }
        }
Exemple #4
0
        public DayInfoRow GetTodayRow()
        {
            DateTime first    = today.getFirstActivity().Value;
            DateTime expected = first.AddMinutes(config.Workload - config.Tolerance);

            if (config.Subtract)
            {
                if (config.SubtractCondition == -1)
                {
                    expected = expected.AddMinutes(config.SubtractQuantity);
                }
                else if (config.SubtractCondition == 0)
                {
                    if (today.getFirstActivity().Value.TimeOfDay.TotalHours < 12 && expected.TimeOfDay.TotalHours > 12)
                    {
                        expected = expected.AddMinutes(config.SubtractQuantity);
                    }
                }
            }

            return(new DayInfoRow(today.GetMonth(), today.GetDay() + " / " + today.GetMonth().Substring(4), today.GetWeekday(), today.GetFormattedFirstActivity(), today.GetFormattedLastActivity(), Utils.MinutesToString(Diff), Utils.MinutesToString(Net), (RoundedDelta? "•" : "") + Utils.MinutesToString(Delta), Utils.DatetimeToTime(expected), today.GetComment()));
        }