示例#1
0
        async Task StoreRuleAsync(Rule rule)
        {
            var callback = new Ztm.Data.Entity.Contexts.Main.WebApiCallback()
            {
                Id             = rule.Callback.Id,
                RegisteredIp   = rule.Callback.RegisteredIp,
                RegisteredTime = rule.Callback.RegisteredTime,
                Completed      = rule.Callback.Completed,
                Url            = rule.Callback.Url,
            };

            var address = new Ztm.Data.Entity.Contexts.Main.ReceivingAddress()
            {
                Id       = rule.AddressReservation.Address.Id,
                Address  = rule.AddressReservation.Address.Address.ToString(),
                IsLocked = rule.AddressReservation.Address.IsLocked,
            };

            var reservation = new Data.Entity.Contexts.Main.ReceivingAddressReservation()
            {
                Id         = rule.AddressReservation.Id,
                AddressId  = rule.AddressReservation.Address.Id,
                LockedAt   = rule.AddressReservation.ReservedDate,
                ReleasedAt = rule.AddressReservation.ReleasedDate,
            };

            var entity = new Ztm.Data.Entity.Contexts.Main.TokenReceivingWatcherRule()
            {
                Id                   = rule.Id,
                CallbackId           = rule.Callback.Id,
                PropertyId           = rule.Property.Value,
                AddressReservationId = rule.AddressReservation.Id,
                TargetAmount         = rule.TargetAmount.Indivisible,
                TargetConfirmation   = rule.TargetConfirmation,
                OriginalTimeout      = rule.OriginalTimeout,
                CurrentTimeout       = rule.OriginalTimeout,
                TimeoutStatus        = rule.TimeoutStatus,
                Status               = Ztm.Data.Entity.Contexts.Main.TokenReceivingWatcherRuleStatus.Uncompleted,
            };

            using (var db = this.db.CreateDbContext())
            {
                await db.WebApiCallbacks.AddAsync(callback);

                await db.ReceivingAddresses.AddAsync(address);

                await db.ReceivingAddressReservations.AddAsync(reservation);

                await db.TokenReceivingWatcherRules.AddAsync(entity);

                await db.SaveChangesAsync();
            }
        }
示例#2
0
        async Task CreateCallbackAsync(Callback callback)
        {
            var entity = new Ztm.Data.Entity.Contexts.Main.WebApiCallback()
            {
                Id             = callback.Id,
                RegisteredIp   = callback.RegisteredIp,
                RegisteredTime = callback.RegisteredTime.ToUniversalTime(),
                Completed      = callback.Completed,
                Url            = callback.Url,
            };

            using (var db = this.db.CreateDbContext())
            {
                await db.WebApiCallbacks.AddAsync(entity);

                await db.SaveChangesAsync();
            }
        }