Example #1
0
        /// <summary>
        /// Returns a list of all systems in a specific jobsite which user has access to
        /// </summary>
        /// <param name="JobSiteId"></param>
        /// <param name="PageNo"></param>
        /// <param name="PageSize"></param>
        /// <returns></returns>
        public List <SystemForSetupVwMdl> getSystemListForSetupInInventory(int JobSiteId, int PageNo, int PageSize)
        {
            PageNo = PageNo <= 1 ? 0 : PageNo - 1;
            var result = new List <SystemForSetupVwMdl>();

            if (!Initialized)
            {
                return(result);
            }
            var _access = new BLL.Core.Domain.UserAccess(new SharedContext(), userTableId);

            if (!_access.hasAccessToJobsite(JobSiteId))
            {
                return(result);
            }
            var jobsites = _access.getAccessibleJobsites().Select(k => k.crsf_auto).ToList();
            var systems  = _context.LU_Module_Sub.Where(m => jobsites.Any(k => m.crsf_auto == k) && (m.equipmentid_auto == null || m.equipmentid_auto == 0)).ToList();

            result = systems.Select(m => new SystemForSetupVwMdl {
                Id = m.Module_sub_auto.LongNullableToInt(), JobsiteId = m.crsf_auto.LongNullableToInt(), Serial = m.Serialno, EquipmentId = m.equipmentid_auto.LongNullableToInt(), Side = Side.Unknown, SystemType = (UCSystemType)m.systemTypeEnumIndex
            }).GroupBy(m => m.Id).Select(m => m.First()).Skip(PageNo * PageSize).Take(PageSize).ToList();
            foreach (var system in result)
            {
                var logicalSystem = new UCSystem(new DAL.UndercarriageContext(), system.Id);
                system.Make       = logicalSystem.getMake();
                system.Model      = logicalSystem.getModel();
                system.Family     = logicalSystem.getFamily();
                system.Side       = logicalSystem.side;
                system.SystemType = logicalSystem.GetSystemType();
            }
            return(result.OrderBy(m => m.Serial).ToList());
        }
Example #2
0
        public async Task <Tuple <bool, UserViewModel> > GetUser(int userId, System.Security.Principal.IPrincipal User)
        {
            var _access = new BLL.Core.Domain.UserAccess(new SharedContext(), User);

            if (_access.getAccessibleUsers().Where(m => m.user_auto == userId).Count() == 0)
            {
                return(Tuple.Create <bool, UserViewModel>(false, null));
            }

            USER_TABLE user = await _context.USER_TABLE.FindAsync(userId);

            if (user == null)
            {
                return(Tuple.Create <bool, UserViewModel>(false, null));
            }

            UserViewModel returnUser = new UserViewModel()
            {
                Email       = user.email,
                Id          = (int)user.user_auto,
                Name        = user.username,
                AccessLevel = (UserAccessTypes)(int)_access.getHighestCategoryAccess()
            };

            return(Tuple.Create(true, returnUser));
        }
Example #3
0
        public List <BasicJobsiteDataSet> getListOfJobsitesForCustomer(long customerId, int User)
        {
            var accessibleJobsites = new BLL.Core.Domain.UserAccess(new SharedContext(), User).getAccessibleJobsites().Select(m => m.crsf_auto).ToList();

            using (var context = new SharedContext())
            {
                return(context.CRSF.OrderBy(j => j.site_name).Where(j => j.customer_auto == customerId && accessibleJobsites.Any(k => j.crsf_auto == k))
                       .Select(j => new BasicJobsiteDataSet
                {
                    jobsiteId = j.crsf_auto,
                    jobsiteName = j.site_name,
                    equipmentCount = context.EQUIPMENT.Where(e => e.crsf_auto == j.crsf_auto).Count(),
                    implementCount = context.GET.Where(i => i.EQUIPMENT.crsf_auto == j.crsf_auto).Count()
                }).ToList());
            }
        }
Example #4
0
        public List <JobSiteForSelectionVwMdl> getJobSiteListForSelection(int PageNo, int PageSize)
        {
            PageNo = PageNo <= 1 ? 0 : PageNo - 1;
            var result = new List <JobSiteForSelectionVwMdl>();

            if (!Initialized)
            {
                return(result);
            }

            var jobsites = new BLL.Core.Domain.UserAccess(new SharedContext(), userTableId).getAccessibleJobsites().ToList();

            return(jobsites.Select(m => new JobSiteForSelectionVwMdl {
                Id = longNullableToint(m.crsf_auto), Title = m.site_name, CustomerId = m.customer_auto.LongNullableToInt()
            }).GroupBy(m => m.Id).Select(m => m.First()).Skip(PageNo * PageSize).Take(PageSize).OrderBy(m => m.Title).ToList());
        }
Example #5
0
        /// <summary>
        /// Returns a list of all customers that belong to a given dealership.
        /// </summary>
        /// <param name="dealershipId"></param>
        /// <returns>A list of customer objects. Each object contains the customer's id, name, contactEmail, isActive and jobsiteCount. </returns>

        public List <BasicCustomerDataSet> getListOfCustomersForDealership(int dealershipId, System.Security.Principal.IPrincipal User)
        {
            var customers = new BLL.Core.Domain.UserAccess(new SharedContext(), User).getAccessibleCustomers();

            using (var context = new SharedContext())
            {
                return(customers.OrderBy(c => c.cust_name).Where(c => c.DealershipId == dealershipId)
                       .Select(c => new BasicCustomerDataSet
                {
                    id = c.customer_auto,
                    name = c.cust_name,
                    contactEmail = c.cust_email,
                    isActive = c.active,
                    jobsiteCount = context.CRSF.Where(j => j.customer_auto == c.customer_auto).Count()
                }).ToList());
            }
        }
Example #6
0
        public List <CustomerOverviewModel> GetAllCustomersForUser(long userId)
        {
            List <CustomerOverviewModel> returnList = new List <CustomerOverviewModel>();
            List <long> customerIds = new List <long>();
            var         customers   = new BLL.Core.Domain.UserAccess(new SharedContext(), userId.LongNullableToInt()).getAccessibleCustomers();

            foreach (var customer in customers.ToList())
            {
                returnList.Add(new CustomerOverviewModel {
                    CustomerId     = customer.customer_auto,
                    CustomerName   = customer.cust_name,
                    Email          = customer.cust_email,
                    JobsiteCount   = _context.CRSF.Where(j => j.customer_auto == customer.customer_auto).Count(),
                    DealershipName = string.Join(", ", customer.DealerGroups.Where(m => m.RecordStatus == (int)Core.Domain.RecordStatus.Available).Select(m => "[" + m.DealerGroup.Name + "]").ToArray()) + " " + string.Join(", ", customer.Dealers.Where(m => m.RecordStatus == (int)Core.Domain.RecordStatus.Available).Select(m => m.Dealer.Name).ToArray())
                });
            }

            return(returnList.OrderBy(l => l.CustomerName).ToList());
        }
Example #7
0
        /// <summary>
        /// Returns some general details of dealerships the given user id has access to
        /// </summary>
        /// <param name="userId">User ID used to determine which dealerships to return. </param>
        /// <returns></returns>
        public async Task <List <DealershipOverviewModel> > GetAllDealershipsForUser(long userId)
        {
            List <DealershipOverviewModel> returnList = new List <DealershipOverviewModel>();
            List <long> dealershipIds = new List <long>();
            var         userAccess    = await _context.UserAccessMaps.Where(m => m.user_auto == userId).ToListAsync();

            var dealers = new BLL.Core.Domain.UserAccess(new SharedContext(), userId.LongNullableToInt()).getAccessibleDealers().Select(m => new DealershipOverviewModel {
                DealershipId = m.DealershipId, DealershipName = m.Name
            }).ToList();

            foreach (var dealer in dealers)
            {
                dealer.BrandedStyles = _undercarriageContext.DealershipBranding.Where(m => m.DealershipId == dealer.DealershipId).Select(b => new BrandedStyleModel()
                {
                    Id   = b.Id,
                    Name = b.Name
                }).ToList();
            }

            return(dealers.OrderBy(m => m.DealershipName).ToList());
        }