private void FilterMaskedContacts(DocumentProcessingContext processingContext, IDictionary <string, IInferenceRecipient> contactList) { if (processingContext != null && processingContext.Session != null) { MdbMaskedPeopleModelDataBinder mdbMaskedPeopleModelDataBinder = MdbMaskedPeopleModelDataBinderFactory.Current.CreateInstance(processingContext.Session); MaskedPeopleModelItem modelData = mdbMaskedPeopleModelDataBinder.GetModelData(); if (modelData == null || modelData.ContactList.Count <= 0) { this.DiagnosticsSession.TraceDebug("Deleted items model is null or empty. Skipping removal step.", new object[0]); return; } IDictionary <string, MaskedRecipient> dictionary = modelData.CreateDictionary(); List <MaskedRecipient> list = new List <MaskedRecipient>(10); foreach (KeyValuePair <string, MaskedRecipient> keyValuePair in dictionary) { if (contactList.ContainsKey(keyValuePair.Key)) { if (contactList[keyValuePair.Key].LastSentTime > keyValuePair.Value.LastMaskedFromAutoCompleteTimeUtc) { list.Add(keyValuePair.Value); } else { contactList.Remove(keyValuePair.Key); } } } if (list.Count > 0) { foreach (MaskedRecipient item in list) { modelData.ContactList.Remove(item); } this.DiagnosticsSession.TraceDebug <int>("Removed {0} out-of-date contacts from the masked model item", list.Count); MdbModelUtils.WriteModelItem <MaskedPeopleModelItem, MdbMaskedPeopleModelDataBinder>(mdbMaskedPeopleModelDataBinder, modelData); return; } } else { this.DiagnosticsSession.TraceDebug("Context or Session is null. Skipping removal step.", new object[0]); } }
protected override PeopleModelItem GetModelItem(MdbPeopleModelDataBinder dataBinder) { return(MdbModelUtils.GetModelItem <PeopleModelItem, MdbPeopleModelDataBinder>(dataBinder)); }
protected override void WriteModelItem(MdbPeopleModelDataBinder dataBinder, PeopleModelItem modelItem) { MdbModelUtils.WriteModelItem <PeopleModelItem, MdbPeopleModelDataBinder>(dataBinder, modelItem); }