protected static (int Skip, int Take) GetSkipTake(PaginationRequestDto request)
        {
            int skip = request.PageNumber * request.PageSize - request.PageSize;
            int take = request.PageSize;

            return(skip, take);
        }
        public async Task GetAllClinics_IsSuccess_WhenSorting(bool IsAscending)
        {
            //Arrange
            PaginationRequestDto pagingRequest = new PaginationRequestDto {
                Column = "Name", IsAscending = IsAscending
            };
            var clinicRepository = new Mock <IClinicRepository>();

            clinicRepository.Setup(c => c.GetAll()).ReturnsAsync(ClinicList);
            var clinicAppService = new Mock <ClinicAppService>(clinicRepository.Object).Object;

            //Act
            var paginatedlist = await clinicAppService.GetAllClinics(pagingRequest);

            //Assert
            if (IsAscending)
            {
                Assert.Equal(paginatedlist.Items.ToList().First().Name, paginatedlist.Items.OrderBy(s => s.Name).First().Name);
            }
            else
            {
                Assert.Equal(paginatedlist.Items.ToList().First().Name, paginatedlist.Items.OrderByDescending(s => s.Name).First().Name);
            }

            Assert.IsType <Paginatedlist <ClinicItemDto> >(paginatedlist);
        }
Example #3
0
        public IActionResult GetTab(
            [FromRoute, Required] string device,
            [FromRoute, Required] string tab,
            [FromQuery] PaginationRequestDto paginationDto,
            [FromQuery] SortRequestDto sortDto,
            [FromQuery] AdvancedFilterRequestDto filterRequestDto)
        {
            try
            {
                var deviceId   = new DeviceId(device);
                var filter     = AdvancedFilterRequestDto.ParseFilterRequest(filterRequestDto);
                var pagination = PaginationRequestDto.MapPaginationRequest(paginationDto);
                var sort       = SortRequestDto.MapSortRequest(sortDto);

                var tabEntries = _DataModel.GetTab(deviceId, tab, pagination, sort, filter);

                return(Json(tabEntries));
            }
            catch (UnknownDeviceIdException e)
            {
                Logger.LogError("Exception while execution:", e);
                return(FormattedNotFound($"Device id not found."));
            }
            catch (UnknownKeyException e)
            {
                Logger.LogError("Exception while execution:", e);
                return(FormattedNotFound($"Key not found."));
            }
            catch (Exception e)
            {
                Logger.LogError("Exception while execution:", e);
                return(FormattedInternalServerError($"{nameof(e)} {e.Message}"));
            }
        }
        public async Task <(IEnumerable <UserDto> Users, int Total)> GetAllAsync(PaginationRequestDto request)
        {
            using var connection = ConnectionFactory.NewConnection;

            (int skip, int take) = GetSkipTake(request);

            var parameter = new DynamicParameters();

            parameter.Add("skip", skip);
            parameter.Add("take", take);
            parameter.Add("total", dbType: DbType.Int32, direction: ParameterDirection.Output);

            var result = await connection.QueryAsync <string>("spUsers_GetAll", param : parameter, commandType : CommandType.StoredProcedure);

            int total = parameter.Get <int>("total");

            if (!result.Any())
            {
                return(Enumerable.Empty <UserDto>(), total);
            }

            var dbUsers = JsonSerializer.Deserialize <IEnumerable <DbUser> >(string.Join("", result));
            var users   = dbUsers.Select(dbUser => new UserDto
            {
                Id                = dbUser.Id,
                Username          = dbUser.Username,
                TimeUntilDeletion = GetTimeUntilDeletion(dbUser.DeletionDate)
            });

            return(users, total);
        }
        public async Task <Paginatedlist <ClinicItemDto> > GetAllClinics(PaginationRequestDto dto)
        {
            var result = new Paginatedlist <ClinicItemDto>();

            var query = await clinicRepository.GetAll();

            var totalItem = query.Count();
            var property  = typeof(Clinic).GetProperties().Where(p => p.CanWrite && p.Name.ToLower() == dto.Column?.ToLower()).SingleOrDefault();

            switch (dto.Type)
            {
            case PaginationType.Sorting:
                query = dto.IsAscending ? query.OrderBy(c => property.GetValue(c)) : query.OrderByDescending(c => property.GetValue(c));
                break;

            case PaginationType.Searching:
                query = query.Where(c => c.Name != null && c.Name.ToLower().Contains(dto.SearchText?.ToLower()));
                break;

            default:
                break;
            }
            query = query.Skip(dto.Page * dto.PageItemCount).Take(dto.PageItemCount);

            var clinics = query?.ToClinicItemDtoList();

            return(new Paginatedlist <ClinicItemDto>(clinics, dto.Page, totalItem, dto.PageItemCount));
        }
Example #6
0
 public IActionResult GetValues(
     [FromRoute, Required] string device,
     [FromQuery] PaginationRequestDto pagination,
     [FromQuery] FilterRequest filter,
     [FromQuery] SortRequestDto sort)
 {
     try
     {
         var deviceId = new DeviceId(device);
         var dataDto  = _DataModel.GetValueData(deviceId, pagination.PageNumber, pagination.PageSize,
                                                filter.FilterBy, filter.FilterString, filter.FilterExcluding,
                                                filter.FilterStateBy, filter.FilterStateExcluding,
                                                sort.SortBy, sort.SortOrderAscending);
         return(Json(dataDto));
     }
     catch (UnknownDeviceIdException e)
     {
         Logger.LogError("Exception while execution:", e);
         return(FormattedNotFound($"Device id not found."));
     }
     catch (Exception e)
     {
         Logger.LogError("Exception while execution:", e);
         return(FormattedInternalServerError($"{nameof(e)} {e.Message}"));
     }
 }
 public async Task <IActionResult> GetClinics([FromBody] PaginationRequestDto dto)
 {
     return(await ActionHandle(async() =>
     {
         var clinics = await clinicService.GetAllClinics(dto);
         return Ok(clinics);
     }));
 }
        public ApiResponse <IEnumerable <Message> > GetDataMessage(DeviceId device, PaginationRequestDto pagination = null,
                                                                   FilterRequest filter = null,
                                                                   SortRequestDto sort  = null)
        {
            var uri = $"/api/data/{device.FullId}/messages";

            return(GetAll <Message>(uri));
        }
        public async Task <Paginatedlist <ClinicItemDto> > GetAllClinics(PaginationRequestDto dto)
        {
            var result = await client.GetClinicsAsync(new CommonRequestMessage { Content = JsonConvert.SerializeObject(dto) });

            var clinics = JsonConvert.DeserializeObject <Paginatedlist <ClinicItemDto> >(result.Content);

            return(clinics);
        }
 public void BuildQuery(NameValueCollection query, PaginationRequestDto paginationRequest)
 {
     if (paginationRequest == null)
     {
         return;
     }
     query["PageNumber"] = paginationRequest.PageNumber.ToString();
     query["PageSize"]   = paginationRequest.PageSize.ToString();
 }
Example #11
0
        public async Task <PaginatedEmails> SearchEmailsAsync(PaginationRequestDto paginationRequest)
        {
            var totalEmails = _unitOfWork.EmailRepository.GetCountAsync();
            var emails      = await _unitOfWork.EmailRepository.GetAsync(paginationRequest.Skip, paginationRequest.Take);

            var dtos = emails.Select(e => new EmailDto(e.Id, e.Sent, e.Subject, Enum.Parse <NotificationType>(e.GetType().Name), e.Recipient.Address, e.Attachments.Count()));

            return(new PaginatedEmails(dtos, new Pagination(paginationRequest.Skip, paginationRequest.Take, await totalEmails)));
        }
Example #12
0
        public async Task <IActionResult> GetAll([FromQuery] PaginationRequestDto request)
        {
            var(users, total) = await UserRepository.GetAllAsync(request);

            return(Ok(new PagedResponseDto <UserDto>
            {
                Data = users,
                Total = total
            }));
        }
        public Task <IEnumerable <StoryDto> > GetAll(PaginationRequestDto request)
        {
            if (request == null)
            {
                return(null);
            }

            return(this.storyService
                   .GetAll(request.Page, request.PageSize)
                   .ContinueWith(x => Mapper.Map <IEnumerable <StoryDto> >(x.Result)));
        }
Example #14
0
        /// <summary>
        /// Gets the page asynchronous.
        /// </summary>
        /// <param name="pageIndex">Index of the page.</param>
        /// <param name="pageSize">Size of the page.</param>
        /// <returns></returns>
        public async virtual Task <PaginationResultDto <TDto> > GetPaginatedAsync(PaginationRequestDto paginationRequest)
        {
            var paginationRequestEntity = Mapper.Map <PaginationRequest>(paginationRequest);

            var repository = UnitOfWork.GetRepository <TRepository>();

            var entities = await repository.GetPaginatedAsync(paginationRequestEntity);

            var dto = Mapper.Map <PaginationResultDto <TDto> >(entities);

            return(dto);
        }
Example #15
0
        public async Task <ResultPagedList <ConcatResponseDto> > GetList(
            [FromQuery] PaginationRequestDto dto)
        {
            var data = await _serviceProvider.GetRequiredService <EditorService>().GetConcatList(dto.PageNo, dto.PageSize);

            if (!data.Success)
            {
                return(ResultPagedList <ConcatResponseDto> .ReFailure(data.Message, data.Status));
            }
            return(ResultPagedList <ConcatResponseDto> .ReSuccess(_mapper.Map <List <ConcatResponseDto> >(data.Data),
                                                                  data.TotalCount));
        }
Example #16
0
        public async Task GetAllClinics_IsSuccess(PaginationRequestDto dto, bool expectation)
        {
            try
            {
                var clinic = await clinicAppService.GetAllClinics(dto);

                Assert.Equal(clinic.Items.Any(), expectation);
            }
            catch
            {
                Assert.True(false);
            }
        }
        public async Task <ApiResponse <IEnumerable <TabEntryDto> > > GetDataTab(DeviceId device, string tab,
                                                                                 PaginationRequestDto paginationDto        = null,
                                                                                 SortRequestDto sortDto                    = null,
                                                                                 AdvancedFilterRequestDto filterRequestDto = null)
        {
            var query = HttpUtility.ParseQueryString("");

            BuildQuery(query, paginationDto);
            BuildQuery(query, sortDto);
            BuildQuery(query, filterRequestDto);
            var uri = $"/api/data/tab/{device.FullId}/{tab}?{query.ToString()}";

            return(await GetAllAsync <TabEntryDto>(uri));
        }
        public async Task GetAllClinics_IsSuccess_WhenPaging(PaginationRequestDto pagingRequest, int firstItemIndex_Should)
        {
            //Arrange
            var clinicRepository = new Mock <IClinicRepository>();

            clinicRepository.Setup(c => c.GetAll()).ReturnsAsync(ClinicList);
            var clinicAppService = new Mock <ClinicAppService>(clinicRepository.Object).Object;

            //Act
            var paginatedlist = await clinicAppService.GetAllClinics(pagingRequest);

            //Assert
            Assert.IsType <Paginatedlist <ClinicItemDto> >(paginatedlist);
            Assert.Equal(paginatedlist.Items.Count, pagingRequest.PageItemCount);
            Assert.Equal(paginatedlist.Page, pagingRequest.Page);
            Assert.Equal(paginatedlist.Items[0].Id, ClinicList.ToList().ElementAt(firstItemIndex_Should).Id);
        }
        public async Task GetAllClinics_IsSuccess(PaginationRequestDto dto, bool expectation)
        {
            try
            {
                var okResult = await clinicController.GetClinics(dto) as OkObjectResult;

                //Asserts
                var result  = Assert.IsType <OkObjectResult>(okResult);
                var clinics = result.Value;

                var model = Assert.IsAssignableFrom <Paginatedlist <ClinicItemDto> >(
                    clinics);

                Assert.Equal(model.Items.Any(), expectation);
            }
            catch
            {
                Assert.True(false);
            }
        }
        public async Task GetAllClinics_IsSuccess_WhenSearching()
        {
            //Arrange
            PaginationRequestDto pagingRequest = new PaginationRequestDto {
                Column = "Name", SearchText = "Clinic2"
            };
            var clinicRepository = new Mock <IClinicRepository>();

            clinicRepository.Setup(c => c.GetAll()).ReturnsAsync(ClinicList);
            var clinicAppService = new Mock <ClinicAppService>(clinicRepository.Object).Object;

            var result_Should = ClinicList.Where(s => s.Name.Contains(pagingRequest.SearchText)).ToList();

            //Act
            var paginatedlist = await clinicAppService.GetAllClinics(pagingRequest);

            //Assert
            Assert.Equal(result_Should.Count, paginatedlist.Items.Count);
            Assert.True(paginatedlist.Items.Where(s => !s.Name.Contains(pagingRequest.SearchText)).Count() == 0);
            Assert.IsType <Paginatedlist <ClinicItemDto> >(paginatedlist);
        }
Example #21
0
        public IActionResult GetJobs(
            [FromRoute, Required] string device,
            [FromQuery, Optional] PaginationRequestDto paginationDto,
            [FromQuery, Optional] SortRequestDto sortDto,
            [FromQuery, Optional] AdvancedFilterRequestDto filterRequestDto)
        {
            try
            {
                var deviceId   = new DeviceId(device);
                var filter     = AdvancedFilterRequestDto.ParseFilterRequest(filterRequestDto);
                var pagination = PaginationRequestDto.MapPaginationRequest(paginationDto);
                var sort       = SortRequestDto.MapSortRequest(sortDto);

                var jobEntries = _jobModel.GetJobs(deviceId, pagination, sort, filter);

                return(Json(jobEntries));
            }
            catch (Exception e)
            {
                return(ResolveException(e));
            }
        }
Example #22
0
        private static string FormatUriForGetCities(CityFilterDto filter, PaginationRequestDto pagination, OrderDto order)
        {
            var sb = new StringBuilder(GetCitiesUri);

            if (filter != null)
            {
                if (!string.IsNullOrEmpty(filter.CountryIso))
                {
                    sb.Append("&filter[countryIso]=");
                    sb.Append(filter.CountryIso);
                }

                if (filter.Id > 0)
                {
                    sb.Append("&filter[id]=");
                    sb.Append(filter.Id);
                }

                if (filter.Ids != null)
                {
                    for (var i = 0; i < filter.Ids.Length; i++)
                    {
                        sb.Append("&filter[ids][");
                        sb.Append(i);
                        sb.Append("]=");
                        sb.Append(filter.Ids[i]);
                    }
                }

                if (!string.IsNullOrEmpty(filter.Name))
                {
                    sb.Append("&filter[name]=");
                    sb.Append(filter.Name);
                }

                if (!string.IsNullOrEmpty(filter.NameStrictLanguage))
                {
                    sb.Append("&filter[nameStrictLanguage]=");
                    sb.Append(filter.NameStrictLanguage);
                }

                if (filter.RegionId > 0)
                {
                    sb.Append("&filter[regionId]=");
                    sb.Append(filter.RegionId);
                }

                if (filter.RegionCodes != null)
                {
                    for (var i = 0; i < filter.RegionCodes.Length; i++)
                    {
                        sb.Append("&filter[regionCodes][");
                        sb.Append(i);
                        sb.Append("]=");
                        sb.Append(filter.RegionCodes[i]);
                    }
                }
            }

            if (pagination != null)
            {
                sb.Append("&pagination[page]=");
                sb.Append(pagination.Page);
                sb.Append("&pagination[limit]=");
                sb.Append(pagination.Limit);
            }

            if (order == null)
            {
                return(sb.ToString());
            }

            if (!string.IsNullOrEmpty(order.By))
            {
                sb.Append("&order[by]=");
                sb.Append(order.By);
            }

            if (string.IsNullOrEmpty(order.Dir))
            {
                return(sb.ToString());
            }

            sb.Append("&order[dir]=");
            sb.Append(order.Dir);

            return(sb.ToString());
        }
Example #23
0
        public async Task <List <City> > GetCities(LocaleDto locale, CityFilterDto filter = null, PaginationRequestDto pagination = null, OrderDto order = null)
        {
            var uri = string.Format(FormatUriForGetCities(filter, pagination, order), Secrets.GeoHelperApiKey, locale.Lang, locale.FallbackLang);

            Debug.WriteLine(uri);

            var res = await GetAsync <City>(uri);

            return(res ?? new List <City>());
        }
        public async Task <ApiResponse <IEnumerable <Job> > > GetDataJobs(DeviceId device, PaginationRequestDto pagination = null,
                                                                          FilterRequest filter = null,
                                                                          SortRequestDto sort  = null)
        {
            var uri = $"/api/data/{device.FullId}/jobs";

            return(await GetAllAsync <Job>(uri));
        }
 public Task <PaginatedEmails> Search([FromQuery] PaginationRequestDto paginationRequest)
 {
     return(_searchEmailUseCase.SearchEmailsAsync(paginationRequest));
 }
Example #26
0
 public Task <IActionResult> GetAll([FromQuery] PaginationRequestDto paginationRequestDto)
 {
     return(GetPaginatedAsyncInternal(paginationRequestDto));
 }