public void DateFunctions()
        {
            using (var context = new BloggingContext(ConnectionString))
            {
                IQueryable <int> oneRow = context.Posts.Where(p => false).Select(p => 1).Concat(new int[] { 1 });

                var dateAdds = oneRow.Select(p => new List <DateTime?>
                {
                    DbFunctions.AddDays(new DateTime(2014, 2, 28), 1),
                    DbFunctions.AddHours(new DateTime(2014, 2, 28, 23, 0, 0), 1),
                    DbFunctions.AddMinutes(new DateTime(2014, 2, 28, 23, 59, 0), 1),
                    DbFunctions.AddSeconds(new DateTime(2014, 2, 28, 23, 59, 59), 1),
                    DbFunctions.AddMilliseconds(new DateTime(2014, 2, 28, 23, 59, 59, 999), 2 - p),
                    DbFunctions.AddMicroseconds(DbFunctions.AddMicroseconds(new DateTime(2014, 2, 28, 23, 59, 59, 999), 500), 500),
                    DbFunctions.AddNanoseconds(new DateTime(2014, 2, 28, 23, 59, 59, 999), 999999 + p),
                    DbFunctions.AddMonths(new DateTime(2014, 2, 1), 1),
                    DbFunctions.AddYears(new DateTime(2013, 3, 1), 1)
                }).First();
                foreach (var result in dateAdds)
                {
                    Assert.IsTrue(result.Value == new DateTime(2014, 3, 1, 0, 0, 0));
                }

                var dateDiffs = oneRow.Select(p => new {
                    a = DbFunctions.DiffDays(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)),
                    b = DbFunctions.DiffHours(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)),
                    c = DbFunctions.DiffMinutes(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)),
                    d = DbFunctions.DiffSeconds(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)),
                    e = DbFunctions.DiffMilliseconds(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)),
                    f = DbFunctions.DiffMicroseconds(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)),
                    g = DbFunctions.DiffNanoseconds(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(2000, 1, 1, 0, 0, 0)),
                    h = DbFunctions.DiffMonths(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(3000, 1, 1, 0, 0, 0)),
                    i = DbFunctions.DiffYears(new DateTime(1999, 12, 31, 23, 59, 59, 999), new DateTime(3000, 1, 1, 0, 0, 0)),
                    j = DbFunctions.DiffYears(null, new DateTime(2000, 1, 1)),
                    k = DbFunctions.DiffMinutes(new TimeSpan(1, 2, 3), new TimeSpan(4, 5, 6)),
                    l = DbFunctions.DiffMinutes(new TimeSpan(1, 2, 3), null)
                }).First();
                Assert.AreEqual(dateDiffs.a, 1);
                Assert.AreEqual(dateDiffs.b, 1);
                Assert.AreEqual(dateDiffs.c, 1);
                Assert.AreEqual(dateDiffs.d, 1);
                Assert.AreEqual(dateDiffs.e, 1);
                Assert.AreEqual(dateDiffs.f, 1000);
                Assert.AreEqual(dateDiffs.g, 1000000);
                Assert.AreEqual(dateDiffs.h, 12001);
                Assert.AreEqual(dateDiffs.i, 1001);
                Assert.AreEqual(dateDiffs.j, null);
                Assert.AreEqual(dateDiffs.k, 183);
                Assert.AreEqual(dateDiffs.l, null);
            }
        }
        public void TimeDiffMilliseconds()
        {
            TimeSpan time = stored.Add(TimeSpan.FromMilliseconds(-1));

#if !EFOLD
            var q = this.Entities
                    .Where(x =>
                           DbFunctions.DiffMilliseconds(time, x.Time) == 1);
#else
            var q = this.Entities
                    .Where(x =>
                           EntityFunctions.DiffMilliseconds(time, x.Time) == 1);
#endif

            q.Should().NotBeEmpty();
        }
        public void DateTimeDiffMilliseconds()
        {
            DateTime date = stored.AddMilliseconds(-1);

#if !EFOLD
            var q = this.Entities
                    .Where(x =>
                           DbFunctions.DiffMilliseconds(date, x.DateTime) == 1);
#else
            var q = this.Entities
                    .Where(x =>
                           EntityFunctions.DiffMilliseconds(date, x.DateTime) == 1);
#endif

            q.Should().NotBeEmpty();
        }
Esempio n. 4
0
        private IndexSobeViewModel GetIndexViewModel()
        {
            var sobe     = db.Sobe.Include(s => s.Admin).Include(s => s.Sport).Include(s => s.Igraci).Include(s => s.Teren);
            var kvartovi = db.Kvartovi.Include(s => s.Tereni);
            var sportovi = db.Sportovi;

            var d = DateTime.Now.AddDays(-1);

            sobe = sobe.Where(s => DbFunctions.AddMilliseconds(s.Pocetak, DbFunctions.DiffMilliseconds(TimeSpan.Zero, s.Trajanje)) > d);

            return(new IndexSobeViewModel()
            {
                Sobe = sobe,
                Kvartovi = kvartovi,
                Sportovi = sportovi
            });
        }
Esempio n. 5
0
        public ActionResult FilterSobe(DateTime?TimeFrom, DateTime?TimeTo, long?SportId, long?TerenId, long?KvartId)
        {
            var sobe = db.Sobe.Include(s => s.Igraci).Include(s => s.Admin).Include(s => s.Teren);

            var sobeAll = db.Sobe.Include(s => s.Igraci).Include(s => s.Admin).Include(s => s.Teren);

            var d = DateTime.Now.AddDays(-1);

            sobe = sobe.Where(s => DbFunctions.AddMilliseconds(s.Pocetak, DbFunctions.DiffMilliseconds(TimeSpan.Zero, s.Trajanje)) > d);
            if (TimeFrom.HasValue)
            {
                sobe = sobeAll.Where(s => s.Pocetak >= TimeFrom);
            }
            if (TimeTo.HasValue)
            {
                sobe = sobeAll.Where(s => s.Pocetak <= TimeTo);
            }
            if (SportId.HasValue)
            {
                sobe = sobe.Where(s => s.SportId == SportId);
            }
            if (TerenId.HasValue)
            {
                sobe = sobe.Where(s => s.TerenId == TerenId);
            }
            if (KvartId.HasValue)
            {
                sobe = sobe.Where(s => s.Teren.KvartId == KvartId);
            }

            var korisnikId = User.Identity.GetUserId();

            Session["loggedUser"] = db.Korisnici.FirstOrDefault(k => k.Id == korisnikId);

            return(PartialView("_SobaTablePartial", sobe.ToList()));
        }
        private void OnTimerTick(object state)
        {
            try
            {
                var awaitingOrders = _unitOfWork.GetWhere <ReservationOrder>(resO => resO.Status == ReservationOrderStatus.Created && DbFunctions.DiffMilliseconds(resO.ReservationTime, DateTime.Now) < ReservationInterval).ToList();
                if (!awaitingOrders.Any())
                {
                    return;
                }

                foreach (var awaitingOrder in awaitingOrders)
                {
                    var menuItems =
                        _unitOfWork.GetWhere <ReservationMenuItemQuantity>(miq => miq.ReservationOrder.Id == awaitingOrder.Id).ToList();

                    foreach (var menuItem in menuItems)
                    {
                        _unitOfWork.Load(menuItem, mi => mi.Item);
                    }

                    _unitOfWork.Load(awaitingOrder, o => o.Table);

                    _eventBus.PublishEvent(new ReservationOrderScheduled()
                    {
                        UnlockCode = awaitingOrder.UnlockCode,
                        MenuItems  = menuItems,
                        TableLogin = awaitingOrder.Table.Title
                    });

                    awaitingOrder.Status = ReservationOrderStatus.Finished;

                    _unitOfWork.Commit();
                }

                //_eventBus.PublishEvent(new ReservationOrderScheduled()
                //{
                //	UnlockCode = "123",
                //	Order = new Order()
                //	{
                //		Table = new Table()
                //		{
                //			Title = "table"
                //		}
                //	}
                //});
            }
            catch (Exception ex)
            {
                _logger.Fatal("Scheduling reservation order failed. Exception {0}. Message {1}. Stacktrace {2}", ex.GetType().FullName, ex.Message, ex.StackTrace);
                _unitOfWork.Revert();

                throw;
            }

            _eventBus.HandleEvents();
        }
Esempio n. 7
0
        public IHttpActionResult ActiveSessions()
        {
            var timeNow = _timeProvider.CurrentTime;

            var activeSessions = _database.Sessions
                                 .Where(s => (timeNow.CompareTo(s.StartTime) >= 0) &&
                                        (timeNow.CompareTo((DateTime)DbFunctions.AddMilliseconds(s.StartTime, DbFunctions.DiffMilliseconds(TimeSpan.Zero, s.Length))) <= 0))
                                 .AsDbQuery()
                                 .Include(s => s.Project)
                                 .ToList();

            var sessionInfoList = activeSessions.Select(Mapper.Map <SessionInfo>)
                                  .ToList();

            return(Ok(sessionInfoList));
        }
Esempio n. 8
0
        public static List <AllRuns> GetCompletedTestRuns(DateTime?toDate, DateTime?fromDate, bool isAdmin)
        {
            List <AllRuns> configTestRuns = null;

            using (PnPTestAutomationEntities dc = new PnPTestAutomationEntities())
            {
                var configDetails = from configset in dc.TestConfigurationSets
                                    select new
                {
                    configset.Id,
                    configset.Name,
                    configset.Type,
                    configset.AnonymousAccess,
                    configset.TestCategory_Id,
                    configset.TestAuthentication_Id,
                    configset.Branch
                };

                if (!isAdmin)
                {
                    configDetails = configDetails.Where(c => c.AnonymousAccess == true);
                }

                var testResults = (from configset in configDetails
                                   join categorySet in dc.TestCategorySets on configset.TestCategory_Id equals categorySet.Id
                                   join authenticationset in dc.TestAuthenticationSets on configset.TestAuthentication_Id equals authenticationset.Id
                                   join testrunsets in dc.TestRunSets on configset.Id equals testrunsets.TestConfigurationId
                                   //where testrunsets.TestDate >= fromDate && testrunsets.Status >= 2
                                   where DbFunctions.AddMilliseconds(testrunsets.TestDate, (DbFunctions.DiffMilliseconds(TimeSpan.Zero, testrunsets.TestTime) ?? 0)) >= fromDate &&
                                   DbFunctions.AddMilliseconds(testrunsets.TestDate, (DbFunctions.DiffMilliseconds(TimeSpan.Zero, testrunsets.TestTime) ?? 0)) < toDate &&
                                   testrunsets.Status >= 2
                                   select new
                {
                    Status = testrunsets.Status,
                    Testdate = testrunsets.TestDate,
                    TestDuration = testrunsets.TestTime,
                    Passed = testrunsets.TestsPassed,
                    Skipped = testrunsets.TestsSkipped,
                    Failed = testrunsets.TestsFailed,
                    Log = (testrunsets.MSBuildLog != null ? true : false),
                    TestRunSetId = testrunsets.Id,
                    CId = testrunsets.TestConfigurationId,
                    cName = configset.Name,
                    CategoryName = categorySet.Name,
                    appOnly = authenticationset.AppOnly,
                    cType = configset.Type,
                    GithubBranch = configset.Branch
                }).OrderByDescending(t => t.Testdate).ToList();

                configTestRuns = (from testrunsets in testResults
                                  select new AllRuns
                {
                    Status = testrunsets.Status,
                    ConfiguratioName = testrunsets.cName,
                    GithubBranch = testrunsets.GithubBranch,
                    CategoryName = testrunsets.CategoryName,
                    AppOnly = Enum.GetName(typeof(AppOnly), testrunsets.appOnly),
                    Environment = Enum.GetName(typeof(EnvironmentType), testrunsets.cType),
                    Testdate = testrunsets.Testdate,
                    TestDuration = Convert.ToString(testrunsets.TestDuration),
                    Passed = (testrunsets.Passed != null ? testrunsets.Passed : 0),
                    Skipped = (testrunsets.Skipped != null ? testrunsets.Skipped : 0),
                    Failed = (testrunsets.Failed != null ? testrunsets.Failed : 0),
                    Log = testrunsets.Log,
                    TestRunSetId = testrunsets.TestRunSetId,
                    Tests = ((testrunsets.Passed != null ? testrunsets.Passed : 0)
                             + (testrunsets.Skipped != null ? testrunsets.Skipped : 0)
                             + (testrunsets.Failed != null ? testrunsets.Failed : 0))
                }).OrderByDescending(d => d.Testdate.Date).ThenByDescending(t => t.Testdate.TimeOfDay).ToList();
            }

            return(configTestRuns);
        }
 public void DbFunctionsTests_DiffMilliseconds_DateTime_Test()
 {
     this.AssertException <NotSupportedException>(() => {
         this.GetOrderQuery().Select(x => DbFunctions.DiffMilliseconds(this.TestDateTime, this.TestDateTime)).First();
     });
 }
Esempio n. 10
0
 public Task <Job> GetNextJob()
 {
     return(_db.Jobs.Include(p => p.Server).AsNoTracking()
            .Where(p => DbFunctions.AddMilliseconds(p.Start, DbFunctions.DiffMilliseconds(TimeSpan.Zero, p.Duration)) >= DateTime.UtcNow)
            .OrderBy(p => p.Start).ThenBy(p => p.TasksCount).FirstOrDefaultAsync(p => p.TasksCount < p.MaxTasksCount));
 }