private void GatewayOnBrokenSessionEvent() { logger.info("creating new session... TODO: destroy old session"); // creating new session id = Helpers.GenerateRandomUlong(); sequence = 0; gateway.Dispose(); gateway = new MTProtoGateway(MainDc, this, true, cachedSalt); gateway.UpdatesEvent += updates.ProcessUpdates; gateway.BrokenSessionEvent += GatewayOnBrokenSessionEvent; }