/// <summary> /// Task wrapper for GetLastWeekChempionAsync() method /// </summary> public static Task <IEnumerable <string> > GetLastDayChempionTaskAsync(this KniffelServiceSoapClient client, string rules) { var tcs = new TaskCompletionSource <IEnumerable <string> >(); client.GetLastDayChempionCompleted += (s, e) => { if (e.Error != null) { tcs.SetException(e.Error); } else if (e.Cancelled) { tcs.SetCanceled(); } else { tcs.SetResult(new List <string>() { e.Result.Body.Name, e.Result.Body.Score }); } }; client.GetLastDayChempionAsync(new GetLastDayChempionRequest(new GetLastDayChempionRequestBody(rules, "", ""))); return(tcs.Task); }
public async Task <IPlayer> LoginUserAsync(string username, string password) { var address = new System.ServiceModel.EndpointAddress("http://sanet.by/KniffelService.asmx"); BasicHttpBinding bind = new BasicHttpBinding(); var client = new KniffelServiceSoapClient(bind, address); int rolls = 0; int manuals = 0; int resets = 0; password = password.Encrypt(33); try { var result = await client.GetPlayersMagicsTaskAsync(username, password, rolls, manuals, resets); if (result.Body.GetPlayersMagicsResult) { return(new Player() { Name = username, Password = password }); } } catch { return(null); } finally { client.CloseAsync(); } return(null); }
/// <summary> /// Task wrapper for GetLastWeekChempionAsync() method /// </summary> public static Task <GetTopPlayersResponse> GetTopPlayersTaskAsync(this KniffelServiceSoapClient client, string rules) { var tcs = new TaskCompletionSource <GetTopPlayersResponse>(); client.GetTopPlayersCompleted += (s, e) => { if (e.Error != null) { tcs.SetException(e.Error); } else if (e.Cancelled) { tcs.SetCanceled(); } else { tcs.SetResult(new GetTopPlayersResponse(new GetTopPlayersResponseBody(e.Result.Body.GetTopPlayersResult, e.Result.Body.Players))); } }; client.GetTopPlayersAsync(new GetTopPlayersRequest(new GetTopPlayersRequestBody(rules, null))); return(tcs.Task); }
/// <summary> /// Task wrapper for GetArtifactsAsync() method /// </summary> public static Task <GetPlayersMagicsResponse> GetPlayersMagicsTaskAsync(this KniffelServiceSoapClient client, string username, string pass, int rolls, int manuals, int resets) { var tcs = new TaskCompletionSource <GetPlayersMagicsResponse>(); client.GetPlayersMagicsCompleted += (s, e) => { if (e.Error != null) { tcs.SetException(e.Error); } else if (e.Cancelled) { tcs.SetCanceled(); } else { tcs.SetResult(new GetPlayersMagicsResponse(new GetPlayersMagicsResponseBody(e.Result.Body.GetPlayersMagicsResult, e.Result.Body.rolls, e.Result.Body.manuals, e.Result.Body.resets))); } }; client.GetPlayersMagicsAsync(new GetPlayersMagicsRequest(new GetPlayersMagicsRequestBody(username, pass, rolls, manuals, resets))); return(tcs.Task); }
/// <summary> /// Task wrapper for PutScoreAsync() method /// </summary> public static Task <PutScoreIntoTableWithPicPureNameResponse> PutScoreIntoTableWithPicPureNameTaskAsync(this KniffelServiceSoapClient client, string username, string pass, string score, string table, string picurl) { var tcs = new TaskCompletionSource <PutScoreIntoTableWithPicPureNameResponse>(); client.PutScoreIntoTableWithPicPureNameCompleted += (s, e) => { if (e.Error != null) { tcs.SetException(e.Error); } else if (e.Cancelled) { tcs.SetCanceled(); } else { tcs.SetResult(new PutScoreIntoTableWithPicPureNameResponse(new PutScoreIntoTableWithPicPureNameResponseBody(e.Result.Body.PutScoreIntoTableWithPicPureNameResult))); } }; client.PutScoreIntoTableWithPicPureNameAsync(new PutScoreIntoTableWithPicPureNameRequest(new PutScoreIntoTableWithPicPureNameRequestBody(username, pass, score, table, picurl))); return(tcs.Task); }