Beispiel #1
0
        public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
        {
            context.OwinContext.Response.Headers.Add("Access-Control-Allow-Origin", new[] { "*" });

            AccessTokenCommand accessTokenCommand = new AccessTokenCommand(context.UserName, context.Password);

            string skip = "0";
            string take = "10";

            var result = _characterAppService.ValidAuthentication(accessTokenCommand, skip, take);

            if (result == false)
            {
                context.SetError("invalid_grant", "Chaves de usuários inválidas");
                return;
            }

            var identity = new ClaimsIdentity(context.Options.AuthenticationType);

            GenericPrincipal principal = new GenericPrincipal(identity, new string[] { });

            Thread.CurrentPrincipal = principal;

            context.Validated(identity);
        }
Beispiel #2
0
        public Task <HttpResponseMessage> GetComicsByCharacterId([FromBody] dynamic body)
        {
            var accessTokenCommand = new AccessTokenCommand(
                privateKey: (string)body.privateKey,
                publicKey: (string)body.publicKey
                );

            string characterId = (string)body.characterId;

            var comicsByCharacterId = _characterAppService.GetComicsByCharacterId(accessTokenCommand, characterId);

            return(CreateResponse(HttpStatusCode.Created, comicsByCharacterId));
        }
Beispiel #3
0
        public Task <HttpResponseMessage> GetCharacter([FromBody] dynamic body)
        {
            var accessTokenCommand = new AccessTokenCommand(
                privateKey: (string)body.privateKey,
                publicKey: (string)body.publicKey
                );

            string skip = (string)body.skip;
            string take = (string)body.take;

            var character = _characterAppService.GetCharacter(accessTokenCommand, skip, take);

            return(CreateResponse(HttpStatusCode.Created, character));
        }
Beispiel #4
0
        public Task <HttpResponseMessage> ValidAuthentication([FromBody] dynamic body)
        {
            var accessTokenCommand = new AccessTokenCommand(
                privateKey: (string)body.privateKey,
                publicKey: (string)body.publicKey
                );

            string skip = (string)body.skip;
            string take = (string)body.take;

            var isValidAuthentication = _characterAppService.ValidAuthentication(accessTokenCommand, skip, take);

            return(CreateResponse(HttpStatusCode.Created, isValidAuthentication));
        }
        public ComicsRootObject GetComicsByCharacterId(AccessTokenCommand command, string characterId)
        {
            var accessToken = new AccessToken(command.PrivateKey, command.PublicKey);

            var timeStamp = accessToken.GetTimeStamp();
            var hash      = accessToken.CreateHash(timeStamp);

            string MARVEL_API_BASE_URL         = Urls.ResourceManager.GetString("MARVEL_API_BASE_URL");
            string MARVEL_API_COMICS_URL_PART1 = Urls.ResourceManager.GetString("MARVEL_API_COMICS_URL_PART1");
            string MARVEL_API_COMICS_URL_PART2 = Urls.ResourceManager.GetString("MARVEL_API_COMICS_URL_PART2");

            var url = String.Format("{0}{1}{2}{3}ts={4}&apikey={5}&hash={6}", MARVEL_API_BASE_URL, MARVEL_API_COMICS_URL_PART1, characterId, MARVEL_API_COMICS_URL_PART2, timeStamp, accessToken.PublicKey, hash).ToString();

            var comicsExternalService = _characterExternalService.GetComicsByCharacterId(url).Result;

            return(comicsExternalService);
        }
        public CharacterRootObject GetCharacter(AccessTokenCommand command, string skip, string take)
        {
            var accessToken = new AccessToken(command.PrivateKey, command.PublicKey);

            var timeStamp = accessToken.GetTimeStamp();
            var hash      = accessToken.CreateHash(timeStamp);

            string MARVEL_API_BASE_URL      = Urls.ResourceManager.GetString("MARVEL_API_BASE_URL");
            string MARVEL_API_CHARACTER_URL = Urls.ResourceManager.GetString("MARVEL_API_CHARACTER_URL");
            string limit  = take;
            string offset = skip;

            var url = String.Format("{0}{1}limit={2}&offset={3}&ts={4}&apikey={5}&hash={6}", MARVEL_API_BASE_URL, MARVEL_API_CHARACTER_URL, limit, offset, timeStamp, accessToken.PublicKey, hash).ToString();

            var characterExternalService = _characterExternalService.GetCharacter(url).Result;

            return(characterExternalService);
        }