public BatteryRepositoryIntegrationTests()
        {
            var dbOptions = new DbContextOptionsBuilder <FlightLogContext>()
                            .UseSqlServer(_connectionString)
                            .Options;

            _dbContext  = new FlightLogContext(dbOptions);
            _repository = new BatteryRepository(_dbContext);
        }
예제 #2
0
        /// <summary>
        /// Optionaly you can use the static directly
        /// </summary>
        /// <param name="options"></param>
        /// <param name="useLocalDatabaseCache"></param>
        /// <returns></returns>
        public static List <Flight> GetFlights(Options options, bool useLocalDatabaseCache = true)
        {
            if (!useLocalDatabaseCache)
            {
                return(GetLiveFlights(options));
            }

            if (options.Date == DateTime.Now.Date)
            {
                return(GetLiveFlights(options)); //GetChangeTrackedFlights(options, GetLiveFlights(options));
            }
            using (var db = new FlightLogContext())
            {
                var datasetIdentifier = options.GetDatasetIdentifier();
                var flights           = db.Logbook.Where(f => f.dataset == datasetIdentifier);
                if (flights.Any())
                {
                    if (flights.Any(ZeroFlightDayMarker))
                    {
                        return(new List <Flight>());
                    }

                    return(flights.ToList());
                }

                var result = GetLiveFlights(options);
                if (!result.Any())
                {
                    result.Add(ZeroFlightDayMarker(options));
                }

                db.Logbook.AddRange(result);
                db.SaveChanges();
                return(result);
            }
        }
예제 #3
0
        /// <summary>
        /// Optionaly you can use the static directly 
        /// </summary>
        /// <param name="options"></param>
        /// <param name="useLocalDatabaseCache"></param>
        /// <returns></returns>
        public static List<Flight> GetFlights(Options options, bool useLocalDatabaseCache = true)
        {
            if (!useLocalDatabaseCache)
                return GetLiveFlights(options);

            if (options.Date == DateTime.Now.Date)
                return GetLiveFlights(options); //GetChangeTrackedFlights(options, GetLiveFlights(options));

            using (var db = new FlightLogContext())
            {
                var datasetIdentifier = options.GetDatasetIdentifier();
                var flights = db.Flights.Where(f => f.dataset == datasetIdentifier);
                if (flights.Any())
                {
                    if (flights.Any(ZeroFlightDayMarker)) 
                        return new List<Flight>();

                    return flights.ToList();
                }

                var result = GetLiveFlights(options);
                if (!result.Any())
                {
                    result.Add(ZeroFlightDayMarker(options));
                }

                db.Flights.AddRange(result);
                db.SaveChanges();
                return result;
            }
        }