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)); }