Example #1
0
        public CardUrlResult GetMemberCardUrls(string localeCode, int employerId, int cchId)
        {
            var           message = string.Empty;
            CardUrlResult result  = null;

            var employer = EmployerCache.Employers.FirstOrDefault(e => e.Id.Equals(employerId));

            if (employer == null)
            {
                message = string.Format("Card url request with employer {0} does not match any known employer",
                                        employerId);
                LogUtil.Log(message, LogLevel.Warn);
                return(result);
            }

            var resolvedLocaleCode = ResolveLocale(localeCode);
            var cardResults        = GetCardResults(cchId, employer, resolvedLocaleCode);

            if (cardResults == null || cardResults.Count() == 0)
            {
                message = string.Format("Unable to resolve member id cards for cchId {0} and localCode {1}",
                                        cchId, localeCode);
                LogUtil.Log(message, LogLevel.Info);
            }
            else
            {
                LogUtil.Trace(string.Format("Resolved member id cards {0} for cchId {0} and localCode {1}",
                                            cchId, localeCode));
                result = BuildResult(employer, cardResults);
            }

            return(result);
        }
Example #2
0
        private static CardUrlResult BuildResult(Employer employer, List <dynamic> cardResults)
        {
            var result = new CardUrlResult();

            result.Results = new List <CardResult>();
            var cardBaseAddress = "CardBaseAddress".GetConfigurationValue();

            cardResults.ForEach(cr => {
                var cardMemberData = new CardDetail();
                try {
                    cardMemberData = JsonConvert.DeserializeObject <CardDetail>(cr.MemberCard.CardMemberDataText);
                }
                catch { }

                var cardToken = new CardToken()
                {
                    EmployerId = employer.Id,
                    CardDetail = cardMemberData,
                    Expires    = DateTime.UtcNow.AddMinutes(Convert.ToInt16("TimeoutInMinutes".GetConfigurationValue()))
                };

                cardToken.CardDetail.CardTypeFileName = cr.CardType.FileName;
                cardToken.CardDetail.CardTypeId       = cr.MemberCard.CardTypeId;
                cardToken.CardDetail.CardViewModeId   = cr.CardViewMode.Id;

                var jwt = ClearCost.Security.JwtService.EncryptPayload(JsonConvert.SerializeObject(cardToken));

                var cardResult = new CardResult()
                {
                    CardName      = cr.CardTypeTranslation.CardTypeName,
                    ViewMode      = cr.CardViewMode.Name,
                    CardUrl       = string.Format("{0}/?tkn={1}|{2}", cardBaseAddress, employer.Id, jwt),
                    SecurityToken = jwt
                };

                result.Results.Add(cardResult);
            });

            return(result);
        }