private SignalDbRecord CreateSignalDbRecord() { SignalDbRecord dbRecord = null; int retryCount = 5; Exception lastException = null; while (dbRecord == null && retryCount > 0) { try { string messageId = Utils.GenerateId(); SignalDbRecord signal = new SignalDbRecord { Id = messageId }; dbRecord = DbEngine.Create(signal, true); } catch (Exception e) { lastException = e; retryCount--; if (retryCount > 0) { Thread.Sleep(1000); } } } if (dbRecord == null) { throw lastException; } return(dbRecord); }