// 注入数据库上下文 public void Clear(RecordDbContext context) { _logger.LogDebug("Invoke the AutoClearJob"); // 查询未签退列表 var unsignOutList = (from r in context.Records where r.SignOutTime == null select r).ToList(); // 对未签退的人进行处理 foreach (var record in unsignOutList) { if (record.IsTimeOut()) { record.SignOutWithTimeOut(); } else { record.SignOut(); } } // 写入数据库 try { context.UpdateRange(unsignOutList); context.SaveChanges(); } catch (Exception e) { _logger.LogError(e.Message); } }
public IEnumerable <Record> GetRecordsByRequestNumber(Guid requestNumber) { using (var db = new RecordDbContext()) { var records = (from record in db.Records where record.RequestNumber.Equals(requestNumber) select record); return(records.ToList()); } }
public IEnumerable <Record> Get() { using (var db = new RecordDbContext()) { var records = (from record in db.Records select record); return(records.ToList()); } }
public Guid Save(Record record) { using (var db = new RecordDbContext()) { var requestNumber = new Guid(); record.RequestNumber = requestNumber; db.Records.Add(record); db.SaveChanges(); return(requestNumber); } }
public static void RecordTime(string process) { using (var dbContext = new RecordDbContext()) { dbContext.TimeRecords.Add( new timeRecord() { Time = DateTime.Now.ToString(), Process = process } ); dbContext.SaveChanges(); } }
public Guid Save(IEnumerable <Record> recordList) { using (var db = new RecordDbContext()) { var requestNumber = Guid.NewGuid(); foreach (var record in recordList) { record.RequestNumber = requestNumber; } db.Records.AddRange(recordList); db.SaveChanges(); return(requestNumber); } }
protected override ValidationResult IsValid(object value, ValidationContext validationContext) { // 获得学号 string studentId = value as string; // 获取数据库上下文 RecordDbContext dbContext = (RecordDbContext)validationContext.GetService(typeof(RecordDbContext)); // 确认签到状态 bool state = (from r in dbContext.Records.AsNoTracking() where r.SignOutTime == null && r.StudentId == studentId select r).Count() > 0; // 判断状态 return(_requriedState == state ? ValidationResult.Success : new ValidationResult(FormatErrorMessage(""))); }
/// <summary> /// 确保数据库迁移完成 /// </summary> /// <param name="serviceProvider"></param> public static void EnsureMigrate(IServiceProvider serviceProvider) { Console.WriteLine("Migrating database..."); using (var scope = serviceProvider.GetRequiredService <IServiceScopeFactory>().CreateScope()) { RecordDbContext context = scope.ServiceProvider.GetRequiredService <RecordDbContext>(); bool retry = true; int count = 0; int maxRetry = 5; do { Thread.Sleep(1000); Console.WriteLine("Stop 1s, wait database start..."); try { context.Database.EnsureCreated(); retry = false; } catch (Exception) { Console.WriteLine($"Connect Failed...Retry {count}"); count++; if (count > maxRetry) { Console.WriteLine("Try too many times"); throw; } } } while (retry); } Console.WriteLine("Done migrating database."); Console.WriteLine(); }
public CreateStudentScoreCommandHandler(IBusPublisher busPublisher, ILogger <CreateStudentScoreCommandHandler> logger, RecordDbContext db) => (_busPublisher, _logger, _db) = (busPublisher, logger, db);
public BrowseStudentScoresQueryHandler(RecordDbContext db, IMapper mapper) => (_db, _mapper) = (db, mapper);
public GetRuleQueryHandler(RecordDbContext db, IMapper mapper) => (_db, _mapper) = (db, mapper);
public GetClassReportQueryHandler(RecordDbContext db) => (_db) = (db);
public GetStudentScoreQueryHandler(RecordDbContext db, IMapper mapper) => (_db, _mapper) = (db, mapper);
static async Task Main(string[] args) { const string endpointName = "WeightMonitor.Tracking"; Console.Title = endpointName; var endpointConfiguration = new EndpointConfiguration(endpointName); endpointConfiguration.EnableInstallers(); //if in development endpointConfiguration.PurgeOnStartup(true); var containerSettings = endpointConfiguration.UseContainer(new DefaultServiceProviderFactory()); containerSettings.ServiceCollection.AddScoped(typeof(ITrackingService), typeof(Services.TrackingService)); containerSettings.ServiceCollection.AddScoped(typeof(ITrackingRepository), typeof(TrackingRepository)); containerSettings.ServiceCollection.AddAutoMapper(typeof(Program)); using (var recordDbContext = new RecordDbContext(new DbContextOptionsBuilder <RecordDbContext>() .UseSqlServer(new SqlConnection((ConfigurationManager.ConnectionStrings["weightMonitorTrackingDBConnectionString"].ToString()))) .Options)) { await recordDbContext.Database.EnsureCreatedAsync().ConfigureAwait(false); } /* containerSettings.ServiceCollection.AddDbContext<RecordDbContext> * (options => options * .UseSqlServer(ConfigurationManager.ConnectionStrings["weightMonitorTrackingDBConnectionString"].ToString()));*/ /* endpointConfiguration.AuditSagaStateChanges( * serviceControlQueue: "Particular.Servicecontrol");*/ var appSettings = ConfigurationManager.AppSettings; var auditQueue = appSettings.Get("AuditQueue"); var serviceControlQueue = appSettings.Get("ServiceControlQueue"); var timeToBeReceivedSetting = appSettings.Get("timeToBeReceived"); var timeToBeReceived = TimeSpan.Parse(timeToBeReceivedSetting); endpointConfiguration.AuditProcessedMessagesTo( auditQueue: auditQueue, timeToBeReceived: timeToBeReceived); var persistence = endpointConfiguration.UsePersistence <SqlPersistence>(); var persistenceConnection = ConfigurationManager.ConnectionStrings["persistenceConnection"].ToString(); var transportConnection = ConfigurationManager.ConnectionStrings["transportConnection"].ToString(); persistence.SqlDialect <SqlDialect.MsSqlServer>(); persistence.ConnectionBuilder( connectionBuilder: () => { return(new SqlConnection(persistenceConnection)); }); var outboxSettings = endpointConfiguration.EnableOutbox(); outboxSettings.KeepDeduplicationDataFor(TimeSpan.FromDays(6)); outboxSettings.RunDeduplicationDataCleanupEvery(TimeSpan.FromMinutes(15)); var subscriptions = persistence.SubscriptionSettings(); subscriptions.CacheFor(TimeSpan.FromMinutes(10)); var recoverability = endpointConfiguration.Recoverability(); recoverability.Delayed( customizations: delayed => { delayed.NumberOfRetries(0); delayed.TimeIncrease(TimeSpan.FromMinutes(3)); }); recoverability.Immediate( customizations: delayed => { delayed.NumberOfRetries(1); }); var transport = endpointConfiguration.UseTransport <RabbitMQTransport>(); transport.UseConventionalRoutingTopology() .ConnectionString(transportConnection); var routing = transport.Routing(); var conventions = endpointConfiguration.Conventions(); conventions.DefiningCommandsAs(type => type.Namespace == "Messages.Commands"); conventions.DefiningEventsAs(type => type.Namespace == "Messages.Events"); conventions.DefiningMessagesAs(type => type.Namespace == "Messages.Messages"); endpointConfiguration.RegisterComponents(c => { c.ConfigureComponent(b => { var session = b.Build <ISqlStorageSession>(); var context = new RecordDbContext(new DbContextOptionsBuilder <RecordDbContext>() .UseSqlServer(session.Connection) .Options); //Use the same underlying ADO.NET transaction context.Database.UseTransaction(session.Transaction); //Ensure context is flushed before the transaction is committed session.OnSaveChanges(s => context.SaveChangesAsync()); return(context); }, DependencyLifecycle.InstancePerUnitOfWork); }); var endpointInstance = await Endpoint.Start(endpointConfiguration) .ConfigureAwait(false); Console.WriteLine("Press Enter to exit."); Console.ReadLine(); await endpointInstance.Stop() .ConfigureAwait(false); }
public HomeController(ILogger <HomeController> logger, RecordDbContext _recordDbContext) { _logger = logger; this.recordDbContext = _recordDbContext; }
public BrowseRulesQueryHandler(RecordDbContext db, IMapper mapper) => (_db, _mapper) = (db, mapper);
public AddTrackingRecordHandler(RecordDbContext recordDbContext) { _recordDbContext = recordDbContext; }
public RecordController(RecordDbContext context) { _context = context; }
public UpdateRuleCommandHandler(IBusPublisher busPublisher, ILogger <UpdateRuleCommandHandler> logger, RecordDbContext db) => (_busPublisher, _logger, _db) = (busPublisher, logger, db);
public RecordController( RecordDbContext context, ILogger <RecordController> logger) { _context = context; _logger = logger; }