public void OnError(object _, Exception e) { State = WorkState.Errored; receiver?.Stop().Wait(); sender?.Stop().Wait(); Errored?.Invoke(this, e); }
private static async void Invoke() { void invoke(InvokationMethodTarget target) { target.MoveNext(); try { target.MethodInfo.Invoke(target.Instanse, null); } catch (Exception ex) { Errored?.Invoke(new InvokeError("Error invokation", target, ex)); } } Task getTask(InvokationMethodTarget target) { return(Task.Run(() => invoke(target))); } var tasks = targets.Where(t => t.IsElapsed()) .Select(getTask); await Task.WhenAll(tasks); }
public void Lookup() { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m_Url.Replace("ssdp", "environment")); request.Accept = "application/json"; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) { var serializer = new JsonSerializer(); using (var sr = new StreamReader(response.GetResponseStream())) using (var jsonTextReader = new JsonTextReader(sr)) { EnvironmentModel Model = (EnvironmentModel)serializer.Deserialize(jsonTextReader, typeof(EnvironmentModel)); string IPWithPort = m_IpAddress.Address + ((m_IpAddress.Port != 80) ? ":" + m_IpAddress.Port : ""); Resolved?.Invoke(this, new DataGridRow() { Name = Model.machineName, Url = "http://" + IPWithPort + "/", IpAddress = IPWithPort, Location = Model.location }); } } } catch (WebException) { LookupLegacy(); } catch (Exception) { Errored?.Invoke(this, m_Url); } }
public override void OnAuthenticationError(int errorCode, ICharSequence errString) { base.OnAuthenticationError(errorCode, errString); var args = new ErrorEventArgs((BiometricErrorCode)errorCode, errString.ToString()); Errored?.Invoke(this, args); }
public async void GetConsumableBalanceRemainingAsync(string storeId) { var result = await storeContext.GetConsumableBalanceRemainingAsync(storeId); if (result.ExtendedError != null) { Errored?.Invoke(this, result.ExtendedError); return; } }
private void Timer_Elapsed(object sender, ElapsedEventArgs e) { if (lastPingReceived == false) { Errored?.Invoke(this, new AdminPortException("Server did not respond in predefined time")); Stop(); } else { SendPingMessage(); } }
public async Task GetProducts(object sender, RoutedEventArgs e) { var products = await storeContext.GetAssociatedStoreProductsAsync(GetProductKinds()); if (products.ExtendedError != null) { Errored?.Invoke(this, products.ExtendedError); return; } Products.Clear(); int count = products.Products.Count; foreach (var item in products.Products) { Products.Add(new StoreProductDataWrapper(item.Key, item.Value)); } }
public void LookupLegacy() { try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(m_Url); request.Accept = "application/xml"; using (WebResponse response = request.GetResponse()) { Stream dataStream = response.GetResponseStream(); StreamReader reader = new StreamReader(dataStream); XmlSerializer serializer = new XmlSerializer(typeof(DiscoveryDeviceDescriptionModel)); DiscoveryDeviceDescriptionModel deserialized = null; try { deserialized = (DiscoveryDeviceDescriptionModel)serializer.Deserialize(reader); } catch (InvalidOperationException) { } if (deserialized == null) { return; } Resolved?.Invoke(this, new DataGridRow() { Name = deserialized.Device.FriendlyName, Url = deserialized.Device.PresentationURL, IpAddress = m_IpAddress.Address.ToString(), Location = "Unknown" }); } } catch (Exception) { Errored?.Invoke(this, m_Url); } }
public async void PurchaseProduct(object sender, RoutedEventArgs e) { var first = Products.FirstOrDefault(); GetConsumableBalanceRemainingAsync(first.Product.StoreId); if (first != null && first.Product != null) { // 購買產品 var product = first.Product; if (product.IsInUserCollection == false) { var result = await product.RequestPurchaseAsync(); if (result.ExtendedError != null) { Errored?.Invoke(this, result.ExtendedError); return; } switch (result.Status) { case StorePurchaseStatus.Succeeded: // purchase successed break; case StorePurchaseStatus.AlreadyPurchased: break; case StorePurchaseStatus.NetworkError: case StorePurchaseStatus.NotPurchased: case StorePurchaseStatus.ServerError: break; } } } }
public async Task GetPurchasedProducts(object sender, RoutedEventArgs e) { // 抓取已經購買的項目 var purchased = await storeContext.GetUserCollectionAsync(GetProductKinds()); if (purchased.ExtendedError != null) { Errored?.Invoke(this, purchased.ExtendedError); return; } if (purchased.Products == null || purchased.Products.Count == 0) { Message = "Not purchased any product"; return; } PurchasedProducts.Clear(); foreach (var item in purchased.Products) { PurchasedProducts.Add(new StoreProductDataWrapper(item.Key, item.Value)); } }
private void OnErrored(Exception data) { Errored?.Invoke(this, data); }
public void OnErrored(object sender, Exception data) { Errored?.Invoke(sender, data); }
private void OnErrored(int errorCode, string message) => Errored?.Invoke(errorCode, message);
protected internal override void OnMessageReceived(ConversationMessage message) { if (message is CancelItemMessage) { CancelItemMessage msg = message as CancelItemMessage; msg.Items.ForEach((o) => { var cutItem = Items.FirstOrDefault(d => d.ID == o.ID); if (cutItem != null) { cutItem.TransferState = TransferState.Canceled; } }); holder.Remove(msg.Items); } else if (message is ConfirmItemMessage) { Debug.WriteLine("ConfirmedItem msg count=" + (confirmMsgCount++)); var cm = message as ConfirmItemMessage; //若不复制,Confirmed中的移除动作报错。测试确认一下。 var tmpProcessingList = new List <Item>(ProcessingItems); //Console.WriteLine("Received a confirm message itemid=" + cm.ItemID); var item = tmpProcessingList.Find(i => i.ID == cm.ItemID); if (item != null) { //这个状态改变,会导致item从ProcessingItems中移除。 item.ForceComplete(TransferState.Confirmed); //移除动作是在同一线程中,移除完毕会进入这里。 if (ProcessingItems.Count() == 0) { //应该还需要做这个检查,有可能存在没有正在处理的文件,但其他也没法送,或者状态不对的情况。 if (Items.All(o => o.TransferState == TransferState.Confirmed)) { //所有文件成功发送完毕 Completed?.Invoke(this); } else { //该做什么?没有正在处理的Item,但也不是所有的Item状态都是Confirmed。出错了..., 如果给对方发了列表,对方马上就回复Confirm,也是0 } } else { if (tmpProcessingList.All(o => o.TransferState == TransferState.WaitConfirmTimeouted || o.TransferState == TransferState.Error)) { //处理列表中的东西,都是出错 / 等待确认超时的,没办法再处理了。报告错误。上层如果要重新发送,可以到ProcessingItem里面去取。 //TODO 只需检查ProcessingItems即可。需要确认一个文件出错,或者等待确认超时,传递到父目录没有? Errored?.Invoke(this); } } } } else if (message is ReceiveItemErrorMessage) { var rie = message as ReceiveItemErrorMessage; var item = ProcessingItems.FirstOrDefault(i => i.ID == rie.ItemID); if (item == null) { item = Items.Find(i => i.ID == rie.ID); } if (item != null) { item.ErrorCode = rie.ErrorCode; item.TransferState = TransferState.Error; } } }
/// <summary> /// /// </summary> /// <param name="exception"></param> private void Client_Errored(Exception exception) { Errored?.Invoke(new ETCarsConnectionFailedArgs(exception)); }
private void OnError(int errorCode, string message) { IsReady = false; Errored?.Invoke(errorCode, message); }
protected virtual void OnErrored(Exception e) => Errored?.Invoke(e);
protected void ReportError(Exception e) { Errored?.Invoke(this, new ErrorEventArgs(e)); }
/// <summary> /// Called when the error() function is used or an exception was thrown /// </summary> /// <param name="e"></param> protected virtual void OnError(String e) { Errored?.Invoke(this, e); }