Beispiel #1
0
        public GetTagListResponse GetAllTagsByContacts(GetTagListRequest request)
        {
            Logger.Current.Verbose("Request to fetch all the tags.");
            GetTagListResponse response = new GetTagListResponse();
            int TotalHits = default(int);

            if (request.SortField != null)
            {
                var maps = SmartTouch.CRM.ApplicationServices.ObjectMappers.MapperConfigurationProvider.Instance.FindTypeMapFor <TagViewModel, Tag>();

                foreach (var propertyMap in maps.GetPropertyMaps())
                {
                    if (request.SortField.Equals(propertyMap.SourceMember.Name))
                    {
                        request.SortField = propertyMap.DestinationProperty.MemberInfo.Name;
                        break;
                    }
                }
            }
            bool isAccountAdmin    = CheckingDataSharing(request.RoleId, request.AccountId, request.IsSTadmin);
            IEnumerable <Tag> tags = tagRepository.AllTagsByContacts(request.Name, request.Limit, request.PageNumber, request.AccountId, isAccountAdmin, request.RequestedBy.Value, out TotalHits, request.AccountId, request.SortField, request.SortDirection);

            if (tags == null)
            {
                response.Exception = GetTagNotFoundException();
            }
            else
            {
                IEnumerable <TagViewModel> list = Mapper.Map <IEnumerable <Tag>, IEnumerable <TagViewModel> >(tags);
                response.Tags      = list;
                response.TotalHits = TotalHits;
            }
            return(response);
        }