public GetOpportunityListByContactResponse GetContactOpportunities(GetOpportunityListByContactRequest request) { Logger.Current.Verbose("Request to fetch Opportunities based on ContactId"); GetOpportunityListByContactResponse response = new GetOpportunityListByContactResponse(); IEnumerable <Opportunity> opportunities = null; Logger.Current.Informational("ContactId : " + request.ContactID); bool isAccountAdmin = cachingService.IsAccountAdmin(request.RoleId, request.AccountId); bool isPrivate = cachingService.IsModulePrivate(AppModules.Opportunity, request.AccountId); if (isPrivate && !isAccountAdmin) { int userId = (int)request.RequestedBy; opportunities = opportunityRepository.FindByContact(request.ContactID, userId); } else { opportunities = opportunityRepository.FindByContact(request.ContactID, 0); } if (opportunities == null) { response.Exception = GetOpportunitiesNotFoundException(); } else { IEnumerable <OpportunityViewModel> opportunitieslist = Mapper.Map <IEnumerable <Opportunity>, IEnumerable <OpportunityViewModel> >(opportunities); response.OpportunitiesList = opportunitieslist; } return(response); }