public async Task <TripResDTO> CreateTrip(TripReqDTO tripDTO) { var tripExists = await ActiveTripForUserExists(tripDTO.UserId); if (tripExists) { throw new InvalidOperationException("There is already an active trip for user"); } var trip = new Trip() { IsFinished = false, StartTime = DateTime.Now, TramId = tripDTO.TramId, UserId = tripDTO.UserId, Length = 0f }; var tr = await _context.Trips.AddAsync(trip); await _context.SaveChangesAsync(); return(_mapper.Map <TripResDTO>(tr.Entity)); }
public async Task <TripResDTO> CreateTrip(TripReqDTO tripDTO) { var userId = Int32.Parse(_httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.NameIdentifier)?.Value); var tripExists = await ActiveTripForUserExists(userId); if (tripExists) { throw new InvalidOperationException("There is already an active trip for user"); } var trip = new Trip() { IsFinished = false, StartTime = DateTime.Now, TramId = tripDTO.TramId, UserId = userId, Length = 0f }; var tr = await _context.Trips.AddAsync(trip); await _context.SaveChangesAsync(); return(_mapper.Map <TripResDTO>(tr.Entity)); }
public async Task <City> AddCity(string name) { if (String.IsNullOrEmpty(name)) { throw new ArgumentNullException("No name provided"); } var city = await _context.Cities.AddAsync(new City() { Name = name }); await _context.SaveChangesAsync(); return(city.Entity); }
public void RenewTokens(object state) { var nextStartTime = DateTime.Now; for (int i = 0; i < numberOfTokensToGenerate; i++) { Random rand = new Random(Guid.NewGuid().GetHashCode()); var arraySize = Math.Ceiling((double)tokenLength / 2); byte[] tokenArray = new byte[(int)arraySize]; rand.NextBytes(tokenArray); if (tokenLength % 2 == 1) { tokenArray[0] = Convert.ToByte(tokenArray[0] & 0xF | (0 << 4)); // sets first half of byte to 0 } var tokenDurability = TimeSpan.FromMinutes(tokenDurabilityInMinutes); BeaconToken beaconToken = new BeaconToken(tokenArray, nextStartTime, nextStartTime + tokenDurability); _tramContext.Add(beaconToken); nextStartTime += tokenDurability + TimeSpan.FromMilliseconds(1); } _tramContext.SaveChangesAsync(); }