예제 #1
0
        public async Task <AuctionEntry> RequestAuctionEntryInvoice(Guid auctionId, long amount, string winningMessage)
        {
            var auction = GetAuction(auctionId);

            if (auction == null)
            {
                return(null);
            }
            var guid           = Guid.NewGuid();
            var auctionInvoice = new AuctionInvoice
            {
                Amount         = amount,
                AuctionId      = auction.Id.ToString(),
                WinningMessage = winningMessage,
                AuctionEntryId = guid.ToString(),
            };

            var description = JsonSerializer.Serialize <AuctionInvoice>(auctionInvoice);
            var expiry      = (auction.Duration + auction.StartedAt) - Utility.Utility.DateTimeToUnix(DateTime.UtcNow);

            if (expiry < 1)
            {
                return(null);
            }
            var invoice = await _lndService.GetHoldInvoice(amount, description, expiry);

            var auctionEntry = new AuctionEntry
            {
                Id             = guid,
                State          = AuctionEntryState.CREATED,
                Amount         = amount,
                Description    = description,
                AuctionId      = auction.Id,
                PaymentHash    = invoice.paymentHash,
                Preimage       = invoice.preImage,
                PaymentRequest = invoice.payreq,
                Message        = winningMessage,
                CreatedAt      = Utility.Utility.DateTimeToUnix(DateTime.UtcNow)
            };

            using (var context = new AuctionContext())
            {
                auctionEntry = context.AuctionEntries.Add(auctionEntry).Entity;
                await context.SaveChangesAsync();
            }

            Console.WriteLine("created auction entry {0}", auctionEntry);
            return(auctionEntry);
        }
        public ActionResult CheckoutAuc(AuctionInvoice invc) //create of AucInvice
        {
            if (ModelState.IsValid)
            {
                db.AuctionInvoices.Add(invc); // (Modelvar).().Add(value entered in parameters)

                if ((db.SaveChanges()) > 0)   //
                {
                    TempData["msg"] = "Invoice Updated";
                    return(RedirectToAction("CustomersIndex"));
                }
                else
                {
                    return(View());
                }
            }
            return(View());
        }