public async Task <int> CommitToServer(Signal signal) { var signalDto = Mapper.Map <Signal, SignalService.SignalDto>(signal); try { var client = new SignalService.SignalServiceClient(); var result = await client.SaveAsync(signalDto); if (_SuspendedSignals.Count > 0) { Task.Run(() => { TransferSuspended(); }); } return(result); } catch (CommunicationException ex) { signal.Errors.Add(ex.Message); } catch (Exception ex) { signal.Errors.Add("Can´t connect to server."); } SuspendedSignals.Add(signalDto); return(-1); }
private void TransferSuspended() { var tDel = new List <SignalDto>(); var tclient = new SignalService.SignalServiceClient(); foreach (var tSignal in _SuspendedSignals) { try { var tresult = tclient.SaveAsync(tSignal); tDel.Add(tSignal); } catch { } } foreach (var tSignal in tDel) { _SuspendedSignals.Remove(tSignal); } tDel.Clear(); }