/// <summary>
 /// Handles any errors thrown by HoloNET or HoloOASIS. It fires the OnHoloOASISError error handler if there are any
 /// subscriptions. The same applies to the OnStorageProviderError event implemented as part of the IOASISStorage interface.
 /// </summary>
 /// <param name="reason"></param>
 /// <param name="errorDetails"></param>
 /// <param name="holoNETEventArgs"></param>
 private void HandleError(string reason, Exception errorDetails, HoloNETErrorEventArgs holoNETEventArgs)
 {
     //OnStorageProviderError?.Invoke(this, new ProfileManagerErrorEventArgs { EndPoint = this.HoloNETClient.EndPoint, Reason = string.Concat(reason, holoNETEventArgs != null ? string.Concat(" - HoloNET Error: ", holoNETEventArgs.Reason, " - ", holoNETEventArgs.ErrorDetails.ToString()) : ""), ErrorDetails = errorDetails });
     OnStorageProviderError(HoloNETClient.EndPoint, string.Concat(reason, holoNETEventArgs != null ? string.Concat(" - HoloNET Error: ", holoNETEventArgs.Reason, " - ", holoNETEventArgs.ErrorDetails.ToString()) : ""), errorDetails);
     OnHoloOASISError?.Invoke(this, new HoloOASISErrorEventArgs()
     {
         EndPoint = HoloNETClient.EndPoint, Reason = reason, ErrorDetails = errorDetails, HoloNETErrorDetails = holoNETEventArgs
     });
 }
 private void HoloNETClient_OnError(object sender, HoloNETErrorEventArgs e)
 {
     HandleError("Error occured in HoloNET. See ErrorDetial for reason.", null, e);
     //OnHoloOASISError?.Invoke(this, new ErrorEventArgs { EndPoint = HoloNETClient.EndPoint, Reason = "Error occured in HoloNET. See ErrorDetial for reason.", HoloNETErrorDetails = e });
 }
 private static void HoloNETClient_OnError(object sender, HoloNETErrorEventArgs e)
 {
     Console.WriteLine(string.Concat("Error Occured. Resason: ", e.Reason, ", EndPoint: ", e.EndPoint, ", Details: ", e.ErrorDetails.ToString()));
     Console.WriteLine("");
 }