Beispiel #1
0
        public static List <T> Create <T>(List <ContactInfo> infos) where T : BCModelContact
        {
            var list            = new List <T>();
            var listId          = infos.Select(c => c.Id).Distinct().ToList();
            var listTdHistories =
                infos.Where(c => c.CallInfoConsultant.IsStringNullOrEmpty()).Select(c => c.Id).Distinct().ToList();
            var xs = new XmlSerializer(typeof(List <int>));
            var ms = new MemoryStream();

            xs.Serialize(ms, listId);
            var resultXML         = Encoding.UTF8.GetString(ms.ToArray());
            var phones            = PhoneRepository.GetByContacts_Xml(resultXML);
            var contactLevelInfos = ContactLevelInfoRepository.GetInfos_Xml(resultXML);

            xs = new XmlSerializer(typeof(List <int>));
            ms = new MemoryStream();
            xs.Serialize(ms, listTdHistories);
            resultXML = Encoding.UTF8.GetString(ms.ToArray());
            var callHistories = CallHistoryRepository.GetAllByContactId_Xml(resultXML);

            foreach (var info in infos)
            {
                var t = Create <T>(info, contactLevelInfos, phones, callHistories);
                list.Add(t);
            }
            return(list);
        }