Ejemplo n.º 1
0
        public static void TestDateTimeDateComponent()
        {
            var a = new System.DateTime(2001, 2, 3, 4, 5, 6).Date;
            var b = new System.DateTime(2001, 2, 3, 4, 5, 7);
            var c = new System.DateTime(2001, 2, 3, 4, 5, 8).Date;

            //gist of issue: throws exception due to wrong DateTime.js $clearTime
            Assert.True(!b.Equals(a), "DateTime(2001, 2, 3, 4, 5, 7).Equals(DateTime(2001, 2, 3, 4, 5, 6).Date) returns false.");
            Assert.AreNotEqual(b, a, "DateTime(2001, 2, 3, 4, 5, 7) and DateTime(2001, 2, 3, 4, 5, 6).Date are different.");

            //next two are safety guards that fix doesn't introduce new bugs
            Assert.True(!a.Equals(b), "DateTime(2001, 2, 3, 4, 5, 6).Date.Equals(DateTime(2001, 2, 3, 4, 5, 7)) returns false.");
            Assert.AreNotEqual(a, b, "DateTime(2001, 2, 3, 4, 5, 6).Date and DateTime(2001, 2, 3, 4, 5, 7) are different.");

            Assert.True(a.Equals(c), "DateTime(2001, 2, 3, 4, 5, 6).Date.Equals(DateTime(2001, 2, 3, 4, 5, 8).Date) return true.");
            Assert.AreEqual(a, c, "DateTime(2001, 2, 3, 4, 5, 6).Date DateTime(2001, 2, 3, 4, 5, 8).Date are equal.");
        }
Ejemplo n.º 2
0
 private long GetTimeInterval(System.DateTime start, System.DateTime end)
 {
     if (start.Equals(System.DateTime.MinValue) || end.Equals(System.DateTime.MinValue))
     {
         return(-1);
     }
     System.TimeSpan diff = end - start;
     return((long)diff.TotalMilliseconds);
 }
Ejemplo n.º 3
0
        public ICollection <Task> GetProjectTasks(string projectUId, System.DateTime fromDate, System.DateTime toDate, bool dailyTasksOnly, string reviewTagUId)
        {
            using (var context = new ScrumFactoryEntities(this.connectionString)) {
                IQueryable <Task> tasks = context.Tasks.Include("TaskInfo").Where(t => t.ProjectUId == projectUId);

                if (!dailyTasksOnly && !fromDate.Equals(System.DateTime.MinValue))
                {
                    tasks = tasks.Where(t => t.CreatedAt >= fromDate);
                }

                if (!dailyTasksOnly && !toDate.Equals(System.DateTime.MinValue))
                {
                    tasks = tasks.Where(t => t.CreatedAt <= toDate);
                }

                if (dailyTasksOnly)
                {
                    System.DateTime lastDay = System.DateTime.Today.AddDays(-1);
                    if (lastDay.DayOfWeek == System.DayOfWeek.Saturday)
                    {
                        lastDay = lastDay.AddDays(-1);
                    }
                    if (lastDay.DayOfWeek == System.DayOfWeek.Sunday)
                    {
                        lastDay = lastDay.AddDays(-2);
                    }
                    if (lastDay.DayOfWeek == System.DayOfWeek.Monday)
                    {
                        lastDay = lastDay.AddDays(-3);
                    }

                    tasks = tasks.Where(t => t.Status <= (short)TaskStatus.WORKING_ON_TASK || t.EndDate >= lastDay);
                }

                if (!string.IsNullOrEmpty(reviewTagUId))
                {
                    tasks = tasks.Where(t => t.TagUId == reviewTagUId);
                }

                return(tasks.ToList());
            }
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> MaximumNumberOfFreeDays(int year, string countryCode)
        {
            var response = new List <HolidaysForYear>();

            var holidayList = await _holidayService.GetHolidaysForYear(year, countryCode, "public_holiday");

            foreach (var item in holidayList)
            {
                response.Add(new HolidaysForYear
                {
                    Date        = new DateTime(item.Date.Year, item.Date.Month, item.Date.Day),
                    HolidayName = string.Join(", ", item.HolidayName.Select(x => x.Text)),
                    HolidayType = item.HolidayType,
                    CountryCode = item.CountryCode,
                    DayOfWeek   = (DayOfWeek)item.Date.DayOfWeek
                });
            }

            var countFreeDays    = 0;
            var maxFreeDays      = 0;
            var rangesOfFreeDays = new DateTime();
            var expectedDay      = new DateTime();
            var previousDay      = new DateTime();

            foreach (var item in response)
            {
                var currentDay = item.Date;

                if (expectedDay.Equals(item.Date))
                {
                    if (item.DayOfWeek == (DayOfWeek)5)
                    {
                        countFreeDays += 3;
                        expectedDay.AddDays(3);
                        previousDay = currentDay;

                        continue;
                    }
                    countFreeDays += 1;
                    expectedDay.AddDays(1);
                    continue;
                }

                if (countFreeDays > 0)
                {
                    if (countFreeDays > maxFreeDays)
                    {
                        maxFreeDays      = countFreeDays;
                        rangesOfFreeDays = previousDay;
                    }
                    countFreeDays = 0;
                    expectedDay   = new DateTime();
                }

                if (item.DayOfWeek == (DayOfWeek)2 || item.DayOfWeek == (DayOfWeek)3 || item.DayOfWeek == (DayOfWeek)4)
                {
                    countFreeDays += 1;
                    expectedDay    = currentDay.AddDays(1);
                    previousDay    = currentDay;
                }

                else if (item.DayOfWeek == (DayOfWeek)1)
                {
                    countFreeDays += 3;
                    expectedDay    = currentDay.AddDays(1);
                    previousDay    = currentDay;
                }

                else if (item.DayOfWeek == (DayOfWeek)5)
                {
                    countFreeDays += 3;
                    expectedDay    = currentDay.AddDays(3);
                    previousDay    = currentDay;
                }
            }

            if (countFreeDays > maxFreeDays)
            {
                maxFreeDays      = countFreeDays;
                rangesOfFreeDays = previousDay;
            }

            var result = $"{rangesOfFreeDays.ToString("MM/dd/yyyy")} - Number of free days: {maxFreeDays}";

            return(Ok(result));
        }