Exemplo n.º 1
0
        public async Task <ActionResult> GetWinner(int goognumber, int iddraw)

        {
            //get generic drawdetails
            var ticketDetails = await _context.Tickets.Where(s => s.Drawid == iddraw).ToListAsync();

            //var did = ticketDetails.Drawid;
            var draw = await _context.Draws.FindAsync(iddraw);

            //get status of winners
            //if (draw.)

            if (draw.Drawstatus == DrawStatus.Drawn)
            {
                var data = new
                {
                    status        = "fail",
                    winningTicket = "Winners have been selected for this draw",
                    message       = "Winners have been selected for this draw"
                };
                return(new JsonResult(data));
            }
            else
            {
                var    winningrecord = ticketDetails[goognumber - 1];
                string winner        = winningrecord.Ticketreference.ToString();
                var    data          = new
                {
                    status        = "success",
                    winningTicket = winner,
                    message       = "Winner Found"
                };
                winningrecord.Winstatus = WinStatus.Won;
                draw.drawwinners       += 1;
                var updateticketstatus = _tController.PutTickets(goognumber, winningrecord);
                var updatedrawstatus   = _dController.PutDraws(Convert.ToInt32(iddraw), draw);

                if (draw.noofwinners == draw.drawwinners)
                {
                    draw.Drawstatus = DrawStatus.Drawn;
                }
                else
                {
                }
                return(new JsonResult(data));
            }
        }
Exemplo n.º 2
0
        public async Task <ActionResult> GetWinner([FromBody] SelectWinnerRequest winnerRequest)
        {
            //validate first
            _logger.LogInformation("Someone just tried to check a ticket");
            //Logger.LogInfo("Ticket Enquiry:::" + winnerRequest.googrand);
            //var drawDetails = await _context.Tickets.Where(s => s.Drawid == winnerRequest.drawid && s.ConfirmStatus == ConfirmStatus.Confirmed && s.Winstatus != WinStatus.Won).OrderBy(s => Guid.NewGuid()).ToListAsync();
            var drawDetails = await _context.Tickets.Where(s => s.Drawid == winnerRequest.drawid && s.ConfirmStatus == ConfirmStatus.Confirmed && s.Winstatus != WinStatus.Won).ToListAsync();

            int drawdetailscount = drawDetails.Count();
            int minid            = 1;
            int maxid            = drawdetailscount;

            if ((winnerRequest.googrand < minid) || winnerRequest.googrand > maxid)
            {
                //return invalid random number
                var data = new
                {
                    status        = "fail",
                    winningTicket = "Please enter the correct generated ticket number between the minimum and maximum generated values",
                    message       = "Please enter the correct generated ticket number between the minimum and maximum generated values"
                };
                return(new JsonResult(data));
            }
            else
            {
                //get generic drawdetails
                // var ticketDetails = await _context.Tickets.Where(s => s.Drawid == winnerRequest.drawid).ToListAsync();
                //var did = ticketDetails.Drawid;
                var draw = await _context.Draws.FindAsync(winnerRequest.drawid);

                var item = await _context.Items.FindAsync(draw.Itemid);

                //get status of winners
                //if (draw.)

                if (draw.Drawstatus == DrawStatus.Drawn)
                {
                    var data = new
                    {
                        status        = "fail",
                        winningTicket = "Winners have already been selected for this draw",
                        message       = "Winners have already been selected for this draw"
                    };
                    return(new JsonResult(data));
                }
                else
                {
                    var    winningrecord = drawDetails[winnerRequest.googrand - 1];
                    string winner        = winningrecord.Ticketreference.ToString();
                    var    data          = new
                    {
                        status        = "success",
                        winningTicket = winner,
                        message       = "Winner Found",
                        item          = item.Itemdescription
                    };
                    winningrecord.Winstatus = WinStatus.Won;
                    draw.noofwinners       += 1;
                    if (draw.noofwinners == draw.drawwinners)
                    {
                        draw.Drawstatus = DrawStatus.Drawn;
                    }
                    else
                    {
                    }

                    await _tController.PutTickets(winningrecord.Id, winningrecord);

                    await _dController.PutDraws(Convert.ToInt32(winnerRequest.drawid), draw);

                    //send mail
                    // <body style='background-image: url(https://www.dropbox.com/s/labh6yvg1n4t1p7/ba-colorful-row-of-firework-shells-pretty-animated-gif-pic.gif?raw=1);'><p></p>" +
                    //"<img style = 'display:inline-block;width:100%;height:600px;'align='right'src ='https://www.dropbox.com/s/labh6yvg1n4t1p7/ba-colorful-row-of-firework-shells-pretty-animated-gif-pic.gif?raw=1'alt='fireworks'></a>" +

                    string sqlFormattedDate = draw.Drawdate.HasValue
                    ? draw.Drawdate.Value.ToString("dd-MMMM-yyyy")
                    : "<not available>";
                    var    subject = "Ticket Request Successful";
                    var    body    = "";
                    string body2   = @"<!DOCTYPE html>
                        <html>
                        <head>
                        <style>
                        </style>
                        </head>
                        <body>" +
                                     "<img style='display:block;width:10%;height:10%;margin-left: auto;margin-right: auto;'src='https://www.dropbox.com/s/0p1flnq0voo7hn9/oftcoftlogosmall.jpg?raw=1'alt='felt lucky'></a>" +
                                     "<p></p>" +
                                     "<h1 style = 'font-family: Arial, sans-serif; font-size: 185%; color:#000000	;'> Congratulations "+ winningrecord.Firstname + "!!!</h1>" +
                                     "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> You are the brand new winner of our giveaway with the following details</p>" +
                                     "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> Draw Date: " + sqlFormattedDate + "</p>" +
                                     "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> Item: " + item.Itemdescription + "</p>" +
                                     "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> Please call 08012345678 to claim your prize</p>" +
                                     "<p></p>" +
                                     "<a href='https://www.nationalgiveaway.com'><img style='display:block; width:100%;height:100%;' src='https://www.dropbox.com/s/medm6f3npfr4gh5/freegift.jpg?raw=1' alt = 'feeling lucky'></a>" +
                                     "<img style='display:block;width:10%;height:10%;margin-left: auto;margin-right: auto;' src='https://www.dropbox.com/s/0p1flnq0voo7hn9/oftcoftlogosmall.jpg?raw=1'alt='felt lucky'></a>" +
                                     "</body>" +
                                     "</html>";

                    try
                    {
                        await _emailService.ExecuteAsync("*****@*****.**", subject, body, body2);
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex, ex.Message);
                    }
                    //end send mail
                    //send text message
                    SendSms sendsms       = new SendSms();
                    string  phone         = winningrecord.Phonenumber.Substring(1, 10);
                    string  completephone = "+234" + phone;
                    string  smsbody       = "Congratulations " + winningrecord.Firstname + ", You are a winner of the following giveaway: " + item.Itemdescription + ". Draw Date: " + sqlFormattedDate + ". Please call 08012345678 to claim your prize ";
                    try
                    {
                        await sendsms.SendSmsMessage(completephone, smsbody);
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(ex, ex.Message);
                    }
                    //end send sms
                    return(new JsonResult(data));
                }
            }
        }
Exemplo n.º 3
0
        public async Task <ActionResult <ChargeSuccessResponse> > HandleCallback()
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json");
            var     configuration = builder.Build();
            string  secretkey     = configuration["paystacksk"];
            SendSms sendsms       = new SendSms();
            ChargeSuccessResponse paystackchargesuccessresponse = new ChargeSuccessResponse();
            string answer;

            using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
            {
                answer = await reader.ReadToEndAsync();
            }

            var      jsonanswer       = (HookResponse)JsonConvert.DeserializeObject(answer, typeof(HookResponse));
            var      amt              = jsonanswer.Data.Amount.ToString();
            var      normalizedamount = amt.Insert(amt.Length - 2, ".");
            DateTime curdate          = DateTime.Parse(DateTime.UtcNow.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss"));

            //compare signature
            //var signature = jsonanswer.Data.Authorization.Signature;
            //byte[] secretkeybytes = Encoding.UTF8.GetBytes(secretkey);
            //var mysignature = HashToString(answer, secretkeybytes);

            paystackchargesuccessresponse.Event             = jsonanswer.Event;
            paystackchargesuccessresponse.Status            = jsonanswer.Data.Status;
            paystackchargesuccessresponse.Reference         = jsonanswer.Data.Reference;
            paystackchargesuccessresponse.Amount            = normalizedamount;
            paystackchargesuccessresponse.GatewayResponse   = jsonanswer.Data.GatewayResponse;
            paystackchargesuccessresponse.IPAddress         = jsonanswer.Data.IpAddress;
            paystackchargesuccessresponse.AuthorizationCode = jsonanswer.Data.Authorization.AuthorizationCode;
            paystackchargesuccessresponse.Signature         = jsonanswer.Data.Authorization.Signature;
            paystackchargesuccessresponse.Fees          = jsonanswer.Data.Fees.ToString();
            paystackchargesuccessresponse.CustomerID    = jsonanswer.Data.Customer.Id.ToString();
            paystackchargesuccessresponse.TimeofPayment = jsonanswer.Data.PaidAt.ToString();
            paystackchargesuccessresponse.Last4         = jsonanswer.Data.Authorization.Last4.ToString();
            paystackchargesuccessresponse.ExpiryMonth   = jsonanswer.Data.Authorization.ExpMonth.ToString();
            paystackchargesuccessresponse.ExpiryYear    = jsonanswer.Data.Authorization.ExpYear.ToString();
            paystackchargesuccessresponse.Bank          = jsonanswer.Data.Authorization.Bank;
            paystackchargesuccessresponse.CardType      = jsonanswer.Data.Authorization.CardType;
            paystackchargesuccessresponse.Channel       = jsonanswer.Data.Authorization.Channel;
            paystackchargesuccessresponse.CustomerCode  = jsonanswer.Data.Customer.CustomerCode;
            paystackchargesuccessresponse.CustomerID    = jsonanswer.Data.Customer.Id.ToString();
            paystackchargesuccessresponse.CustomerEmail = jsonanswer.Data.Customer.Email;
            paystackchargesuccessresponse.CountryCode   = jsonanswer.Data.Authorization.CountryCode;


            if (paystackchargesuccessresponse.Status == "success")
            {
                //save transaction to Transaction table
                DateTime    dateTime    = DateTime.Parse(DateTime.UtcNow.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss"));
                DateTime    paymentdate = DateTime.Parse(paystackchargesuccessresponse.TimeofPayment);
                Transaction transaction = new Transaction()
                {
                    TransactionStatus  = TransactionStatus.Confirmed,
                    Pspaymentreference = paystackchargesuccessresponse.Reference,
                    IPAddress          = paystackchargesuccessresponse.IPAddress,
                    Bank         = paystackchargesuccessresponse.Bank,
                    Email        = paystackchargesuccessresponse.CustomerEmail,
                    Totalamount  = Convert.ToDecimal(paystackchargesuccessresponse.Amount),
                    customercode = paystackchargesuccessresponse.CustomerCode,
                    customerid   = paystackchargesuccessresponse.CustomerID,
                    cardchannel  = paystackchargesuccessresponse.Channel,
                    cardtype     = paystackchargesuccessresponse.CardType,
                    cardlast4    = paystackchargesuccessresponse.Last4,
                    cardexpmonth = paystackchargesuccessresponse.ExpiryMonth,
                    cardexpyear  = paystackchargesuccessresponse.ExpiryYear,
                    countrycode  = paystackchargesuccessresponse.CountryCode,
                    DateModified = dateTime,
                    Paymentdate  = paymentdate,
                };
                _context.Transaction.Add(transaction);

                await _context.SaveChangesAsync();

                //update ticket table with references
                var ticketdetails = await _context.Tickets.Where(s => s.PaystackReference == paystackchargesuccessresponse.Reference).ToListAsync();

                Random generator = new Random();
                String r2;
                String r;


                var tran = await _context.Transaction.Where(s => s.Pspaymentreference == paystackchargesuccessresponse.Reference).FirstOrDefaultAsync();

                foreach (var e in ticketdetails)
                {
                    r2 = generator.Next(0, 99).ToString("D2");
                    r  = generator.Next(0, 999999).ToString("D6");
                    var ticketRef = e.Firstname.Substring(0, 1).ToUpper() + e.Lastname.Substring(0, 1).ToUpper() + r2 + DateTime.Now.ToString("ss") + r;
                    e.Ticketreference = ticketRef;
                    e.ConfirmStatus   = ConfirmStatus.Confirmed;
                    e.transactionid   = tran.Id;
                    e.Datemodified    = curdate;
                    await _tController.PutTickets(e.Id, e);
                }
                //Send email to Customers after getting all ticket references
                //ticket details
                var ticketdetails2 = await _context.Tickets.Where(s => s.PaystackReference == paystackchargesuccessresponse.Reference).ToListAsync();

                //draw details

                var drawdetails = await(from p in _context.Draws
                                        join e in _context.Items
                                        on p.Itemid equals e.Id
                                        where p.Id == ticketdetails2[0].Drawid
                                        select new
                {
                    id       = p.Id,
                    itemid   = p.Itemid,
                    drawdate = p.Drawdate,
                    itemname = e.Itemdescription
                }).FirstOrDefaultAsync();
                //normalizedate
                string sqlFormattedDate = drawdetails.drawdate.HasValue
                  ? drawdetails.drawdate.Value.ToString("dd-MMMM-yyyy")
                  : "<not available>";

                //string[] ticket = new string[ticketdetails.Count]; //List<string> TicketReferencesList = new List<string>();//foreach (var e in ticketdetails2)//{ //TicketReferencesList.Add(e.Ticketreference);//}//string[] trs = TicketReferencesList.ToArray();//send email to customer//get params

                List <string> stringofticketids = new List <string>();
                StringBuilder ticketrows        = new StringBuilder();
                int           i = 1;
                //send
                foreach (var p in ticketdetails2)
                {
                    stringofticketids.Add(p.Ticketreference);
                    ticketrows.Append("<tr><td style='padding: 0.25rem; text-align: left; border: 1px solid #ccc;'>" + i++.ToString() + "</td> <td style ='padding: 0.25rem; text-align: left; border: 1px solid #ccc;'>" + p.Ticketreference + "</td></tr>");
                }

                var    subject  = "Ticket Request Successful";
                string ticketss = String.Join(",", stringofticketids);
                var    body     = "";
                string body2    = @"<!DOCTYPE html>
                        <html>
                        <head>
                        <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.3/css/bootstrap.min.css' integrity='sha384-Zug+QiDoJOrZ5t4lssLdxGhVrurbmBWopoEl+M6BdEfwnCJZtKxi1KgxUyJq13dy' crossorigin='anonymous'>
                        </head>
                        <body style='font: normal medium/1.4 sans-serif;'>
                        <img style='display:block;width:10%;height:10%;margin-left: auto;margin-right: auto;' src='https://www.dropbox.com/s/0p1flnq0voo7hn9/oftcoftlogosmall.jpg?raw=1' alt = 'felt lucky'></a>" +
                                  "<h1 style = 'font-family: Arial, sans-serif; font-size: 185%; color:#000000;'> Congratulations!!!" + ticketdetails2[0].Firstname + "</h1>" +
                                  "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> You have successfully entered into the National Giveaways Draw. Find draw details and ticket reference(s) below</p>" +
                                  "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> Draw Date: " + sqlFormattedDate + "</p>" +
                                  "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> Draw Date: " + drawdetails.itemname + "</p>" +
                                  "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> Ticket Reference(s)</p>" +
                                  "<table style='border-collapse: collapse; width: 100%;'>" +
                                  "<tr style='background-color:#595959; color:#FFFFFF'><th style='padding: 0.25rem; text-align: left; border: 1px solid #ccc;'>S/N</th><th style='padding: 0.25rem; text-align: left; border: 1px solid #ccc;'>Ticket Reference</th></tr>" +
                                  //"<tr><td>1</td> <td> ABC12344674HH </td> </tr>" +
                                  //"<tr><td>2</td> <td> AHDN3J32K2K22 </td> </tr>" +
                                  //"<tr><td>3</td><td> AHDN3J32K2K22 </td> </tr>" +
                                  ticketrows +
                                  //
                                  "</table>" +
                                  "<p></p>" +
                                  "<a href='https://www.nationalgiveaway.com'><img style='display:block; width:100%;height:100%;' src='https://www.dropbox.com/s/medm6f3npfr4gh5/freegift.jpg?raw=1' alt = 'feeling lucky'></a>" +
                                  "</body>" +
                                  "</html>";
                //EmailSender sender = new EmailSender();
                try
                {
                    await _emailService.ExecuteAsync(ticketdetails2[0].Emailaddress, subject, body, body2);
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, ex.Message);
                }
                //send text message.
                string phone         = ticketdetails2[0].Phonenumber.Substring(1, 10);
                string completephone = "+234" + phone;
                string smsbody       = "Hi " + ticketdetails2[0].Firstname + ", you have successfully purchased a ticket for the following item: " + drawdetails.itemname + ". Draw Date: " + drawdetails.drawdate + ". Tickets: " + ticketss;
                try
                {
                    await sendsms.SendSmsMessage(completephone, smsbody);
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, ex.Message);
                }//end send sms
            }
            // DateTime curdate = DateTime.Parse(DateTime.UtcNow.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss"));
            //DateTime nigerianTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(curdate, "W. Central Africa Standard Time");s
            return(paystackchargesuccessresponse);
        }
Exemplo n.º 4
0
        public async Task <ActionResult <ChargeSuccessResponse> > HandleCallback()
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json");
            var    configuration = builder.Build();
            string secretkey     = configuration["paystacksk"];

            ChargeSuccessResponse paystackchargesuccessresponse = new ChargeSuccessResponse();
            string answer;

            using (StreamReader reader = new StreamReader(Request.Body, Encoding.UTF8))
            {
                answer = await reader.ReadToEndAsync();
            }

            var jsonanswer       = (HookResponse)JsonConvert.DeserializeObject(answer, typeof(HookResponse));
            var amt              = jsonanswer.Data.Amount.ToString();
            var normalizedamount = amt.Insert(amt.Length - 2, ".");

            //compare signature
            //var signature = jsonanswer.Data.Authorization.Signature;
            //byte[] secretkeybytes = Encoding.UTF8.GetBytes(secretkey);
            //var mysignature = HashToString(answer, secretkeybytes);
            paystackchargesuccessresponse.Event             = jsonanswer.Event;
            paystackchargesuccessresponse.Status            = jsonanswer.Data.Status;
            paystackchargesuccessresponse.Reference         = jsonanswer.Data.Reference;
            paystackchargesuccessresponse.Amount            = normalizedamount;
            paystackchargesuccessresponse.GatewayResponse   = jsonanswer.Data.GatewayResponse;
            paystackchargesuccessresponse.IPAddress         = jsonanswer.Data.IpAddress;
            paystackchargesuccessresponse.AuthorizationCode = jsonanswer.Data.Authorization.AuthorizationCode;
            paystackchargesuccessresponse.Signature         = jsonanswer.Data.Authorization.Signature;
            paystackchargesuccessresponse.Fees          = jsonanswer.Data.Fees.ToString();
            paystackchargesuccessresponse.CustomerID    = jsonanswer.Data.Customer.Id.ToString();
            paystackchargesuccessresponse.TimeofPayment = jsonanswer.Data.PaidAt.ToString();
            paystackchargesuccessresponse.Last4         = jsonanswer.Data.Authorization.Last4.ToString();
            paystackchargesuccessresponse.ExpiryMonth   = jsonanswer.Data.Authorization.ExpMonth.ToString();
            paystackchargesuccessresponse.ExpiryYear    = jsonanswer.Data.Authorization.ExpYear.ToString();
            paystackchargesuccessresponse.Bank          = jsonanswer.Data.Authorization.Bank;
            paystackchargesuccessresponse.CardType      = jsonanswer.Data.Authorization.CardType;
            paystackchargesuccessresponse.Channel       = jsonanswer.Data.Authorization.Channel;
            paystackchargesuccessresponse.CustomerCode  = jsonanswer.Data.Customer.CustomerCode;
            paystackchargesuccessresponse.CustomerID    = jsonanswer.Data.Customer.Id.ToString();
            paystackchargesuccessresponse.CustomerEmail = jsonanswer.Data.Customer.Email;
            paystackchargesuccessresponse.CountryCode   = jsonanswer.Data.Authorization.CountryCode;


            if (paystackchargesuccessresponse.Status == "success")
            {
                //save transaction to Transaction table
                DateTime    dateTime    = DateTime.Parse(DateTime.UtcNow.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss"));
                DateTime    paymentdate = DateTime.Parse(paystackchargesuccessresponse.TimeofPayment);
                Transaction transaction = new Transaction()
                {
                    TransactionStatus  = TransactionStatus.Confirmed,
                    Pspaymentreference = paystackchargesuccessresponse.Reference,
                    IPAddress          = paystackchargesuccessresponse.IPAddress,
                    Bank         = paystackchargesuccessresponse.Bank,
                    Email        = paystackchargesuccessresponse.CustomerEmail,
                    Totalamount  = Convert.ToDecimal(paystackchargesuccessresponse.Amount),
                    customercode = paystackchargesuccessresponse.CustomerCode,
                    customerid   = paystackchargesuccessresponse.CustomerID,
                    cardchannel  = paystackchargesuccessresponse.Channel,
                    cardtype     = paystackchargesuccessresponse.CardType,
                    cardlast4    = paystackchargesuccessresponse.Last4,
                    cardexpmonth = paystackchargesuccessresponse.ExpiryMonth,
                    cardexpyear  = paystackchargesuccessresponse.ExpiryYear,
                    countrycode  = paystackchargesuccessresponse.CountryCode,
                    DateModified = dateTime,
                    Paymentdate  = paymentdate,
                };
                _context.Transaction.Add(transaction);

                await _context.SaveChangesAsync();

                //update ticket table with references
                var ticketdetails = await _context.Tickets.Where(s => s.PaystackReference == paystackchargesuccessresponse.Reference).ToListAsync();

                Random generator = new Random();
                String r2;
                String r;

                var tran = await _context.Transaction.Where(s => s.Pspaymentreference == paystackchargesuccessresponse.Reference).FirstOrDefaultAsync();

                foreach (var e in ticketdetails)
                {
                    r2 = generator.Next(0, 99).ToString("D2");
                    r  = generator.Next(0, 999999).ToString("D6");
                    var ticketRef = e.Firstname.Substring(0, 1).ToUpper() + e.Lastname.Substring(0, 1).ToUpper() + r2 + DateTime.Now.ToString("ss") + r;
                    e.Ticketreference = ticketRef;
                    e.ConfirmStatus   = ConfirmStatus.Confirmed;
                    e.transactionid   = tran.Id;
                    await _tController.PutTickets(e.Id, e);
                }
                //Send email to Customers after getting all ticket references
                var ticketdetails2 = await _context.Tickets.Where(s => s.PaystackReference == paystackchargesuccessresponse.Reference).ToListAsync();

                //string[] ticket = new string[ticketdetails.Count];
                //List<string> TicketReferencesList = new List<string>();
                //foreach (var e in ticketdetails2)
                //{
                //    TicketReferencesList.Add(e.Ticketreference);
                //}
                //string[] trs = TicketReferencesList.ToArray();
                //send email to customer
                //get params
                List <string> stringofticketids = new List <string>();
                StringBuilder ticketrows        = new StringBuilder();
                int           i = 1;
                //send
                foreach (var p in ticketdetails2)
                {
                    stringofticketids.Add(p.Ticketreference);
                    ticketrows.Append("<tr><td>" + i++.ToString() + "</td> <td>" + p.Ticketreference + "</td></tr>");
                }

                var    subject  = "Ticket Request Successful";
                string ticketss = String.Join(",", stringofticketids);
                var    body     = "";
                string body2    = @"<!DOCTYPE html>
                        <html>
                        <head>
                        <style>
                        </style>
                        </head>
                        <body>
                        <img style='display:block;' align='right' src='https://www.dropbox.com/s/0p1flnq0voo7hn9/oftcoftlogosmall.jpg?raw=1' alt = 'felt lucky'></a>" +
                                  "<h1 style = 'font-family: Arial, sans-serif; font-size: 250%; color:#9370DB;'> Congratulations!!!</h1>" +
                                  "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> You have successfully entered into the National Giveaways Draw. Find draw details and ticket reference(s) below</p>" +
                                  "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> Draw Date: 11 December 2019</p>" +
                                  "<p style = 'font-family: Gill Sans, sans-serif; font-size: 160%; color:#666666;'> Ticket Reference(s)</p>" +
                                  "<table style='border:1px solid #d9d9d9;width:50%;font-family:Gill Sans, sans-serif;text-align:left; font-size: 130%; color:#666666;'>" +
                                  "<tr style='background-color:#595959; color:#FFFFFF'><td>S/N</td><td>Ticket Reference</td></tr> " +
                                  //"<tr><td>1</td> <td> ABC12344674HH </td> </tr>" +
                                  //"<tr><td>2</td> <td> AHDN3J32K2K22 </td> </tr>" +
                                  //"<tr><td>3</td><td> AHDN3J32K2K22 </td> </tr>" +
                                  ticketrows +
                                  //
                                  "</table>" +
                                  "<p></p>" +
                                  "<a href='https://www.nationalgiveaway.com'><img style='display:block; width:100%;height:100%;' src='https://www.dropbox.com/s/medm6f3npfr4gh5/freegift.jpg?raw=1' alt = 'feeling lucky'></a>" +
                                  "</body>" +
                                  "</html>";
                EmailSender sender = new EmailSender();
                await sender.Execute2(ticketdetails2[0].Emailaddress, subject, body, body2);
            }
            DateTime curdate = DateTime.Parse(DateTime.UtcNow.AddHours(1).ToString("yyyy-MM-dd HH:mm:ss"));

            //DateTime nigerianTime = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(curdate, "W. Central Africa Standard Time");s
            return(paystackchargesuccessresponse);
        }