Пример #1
0
        private async Task <RequestTraceTree> GetRequestInfoTrace(ByIdRequest req)
        {
            var requestInfo = await _storage.GetRequestInfo(req.Id);

            var requestInfoTrace = new RequestTraceTree
            {
                Info  = requestInfo,
                Nodes = default
            };

            var childs = await _storage.GetRequestInfoByParentId(requestInfo.Id);

            if (childs != null && childs.Count > 0)
            {
                requestInfoTrace.Nodes = new List <RequestTraceTree>();
            }

            foreach (var item in childs)
            {
                var trace = await GetRequestInfoTrace(new ByIdRequest {
                    Id = item.Id
                });

                requestInfoTrace.Nodes.Add(trace);
            }

            return(requestInfoTrace);
        }
Пример #2
0
            public async Task WhenGifExists_ThenReturnResult()
            {
                var request = new ByIdRequest(ApiKeys.Valid, GifIds.GifIdExists3);

                var response = await _sut.GetByIdAsync(request);

                Assert.That(response.Gif.Id, Is.EqualTo(GifIds.GifIdExists3));
            }
Пример #3
0
            public void WhenGifDoesNotExist_ThenThrowExceptionNotFound()
            {
                var request = new ByIdRequest(ApiKeys.Valid, GifIds.GifIdNotExists);

                var ex = Assert.ThrowsAsync <GiphyApiClientException>(() => _sut.GetByIdAsync(request));

                Assert.That(ex.HttpStatusCode, Is.EqualTo(ApiStatusCodes.NotFound));
            }
Пример #4
0
            public void WhenInvalidApKey_ThenThrowExceptionForbidden()
            {
                var request = new ByIdRequest(ApiKeys.Invalid, GifIds.GifIdExists3);

                var ex = Assert.ThrowsAsync <GiphyApiClientException>(() => _sut.GetByIdAsync(request));

                Assert.That(ex.HttpStatusCode, Is.EqualTo(ApiStatusCodes.Forbidden));
            }
Пример #5
0
        public async Task <string> DeleteJob(ByIdRequest req)
        {
            await _storage.DeleteMonitorJob(req.Id);

            await _scheduleService.UpdateMonitorJobAsync();

            return(Json(true));
        }
Пример #6
0
        public async Task <string> GetTraceList(ByIdRequest req)
        {
            var parent = await GetGrandParentRequestInfo(new ByIdRequest { Id = req.Id });

            var tree = await GetRequestInfoTrace(new ByIdRequest { Id = parent.Id });

            return(Json(new HttpResultEntity(1, "ok", tree)));
        }
Пример #7
0
        public async Task <string> GetTraceList(ByIdRequest req)
        {
            var parent = await GetGrandParentRequestInfo(new ByIdRequest { Id = req.Id });

            var tree = await GetRequestInfoTrace(new ByIdRequest { Id = parent.Id });

            return(Json(true, tree));
        }
Пример #8
0
        public async Task <string> DeleteJob(ByIdRequest req)
        {
            await _storage.DeleteMonitorJob(req.Id);

            await _scheduleService.UpdateMonitorJobAsync();

            return(Json(new HttpResultEntity(1, "ok", null)));
        }
Пример #9
0
        public async Task <string> GetRequestInfoDetail(ByIdRequest req)
        {
            var(requestInfo, requestDetail) = await _storage.GetRequestInfoDetail(req.Id);

            return(Json(new HttpResultEntity(1, "ok", new
            {
                Info = requestInfo,
                Detail = requestDetail
            })));
        }
Пример #10
0
        public async Task <string> DeleteJob(ByIdRequest req)
        {
            var deleteJob = await _storage.GetMonitorJob(req.Id.ToLong());

            await _storage.DeleteMonitorJob(req.Id.ToLong());

            await _scheduleService.UpdateMonitorJobAsync(deleteJob);

            return(Json(true));
        }
Пример #11
0
        public async Task <string> GetRequestInfoDetail(ByIdRequest req)
        {
            var(requestInfo, requestDetail) = await _storage.GetRequestInfoDetail(req.Id);

            return(Json(true, new
            {
                Info = requestInfo,
                Detail = requestDetail
            }));
        }
Пример #12
0
        public void ByIdRequest_Has_An_Id_Property_Of_Type_Integer()
        {
            //Arrange
            var request = new ByIdRequest <object>(HandlerMock.Object);

            //Act
            var id = request.Id;

            //Assert
            Assert.IsAssignableFrom <int>(id);
        }
Пример #13
0
        public void ByIdRequest_Inherit_From_Request()
        {
            //Arrange
            var type = typeof(Request <object>);

            //Act
            var request = new ByIdRequest <object>(DispatcherMock.Object);

            //Assert
            Assert.IsAssignableFrom(type, request);
        }
Пример #14
0
        public void BooleanBy_Inherit_From_ByIdRequest_Of_Bool()
        {
            //Arrange
            var type = typeof(ByIdRequest <bool>);

            //Act
            var request = new ByIdRequest(DispatcherMock.Object);

            //Assert
            Assert.IsAssignableFrom(type, request);
        }
Пример #15
0
        public async Task <string> ChangeJobState(ByIdRequest req)
        {
            var model = await _storage.GetMonitorJob(req.Id);

            model.Status = model.Status == 1 ? 0 : 1;

            await _storage.UpdateMonitorJob(model);

            await _scheduleService.UpdateMonitorJobAsync();

            return(Json(new HttpResultEntity(1, "ok", null)));
        }
Пример #16
0
        public async System.Threading.Tasks.Task ExecuteAsync_Call_HandleAsync()
        {
            //Arrange
            var handlerMock = BoleanHandlerMock;
            var request     = new ByIdRequest(handlerMock.Object);

            //Act
            var response = await request.ExecuteAsync();

            //Assert
            handlerMock.Verify(p => p.HandleAsync(request, default));
        }
Пример #17
0
        public async Task <IActionResult> Get(long id)
        {
            var requesterId = User.Identity.IsAuthenticated
                ? User.Claims.FirstOrDefault(c => c.Type == "sub")?.Value
                : "anonymous";
            var request = new ByIdRequest <long>(id);

            request.SetRequesterId(requesterId);
            var result = await _service.GetById(request).ConfigureAwait(false);

            return(result.Success ? Ok(result) : (IActionResult)BadRequest(result));
        }
Пример #18
0
        public async Task <string> ChangeJobState(ByIdRequest req)
        {
            var model = await _storage.GetMonitorJob(req.Id);

            model.Status = model.Status == 1 ? 0 : 1;

            await _storage.UpdateMonitorJob(model);

            await _scheduleService.UpdateMonitorJobAsync();

            return(Json(true));
        }
Пример #19
0
        private async Task <RequestInfo> GetGrandParentRequestInfo(ByIdRequest req)
        {
            var requestInfo = await _storage.GetRequestInfo(req.Id);

            if (requestInfo.ParentId.IsEmpty())
            {
                return(requestInfo);
            }
            else
            {
                return(await GetGrandParentRequestInfo(new ByIdRequest {
                    Id = requestInfo.ParentId
                }));
            }
        }
Пример #20
0
        private async Task <RequestInfo> GetGrandParentRequestInfo(ByIdRequest req)
        {
            var requestInfo = await _storage.GetRequestInfo(req.Id.ToLong());

            if (requestInfo.ParentId == 0)
            {
                return(requestInfo);
            }
            else
            {
                return(await GetGrandParentRequestInfo(new ByIdRequest {
                    Id = requestInfo.ParentId.ToString()
                }));
            }
        }
Пример #21
0
        public async Task <string> GetMonitor(ByIdRequest req)
        {
            string Id = req.Id;

            if (Id.IsEmpty() || Id == "0")
            {
                return(string.Empty);
            }

            var job = await _storage.GetMonitorJob(Id);

            if (job == null)
            {
                return(string.Empty);
            }

            var request = _monitorService.GetMonitorJobRequest(job);

            return(Json(new HttpResultEntity(1, "ok", request)));
        }
Пример #22
0
        public async Task <IResponse> GetById(ByIdRequest <long> request)
        {
            Logger.LogInformation(SharedResource.BeginMethodExecution,
                                  GetCallingMember());
            if (request == null || request.Id == default(long))
            {
                var error = new Error(1001, SharedResource.InvalidArgument);
                Logger.LogWarning(SharedResource.InvalidArgumentLog, GetCallingMember());
                Logger.LogInformation(SharedResource.EndMethodExecution, GetCallingMember());
                return(new FailureResponse(new[] { error }));
            }

            try {
                var result = await _repository
                             .GetSingleBy(x => x.Id == request.Id, x => new PersonDto(x), includes : x => x.Addresses)
                             .ConfigureAwait(false);

                if (result == null)
                {
                    var error = new Error(1001, SharedResource.RecordNotFound)
                    {
                        Description = string.Concat("Id", ":", request.Id)
                    };
                    Logger.LogWarning(SharedResource.RecordNotFoundLog, GetCallingMember());
                    Logger.LogInformation(SharedResource.EndMethodExecution, GetCallingMember());
                    return(new FailureResponse(new[] { error }));
                }

                await Bus.Publish <IPersonRetrieved>(
                    new PersonRetrieved(GetRequestId(), GetRemoteIp(), result.Name),
                    CancellationToken.None).ConfigureAwait(false);

                var response =
                    new PersonResponse(result);
                Logger.LogInformation(SharedResource.EndMethodExecution, GetCallingMember());
                return(response);
            }
            catch (Exception e) {
                return(HandleException(e));
            }
        }
Пример #23
0
        /// <summary>
        /// Returns GIF metadata when a user enters a GIF's unique ID.
        /// </summary>
        /// <param name="request">Request object.</param>
        /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
        /// <returns>The task object representing the asynchronous operation.</returns>
        public async Task <ByIdResponse> GetByIdAsync(ByIdRequest request, CancellationToken cancellationToken = default(CancellationToken))
        {
            var uri = _uriFactory.Create(request);

            return(await GetAsync <ByIdResponse>(uri, cancellationToken));
        }
Пример #24
0
        public async Task <string> GetMonitorJob(ByIdRequest req)
        {
            var model = await _storage.GetMonitorJob(req.Id);

            return(Json(new HttpResultEntity(1, "ok", model)));
        }
Пример #25
0
 public Uri Create(ByIdRequest request)
 {
     return(request.AddUriParams(new Uri(_settings.BaseUrl).SetPath($"v1/gifs/{request.GifId}")));
 }
Пример #26
0
        public async Task <string> GetMonitorJob(ByIdRequest req)
        {
            var model = await _storage.GetMonitorJob(req.Id);

            return(Json(true, model));
        }