public IEnumerable <GrmEventCreate> CreateGrmEvents(IEnumerable <GrmEventComponentCreate> grmEventComponentCreate) { var grmEventCreateList = new List <GrmEventCreate>(); using (var transaction = _grmEventContext.Database.BeginTransaction()) { try { foreach (var eventComponentCreate in grmEventComponentCreate) { var existingGrmEvent = Get(eventComponentCreate.GrmEventCreateDto.RevenueObjectId, eventComponentCreate.GrmEventCreateDto.EffectiveDateTime, eventComponentCreate.GrmEventCreateDto.EventType); if (existingGrmEvent != null) { eventComponentCreate.GrmEventCreateDto.GrmEventId = existingGrmEvent.Id; } else { var grmEvent = eventComponentCreate.GrmEventComponentDto.GrmEvent; var grmEventGroup = eventComponentCreate.GrmEventComponentDto.GrmEventGroup; var transactionHeader = eventComponentCreate.GrmEventComponentDto.TransactionHeader; var transactionDetail = eventComponentCreate.GrmEventComponentDto.TransactionDetail; // Create TransactionHeader _grmEventContext.TransactionHeaders.Add(transactionHeader); _grmEventContext.SaveChanges(); // Create TransactionDetail transactionDetail.Id = transactionHeader.Id; _grmEventContext.TransactionDetails.Add(transactionDetail); _grmEventContext.SaveChanges(); // Create GrmEventGroup grmEventGroup.Id = GetGrmEventNextNumber(GrmEventGroupTableId, transaction.GetDbTransaction()); grmEventGroup.TranId = transactionHeader.Id; _grmEventContext.GrmEventGroups.Add(grmEventGroup); _grmEventContext.SaveChanges(); // Create GrmEvent grmEvent.Id = GetGrmEventNextNumber(GrmEventTableId, transaction.GetDbTransaction()); grmEvent.GRMEventGroupId = grmEventGroup.Id; grmEvent.TranId = transactionHeader.Id; _grmEventContext.GrmEvent.Add(grmEvent); _grmEventContext.SaveChanges(); eventComponentCreate.GrmEventCreateDto.GrmEventId = grmEvent.Id; } grmEventCreateList.Add(eventComponentCreate.GrmEventCreateDto); } transaction.Commit(); } catch { transaction.Rollback(); throw; } } return(grmEventCreateList); }
public static void Build(GrmEventContext grmEventContext) { grmEventContext.GrmEvent.Add(new Models.V1.GrmEvent { Id = GrmEventId, EffDate = new DateTime(2011, 01, 01), EventType = SystemTypeId }); grmEventContext.GrmEvent.Add(new Models.V1.GrmEvent { Id = GrmEventId + 1, EffDate = new DateTime(2011, 01, 01), EventType = SystemTypeId }); grmEventContext.GrmEvent.Add(new Models.V1.GrmEvent { Id = GrmEventId + 2, EffDate = new DateTime(2011, 01, 01), EventType = SystemTypeId }); grmEventContext.SystemType.Add(new SystemType { Id = SystemTypeId, begEffDate = new DateTime(2011, 01, 01), effStatus = "A", shortDescr = "ACTIVE", descr = "ACTIVE", displayOrder = 0, sysTypeCatId = 1, tranId = 1000, editShortDescr = 1, editDescr = 1, canDeleteRow = 0, canSelectRow = 1, InternalId = 10055, depSysTypeId = 0 }); grmEventContext.SystemType.Add(new SystemType { Id = SystemTypeId, begEffDate = new DateTime(2011, 01, 02), effStatus = "I", shortDescr = "INACTIVE", descr = "INACTIVE" }); grmEventContext.GrmEventInformation.Add(new GrmEventInformation { GrmEventId = GrmEventId, Description = "UnitTestGrmEventInfo", EffectiveDate = new DateTime(2011, 01, 01), EventType = "Transfer", EventDate = new DateTime(2011, 02, 01), RevenueObjectId = 100 }); grmEventContext.GrmEvent.Add(new Models.V1.GrmEvent { Id = GrmEventId + 3, TranId = -1000, EventType = SystemTypeId, RevObjId = RevObjId, EffDate = new DateTime(2016, 1, 1) }); grmEventContext.SaveChanges(); }