コード例 #1
0
        private CasesWrapper ToCasesWrapper(Cases cases)
        {
            var casesWrapper = new CasesWrapper(cases)
            {
                CustomFields = DaoFactory
                               .CustomFieldDao
                               .GetEnityFields(EntityType.Case, cases.ID, false)
                               .ConvertAll(item => new CustomFieldBaseWrapper(item))
                               .ToSmartList(),
                Members = new List <ContactBaseWrapper>()
            };

            var memberIDs   = DaoFactory.CasesDao.GetMembers(cases.ID);
            var membersList = DaoFactory.ContactDao.GetContacts(memberIDs);

            var membersWrapperList = new List <ContactBaseWrapper>();

            foreach (var member in membersList)
            {
                if (member == null)
                {
                    continue;
                }
                membersWrapperList.Add(ToContactBaseWrapper(member));
            }

            casesWrapper.Members = membersWrapperList;
            return(casesWrapper);
        }
コード例 #2
0
 private Cases FromCasesWrapper(CasesWrapper casesWrapper)
 {
     return(new Cases
     {
         Title = casesWrapper.Title,
         IsClosed = casesWrapper.IsClosed,
         CreateOn = casesWrapper.Created,
         CreateBy = casesWrapper.CreateBy.Id
     });
 }
コード例 #3
0
        private IEnumerable <CasesWrapper> ToListCasesWrappers(ICollection <Cases> items)
        {
            if (items == null || items.Count == 0)
            {
                return(new List <CasesWrapper>());
            }

            var result = new List <CasesWrapper>();


            var contactIDs = new List <int>();

            var casesIDs = items.Select(item => item.ID).ToArray();

            var customFields = DaoFactory.GetCustomFieldDao().GetEnityFields(EntityType.Case, casesIDs)
                               .GroupBy(item => item.EntityID)
                               .ToDictionary(item => item.Key, item => item.Select(x => ToCustomFieldBaseWrapper(x)));

            var casesMembers = DaoFactory.GetCasesDao().GetMembers(casesIDs);

            foreach (var value in casesMembers.Values)
            {
                contactIDs.AddRange(value);
            }

            var contacts = DaoFactory.GetContactDao().GetContacts(contactIDs.Distinct().ToArray())
                           .ToDictionary(item => item.ID, item => ToContactBaseWrapper(item));

            foreach (var cases in items)
            {
                var casesWrapper = new CasesWrapper(cases);

                if (customFields.ContainsKey(cases.ID))
                {
                    casesWrapper.CustomFields = customFields[cases.ID];
                }
                else
                {
                    casesWrapper.CustomFields = new List <CustomFieldBaseWrapper>();
                }

                if (casesMembers.ContainsKey(cases.ID))
                {
                    casesWrapper.Members = casesMembers[cases.ID].Where(contacts.ContainsKey).Select(item => contacts[item]);
                }
                else
                {
                    casesWrapper.Members = new List <ContactBaseWrapper>();
                }

                result.Add(casesWrapper);
            }

            return(result);
        }
コード例 #4
0
        private CasesWrapper ToCasesWrapper(Cases cases)
        {
            var casesWrapper = new CasesWrapper(cases);

            casesWrapper.CustomFields = DaoFactory.GetCustomFieldDao()
                                        .GetEnityFields(EntityType.Case, cases.ID, false)
                                        .ConvertAll(item => new CustomFieldWrapper(item)).ToSmartList();

            casesWrapper.Members = new List <ContactBaseWrapper>();

            var memberIDs = DaoFactory.GetCasesDao().GetMembers(cases.ID);

            var membersList = new List <ContactBaseWrapper>();

            foreach (var contactID in memberIDs)
            {
                if (contactID == 0)
                {
                    continue;
                }

                var contact = DaoFactory.GetContactDao().GetByID(contactID);

                if (contact == null)
                {
                    continue;
                }

                membersList.Add(ToContactBaseWrapper(contact));
            }

            casesWrapper.Members = membersList;


            return(casesWrapper);
        }