示例#1
0
        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);
        }
示例#2
0
        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));
        }
示例#3
0
        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);
            }
        }
示例#4
0
        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);
        }