How do I simplify this method? Is handling an exception in this method a good idea?
[WebMethod]
public string GetMDSToken(string xuid)
{
var tokenTask = _mapTokenService.GetMappedSSOTokenAsync(xuid);
var tokenTimestampTask = _SSOFrontendService.GetSSOTokenTimestampAsync();
Task.WhenAll(tokenTask, tokenTimestampTask);
if (tokenTimestampTask.Result.Status != ResultStatus.OK)
return _serializer.Serizalize(tokenTimestampTask.Result);
if (tokenTask.Result == null)
{
var response = _handledResponseFactory.CreateErrorResponce(ResultStatus.Business, NotLogginErrorMessage);
return _serializer.Serizalize(response);
}
try
{
var mappedToken = tokenTask.Result;
if (mappedToken.SSOTokenTimestamp != tokenTimestampTask.Result.Content)
UpdateSSOToken(mappedToken);
var MDSTokenTask = _MDSFrontendService.GetToken(mappedToken.SSOToken);
Task.WhenAll(MDSTokenTask);
return _serializer.Serizalize(MDSTokenTask.Result);
}
catch (Exception ex)
{
var response = _handledResponseFactory.CreateExceptionResponce(ex);
return _serializer.Serizalize(response);
}
}