Ejemplo n.º 1
0
        async Task StoreRuleAsync(Rule rule)
        {
            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?.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.Callback?.TimeoutStatus,
                Status               = Ztm.Data.Entity.Contexts.Main.TokenReceivingWatcherRuleStatus.Uncompleted,
            };

            using (var db = this.db.CreateDbContext())
            {
                if (rule.Callback != null)
                {
                    var callback = rule.Callback.Callback;

                    await db.WebApiCallbacks.AddAsync(new Ztm.Data.Entity.Contexts.Main.WebApiCallback()
                    {
                        Id             = callback.Id,
                        RegisteredIp   = callback.RegisteredIp,
                        RegisteredTime = callback.RegisteredTime,
                        Completed      = callback.Completed,
                        Url            = callback.Url,
                    });
                }

                await db.ReceivingAddresses.AddAsync(address);

                await db.ReceivingAddressReservations.AddAsync(reservation);

                await db.TokenReceivingWatcherRules.AddAsync(entity);

                await db.SaveChangesAsync();
            }
        }
Ejemplo n.º 2
0
        ReceivingAddress ToDomain(ReceivingAddressModel entity)
        {
            var r = new ReceivingAddress(
                entity.Id,
                BitcoinAddress.Create(entity.Address, this.network),
                entity.IsLocked,
                new List <ReceivingAddressReservation>());

            foreach (var reservation in entity.Reservations)
            {
                r.Reservations.Add(ToDomain(reservation, r));
            }

            return(r);
        }
Ejemplo n.º 3
0
        async Task CreateAddressAsync(ReceivingAddress address)
        {
            var entity = new Ztm.Data.Entity.Contexts.Main.ReceivingAddress()
            {
                Id       = address.Id,
                Address  = address.Address.ToString(),
                IsLocked = address.IsLocked,
            };

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

                await db.SaveChangesAsync();
            }
        }