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 TimeAddMilliseconds() { TimeSpan time = stored.Add(TimeSpan.FromMilliseconds(-1)); #if !EFOLD var q = this.Entities .Where(x => DbFunctions.AddMilliseconds(x.Time, -1) == time); #else var q = this.Entities .Where(x => EntityFunctions.AddMilliseconds(x.Time, -1) == time); #endif q.Should().NotBeEmpty(); }
public void DateTimeAddMilliseconds() { DateTime date = stored.AddMilliseconds(-1); #if !EFOLD var q = this.Entities .Where(x => DbFunctions.AddMilliseconds(x.DateTime, -1) == date); #else var q = this.Entities .Where(x => EntityFunctions.AddMilliseconds(x.DateTime, -1) == date); #endif q.Should().NotBeEmpty(); }
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)); }
public void DateTimeOffsetAddMilliseconds() { DateTimeOffset offset = stored.AddMilliseconds(-1); #if !EFOLD var q = this.Entities .Where(x => DbFunctions.AddMilliseconds(x.Offset, -1) == offset); #else var q = this.Entities .Where(x => EntityFunctions.AddMilliseconds(x.Offset, -1) == offset); #endif q.Should().NotBeEmpty(); }
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 }); }
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())); }
public TablePullResult TichurAlgorithem(TichurInfo input) { using (TimchurDatabaseEntities ent = new TimchurDatabaseEntities()) { // Checking for duplicate tichurs Database.Tichurim check = ent.Tichurim.Where(x => x.TichurNumber == input.TichurNumber).FirstOrDefault(); if (ent.Tichurim.Where(x => x.TichurNumber == input.TichurNumber).Count() != 0 && check.UnitID == input.UnitID && check.StatusID == 1) { throw new DuplicateKeyException(check); } TablePullResult res = new TablePullResult(); int suppliersRemaining = 0; if (ent.Clusetrs.Where(x => x.ID == input.CluestrID).FirstOrDefault() != null) { suppliersRemaining = ent.Clusetrs.Where(x => x.ID == input.CluestrID).FirstOrDefault().SuppliersInTichur.Value; } var sortByUsagePre = (from sup in ent.Suppliers join supcluc in ent.SuppliersClusetrs on sup.ID equals supcluc.SupplierID where supcluc.ClusetrID == input.CluestrID && sup.StatusID == 1 orderby supcluc.LastTimeInList select new { Sup = sup, SupCl = supcluc }); var sortByUsage = sortByUsagePre.AsExpandable().GroupBy(x => DbFunctions.AddMilliseconds(x.SupCl.LastTimeInList, -x.SupCl.LastTimeInList.Value.Millisecond)).OrderBy(x => x.Key); //Date-grouped iterator var itr = sortByUsage.GetEnumerator(); itr.MoveNext(); var rnd = new Random(); while (suppliersRemaining > 0) { //oldest group of suppliers var dateGroup = itr.Current; //Need to pick a random subset of the suppliers if (dateGroup.Count() < suppliersRemaining) { var shuffled = dateGroup.OrderBy(i => rnd.Next()); // Going over the shuffled list until enough are extracted foreach (var supplier in shuffled) { res.table.Add(supplier.Sup.ID.ToString()); if (--suppliersRemaining == 0) { break; } } itr.MoveNext(); } else { //Need at least one entire dategroup - adding all suppliers in current set. foreach (var supplier in dateGroup) { res.table.Add(supplier.Sup.ID.ToString()); } suppliersRemaining -= dateGroup.Count(); itr.MoveNext(); } } return(res); } }
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_AddMilliseconds_DateTime_Test() { this.AssertException <NotSupportedException>(() => { this.GetOrderQuery().Select(x => DbFunctions.AddMilliseconds(this.TestDateTime, 1)).First(); }); }
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)); }