示例#1
0
        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());
        }
示例#2
0
        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();
                    }
                }
            }
        }