コード例 #1
0
        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);
        }
コード例 #2
0
        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();
        }