public void PopDoor(Door door, Action<Response> callback) { HttpWebRequest request = WebRequest.CreateHttp(String.Format("https://gatekeeper.csh.rit.edu/api/pop/{0}", door.Id)); request.Method = "POST"; request.BeginGetRequestStream((reqResult) => { Stream requestStream = request.EndGetRequestStream(reqResult); using (StreamWriter writer = new StreamWriter(requestStream)) { writer.Write(String.Format("username={0},password={1}", _username, _password)); } request.BeginGetResponse((resResult) => { try { Stream responseStream = request.EndGetResponse(resResult).GetResponseStream(); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(Response)); Response temp = serializer.ReadObject(responseStream) as Response; callback(temp); } catch (WebException e) { System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => { MessageBox.Show(e.Message); }); } }, null); }, null); }
public void PopDoor(Door door) { _service.PopDoor(door, (response) => { if (!response.Success) { System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() => { MessageBox.Show(response.Error); }); } }); }