protected virtual void OnNetwrokRequestCompleted(NetworkRequestCompletedArgs args) { if (NetwrokRequestCompleted != null) { NetwrokRequestCompleted(this, args); } }
/// <summary> /// Устанавливает или сбрасывает соответсвующие флаги ошибок устройтсва /// </summary> /// <param name="errors"></param> //internal void SetError(DeviceErrors errors) //{ // if (errors != _Errors) // { // _Errors = errors; // OnErrorOccurred(new ErrorOccuredEventArgs { Errors = errors }); // } //} /// <summary> /// Обработчик события завершения обработки сетевого запроса от контроллера сети /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public virtual void EventHandler_NetworkController_NetwrokRequestCompleted( object sender, NetworkRequestCompletedArgs e) { }
public override void EventHandler_NetworkController_NetwrokRequestCompleted( object sender, NetworkRequestCompletedArgs e) { // Ищем запрос в буфере var request = _activeRequests.FirstOrDefault(r => r.Id == e.NetworkRequest.Id); if (request == null) { return; } switch (request.Status) { case NetworkRequestStatus.Completed: { if (Errors.CommunicationError) { _Errors.CommunicationError = true; OnErrorOccurred(new DeviceErrorOccuredEventArgs { Id = this.Id, Errors = _Errors }); } // Разбираем транзакцию GetAnswer(e.NetworkRequest); break; } case NetworkRequestStatus.Failed: { if (!Errors.CommunicationError) { _Errors.CommunicationError = true; OnErrorOccurred(new DeviceErrorOccuredEventArgs { Id = this.Id, Errors = _Errors }); } // Записываем в журнал причину //TODO: Logger.Error(transaction.ToString()); break; } default: { // Другие варианты в принципе не возможны... throw new Exception(); } } }