Example #1
0
        public PagedResultDto <RestReqListDto> GetRestReqs(GetRestReqInput input)
        {
            var loginSAPCode = GetCurrentUser().SAPCode;

            var RestReqs = _RestReqRepository.GetAll().Include(a => a.RestInfos.RestInfoAdmins)
                           .Where(a => a.RequestStatus.StatusDesc != "Draft" &&
                                  a.RequestStatus.StatusDesc != "Cancel Order" &&
                                  a.RequestStatus.StatusDesc != "Done" &&
                                  a.RequestStatus.StatusDesc != "Not Available")
                           .WhereIf(!input.Filter.IsNullOrEmpty(),
                                    p => p.UserId.ToString().Contains(input.Filter) ||
                                    p.PaymentTypes.PaymentTypeDesc.Contains(input.Filter))
                           .OrderByDescending(a => a.CreationTime)
                           .ToList();

            List <RestReqListDto> RestReqListDtos = new List <RestReqListDto>();

            foreach (var item in RestReqs)
            {
                var restadmin = _RestInfoAdminsRepository.GetAll().Where(a => a.RestInfoID == item.RestInfosID).ToList();

                foreach (var admin in restadmin)
                {
                    if (admin.emp_id == loginSAPCode)
                    {
                        RestReqListDto Filterditem = ObjectMapper.Map <RestReqListDto>(item);
                        RestReqListDtos.Add(Filterditem);
                    }
                }
            }

            var RestReqsCount = RestReqs.Count();


            foreach (RestReqListDto req in RestReqListDtos)
            {
                var RestSches = _RestSchRepository.GetAll().Where(a => a.Id == req.RestSchedulesId).ToList();

                List <RestSchesListDto> RestScheListDtos = ObjectMapper.Map <List <RestSchesListDto> >(RestSches);

                if (RestScheListDtos.Count() > 0)
                {
                    foreach (RestSchesListDto sch in RestScheListDtos)
                    {
                        var RestInfos = _RestInfoRepository.GetAll().Where(a => a.Id == sch.RestInfoID).ToList();

                        string Area     = RestInfos.Select(a => a.Area).SingleOrDefault();
                        string Building = RestInfos.Select(a => a.Building).SingleOrDefault();

                        req.RestaurantInfo = Area + " - " + Building;
                        req.Day            = sch.Day;
                    }

                    req.StatusDesc = _RequestStatusRepository.GetAll().Where(a => a.Id == req.RequestStatusID).Select(a => a.StatusDesc).SingleOrDefault();
                }
                else
                {
                    var RestInfos = _RestInfoRepository.GetAll().Where(a => a.Id == req.RestInfosID).ToList();

                    string Area     = RestInfos.Select(a => a.Area).SingleOrDefault();
                    string Building = RestInfos.Select(a => a.Building).SingleOrDefault();

                    req.RestaurantInfo = Area + " - " + Building;

                    req.StatusDesc = _RequestStatusRepository.GetAll().Where(a => a.Id == req.RequestStatusID).Select(a => a.StatusDesc).SingleOrDefault();
                }

                req.Username = _EmployeesViewRepository.GetAll().Where(a => a.emp_id == req.UserId).Select(a => a.emp_username).SingleOrDefault();
                req.ExtNum   = (int?)_EmployeesViewRepository.GetAll().Where(a => a.emp_id == req.UserId).Select(a => a.emp_ext).SingleOrDefault();
            }

            return(new PagedResultDto <RestReqListDto>(RestReqsCount, RestReqListDtos));
        }
        public PagedResultDto <RestReqListDto> GetRestReqs(GetRestReqInput input)
        {
            var UserId = GetCurrentUser().Id;

            List <RestRequest> RestReqs = new List <RestRequest>();

            var payments = _PaymentTypesRepository.GetAll().Where(a => a.PaymentTypeDesc.Contains(input.Filter)).Select(a => a.Id).SingleOrDefault();
            var day      = _RestSchRepository.GetAll().Where(a => a.Day.Contains(input.Filter)).Select(a => a.Day).FirstOrDefault();
            var status   = _RequestStatusRepository.GetAll().Where(a => a.StatusDesc.Contains(input.Filter)).Select(a => a.Id).SingleOrDefault();

            if (payments != 0)
            {
                RestReqs = _RestReqRepository.GetAll()
                           .Where(a => a.CreatorUserId == UserId && a.PaymentTypeID == payments)
                           .OrderByDescending(a => a.CreationTime)
                           .ToList();
            }
            if (day != null)
            {
                RestReqs = _RestReqRepository.GetAll().Include(a => a.RestSchedules)
                           .Where(a => a.CreatorUserId == UserId && a.RestSchedules.Day == day)
                           .OrderByDescending(a => a.CreationTime)
                           .ToList();
            }
            if (status != 0)
            {
                RestReqs = _RestReqRepository.GetAll().Include(a => a.RestSchedules)
                           .Where(a => a.CreatorUserId == UserId && a.RequestStatusID == status)
                           .OrderByDescending(a => a.CreationTime)
                           .ToList();
            }
            else
            {
                RestReqs = _RestReqRepository.GetAll()
                           .Where(a => a.CreatorUserId == UserId)
                           .OrderByDescending(a => a.CreationTime)
                           .ToList();
            }

            var RestReqsCount = RestReqs.Count();

            List <RestReqListDto> RestReqListDtos = ObjectMapper.Map <List <RestReqListDto> >(RestReqs);

            foreach (RestReqListDto req in RestReqListDtos)
            {
                var RestSches = _RestSchRepository.GetAll().Where(a => a.Id == req.RestSchedulesId).SingleOrDefault();

                int?RestInfoID = 0;
                if (RestSches != null)
                {
                    RestInfoID = RestSches.RestInfoID;
                    req.Day    = RestSches.Day;
                }
                else
                {
                    RestInfoID = req.RestInfosID;
                }

                var RestInfos = _RestInfoRepository.GetAll().Where(a => a.Id == RestInfoID).SingleOrDefault();

                if (RestInfos != null)
                {
                    string Area     = RestInfos.Area;
                    string Building = RestInfos.Building;

                    var    RestCategoryDesc = _RestCategoryRepository.GetAll().Where(a => a.Id == RestInfos.RestCategoryId).SingleOrDefault();
                    string RestDesc         = RestCategoryDesc.RestCategoryDesc;

                    req.RestaurantInfo = Area + " - " + Building + " / " + RestDesc;
                }
                req.Username = _EmployeesViewRepository.GetAll().Where(a => a.emp_id == req.UserId).Select(a => a.emp_username).SingleOrDefault();

                req.StatusDesc = _RequestStatusRepository.GetAll().Where(a => a.Id == req.RequestStatusID).Select(a => a.StatusDesc).SingleOrDefault();

                req.PaymentTypeDesc = _PaymentTypesRepository.GetAll().Where(a => a.Id == req.PaymentTypeID).Select(a => a.PaymentTypeDesc).SingleOrDefault();

                string time = req.CreationTime.ToString("dd/MM/yyyy");
                req.Time = time;
            }

            return(new PagedResultDto <RestReqListDto>(RestReqsCount, RestReqListDtos));
        }