public CompanyDataAccessService(FleetManagementDbContext context) { this._context = context; this._config = new MapperConfiguration(cfg => { cfg.CreateMap <Company, Data.Models.Company>().ReverseMap(); }); this._mapper = new Mapper(this._config); }
public static async Task CalculateNextService(string serviceId, FleetManagementDbContext context) { var service = await context.Services.FirstOrDefaultAsync(s => s.Id == serviceId); if (service == null) { return; } // BasedOn == time if (service.BasedOn == 0) { var currentTime = await context.Database.SqlQuery <DateTime>("SELECT GETUTCDATE()").FirstOrDefaultAsync(); var newCreatedTime = new DateTimeOffset(new DateTime(currentTime.Year, currentTime.Month, currentTime.Day, currentTime.Hour, currentTime.Minute, currentTime.Second, DateTimeKind.Utc)); service.Created = newCreatedTime; service.NextServiceTime = CalculateNextServiceTime(service); service.NextServiceReminderTime = CalculateNextServiceReminderTime(service); } // BasedOn == mileage else { var mileage = await context.TelematicsDatas.FirstOrDefaultAsync(t => t.VIN == service.Vehicle.VIN); if (mileage != null) { service.NextServiceMileage = CalculateNextServiceMileage(service, mileage.Mileage); service.NextServiceReminderMileage = CalculateNextServiceReminderMileage(service, service.NextServiceMileage); } } await context.SaveChangesAsync(); }
public TelematicsDataAcessService(FleetManagementDbContext context) { _context = context; _config = new MapperConfiguration(cfg => { cfg.CreateMap <Models.TelematicsData, Data.Models.TelematicsData>().ReverseMap(); }); _mapper = new Mapper(_config); }
public async Task Execute(IJobExecutionContext context) { try { using (FleetManagementDbContext dbContext = new FleetManagementDbContext()) { var vehicles = await dbContext.Vehicles.ToListAsync(); foreach (var vehicle in vehicles) { var telematicsData = await dbContext.TelematicsDatas.FirstOrDefaultAsync(t => t.VIN == vehicle.VIN); TelematicsData newTelematicsData = new TelematicsData { VIN = vehicle.VIN, Mileage = TelematicsDataGenerator.GenerateNextMileageValue(telematicsData?.Mileage), FuelLevel = TelematicsDataGenerator.GenerateNextFuelLevelValue(telematicsData?.FuelLevel), CurrentSpeed = TelematicsDataGenerator.GenerateNextCurrentSpeedValue(telematicsData?.CurrentSpeed), WorkingTime = telematicsData?.WorkingTime != null ? telematicsData.WorkingTime += TimeSpan.FromMinutes(1) : new TimeSpan(0, 0, 1, 0), }; newTelematicsData.Idling = newTelematicsData.Idling.HasValue ? telematicsData?.CurrentSpeed == 0 ? telematicsData.Idling += TimeSpan.FromMinutes(3) : new TimeSpan(0, 0, 0, 0) : new TimeSpan(0, 0, 3, 0); if (telematicsData == null) { dbContext.TelematicsDatas.Add(newTelematicsData); } else { telematicsData.Mileage = newTelematicsData.Mileage; telematicsData.FuelLevel = newTelematicsData.FuelLevel; telematicsData.CurrentSpeed = newTelematicsData.CurrentSpeed; telematicsData.WorkingTime = newTelematicsData.WorkingTime; telematicsData.Idling = newTelematicsData.Idling; } await SeedTelematicsHistory.UpdateTelematicsHistory(newTelematicsData, dbContext); } await dbContext.SaveChangesAsync(); } } catch (Exception exception) { throw exception; } }
public DriverDataAccessService(FleetManagementDbContext context) { _context = context; _config = new MapperConfiguration(cfg => { cfg.CreateMap <Models.Company, Data.Models.Company>().ReverseMap(); cfg.CreateMap <Models.Driver, Data.Models.Driver>() .ForMember(x => x.Company, b => b.ResolveUsing(c => c.Company)).ReverseMap(); }); _mapper = new Mapper(_config); }
public ServiceDataAccessService(FleetManagementDbContext context) { this._context = context; this._config = new MapperConfiguration( cfg => { cfg.CreateMap <Service, Data.Models.Service>().ReverseMap(); cfg.CreateMap <Data.Models.Service, Service>().ReverseMap(); cfg.CreateMap <EditService, Data.Models.Service>().ReverseMap(); cfg.CreateMap <PostService, Data.Models.Service>().ReverseMap(); }); this._mapper = new Mapper(this._config); }
public VehicleDataAccessService(FleetManagementDbContext context) { this._context = context; this._config = new MapperConfiguration( cfg => { cfg.CreateMap <Company, Data.Models.Company>().ReverseMap(); cfg.CreateMap <Driver, Data.Models.Driver>().ReverseMap(); cfg.CreateMap <Vehicle, Data.Models.Vehicle>() .ForMember(v => v.Company, b => b.ResolveUsing(c => c.Company)) .ForMember(v => v.Driver, b => b.ResolveUsing(c => c.Driver)) .ReverseMap(); }); this._mapper = new Mapper(this._config); }
public async Task Execute(IJobExecutionContext context) { using (FleetManagementDbContext dbContext = new FleetManagementDbContext()) { var currentTime = await dbContext.Database.SqlQuery <DateTime>("SELECT GETUTCDATE()").FirstOrDefaultAsync(); var todaysDate = new DateTimeOffset(new DateTime(currentTime.Year, currentTime.Month, currentTime.Day, currentTime.Hour, currentTime.Minute, currentTime.Second, DateTimeKind.Utc)); var services = dbContext.Services.Where(s => (s.BasedOn == 0 && s.NextServiceReminderTime != null && DbFunctions.TruncateTime(s.NextServiceReminderTime) == DbFunctions.TruncateTime(todaysDate))).ToList(); foreach (var service in services.ToList()) { MailHelper.SendEmail(service.Recipient, "Reminder services", $"The service {service.Name} for vehicle {service.Vehicle.Brand} with plate number {service.Vehicle.PlateNumber} is following.").RunSynchronously(); } } }
public async Task Execute(IJobExecutionContext context) { using (FleetManagementDbContext dbContext = new FleetManagementDbContext()) { var vehiclesVIN = dbContext.Vehicles.Select(v => v.VIN).ToList(); foreach (var vehicleVIN in vehiclesVIN.ToList()) { var vehicleTelematics = await dbContext.TelematicsDatas.FirstOrDefaultAsync(t => t.VIN == vehicleVIN); var vehicle = await dbContext.Vehicles.FirstOrDefaultAsync(v => v.VIN == vehicleVIN); var services = dbContext.Services.Where(s => s.BasedOn == 1 && s.NextServiceReminderMileage != null && s.NextServiceReminderMileage <= vehicleTelematics.Mileage + 50 && s.NextServiceReminderMileage >= vehicleTelematics.Mileage - 50).ToList(); foreach (var service in services.ToList()) { MailHelper.SendEmail(service.Recipient, "Reminder for a following service", $"The service {service.Name} for vehicle {vehicle.Brand} with plate number {vehicle.PlateNumber} is following.").RunSynchronously(); } } } }
public static async Task UpdateTelematicsHistory(TelematicsData telematicsData, FleetManagementDbContext dbContext) { var newTelematicsDataHistory = new Data.Models.TelematicsDataHistory() { VIN = telematicsData.VIN, Mileage = telematicsData.Mileage, FuelLevel = telematicsData.FuelLevel, CurrentSpeed = telematicsData.CurrentSpeed, WorkingTime = telematicsData.WorkingTime, Idling = telematicsData.Idling, Modified = DateTimeOffset.Now.LocalDateTime, }; dbContext.TelematicsDataHistories.Add(newTelematicsDataHistory); }