public static async void Start(this ReservationComponent self) { var proxy = Game.Scene.GetComponent <CacheProxyComponent>(); self.MemorySync = proxy.GetMemorySyncSolver <Reservation>(); self.MemorySync.onCreate += self.OnCreated; self.MemorySync.onWillDelete += self.OnWillDeleted; var reservations = await ReservationDataHelper.GetAll(); for (int i = 0; i < reservations.Count; i++) { if (reservations[i].allData == null) { await ReservationDataHelper.Remove(reservations[i].uid); continue; } // 解析預約 ReservationAllData allData = new ReservationAllData(); CodedInputStream codedInputStream = new CodedInputStream(reservations[i].allData.Bytes); allData.MergeFrom(codedInputStream); // 判斷是否過期 if (DateTime.UtcNow.Ticks > allData.AwakeUTCTimeTick) { await ReservationDataHelper.Remove(reservations[i].uid); continue; } // 實體化預約 await self.CreateReservation(allData); } }
public override async void Destroy(Reservation self) { //刪除DB await ReservationDataHelper.Remove(self.allData.ReservationId); }