public async Task <List <Data.IdCard> > ExecuteAsync(int cchId, Employer employer) { if (cchId < 1) { throw new InvalidOperationException("Invalid member context."); } if (employer == null || string.IsNullOrEmpty(employer.ConnectionString)) { throw new InvalidOperationException("Invalid employer context."); } _repository.Initialize(employer.ConnectionString); List <Data.IdCard> result = new List <Data.IdCard>(); switch (employer.Id) { case 34: result = await _repository.GetIdCardsByCchIdAsyncV2(cchId, employer); break; default: result = await _repository.GetIdCardsByCchIdAsync(cchId); break; } var cardBaseAddress = "CardBaseAddress".GetConfigurationValue(); var timeout = "TimeoutInMinutes".GetConfigurationValue(); result.ForEach(r => { System.Diagnostics.Debug.Write(r.DetailText); //This whole section may have to be rethought depending on new data structures. //May require an interface break/ v2 in media as well. var cardToken = new CardToken() { EmployerId = employer.Id, CardDetail = JsonConvert.DeserializeObject <CardDetail>(r.DetailText), Expires = DateTime.UtcNow.AddMinutes(Convert.ToInt16(timeout)) }; cardToken.CardDetail.CardTypeFileName = r.CardType.FileName; cardToken.CardDetail.CardTypeId = r.TypeId; cardToken.CardDetail.CardViewModeId = r.ViewModeId; var jwt = JwtService.EncryptPayload(JsonConvert.SerializeObject(cardToken)); r.Url = string.Format("{0}/?tkn={1}|{2}", cardBaseAddress, employer.Id, jwt); r.SecurityToken = jwt; r.Detail = JsonConvert.DeserializeObject <CardDetail>(r.DetailText); }); return(result); }
public void CannotGetCardDetailForMismatchedEmployerId() { var service = new CardService(); var cardToken = JwtService.EncryptPayload(JsonConvert.SerializeObject(new CardToken() { Expires = DateTime.UtcNow.AddMinutes(15), EmployerId = 11 })); Debug.WriteLine(cardToken); var cardDetail = service.GetCardDetail(12, cardToken); Assert.IsTrue(cardDetail.Invalid); }
public async Task CannotGetCardDetailWithMismatchedEmployerId() { //This check can be removed after successfull deployment. if (!Debugger.IsAttached) { return; } var service = new CardService(); var cardToken = JwtService.EncryptPayload(JsonConvert.SerializeObject(new CardToken() { Expires = DateTime.UtcNow.AddMinutes(15), EmployerId = 11 })); var response = await WebApiService.GetCardDetail(12, cardToken); Assert.IsTrue(response.Invalid); }
public async Task CannotGetCardDetailWithExpiredJwt() { if (!Debugger.IsAttached) { return; } var service = new CardService(); var cardToken = JwtService.EncryptPayload(JsonConvert.SerializeObject(new CardToken() { Expires = DateTime.UtcNow.AddMinutes(-2), EmployerId = 11 })); Debug.WriteLine(cardToken); var response = await WebApiService.GetCardDetail(11, cardToken); Assert.IsTrue(response.Expired); }