コード例 #1
0
        public async Task <ActionResult> Logout([FromBody] UserIdentifiedDTO userIdentifiedDTO)
        {
            string  username        = userIdentifiedDTO.Username;
            string  authTokenString = userIdentifiedDTO.AuthToken;
            Account accountToFind   = _smallPostersContext.Accounts.FirstOrDefault(a => a.Username == username);

            if (accountToFind == null)
            {
                return(StatusCode(StatusCodes.Status400BadRequest));
            }
            string    hashedAuthTokenString = HashPair.Generate(authTokenString, accountToFind.Salt);
            AuthToken authToken             = _smallPostersContext.AuthTokens.FirstOrDefault
                                                  (a => a.HashedValue == hashedAuthTokenString && a.AccountId == accountToFind.Id);

            if (authToken == null)
            {
                return(StatusCode(StatusCodes.Status404NotFound));
            }
            else
            {
                authToken.IsValid = false;
                await _smallPostersContext.SaveChangesAsync();

                return(StatusCode(StatusCodes.Status200OK));
            }
        }
コード例 #2
0
        public async Task <ActionResult <ICollection <CompleteAdDTO> > > GetMyAds(UserIdentifiedDTO userIdentifiedDTO)
        {
            string username        = userIdentifiedDTO.Username;
            string authTokenString = userIdentifiedDTO.AuthToken;

            Models.Account accountToFind = await _adService.GetUser(username, authTokenString);

            if (accountToFind == null)
            {
                return(StatusCode(StatusCodes.Status401Unauthorized));
            }

            return(await _smallPostersContext.Ads.Include(a => a.Category).Include(a => a.Creator)
                   .Where(a => a.CreatorId == accountToFind.Id).Select(a => new CompleteAdDTO(a)).ToListAsync());
        }