public static ContactManualInstance[] GetManualContactInstances(ICollection <ContactDTO> contacts) { IList <ContactManualInstance> contactInstances = new List <ContactManualInstance>(); IList <ContactDTO> manualContacts = contacts.Where(x => x.Type == ContactDTO.ContactType.Manual).ToList(); foreach (ContactDTO manualContact in manualContacts) { ContactManualInstance instance = new ContactManualInstance(); manualContact.IdManualContact = null; manualContact.Contact = manualContact.Contact.Duplicate(); manualContact.Contact.UniqueId = Guid.Empty; instance.ContactDescription = JsonConvert.SerializeObject(manualContact, new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Serialize }); contactInstances.Add(instance); } return(contactInstances.ToArray()); }
private void FillContacts(UDSEntityDto entityDto, UDSModel model) { if (model.Model.Contacts.IsNullOrEmpty()) { return; } ICollection <WebAPIDto <UDSContact> > result = WebAPIImpersonatorFacade.ImpersonateFinder(UDSContactFinder, (impersonationType, finder) => { finder.ResetDecoration(); finder.IdUDS = entityDto.Id; finder.EnablePaging = false; finder.ExpandRelation = true; return(finder.DoSearch()); }); if (result == null || !result.Select(s => s.Entity).Any()) { return; } entityDto.Contacts = result.Select(s => s.Entity).Select(s => new UDSEntityContactDto() { ContactManual = s.ContactManual, ContactType = (Helpers.UDS.UDSContactType)s.ContactType, IdContact = s.Relation?.EntityId, UDSContactId = s.UniqueId, Label = s.ContactLabel }).ToList(); foreach (Contacts modelContacts in model.Model.Contacts) { IList <UDSEntityContactDto> contacts = entityDto.Contacts.Where(x => x.Label.Eq(modelContacts.Label)).ToList(); if (contacts == null || !contacts.Any()) { continue; } foreach (UDSEntityContactDto contact in contacts) { if (contact.ContactType == Helpers.UDS.UDSContactType.Contact) { if (contact.IdContact.HasValue) { ContactInstance newInstance = new ContactInstance() { IdContact = contact.IdContact.Value }; modelContacts.ContactInstances = (modelContacts.ContactInstances ?? Enumerable.Empty <ContactInstance>()).Concat(new ContactInstance[] { newInstance }).ToArray(); } } else { ContactManualInstance newManualInstance = new ContactManualInstance() { ContactDescription = contact.ContactManual }; modelContacts.ContactManualInstances = (modelContacts.ContactManualInstances ?? Enumerable.Empty <ContactManualInstance>()).Concat(new ContactManualInstance[] { newManualInstance }).ToArray(); } } } }