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);
            }
        }
Пример #2
0
        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();
        }
Пример #4
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));
        }
Пример #5
0
        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();
        }
Пример #6
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
            });
        }
Пример #7
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()));
        }
Пример #8
0
        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);
            }
        }
Пример #9
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_AddMilliseconds_DateTime_Test()
 {
     this.AssertException <NotSupportedException>(() => {
         this.GetOrderQuery().Select(x => DbFunctions.AddMilliseconds(this.TestDateTime, 1)).First();
     });
 }
Пример #11
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));
 }