public HttpResponseMessage SendIdCardEmail([FromBody] MemberCardWebRequest cardWebRequest) { var hrm = Request.CreateResponse(HttpStatusCode.Unauthorized); var employerId = Request.EmployerID(); dynamic data = new ExpandoObject(); try { var cardService = new CardService(); var result = cardService.SendIdCardEmail(employerId, cardWebRequest); if (result.Item1) { hrm = Request.CreateResponse(HttpStatusCode.OK, (object)result.Item2); } else { hrm = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, result.Item3); } } catch (Exception exc) { LogUtil.Log("Exception in CardController.SendIdCardEmail", exc); hrm = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, exc.Message); } return(hrm); }
public Tuple <bool, dynamic, string> SendIdCardEmail(int employerId, MemberCardWebRequest cardWebRequest) { var isSuccess = false; dynamic data = new ExpandoObject(); var errorMessage = string.Empty; try { var fileId = Guid.NewGuid(); // Retrieve the web request stream from the Media website and convert it into an SVG file data.SvgSuccess = GetCardSvg(employerId, cardWebRequest, fileId); // Convert the SVG file into a PDF file var cardPdfFile = RenderCardPdf(employerId, fileId); var subject = string.IsNullOrEmpty(cardWebRequest.Subject) ? "Member ID Card" : cardWebRequest.Subject; var message = string.IsNullOrEmpty(cardWebRequest.Message) ? "Please see the attached PDF to view or print my ID card." : cardWebRequest.Message; var useInternalServer = EmailConfiguration.Settings.UseInternalServer; // Send PDF file as an email attachment to designated recipient isSuccess = EmailMessenger.Send(to: cardWebRequest.ToEmail, cc: cardWebRequest.CcEmail, subject: subject, message: message, isHtml: false, attachmentPath: cardPdfFile, isInternalServer: useInternalServer); } catch (Exception exc) { errorMessage = exc.Message; } return(new Tuple <bool, dynamic, string>(isSuccess, data, errorMessage)); }
private bool GetCardSvg(int employerId, MemberCardWebRequest cardWebRequest, Guid fileId) { try { var webClient = new WebClient(); var cardBaseAddress = "CardBaseAddress".GetConfigurationValue(); var url = string.Format("{0}/?tkn={1}|{2}", cardBaseAddress, employerId, cardWebRequest.CardToken); var cardSvgFile = string.Format("{0}card_{1}_{2}.svg", _cardFilesFolder, employerId, fileId); webClient.DownloadFile(url, cardSvgFile); return(true); } catch (Exception ex) { LogUtil.Log("Failure in CardService.GetMemberCardWebRequest", ex, Guid.NewGuid(), "CchWebAPI.Services.CardService"); return(false); } }
public void CanUseWapiToEmailIdCard() { var ctx = UnitTestContext.Get(EnvironmentHelper.GetEnvironment(), "*****@*****.**"); var memberUrlsResult = ApiUtil.GetJsonResult <dynamic>(ctx, "Animation/Card/CardUrls/en"); Assert.IsNotNull(memberUrlsResult); var cardWebRequest = new MemberCardWebRequest() { CardToken = memberUrlsResult.Results[0].SecurityToken, ToEmail = "*****@*****.**", Subject = "CanEmailIdCard Unit Test", Message = "Unit test result" }; var emailResult = ApiUtil.PostJson <MemberCardWebRequest>(ctx, "Animation/Card/Email", cardWebRequest); Assert.IsNotNull(emailResult); Assert.AreEqual(HttpStatusCode.OK, emailResult.Item1); //var cardController = new CardController(); //dynamic memberUrlsResult = cardController.GetMemberCardUrls("", TestAccounts.CaesarsAccounts.MarySmith.CchId); //Assert.IsNotNull(memberUrlsResult); //var cardWebRequest = new MemberCardWebRequest() { // CardToken = memberUrlsResult.Results[0].SecurityToken, // ToEmail = "*****@*****.**", // Subject = "CanEmailIdCard Unit Test", // Message = "Unit test result" //}; //var emailResult = cardController.SendIdCardEmail(cardWebRequest); //Assert.IsNotNull(emailResult); }