Ejemplo n.º 1
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(ToCustomFieldBaseWrapper));

            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, ToContactBaseWrapper);

            foreach (var cases in items)
            {
                var casesWrapper = new CasesWrapper(cases)
                    {
                        CustomFields = customFields.ContainsKey(cases.ID)
                                           ? customFields[cases.ID]
                                           : new List<CustomFieldBaseWrapper>(),
                        Members = casesMembers.ContainsKey(cases.ID)
                                      ? casesMembers[cases.ID].Where(contacts.ContainsKey).Select(item => contacts[item])
                                      : new List<ContactBaseWrapper>()
                    };

                result.Add(casesWrapper);
            }

            return result;
        }
Ejemplo n.º 2
0
        private CasesWrapper ToCasesWrapper(Cases cases)
        {
            var casesWrapper = new CasesWrapper(cases)
                {
                    CustomFields = DaoFactory
                        .GetCustomFieldDao()
                        .GetEnityFields(EntityType.Case, cases.ID, false)
                        .ConvertAll(item => new CustomFieldBaseWrapper(item))
                        .ToSmartList(),
                    Members = new List<ContactBaseWrapper>()
                };

            var memberIDs = DaoFactory.GetCasesDao().GetMembers(cases.ID);
            var membersList = DaoFactory.GetContactDao().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;
        }
Ejemplo n.º 3
0
        private Cases FromCasesWrapper(CasesWrapper casesWrapper)
        {
            return new Cases
                       {
                           Title = casesWrapper.Title,
                           IsClosed = casesWrapper.IsClosed,
                           CreateOn = casesWrapper.Created,
                           CreateBy = casesWrapper.CreateBy.Id

                       };

        }