Ejemplo n.º 1
0
        //#####################################################################
        // Get all business in businesses linked to groups attached to the user
        //#####################################################################
        public IQueryable <Business> QueryBusinessViewableByUser(UserSessionModel user, bool showUnallocated)
        {
            IQueryable <Business> query;

            if (user == null || user.UserId == 0 || user.UserTypeId >= UserTypeEnum.DaikinSuperUser)
            {
                query = this.Businesses;
            }
            else
            {
                //#####################################################################
                // Show all businesses user can see including his/her own
                //#####################################################################

                //var results = this.QueryUsersViewableByUser(user, showUnallocated).ToList();

                //var businesses = (from b in this.Businesses
                //                  select b).ToList();

                //var test = (from b in businesses
                //            join u in results
                //            on b.BusinessId equals u.BusinessId into ub
                //            from us in ub.DefaultIfEmpty()
                //            select b).ToList();

                //var test2 = (from u in test
                //             join b in businesses
                //             on u.BusinessId equals b.BusinessId
                //             select b).Distinct().ToList();

                //query = (from b in businesses
                //         join u in results
                //         on b.BusinessId equals u.BusinessId into ub
                //         from u in ub.DefaultIfEmpty()
                //         where  u.BusinessId == b.BusinessId || b.BusinessId == user.BusinessId
                //         select b
                //         ).Distinct().AsQueryable();


                query = (from b in this.Businesses
                         join u in QueryUsersViewableByUser(user, showUnallocated)
                         on b.BusinessId equals u.BusinessId into Lb
                         from u in Lb.DefaultIfEmpty()
                         where b.BusinessId == u.BusinessId || b.BusinessId == user.BusinessId
                         select b).Distinct();
            }

            return(query);
        }