public Dialogs(TelegramSession session) { this.session = session; model = new DialogListModel(session); session.Updates.NewMessageEvent += delegate(Message message) { Deployment.Current.Dispatcher.BeginInvoke(() => model.ProcessNewMessage(message)); }; }
private void Read(BinaryReader reader) { logger.info("loading dialogs"); int stateExists = reader.ReadInt32(); if(stateExists != 0) { logger.info("dialog model found"); model = new DialogListModel(session, reader); } else { logger.info("dialogs model not found"); model = null; } }
public async Task DialogsRequest() { // call it only on login! DialogListModel newState = new DialogListModel(session); int offset = 0; while(true) { logger.info("request dialogs with offset {0}", offset); messages_Dialogs dialogsPart = await session.Api.messages_getDialogs(offset, 0, 100); offset += newState.ProcessDialogs(dialogsPart); if(dialogsPart.Constructor == Constructor.messages_dialogs) { break; } } //model.Replace(newState); model = newState; }