public async Task <UserDataModel> GetAsync() { UserDataModel userData = new UserDataModel(); string usersIp = Utils.GetIPAddress(); if (string.IsNullOrEmpty(usersIp)) { return(userData); } string apiUrl = string.Format(API_URL_FORMAT, usersIp); string jsonString = string.Empty; Func <string, Task <string> > func = WebUtils.GetTextAsyncFromWebClient; jsonString = await func.Partial(apiUrl).WithRetry(); if (string.IsNullOrEmpty(jsonString)) { userData.ServiceUnresponded = true; } userDataFactory.Fill(userData, jsonString, usersIp); return(userData); }