Ejemplo n.º 1
0
        private static InvalidBlocksService BuildBankInvalidServiceMock()
        {
            var mockResponse = new PaginatedResponseModel <BankInvalidBlock>()
            {
                Results = INVALID_BLOCK_TEST_DATA, Count = INVALID_BLOCK_TEST_DATA.Count
            };
            var requestSender = new Mock <IHttpRequestSender>();

            var getAllResponse = new HttpResponseMessage(System.Net.HttpStatusCode.OK);

            getAllResponse.Content = new StringContent(JsonConvert.SerializeObject(mockResponse), Encoding.UTF8, "application/json");

            requestSender
            .Setup(x => x.GetAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(getAllResponse));

            var postResponse = new HttpResponseMessage(System.Net.HttpStatusCode.OK);

            postResponse.Content = new StringContent(JsonConvert.SerializeObject(INVALID_BLOCK_TEST_DATA.First()), Encoding.UTF8, "application/json");

            //TODO Setup for more Scenarios
            requestSender
            .Setup(x => x.PostAsync("/invalid_blocks", It.IsAny <StringContent>()))
            .Returns(Task.FromResult(postResponse));
            requestSender
            .Setup(x => x.GetAsync(It.IsRegex(@"\/invalid_blocks\?offset=[0-9]*&limit=[0-9]*")))
            .Returns(Task.FromResult(getAllResponse)); requestSender
            .Setup(x => x.GetAsync("/invalid_blocks"))
            .Returns(Task.FromResult(getAllResponse));

            var invalidBlockService = new InvalidBlocksService(requestSender.Object);

            return(invalidBlockService);
        }
Ejemplo n.º 2
0
    public async Task <PaginatedResponseModel <AppAuditLogDurationStatModel> > StatDurationAsync(DateTime startDate, DateTime endDate)
    {
        var sql       = @"
            select substr(logs.duration, 3) as duration, logs.request_count from (
                select
                    case
                       when duration < 500 then '1: < 500ms'
                       when duration < 1000 then '2: 500ms ~ 1s'
                       when duration < 2000 then '3: 1s ~ 2s'
                       when duration < 5000 then '4: 2s ~ 5s'
                       when duration >= 5000 then '5: > 5s'
                       end as duration,
                    count(*) as request_count
                from public.app_audit_logs
                where (start_at >= @startDate and start_at < @endDate)
                group by 1
            ) as logs
            order by logs.duration;
        ";
        var conn      = Session.Connection;
        var durations = await conn.QueryAsync <AppAuditLogDurationStatModel>(sql, new { startDate, endDate });

        var result = new PaginatedResponseModel <AppAuditLogDurationStatModel> {
            Data = durations.ToList()
        };

        return(result);
    }
Ejemplo n.º 3
0
    public async Task <PaginatedResponseModel <AppAuditLogTrafficStatModel> > StatTrafficAsync(DateTime startDate, DateTime endDate)
    {
        var sql     = @"
            with d as (
                select generate_series(@startDate, @endDate, '1 day') as day
            )
            select
                date_trunc('day', d.day) as request_date,
                count(l.*) as request_count,
                coalesce(avg(l.duration), 0) as avg_duration,
                coalesce(max(l.duration), 0) as max_duration,
                coalesce(min(l.duration), 0) as min_duration
            from d
            left join public.app_audit_logs l on l.start_at::date = d.day
            group by d.day;
        ";
        var conn    = Session.Connection;
        var trafics = await conn.QueryAsync <AppAuditLogTrafficStatModel>(
            sql, new { startDate, endDate }
            );

        var result = new PaginatedResponseModel <AppAuditLogTrafficStatModel> {
            Data = trafics.ToList()
        };

        return(result);
    }
        public ActionResult <PaginatedResponseModel <Message> > GetMessages([FromQuery] PaginationParams param, string by)
        {
            var userID = User.FindFirst(x => x.Type == "UserID").Value;

            PaginatedResponse <Message> messages;

            switch (by)
            {
            case "by":
            {
                messages = new PaginatedResponse <Message>(_messageService.GetAllSentByUser(userID).OrderByDescending(x => x.Sent), param.PageSize, param.PageIndex);
            } break;

            case "to":
            {
                messages = new PaginatedResponse <Message>(_messageService.GetAllSentToUser(userID).OrderByDescending(x => x.Sent), param.PageSize, param.PageIndex);
            }
            break;

            default:
                messages = new PaginatedResponse <Message>(_messageService.GetAllSentByUser(userID).OrderByDescending(x => x.Sent), param.PageSize, param.PageIndex);
                break;
            }

            var response = new PaginatedResponseModel <Message>
            {
                Items        = messages.GetResult(),
                ResponseInfo = messages.GetResponseInfo()
            };

            return(response);
        }
Ejemplo n.º 5
0
        public async Task <ActionResult <PaginatedResponseModel <AppUserModel> > > GetAll(
            [FromQuery] UserSearchRequestModel model
            )
        {
            try {
                IQueryable <AppUser> query;
                if (string.IsNullOrEmpty(model.RoleName))
                {
                    query = userMgr.Users;
                }
                else
                {
                    var usersInRole = await userMgr.GetUsersInRoleAsync(model.RoleName);

                    query = usersInRole.AsQueryable();
                }
                if (model.UserName.IsNotNullOrEmpty())
                {
                    query = query.Where(u => u.UserName.Contains(model.UserName));
                }
                var total    = query.LongCount();
                var sortInfo = model.SortBy.Split(
                    ':',
                    StringSplitOptions.RemoveEmptyEntries
                    );
                var propertyName = sortInfo[0];
                var isAsc        = sortInfo[1].Equals(
                    "ASC",
                    StringComparison.OrdinalIgnoreCase
                    );
                var data = query
                           .AddOrderBy(sortInfo[0], isAsc)
                           .Skip(model.Skip)
                           .Take(model.Take)
                           .ToList();
                var models = new List <AppUserModel>();
                foreach (var user in data)
                {
                    var claims = await userMgr.GetClaimsAsync(user);

                    var userModel = user.ToUserModel(mapper, claims);
                    models.Add(userModel);
                }
                var result = new PaginatedResponseModel <AppUserModel> {
                    Skip  = model.Skip,
                    Take  = model.Take,
                    Total = total,
                    Data  = models
                };
                return(result);
            }
            catch (Exception ex) {
                logger.LogError(ex, $"Can not search user with {model.ToJson()} .");
                return(this.InternalServerError(ex));
            }
        }
            public async void ListOfValidatorsIsReturned()
            {
                var expectedResponseModel = new PaginatedResponseModel <BankValidator>
                {
                    Count    = 2,
                    Next     = null,
                    Previous = null,
                    Results  =
                        new List <BankValidator>()
                    {
                        new BankValidator
                        {
                            AccountNumber         = "ad1f8845c6a1abb6011a2a434a079a087c460657aad54329a84b406dce8bf314",
                            IpAddress             = "192.168.1.74",
                            NodeIdentifier        = "3afdf37573f1a511def0bd85553404b7091a76bcd79cdcebba1310527b167521",
                            Port                  = "8000",
                            Protocol              = "http",
                            Version               = "v1.0",
                            DefaultTransactionFee = 4,
                            RootAccountFile       = "https://gist.githubusercontent.com/buckyroberts/519b5cb82a0a5b5d4ae8a2175b722520/raw/9237deb449e27cab93cb89ea3346ecdfc61fe9ea/0.json",
                            RootAccountFileHash   = "4694e1ee1dcfd8ee5f989e59ae40a9f751812bf5ca52aca2766b322c4060672b",
                            SeedBlockIdentifier   = "",
                            DailyConfirmationRate = "0",
                            Trust                 = "100.00"
                        },
                        new BankValidator
                        {
                            AccountNumber         = "4d2ec91f37bc553bc538e91195669b666e26b2ea3e4e31507e38102a758d4f86",
                            IpAddress             = "86.168.1.23",
                            NodeIdentifier        = "59479a31c3b91d96bb7a0b3e07f18d4bf301f1bb0bde05f8d36d9611dcbe7cbf",
                            Port                  = "80",
                            Protocol              = "http",
                            Version               = "v1.0",
                            DefaultTransactionFee = 2,
                            RootAccountFile       = "https://gist.githubusercontent.com/buckyroberts/519b5cb82a0a5b5d4ae8a2175b722520/raw/9237deb449e27cab93cb89ea3346ecdfc61fe9ea/0.json",
                            RootAccountFileHash   = "4694e1ee1dcfd8ee5f989e59ae40a9f751812bf5ca52aca2766b322c4060672b",
                            SeedBlockIdentifier   = "",
                            DailyConfirmationRate = "1",
                            Trust                 = "91.56"
                        }
                    }
                };

                var service = BuildBankValidatorMock(expectedResponseModel);

                var validators = await service.GetAllValidatorsAsync();

                var expectedResponseModelStr = JsonConvert.SerializeObject(expectedResponseModel);
                var actualResponseModelStr   = JsonConvert.SerializeObject(validators);

                Assert.Equal(expectedResponseModelStr, actualResponseModelStr);
            }
Ejemplo n.º 7
0
    public async Task <PaginatedResponseModel <AppAuditLogStatusStatModel> > StatStatusAsync(DateTime startDate, DateTime endDate)
    {
        var query = Session.Query <AppAuditLog>()
                    .Where(log => log.StartAt <= startDate && log.StartAt < endDate)
                    .GroupBy(log => log.ResponseCode)
                    .Select(g => new AppAuditLogStatusStatModel {
            StatusCode   = g.Key,
            RequestCount = g.Count()
        }).OrderBy(x => x.StatusCode);
        var result = new PaginatedResponseModel <AppAuditLogStatusStatModel> {
            Data = await query.ToListAsync()
        };

        return(result);
    }
Ejemplo n.º 8
0
        public static IConnectedBanksService BuildGetBanksAsyncValidatorServiceMock(PaginatedResponseModel <ValidatorBank> expectedResponseModel)
        {
            var response = new HttpResponseMessage(HttpStatusCode.OK);

            response.Content = new StringContent(JsonConvert.SerializeObject(expectedResponseModel), Encoding.UTF8, "application/json");

            var requestSenderMock          = new Mock <IHttpRequestSender>();
            IConnectedBanksService service = new ConnectedBanksService(requestSenderMock.Object);

            requestSenderMock
            .Setup(x => x.GetAsync("/banks"))
            .ReturnsAsync(response);

            return(service);
        }
        public static IValidatorService BuildBankValidatorMock(PaginatedResponseModel <BankValidator> expectedResponseModel)
        {
            var requestSender = new Mock <IHttpRequestSender>();

            var getAllResponse = new HttpResponseMessage(System.Net.HttpStatusCode.OK);

            getAllResponse.Content = new StringContent(JsonConvert.SerializeObject(expectedResponseModel), Encoding.UTF8, "application/json");

            requestSender
            .Setup(x => x.GetAsync(It.IsAny <string>()))
            .Returns(Task.FromResult(getAllResponse));

            var validatorService = new ValidatorService(requestSender.Object);

            return(validatorService);
        }
Ejemplo n.º 10
0
        public async Task <IActionResult> Get([FromQuery] int pageSize = 30, [FromQuery] int pageIndex = 0)
        {
            IEnumerable <VideoResponse> result = await VideoService.GetVideoAsync();

            int totalItems = result.Count();

            IEnumerable <VideoResponse> videosOnPage = result
                                                       .OrderBy(x => x.Title)
                                                       .Skip(pageSize * pageIndex)
                                                       .Take(pageSize);

            PaginatedResponseModel <VideoResponse> model = new PaginatedResponseModel <VideoResponse>
                                                               (pageIndex, pageSize, totalItems, videosOnPage);

            return(Ok(model));
        }
Ejemplo n.º 11
0
        public async Task <IActionResult> Get([FromQuery] int pageSize = 30, [FromQuery] int pageIndex = 0)
        {
            IEnumerable <GenreResponse> result = await GenreService.GetGenreAsync();

            int totalItems = result.ToList().Count;

            IEnumerable <GenreResponse> genresOnPage = result
                                                       .OrderBy(x => x.Name)
                                                       .Skip(pageSize * pageIndex)
                                                       .Take(pageSize);

            PaginatedResponseModel <GenreResponse> model = new PaginatedResponseModel <GenreResponse>
                                                               (pageIndex, pageSize, totalItems, genresOnPage);

            return(Ok(model));
        }
Ejemplo n.º 12
0
            public async void ListOfBanksIsReturned()
            {
                var expectedResponseModel = new PaginatedResponseModel <ValidatorBank>
                {
                    Count    = 2,
                    Next     = null,
                    Previous = null,
                    Results  =
                        new List <ValidatorBank>
                    {
                        new ValidatorBank
                        {
                            AccountNumber          = "5e12967707909e62b2bb2036c209085a784fabbc3deccefee70052b6181c8ed8",
                            IpAddress              = "83.168.1.232",
                            NodeIdentifier         = "d5356888dc9303e44ce52b1e06c3165a7759b9df1e6a6dfbd33ee1c3df1ab4d1",
                            Port                   = 80,
                            Protocol               = "http",
                            Version                = "v1.0",
                            DefaultTransactionFee  = 1,
                            ConfirmationExpiration = null,
                            Trust                  = "100.00"
                        },
                        new ValidatorBank
                        {
                            AccountNumber          = "db1a9ac3c356ab744ab4ad5256bb86c2f6dfaa7c1aece1f026a08dbd8c7178f2",
                            IpAddress              = "74.124.1.68",
                            NodeIdentifier         = "3214108063cda7b259782c57ff8cec343ad2f1ad35baf38c3503db5cf6f3b2f7",
                            Port                   = 80,
                            Protocol               = "http",
                            Version                = "v1.0",
                            DefaultTransactionFee  = 2,
                            ConfirmationExpiration = null,
                            Trust                  = "98.32"
                        }
                    }
                };

                var service = BuildGetBanksAsyncValidatorServiceMock(expectedResponseModel);

                var banks = await service.GetBanksAsync();

                var expectedResponseModelStr = JsonConvert.SerializeObject(expectedResponseModel);
                var actualResponseModelStr   = JsonConvert.SerializeObject(banks);

                Assert.Equal(expectedResponseModelStr, actualResponseModelStr);
            }
Ejemplo n.º 13
0
    public async Task <ActionResult <PaginatedResponseModel <AppRoleModel> > > GetAll(
        [FromQuery] AppRoleSearchModel model
        )
    {
        try {
            var data = await identityRepo.SearchAsync(model);

            var result = new PaginatedResponseModel <AppRoleModel> {
                Skip  = model.Skip,
                Take  = model.Take,
                Total = data.Count,
                Data  = data
            };
            return(result);
        }
        catch (Exception ex) {
            logger.LogError(ex, $"Can not search roles with {model.ToJson()}");
            return(this.InternalServerError(ex));
        }
    }
        public async Task <PaginatedResponseModel <TodoItem> > GetAllTodoItems(GetAllTodoItemRequestModel request)
        {
            var response = new PaginatedResponseModel <TodoItem>();

            try
            {
                if (request.Page <= 0)
                {
                    response.Status  = ResponseCodes.ValidationError;
                    response.Message = "Page must be a number greater than 0";

                    return(response);
                }

                if (request.PageSize <= 0)
                {
                    response.Status  = ResponseCodes.ValidationError;
                    response.Message = "Page size must be a number greater than 0";

                    return(response);
                }

                response.Data = await _todoItemProvider.GetAllTodoItemsAsync(request);

                response.Status  = ResponseCodes.Success;
                response.Message = "Success";

                return(response);
            }
            catch (Exception e)
            {
                response.Status = ResponseCodes.ProcessError;
                var logMessage = response.Message = "Failed to get todo items.";

                _logger.LogError(e, logMessage + " | Request: {@0}", request);

                return(response);
            }
        }