public IHttpActionResult Post(TokenViewModel obj)
{
ILogger _logger = new Logger();
_logger.Log("Post api/userdata. Object Token initial: " + obj.TokenString, "api", 3);
obj = Encryptor.EncryptToken(obj);
//Confirm link with token
var tokens = _tokenRepo.Get(t => t.TokenString == obj.TokenString);
if (tokens.Any())
{
//There could be multiple, loop if that is the case
foreach (var token in tokens)
{
if (token.Status == 2)
{
token.Status = 1;
_uow.Save();
//Return user info (optional)
var profile = AutoMapper.Mapper.Map<ProfileViewModel>(token.Profile);
profile = Encryptor.DecryptProfile(profile);
UserInfoViewModel ui = new UserInfoViewModel();
ui.profile = profile;
ui.rates = AutoMapper.Mapper.Map<List<RateViewModel>>(_rateRepo.Get().ToList());
_logger.Log("Post api/userdata before OK. Token: " + token, "api", 3);
return Ok(ui);
}
}
_logger.Log("Post api/userdata. Error: Token already used ", "api", 3);
return new CustomErrorActionResult(Request, "Token allready used", ErrorCodes.TokenAllreadyActivated, HttpStatusCode.BadRequest);
}
else
{
_logger.Log("Post api/userdata. Error: Token not found", "api", 3);
return new CustomErrorActionResult(Request,"Token not found", ErrorCodes.InvalidAuthorization, HttpStatusCode.Unauthorized);
}
}
}