コード例 #1
0
        public async Task GetCaseworkerByCaseworkerIdFails()
        {
            //Arrange
            var helperHttpClientMoq = new Mock <ICaseworkerHttpClientHelper>();
            var configurationMoq    = new Mock <IConfiguration>();
            var id      = It.IsAny <string>();
            var context = GetContext();

            var response = new CaseworkerDataResponseModel(id, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(),
                                                           It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>());

            var error = new Error("123456", new string[] { "Caseworker data with the supplied caseworkerId is not found" }, "MCA");

            helperHttpClientMoq.Setup(x => x.GetCaseworkerDataByCaseworkerIdFromMomentumCoreAsync($"employees/{id}"))
            .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(error, HttpStatusCode.BadRequest)));

            var caseWorkerService = new CaseworkerService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object);

            //Act
            var result = await caseWorkerService.GetCaseworkerByIdAsync(id).ConfigureAwait(false);

            //Asert
            result.IsError.Should().BeTrue();
            result.Error.Errors[0].Should().Be("Caseworker data with the supplied caseworkerId is not found");
        }
コード例 #2
0
        public async Task GetCaseworkerByCaseworkerIdSuccess()
        {
            //Arrange
            var helperHttpClientMoq = new Mock <ICaseworkerHttpClientHelper>();
            var configurationMoq    = new Mock <IConfiguration>();
            var id      = It.IsAny <string>();
            var context = GetContext();

            var response = new CaseworkerDataResponseModel(id, It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(),
                                                           It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>());

            var responseData = JsonConvert.SerializeObject(response);

            helperHttpClientMoq.Setup(x => x.GetCaseworkerDataByCaseworkerIdFromMomentumCoreAsync($"employees/{id}"))
            .Returns(Task.FromResult(new ResultOrHttpError <string, Error>(responseData)));

            var caseWorkerService = new CaseworkerService(helperHttpClientMoq.Object, configurationMoq.Object, context.Object);

            //Act
            var result = await caseWorkerService.GetCaseworkerByIdAsync(id).ConfigureAwait(false);

            //Asert
            result.Should().NotBeNull();
            result.IsError.Should().BeFalse();
            result.Result.Should().BeEquivalentTo(response);
        }
コード例 #3
0
ファイル: CaseworkerService.cs プロジェクト: Avinash-TH/MEA
        public async Task <ResultOrHttpError <CaseworkerDataResponseModel, Error> > GetCaseworkerByIdAsync(string id)
        {
            var response = await _caseworkerHttpClient.GetCaseworkerDataByCaseworkerIdFromMomentumCoreAsync($"employees/{id}").ConfigureAwait(false);

            if (response.IsError)
            {
                var error = response.Error.Errors.Aggregate((a, b) => a + "," + b);
                Log.ForContext("CorrelationId", _correlationId)
                .ForContext("Client", _clientId)
                .ForContext("CaseworkerId", id)
                .Error("An error occured while retrieving caseworker data by CaseworkerId" + error);
                return(new ResultOrHttpError <CaseworkerDataResponseModel, Error>(response.Error, response.StatusCode.Value));
            }

            var content           = response.Result;
            var caseworkerDataObj = JsonConvert.DeserializeObject <CaseworkerData>(content);

            var dataToReturn = new CaseworkerDataResponseModel(caseworkerDataObj.Id, caseworkerDataObj.DisplayName, caseworkerDataObj.GivenName,
                                                               caseworkerDataObj.MiddleName, caseworkerDataObj.Initials, caseworkerDataObj.Email?.Address, caseworkerDataObj.Phone?.Number, caseworkerDataObj.CaseworkerIdentifier,
                                                               caseworkerDataObj.Description, caseworkerDataObj.IsActive, caseworkerDataObj.IsBookable);

            Log.ForContext("CorrelationId", _correlationId)
            .ForContext("Client", _clientId)
            .ForContext("CaseworkerId", caseworkerDataObj.Id)
            .Information("The caseworker details by CaseworkerId has been returned successfully");

            return(new ResultOrHttpError <CaseworkerDataResponseModel, Error>(dataToReturn));
        }
コード例 #4
0
        public async Task <ResultOrHttpError <CaseworkerList, Error> > GetAllCaseworkerDataFromMomentumCoreAsync(string path, int pageNumber)
        {
            var pageSize = 100;

            pageNumber = pageNumber == 0 ? 1 : pageNumber;
            List <CaseworkerDataResponseModel> totalRecords = new List <CaseworkerDataResponseModel>();

            var queryStringParams = $"pagingInfo.pageNumber={pageNumber}&pagingInfo.pageSize={pageSize}";

            var response = await _meaClient.GetAsync(path + "?" + queryStringParams).ConfigureAwait(false);

            if (response.IsError)
            {
                return(new ResultOrHttpError <CaseworkerList, Error>(response.Error, response.StatusCode.Value));
            }

            var content           = response.Result;
            var caseworkerDataObj = JsonConvert.DeserializeObject <PUnitData>(content);
            var records           = caseworkerDataObj.Data;

            foreach (var item in records)
            {
                var dataToReturn = new CaseworkerDataResponseModel(item.Id, item.DisplayName, item.GivenName, item.MiddleName, item.Initials,
                                                                   item.Email?.Address, item.Phone?.Number, item.CaseworkerIdentifier, item.Description, item.IsActive, item.IsBookable);
                totalRecords.Add(dataToReturn);
            }

            var responseData = new CaseworkerList()
            {
                PageNo           = pageNumber,
                TotalNoOfPages   = caseworkerDataObj.TotalPages,
                TotalSearchCount = caseworkerDataObj.TotalSearchCount,
                Result           = totalRecords
            };

            return(new ResultOrHttpError <CaseworkerList, Error>(responseData));
        }