/// <summary> /// Gets the devices. /// </summary> /// <param name="customerId">The customer identifier.</param> /// <param name="request">The request.</param> /// <returns></returns> public async Task <PagedResult <Device> > GetDevices(int customerId, DevicesSearchDto request) { Expression <Func <Device, bool> > expression = d => d.CustomerId == customerId && !d.IsDeleted; if (request != null) { if (!string.IsNullOrEmpty(request.Q)) { var terms = request.Q.Split(' ').Where(r => !string.IsNullOrWhiteSpace(r)); foreach (var term in terms) { expression = expression.And(d => d.DeviceModel.Contains(term)); } } if (request.PatientId.HasValue) { expression = expression .And(d => d.PatientId == request.PatientId.Value); } if (request.LastConnectedUtcBefore.HasValue) { expression = expression.And(d => d.LastConnectedUtc.HasValue && d.LastConnectedUtc < request.LastConnectedUtcBefore.Value); } if (request.LastConnectedUtcAfter.HasValue) { expression = expression.And(d => d.LastConnectedUtc.HasValue && d.LastConnectedUtc > request.LastConnectedUtcAfter.Value); } if (request.Status.HasValue) { expression = expression.And(d => d.Status == request.Status.Value); } if (request.Type.HasValue) { var typeString = request.Type.Value.ToString(); expression = expression.And(d => d.DeviceTypeString.Equals(typeString)); } } return(await deviceRepository .FindPagedAsync( expression, o => o.OrderBy(e => e.Id), null, request != null ? request.Skip : (int?)null, request != null ? request.Take : (int?)null )); }
/// <summary> /// Checks if patient already has IVR device with active status. /// </summary> /// <returns></returns> private async Task <bool> IsActiveIVRExists(int customerId, Guid patientId) { var IVRDevicesSearchRequest = new DevicesSearchDto { PatientId = patientId, Type = DeviceType.IVR, Status = Status.Activated }; var existingIVRDevices = await this.GetDevices(customerId, IVRDevicesSearchRequest); return(existingIVRDevices.Results.Any()); }
public async Task <IHttpActionResult> GetDevices( int customerId, [FromUri] DevicesSearchDto request ) { var operationResult = await devicesControllerHelper.GetDevices(customerId, request); if (!operationResult.Status.HasFlag(GetDeviceStatus.Success)) { return(Content( HttpStatusCode.BadRequest, new ErrorResponseDto() { Error = ErrorCode.InvalidRequest, Message = ErrorCode.InvalidRequest.Description(), Details = operationResult.Status.Description() } )); } return(Ok(operationResult.Content)); }
/// <summary> /// Gets the devices. /// </summary> /// <param name="customerId">The customer identifier.</param> /// <param name="request">The request.</param> /// <returns></returns> public async Task <OperationResultDto <PagedResultDto <DeviceDto>, GetDeviceStatus> > GetDevices(int customerId, DevicesSearchDto request) { var result = await deviceService.GetDevices(customerId, request); return(new OperationResultDto <PagedResultDto <DeviceDto>, GetDeviceStatus>() { Status = GetDeviceStatus.Success, Content = Mapper.Map <PagedResult <Device>, PagedResultDto <DeviceDto> >(result) }); }