Exemple #1
0
        public async Task <IActionResult> Events(EventViewModel model)
        {
            ViewData["DbAddresult"] = "";
            ViewData["Message"]     = "Add a new event!";

            var user = await userManager.GetUserAsync(User);

            if (user == null)
            {
                throw new ApplicationException($"Unable to load user with ID '{userManager.GetUserId(User)}'.");
            }

            var res = await blockchainRepository.CreateEvent(model.Date.ToTimestamp(), model.TicketAmount,
                                                             model.TicketPrice, model.Info, model.IsTicketTradable, model.IsTicketCancelable, model.LastCancelDate.ToTimestamp(), model.Wif);

            string owner = await blockchainRepository.GetAddress(model.Wif);

            var eventId = await blockchainRepository.GetEventCount();

            bool addedToDb = false;

            if (res != "smth failed" && eventId != 1000000)
            {
                Event eve = new Event
                {
                    Id                 = ++eventId,
                    Date               = model.Date,
                    TicketAmount       = model.TicketAmount,
                    TicketPrice        = model.TicketPrice,
                    Name               = model.Info,
                    IsTicketCancelable = model.IsTicketCancelable,
                    IsTicketTradable   = model.IsTicketTradable,
                    LastCancelDate     = model.LastCancelDate,
                    TicketsBought      = 0,
                    TicketsCanceled    = 0,
                    Owner              = owner,
                    Verified           = false
                };
                addedToDb = eventRepository.AddEvent(eve);
            }

            if (res != "smth failed")
            {
                model.Link = "https://testnet.qtum.info/tx/" + res;
            }

            ViewData["Message"] = "Transaction ID:" + res;
            if (addedToDb)
            {
                ViewData["DbAddresult"] = "Added to DB";
            }
            else
            {
                ViewData["DbAddresult"] = "Failed to add to DB";
            }
            model.Events = eventRepository.FindEventsByOwnerId(owner);

            return(View(model));
        }