Exemple #1
0
        public GetOpportunityResponse getOpportunity(GetOpportunityRequest request)
        {
            GetOpportunityResponse response = new GetOpportunityResponse();

            hasAccess(request.OpportunityID, request.RequestedBy, request.AccountId, request.RoleId);
            Opportunity opportunity = opportunityRepository.FindBy(request.OpportunityID);



            if (opportunity == null)
            {
                response.Exception = GetOpportunitiesNotFoundException();
            }
            else
            {
                SearchContactsRequest contactsRequest = new SearchContactsRequest();
                contactsRequest.ContactIDs  = opportunity.Contacts.ToArray();
                contactsRequest.AccountId   = request.AccountId;
                contactsRequest.RoleId      = request.RoleId;
                contactsRequest.RequestedBy = request.RequestedBy;
                contactsRequest.Limit       = opportunity.Contacts.Count();
                contactsRequest.PageNumber  = 1;
                SearchContactsResponse <ContactEntry> contactsResponse = contactService.GetAllContacts <ContactEntry>(contactsRequest);
                IEnumerable <int> people = opportunity.Contacts;
                var contacts             = contactsResponse.Contacts.Where(c => people.Contains(c.Id));

                IEnumerable <Tag> tags = tagRepository.FindByOpportunity(request.OpportunityID);

                OpportunityViewModel opportunityViewModel = Mapper.Map <Opportunity, OpportunityViewModel>(opportunity);
                opportunityViewModel.Contacts     = contacts;
                opportunityViewModel.ContactCount = opportunity.Contacts.Count();
                response.OpportunityViewModel     = opportunityViewModel;

                opportunityViewModel.TagsList = tags;

                if (opportunity.ImageID != null)
                {
                    Image image = opportunityRepository.GetOpportunityProfileImage(opportunity.ImageID.Value);
                    opportunityViewModel.Image = Mapper.Map <Image, ImageViewModel>(image);
                    opportunityViewModel.Image.ImageContent = urlService.GetUrl(opportunityViewModel.AccountID, ImageCategory.OpportunityProfile, opportunityViewModel.Image.StorageName);
                }
            }
            return(response);
        }