public async Task <bool> SendEmailAsync(Common.DBTableModelsService.EmailService.EmailMessage emailMessage) { //Get list of claims string apiUrl = URLConfig.Notification.SendNotificationAPI(_apiUrls.NotificationAPI_SendEmail); var payLoad = new StringContent(JsonConvert.SerializeObject(emailMessage), Encoding.UTF8, "application/json"); var response = await _httpClient.PostAsync(apiUrl, payLoad); var data = await response.Content.ReadAsAsync <bool>(); return(data); //string apiUrl1 = URLConfig.Notification.SendNotificationAPI(_apiUrls.NotificationAPI_PublishEmail); //var response1 = await _httpClient.GetStringAsync(apiUrl1); //var data1 = !string.IsNullOrEmpty(response1) && JsonConvert.DeserializeObject<bool>(response1); //return data || data1; }
public async Task <IActionResult> Claim(int promotionId) { string userName = HttpContext.Session.GetString("username"); var customerProfile = (await _customerProfileService.CustomerProfile(userName)); var customerProfileId = customerProfile.CustomerProfileId; var customerEmailAddr = customerProfile.CustomerEmail; Claim claim = new Claim { PromotionId = promotionId, CustomerProfileId = customerProfileId }; var result = await _claimService.ClaimAsync(claim); if (result != null) { //Claim details int claimId = result.ClaimId; ClaimWithPromotionAndShopInfo cwpasi = await _claimService.RetrieveClaimWithPromotionAndShopInfoByClaimIdAsync(claimId); //QRCode string txtQrCode = $"ClaimId_{claimId}_ShopProfileId_{cwpasi.PromotionDto.ShopProfileId}_PromotionId_{cwpasi.PromotionDto.PromotionId}"; QRCodeGenerator qrCodeGenerator = new QRCodeGenerator(); QRCodeData qrCodeData = qrCodeGenerator.CreateQrCode(txtQrCode, QRCodeGenerator.ECCLevel.Q); QRCode qrCode = new QRCode(qrCodeData); Bitmap qrCodeImage = qrCode.GetGraphic(20); byte[] qrBytes = await BitmapToBytes(qrCodeImage); string qrCodeString = Convert.ToBase64String(qrBytes); /*mailkit*/ var emailAddr = new Common.DBTableModelsService.EmailService.EmailAddress { Address = customerEmailAddr, Name = userName }; var emailMessage = new Common.DBTableModelsService.EmailService.EmailMessage { FromAddresses = new List <Common.DBTableModelsService.EmailService.EmailAddress> { emailAddr }, ToAddresses = new List <Common.DBTableModelsService.EmailService.EmailAddress> { emailAddr }, Content = $@" <div style=""margin - left:0; ""> <img src=""data:image/png;base64,{qrCodeString}"" height=""300"" width=""300"" /> </div> <div> <br /><b>Shop:</b>{cwpasi.ShopProfileDto.ShopName} <br /><b>Promotion Title:</b>{cwpasi.PromotionDto.Header} <br /><b>Promotion Description:</b>{cwpasi.PromotionDto.Description} <br /><b>Promotion Start Date:</b>{cwpasi.PromotionDto.StartDate.ToString("yyyy-MM-dd")} <br /><b>Promotion End Date:</b>{cwpasi.PromotionDto.EndDate.ToString("yyyy-MM-dd")} </div> ", Subject = "PromotionsSG Claim Voucher" }; var emailResult = await _notificationService.SendEmailAsync(emailMessage); return(emailResult ? new JsonResult(result) : new JsonResult(null)); } return(new JsonResult(null)); }