private void OnMetaDataExchangeReceived(IMetaDataShareModule sender, MetaDataAnswerReceivedArgs args) { OnLog?.Invoke(this, new OnLogHandlerArgs( $"Received MetaDataExchange with {args.MetaDataAnswer?.DomesticChanges.Changes.Count} domestic changes" + $" and changes from {args.MetaDataAnswer.AlienChanges.Count} other services", LogReason.RABBITMQ_COMMUNICATION)); var changes = new List <ChangeSet>(); if (args.MetaDataAnswer.AlienChanges != null) { changes.AddRange(args.MetaDataAnswer.AlienChanges); } if (args.MetaDataAnswer.DomesticChanges != null) { changes.Add(args.MetaDataAnswer.DomesticChanges); } foreach (var changeSet in changes) { var changeData = changeSet.Changes.OrderBy(c => c.TimeStamp).ToList(); lock (data) { fileManagerModule.ApplyChanges(changeData); data.AddSortedAlienChanges(changeSet.ServiceUID, changeData); SaveData(); } } }
private void SetUpMetaDataShareModule() { metaDataModule = new MetaDataShareModule(GetDomesticChangesSince, GetAlienChangesSince); metaDataModule.OnMetaDataExchangeReceived += OnMetaDataExchangeReceived; }