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)); } }
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)); } } }