/// <summary> /// Rental request search results view model /// </summary> /// <param name="model"></param> /// <returns></returns> public static RentalRequestSearchResultViewModel ToViewModel(this RentalRequest model) { var dto = new RentalRequestSearchResultViewModel(); if (model != null) { if (model.DistrictEquipmentType != null) { dto.EquipmentTypeName = model.DistrictEquipmentType.EquipmentType.Name; } dto.Id = model.Id; dto.LocalArea = model.LocalArea; if (model.Project != null) { dto.PrimaryContact = model.Project.PrimaryContact; dto.ProjectName = model.Project.Name; dto.ProjectId = model.Project.Id; } dto.Status = model.Status; dto.EquipmentCount = model.EquipmentCount; dto.ExpectedEndDate = model.ExpectedEndDate; dto.ExpectedStartDate = model.ExpectedStartDate; } return(dto); }
/// <summary> /// Searches Projects /// </summary> /// <remarks>Used for the project search page.</remarks> /// <param name="localareasCSV">Local areas (comma seperated list of id numbers)</param> /// <param name="project">name or partial name for a Project</param> /// <param name="status">Status</param> /// <param name="startDate">Inspection start date</param> /// <param name="endDate">Inspection end date</param> /// <response code="200">OK</response> public virtual IActionResult RentalrequestsSearchGetAsync(string localareasCSV, string project, string status, DateTime?startDate, DateTime?endDate) { int?[] localareas = ParseIntArray(localareasCSV); var data = _context.RentalRequests .Include(x => x.LocalArea.ServiceArea.District.Region) .Include(x => x.DistrictEquipmentType.EquipmentType) .Include(x => x.Project.PrimaryContact) .Select(x => x); // Default search results must be limited to user int?districtId = _context.GetDistrictIdByUserId(GetCurrentUserId()).Single(); data = data.Where(x => x.LocalArea.ServiceArea.DistrictId.Equals(districtId)); if (localareas != null && localareas.Length > 0) { data = data.Where(x => localareas.Contains(x.LocalArea.Id)); } if (project != null) { data = data.Where(x => x.Project.Name.ToLowerInvariant().Contains(project.ToLowerInvariant())); } if (startDate != null) { data = data.Where(x => x.ExpectedStartDate >= startDate); } if (endDate != null) { data = data.Where(x => x.ExpectedStartDate <= endDate); } if (status != null) { // TODO: Change to enumerated type data = data.Where(x => x.Status.ToLower() == status.ToLower()); } var result = new List <RentalRequestSearchResultViewModel>(); foreach (var item in data) { if (item != null) { RentalRequestSearchResultViewModel newItem = item.ToViewModel(); result.Add(newItem); } } // no calculated fields in a RentalRequest search yet. return(new ObjectResult(result)); }
/// <summary> /// Searches rental requests /// </summary> /// <remarks>Used for the rental request search page.</remarks> /// <param name="localareas">Local areas (comma seperated list of id numbers)</param> /// <param name="project">name or partial name for a Project</param> /// <param name="status">Status</param> /// <param name="startDate">Inspection start date</param> /// <param name="endDate">Inspection end date</param> /// <response code="200">OK</response> public virtual IActionResult RentalrequestsSearchGetAsync(string localareas, string project, string status, DateTime?startDate, DateTime?endDate) { int?[] localareasArray = ParseIntArray(localareas); IQueryable <RentalRequest> data = _context.RentalRequests .Include(x => x.LocalArea.ServiceArea.District.Region) .Include(x => x.DistrictEquipmentType.EquipmentType) .Include(x => x.Project.PrimaryContact) .Select(x => x); // Default search results must be limited to user int?districtId = _context.GetDistrictIdByUserId(GetCurrentUserId()).Single(); data = data.Where(x => x.LocalArea.ServiceArea.DistrictId.Equals(districtId)); if (localareasArray != null && localareasArray.Length > 0) { data = data.Where(x => localareasArray.Contains(x.LocalArea.Id)); } if (project != null) { data = data.Where(x => x.Project.Name.ToLowerInvariant().Contains(project.ToLowerInvariant())); } if (startDate != null) { data = data.Where(x => x.ExpectedStartDate >= startDate); } if (endDate != null) { data = data.Where(x => x.ExpectedStartDate <= endDate); } if (status != null) { data = data.Where(x => String.Equals(x.Status, status, StringComparison.CurrentCultureIgnoreCase)); } List <RentalRequestSearchResultViewModel> result = new List <RentalRequestSearchResultViewModel>(); foreach (RentalRequest item in data) { if (item != null) { RentalRequestSearchResultViewModel newItem = item.ToViewModel(); result.Add(newItem); } } // no calculated fields in a RentalRequest search yet return(new ObjectResult(new HetsResponse(result))); }
/// <summary> /// Setup the test. /// </summary> public RentalRequestSearchResultViewModelModelTests() { instance = new RentalRequestSearchResultViewModel(); }