示例#1
0
        public void AddTimeReturnsTrueWhenTimeIsAddedCorrectlly()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            ApplicationDbContext dbContext = new ApplicationDbContext(options);

            TimesService timesService = new TimesService(dbContext);
            string       userId       = "id";
            SolveTime    solveTime    = new SolveTime()
            {
            };

            User user = new User()
            {
                Id = userId
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            bool result = timesService.AddTime(solveTime, userId);

            Assert.AreEqual(true, result);
        }
示例#2
0
        public void AddTimeReturnsFalseWhenUserDoesntExist()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            ApplicationDbContext dbContext = new ApplicationDbContext(options);

            TimesService timesService = new TimesService(dbContext);
            string       userId       = "id";
            SolveTime    solveTime    = new SolveTime()
            {
                Id = 1
            };

            User user = new User()
            {
                Id = userId
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            bool result = timesService.AddTime(solveTime, "randomId");

            Assert.AreEqual(false, result);
        }
示例#3
0
        public void AddTimeAddsTimeCorrectly()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString())
                          .Options;

            ApplicationDbContext dbContext = new ApplicationDbContext(options);

            TimesService timesService = new TimesService(dbContext);
            string       userId       = "id";
            SolveTime    solveTime    = new SolveTime()
            {
                Id = 1
            };

            User user = new User()
            {
                Id = userId
            };

            dbContext.Users.Add(user);
            dbContext.SaveChanges();

            timesService.AddTime(solveTime, userId);

            int userSolveTimesCount = dbContext.Users.FirstOrDefault(u => u.Id == userId).SolveTimes.Count;

            Assert.AreEqual(1, userSolveTimesCount);
        }
示例#4
0
 /// <summary>
 /// Reset simulation statistics.
 /// </summary>
 public override void Reset()
 {
     Iterations = 0;
     SolveTime.Reset();
     LoadTime.Reset();
     ReorderTime.Reset();
     DecompositionTime.Reset();
 }
示例#5
0
 /// <summary>
 /// Reset simulation statistics.
 /// </summary>
 public void Reset()
 {
     Iterations = 0;
     SolveTime.Reset();
     LoadTime.Reset();
     ReorderTime.Reset();
     FactoringTime.Reset();
 }
示例#6
0
 /// <summary>
 /// Clear all statistics.
 /// </summary>
 public void Clear()
 {
     Iterations = 0;
     SolveTime.Reset();
     LoadTime.Reset();
     TimePoints          = 0;
     TransientIterations = 0;
     TransientTime.Reset();
     TransientSolveTime = TimeSpan.Zero;
     Accepted           = 0;
     Rejected           = 0;
 }
示例#7
0
        public async Task <IActionResult> Create([Bind("Id,Result,Type,UserId,Date")] SolveTime solveTime)
        {
            if (ModelState.IsValid)
            {
                _context.Add(solveTime);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["UserId"] = new SelectList(_context.Users, "Id", "UserName", solveTime.UserId);
            return(View(solveTime));
        }
示例#8
0
        public bool AddTime(SolveTime time, string userId)
        {
            User user = this.Context
                        .Users
                        .FirstOrDefault(u => u.Id == userId);

            if (user == null || time == null)
            {
                return(false);
            }

            user.SolveTimes
            .Add(time);

            this.Context.SaveChanges();
            return(true);
        }
示例#9
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Type,Result,UserId,Date")] SolveTimeCreateViewModel solveTime)
        {
            if (id != solveTime.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    SolveTime result = new SolveTime()
                    {
                        Date   = solveTime.Date,
                        Id     = solveTime.Id,
                        Result = DateTime.ParseExact(solveTime.Result, "mm:ss:fff", CultureInfo.InvariantCulture),
                        Type   = solveTime.Type,
                        UserId = solveTime.UserId
                    };

                    _context.Update(result);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!SolveTimeExists(solveTime.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction("Index", "Records", new { area = "" }));
            }
            ViewData["UserId"] = new SelectList(_context.Users, "Id", "UserName", solveTime.UserId);
            return(View(solveTime));
        }
示例#10
0
 public int CompareTo(object obj)
 {
     return(SolveTime.CompareTo((obj as Statistic).SolveTime));
 }
示例#11
0
 public override string ToString()
 {
     return("Solved in " + SolveTime.ToString(@"h\:m\:s\.fff") + ((Info == "") ? "" : " - ") + Info);
 }
示例#12
0
 public override int GetHashCode()
 {
     return(SolveTime.GetHashCode() ^ Info.GetHashCode());
 }