smsapi / smsapi-csharp-client

SMSAPI C# client that allows you to send messages and administrate your SMSAPI account.
https://www.smsapi.com/
29 stars 20 forks source link

wersje async metod #7

Closed Misiu closed 4 years ago

Misiu commented 8 years ago

Czy planowane jest dodanie do biblioteki metod w wersji asynchronicznej?

smsapi commented 8 years ago

W danej chwili nie planujemy wprowadzenia metod w wersji asynchronicznej. Jeżeli to nie problem to prosili byśmy o opisanie w skrócie do czego potrzebne są Panu takie metody.

Misiu commented 8 years ago

@smsapi Używam SMSAPI do integracji z ASP WebAPI 2.2. W "best practices" znalazłem informację aby pisać kod z wykorzystaniem async/await. W ten sposób mógłbym w kontrolerze zrobić wysyłkę w poniższy sposób:

var result = await
        smsApi.ActionSend()
            .SetText("test message")
            .SetTo("694562829")
            .SetSender("Info") //Pole nadawcy lub typ wiadomość 'ECO', '2Way'
            .ExecuteAsync();

w chwili obecnej muszę sztucznie dodawać await Task.Delay(1); WebRequest ma większość metod w wersji Async, więc przykładowo linia https://github.com/smsapi/smsapi-csharp-client/blob/master/smsapi/ProxyHTTP.cs#L153 mogłaby wywoływać metodę GetResponseAsync()

sulmar commented 7 years ago

Dodawanie await Task.Delay(1); tylko w tym celu aby metoda była asynchroniczna to zła praktyka. Autor smsapi-csharp-client powinien rzeczywiście dodać metodę asynchroniczną ExecuteAsync, która następnie wykorzysta metodę asynchroniczną klasy HttpClient i będzie pięknie.

Zanim to jednak nastąpi to proponuję opakować wersję synchroniczną w metodę asynchroniczną:


public void Send()
{
 smsApi.ActionSend()
            .SetText("test message")
            .SetTo("694562829")
            .SetSender("Info") 
}

public Task SendAsync()
{
  return Task.Run(()=>Send());
}

Następnie możesz tego użyć w ten sposób:

public async void TestSendAsync()
{
   await SendAsync();
}

Powodzenia!

Misiu commented 6 years ago

@smsapi czy coś w tym temacie się zmieniło?

Misiu commented 5 years ago

@pdzieniszewski czy mają Państwo jakieś plany związane z wprowadzeniem wersji async metod?

smsapi commented 5 years ago

Dzień dobry, niestety w danej chwili nie jesteśmy w stanie wyznaczyć daty kiedy będziemy zajmować się rozwijaniem biblioteki smsapi-csharp-client. Przepraszamy za niedogodności.

Misiu commented 5 years ago

@smsapi dziękuję za odpowiedź. W takim razie dodam te metody we własnym forku.

Misiu commented 4 years ago

@smsapi widzę, że projekt odżył. Nie widzę metod async. czy w takim razie Issue moze zostać ponownie otwarty?

smsapi commented 4 years ago

W danej chwili nie planujemy wdrożenia metod async.

Misiu commented 4 years ago

@smsapi czy PR wchodzi w grę?

smsapi commented 4 years ago

@Misiu możemy tak spróbować 👍