Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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();
        }