Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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));
        }
Exemplo n.º 3
0
        /// <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();
 }