Ejemplo n.º 1
0
        public GrmEventListCreateDto CreateGrmEvents(GrmEventListCreateDto grmEventListCreate)
        {
            var grmEventComponentCreateListDto = new List <GrmEventComponentCreateDto>();

            foreach (var grmEventCreate in grmEventListCreate.GrmEventList)
            {
                grmEventCreate.RevenueObjectId.ThrowBadRequestExceptionIfInvalid("RevenueObjectId");

                var grmEventComponentDto = HydrateGrmEventRelatedEntities(grmEventCreate.RevenueObjectId, grmEventCreate.EffectiveDateTime);

                grmEventComponentCreateListDto.Add(new GrmEventComponentCreateDto
                {
                    GrmEventComponentDto = grmEventComponentDto,
                    GrmEventCreateDto    = grmEventCreate
                });
            }

            try
            {
                var grmEventCreateListDto = _grmEventRepository.CreateGrmEvents(grmEventComponentCreateListDto.ToEntity()).ToDomain().ToList();
                return(new GrmEventListCreateDto
                {
                    GrmEventList = grmEventCreateListDto
                });
            }
            catch (Exception e)
            {
                throw new InternalServerErrorException(e.Message);
            }
        }
Ejemplo n.º 2
0
        private static void MapOwnerCreatedGrmEventToBvs(GrmEventListCreateDto createdEvents, BaseValueSegmentTransactionDto transaction)
        {
            var ownerCreated = createdEvents.GrmEventList.Where(o => o.ParentType == GrmEventParentType.Owner);

            foreach (var ownerGrmEvent in ownerCreated)
            {
                var owner = transaction.BaseValueSegmentOwners.Single(o => o.Id == ownerGrmEvent.ParentId);

                owner.GRMEventId = ownerGrmEvent.GrmEventId;
            }
        }
Ejemplo n.º 3
0
        private static void MapHeaderValueCreatedGrmEventToBvs(GrmEventListCreateDto createdEvents, BaseValueSegmentTransactionDto transaction)
        {
            var headerValueCreated = createdEvents.GrmEventList.Where(o => o.ParentType == GrmEventParentType.HeaderValue);

            foreach (var headerGrmEvent in headerValueCreated)
            {
                var header = transaction.BaseValueSegmentValueHeaders.Single(h => h.Id == headerGrmEvent.ParentId);

                header.GRMEventId = headerGrmEvent.GrmEventId;
            }
        }
Ejemplo n.º 4
0
        private GrmEventListCreateDto CreateMockDto()
        {
            var grmEventListCreate = new GrmEventListCreateDto();
            var grmEventCreate     = new GrmEventCreateDto();

            grmEventCreate.ParentId          = -1;
            grmEventCreate.ParentType        = Models.V1.GrmEventParentType.Owner;
            grmEventCreate.RevenueObjectId   = 100;
            grmEventCreate.EffectiveDateTime = new DateTime(2016, 1, 1);
            grmEventCreate.EventType         = 200;
            grmEventCreate.GrmEventId        = 300;

            grmEventListCreate.GrmEventList.Add(grmEventCreate);

            return(grmEventListCreate);
        }
Ejemplo n.º 5
0
        private async Task <int[]> CreateEventForTransaction(BaseValueSegmentTransactionDto transaction)
        {
            GrmEventListCreateDto eventsToBeCreated = new GrmEventListCreateDto();

            // get grm event that need to be created
            GetOwnerCreateGrmEventInformation(transaction, eventsToBeCreated);

            GetHeaderValueCreateGrmEventInformation(transaction, eventsToBeCreated);

            // call grm events to create
            var createdEvents = await _grmEventRepository.CreateAsync(eventsToBeCreated);

            // now map back
            MapOwnerCreatedGrmEventToBvs(createdEvents, transaction);

            MapHeaderValueCreatedGrmEventToBvs(createdEvents, transaction);

            return(createdEvents.GrmEventList.Select(e => e.GrmEventId).ToArray());
        }
Ejemplo n.º 6
0
        public void CreateGrmEventsFromBaseValueSegmentDtoMappingsOccurAndGetGrmEventIdArray()
        {
            var baseValueSegment = new BaseValueSegmentDto
            {
                BaseValueSegmentTransactions = new List <BaseValueSegmentTransactionDto>
                {
                    new BaseValueSegmentTransactionDto
                    {
                        BaseValueSegmentOwners = new List <BaseValueSegmentOwnerDto>
                        {
                            new BaseValueSegmentOwnerDto
                            {
                                Id = 5235,
                                GrmEventInformation = new GrmEventCreateInformation
                                {
                                    EffectiveDateTime = new DateTime(2012, 1, 1),
                                    RevenueObjectId   = 24661,
                                    EventType         = 34664
                                }
                            },
                            new BaseValueSegmentOwnerDto
                            {
                                Id = 5238,
                                GrmEventInformation = new GrmEventCreateInformation
                                {
                                    EffectiveDateTime = new DateTime(2012, 2, 1),
                                    RevenueObjectId   = 68656,
                                    EventType         = 9563463
                                }
                            }
                        }, BaseValueSegmentValueHeaders = new List <BaseValueSegmentValueHeaderDto>
                        {
                            new BaseValueSegmentValueHeaderDto
                            {
                                Id = 352523,
                                GrmEventInformation = new GrmEventCreateInformation
                                {
                                    EffectiveDateTime = new DateTime(2012, 1, 2),
                                    RevenueObjectId   = 6346436,
                                    EventType         = 312455
                                }
                            },
                            new BaseValueSegmentValueHeaderDto
                            {
                                Id = 352528,
                                GrmEventInformation = new GrmEventCreateInformation
                                {
                                    EffectiveDateTime = new DateTime(2012, 1, 3),
                                    RevenueObjectId   = 75544,
                                    EventType         = 65344
                                }
                            }
                        }
                    }
                }
            };

            var created = new GrmEventListCreateDto();

            created.GrmEventList.Add(new GrmEventCreateDto
            {
                GrmEventId = 44,
                ParentType = GrmEventParentType.Owner,
                ParentId   = 5235
            });
            created.GrmEventList.Add(new GrmEventCreateDto
            {
                GrmEventId = 45,
                ParentType = GrmEventParentType.Owner,
                ParentId   = 5238
            });
            created.GrmEventList.Add(new GrmEventCreateDto
            {
                GrmEventId = 46,
                ParentType = GrmEventParentType.HeaderValue,
                ParentId   = 352523
            });
            created.GrmEventList.Add(new GrmEventCreateDto
            {
                GrmEventId = 47,
                ParentType = GrmEventParentType.HeaderValue,
                ParentId   = 352528
            });

            _mockRepository.Setup(x => x.CreateAsync(It.Is <GrmEventListCreateDto>(y => y.GrmEventList.Count == 4 &&
                                                                                   y.GrmEventList[0].ParentId == 5235 && y.GrmEventList[0].ParentType == GrmEventParentType.Owner && y.GrmEventList[0].EffectiveDateTime == new DateTime(2012, 1, 1) && y.GrmEventList[0].EventType == 34664 &&
                                                                                   y.GrmEventList[1].ParentId == 5238 && y.GrmEventList[1].ParentType == GrmEventParentType.Owner && y.GrmEventList[1].EffectiveDateTime == new DateTime(2012, 2, 1) && y.GrmEventList[1].EventType == 9563463 &&
                                                                                   y.GrmEventList[2].ParentId == 352523 && y.GrmEventList[2].ParentType == GrmEventParentType.HeaderValue && y.GrmEventList[2].EffectiveDateTime == new DateTime(2012, 1, 2) && y.GrmEventList[2].EventType == 312455 &&
                                                                                   y.GrmEventList[3].ParentId == 352528 && y.GrmEventList[3].ParentType == GrmEventParentType.HeaderValue && y.GrmEventList[3].EffectiveDateTime == new DateTime(2012, 1, 3) && y.GrmEventList[3].EventType == 65344)))
            .ReturnsAsync(created);

            var results = _grmEventDomain.Create(baseValueSegment).Result;

            results.ShouldNotBeNull();
            results[0].ShouldBe(44);
            results[1].ShouldBe(45);
            results[2].ShouldBe(46);
            results[3].ShouldBe(47);
        }
 public async Task <GrmEventListCreateDto> CreateAsync(GrmEventListCreateDto grmEventCreateInformation)
 {
     return(await _httpClientWrapper.Post <GrmEventListCreateDto>(Url,
                                                                  "v1.1/GrmEvents/CreateGrmEvents", grmEventCreateInformation));
 }
        public IActionResult CreateGrmEvent([FromBody] GrmEventListCreateDto grmEventListCreate)
        {
            var grmEventList = _grmEventDomain.CreateGrmEvents(grmEventListCreate);

            return(new ObjectResult(grmEventList));
        }
Ejemplo n.º 9
0
        private static void GetHeaderValueCreateGrmEventInformation(BaseValueSegmentTransactionDto transaction, GrmEventListCreateDto eventsToBeCreated)
        {
            var valueHeadersThatNeedEvents = transaction.BaseValueSegmentValueHeaders.Where(o => o.GRMEventId == null);

            var baseValueSegmentValueHeaderDtos = valueHeadersThatNeedEvents as BaseValueSegmentValueHeaderDto[] ??
                                                  valueHeadersThatNeedEvents.ToArray();

            var notValidHeaderValues = baseValueSegmentValueHeaderDtos.Where(v => v.GrmEventInformation == null);

            if (notValidHeaderValues.Any())
            {
                throw new BadRequestException("No GRMEvent Id defined and no GRMEventCreateInformation was provided.");
            }

            foreach (var valueHeader in baseValueSegmentValueHeaderDtos)
            {
                eventsToBeCreated.GrmEventList.Add(
                    new GrmEventCreateDto
                {
                    ParentId          = valueHeader.Id,
                    ParentType        = GrmEventParentType.HeaderValue,
                    EffectiveDateTime = valueHeader.GrmEventInformation.EffectiveDateTime,
                    RevenueObjectId   = valueHeader.GrmEventInformation.RevenueObjectId,
                    EventType         = valueHeader.GrmEventInformation.EventType
                }
                    );
            }
        }
Ejemplo n.º 10
0
        private static void GetOwnerCreateGrmEventInformation(BaseValueSegmentTransactionDto transaction, GrmEventListCreateDto eventsToBeCreated)
        {
            var ownersThatNeedEvents = transaction.BaseValueSegmentOwners.Where(o => o.GRMEventId == null);

            var baseValueSegmentOwnerDtos = ownersThatNeedEvents as BaseValueSegmentOwnerDto[] ?? ownersThatNeedEvents.ToArray();

            var notValidOwners = baseValueSegmentOwnerDtos.Where(v => v.GrmEventInformation == null);

            if (notValidOwners.Any())
            {
                throw new BadRequestException("No GRMEvent Id defined and no GRMEventCreateInformation was provided.");
            }

            foreach (var owner in baseValueSegmentOwnerDtos)
            {
                eventsToBeCreated.GrmEventList.Add(
                    new GrmEventCreateDto
                {
                    // ReSharper disable once PossibleInvalidOperationException
                    ParentId          = owner.Id.Value,
                    ParentType        = GrmEventParentType.Owner,
                    EffectiveDateTime = owner.GrmEventInformation.EffectiveDateTime,
                    RevenueObjectId   = owner.GrmEventInformation.RevenueObjectId,
                    EventType         = owner.GrmEventInformation.EventType
                }
                    );
            }
        }