示例#1
0
        public GetTopMakelaarsResponse ExtractTopMakelaarsFromResponse(AanbodResponse response)
        {
            if (response == null)
            {
                throw new ArgumentNullException(nameof(response));
            }

            var topMakelaarsList = new List <TopMakelaar>();

            var aanbodObjects = response.objects.ToArray();
            var aanbodGroups  = aanbodObjects.GroupBy(x => x.MakelaarId)
                                .Select(group => new {
                MakelaarId   = group.Key,
                Count        = group.Count(),
                MakelaarNaam = group.First().MakelaarNaam
            })
                                .OrderByDescending(x => x.Count);

            foreach (var aanbodObject in aanbodGroups)
            {
                var topMakelaar = new TopMakelaar();
                topMakelaar.MakelaarId   = aanbodObject.MakelaarId;
                topMakelaar.Count        = aanbodObject.Count;
                topMakelaar.MakelaarName = aanbodObject.MakelaarNaam;
                topMakelaarsList.Add(topMakelaar);
            }

            var getTopmakelaarsResponse = new GetTopMakelaarsResponse();

            getTopmakelaarsResponse.topMakelaars = topMakelaarsList;

            return(getTopmakelaarsResponse);
        }
示例#2
0
        public void ExtractTopMakelaarsFromResponse_WithEmptyResponse_ShouldThrowException()
        {
            // Arrange
            const AanbodResponse response = null;

            // Act
            Action action = () => _sut.ExtractTopMakelaarsFromResponse(response);

            // Assert
            action.Should().ThrowExactly <ArgumentNullException>()
            .And.ParamName.Should().Be("response");
        }
示例#3
0
        // TODO: Automapper is a simpler solution instead, tried using it but kept throwing unsupported mapping exception, so used this as a temp. solution
        public GetAanbodResponse MapAanbodResponse(AanbodResponse response)
        {
            if (response == null)
            {
                throw new ArgumentNullException(nameof(response));
            }
            GetAanbodResponse getAanbodResponse = new GetAanbodResponse();
            int numObjects = response.objects.Length;

            getAanbodResponse.objects = new Contracts.Object[numObjects];
            int i = 0;

            foreach (var responseObject in response.objects)
            {
                var aanbodObject = new Contracts.Object();
                aanbodObject.MakelaarId      = responseObject.MakelaarId;
                aanbodObject.MakelaarNaam    = responseObject.MakelaarNaam;
                aanbodObject.Woonplaats      = responseObject.Woonplaats;
                getAanbodResponse.objects[i] = aanbodObject;
                i++;
            }

            return(getAanbodResponse);
        }