public List <SalesRepresentative> GetSalesRepresentativesForFranchisee(long organizationId)
        {
            var franchiseeFranchiseeUserView = new FranchiseeFranchiseeUserTypedView();
            IRelationPredicateBucket bucket  = new RelationPredicateBucket(FranchiseeFranchiseeUserFields.IsActive == true);

            bucket.PredicateExpression.Add(FranchiseeFranchiseeUserFields.OrganizationId == organizationId);
            bucket.PredicateExpression.Add(FranchiseeFranchiseeUserFields.RoleId == Roles.SalesRep);

            using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
            {
                myAdapter.FetchTypedView(franchiseeFranchiseeUserView, bucket, false);
            }

            List <long> userIds = franchiseeFranchiseeUserView.AsEnumerable().Select(ffuv => ffuv.UserId).ToList();
            List <User> users   = _userRepository.GetActiveSystemUsers(userIds);

            return(_salesRepresentativeFactory.CreateSalesRepresentatives(franchiseeFranchiseeUserView, users));
        }
        public List <SalesRepresentative> GetAllSalesRepresentatives()
        {
            var franchiseeFranchiseeUserView = new FranchiseeFranchiseeUserTypedView();
            IRelationPredicateBucket bucket  = new RelationPredicateBucket(FranchiseeFranchiseeUserFields.IsActive == true);

            bucket.PredicateExpression.Add(FranchiseeFranchiseeUserFields.RoleId == Roles.SalesRep);

            using (var myAdapter = PersistenceLayer.GetDataAccessAdapter())
            {
                myAdapter.FetchTypedView(franchiseeFranchiseeUserView, bucket, false);
            }

            if (franchiseeFranchiseeUserView.AsEnumerable().Count() < 1)
            {
                return(null);                                                         // Might need to throw an exception
            }
            List <long> userIds = franchiseeFranchiseeUserView.AsEnumerable().Select(ffuv => ffuv.UserId).ToList();
            List <User> users   = _userRepository.GetUsers(userIds);

            return(_salesRepresentativeFactory.CreateSalesRepresentatives(franchiseeFranchiseeUserView, users));
        }
Beispiel #3
0
        public List <SalesRepresentative> CreateSalesRepresentatives(FranchiseeFranchiseeUserTypedView
                                                                     franchiseeFranchiseeUserViewTypedView, List <User> users)
        {
            if (franchiseeFranchiseeUserViewTypedView == null)
            {
                throw new ArgumentNullException("franchiseeFranchiseeUserViewTypedView");
            }
            if (users == null)
            {
                throw new ArgumentNullException("users");
            }
            var salesRepresentatives = new List <SalesRepresentative>();

            foreach (FranchiseeFranchiseeUserRow franchiseeFranchiseeUserViewRow in franchiseeFranchiseeUserViewTypedView)
            {
                FranchiseeFranchiseeUserRow row = franchiseeFranchiseeUserViewRow;
                var user = users.Where(u => u.Id == row.UserId).SingleOrDefault();
                if (user != null)
                {
                    SalesRepresentative salesRepresentative;
                    try
                    {
                        salesRepresentative = CreateSalesRepresentative(franchiseeFranchiseeUserViewRow, user);
                    }
                    catch (InvalidOperationException)
                    {
                        throw new InvalidOperationException(string.Format(
                                                                "User for sales representative {0} not given.",
                                                                franchiseeFranchiseeUserViewRow.
                                                                OrganizationRoleUserId));
                    }
                    salesRepresentatives.Add(salesRepresentative);
                }
            }
            return(salesRepresentatives);
        }