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); } }
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; } }
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; } }
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); }
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()); }
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)); }
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 } ); } }
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 } ); } }