public void CanUpdateSentMessageUsingEF() { using (var db = CreateContext()) { var guid = Guid.NewGuid().ToString(); var message = new CapSentMessage { Id = guid, Content = "this is message body", StatusName = StatusName.Enqueued }; db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; db.SaveChanges(); var selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); Assert.NotNull(selectedMessage); selectedMessage.StatusName = StatusName.Succeeded; selectedMessage.Content = "Test"; db.SaveChanges(); selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Succeeded); Assert.NotNull(selectedMessage); Assert.True(selectedMessage.Content == "Test"); } }
/// <summary> /// Updates a message in a store as an asynchronous operation. /// </summary> /// <param name="message">The message to update in the store.</param> public async Task <OperateResult> UpdateSentMessageAsync(CapSentMessage message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } Context.Attach(message); message.LastRun = DateTime.Now; Context.Update(message); try { await Context.SaveChangesAsync(); return(OperateResult.Success); } catch (DbUpdateConcurrencyException ex) { return(OperateResult.Failed(new OperateError() { Code = "DbUpdateConcurrencyException", Description = ex.Message })); } }
/// <summary> /// Creates the specified <paramref name="message"/> in the cap message store. /// </summary> /// <param name="message">The message to create.</param> public async Task <OperateResult> StoreSentMessageAsync(CapSentMessage message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } Context.Add(message); await Context.SaveChangesAsync(); return(OperateResult.Success); }
private async Task StoreMessage(string topic, string content) { var message = new CapSentMessage { KeyName = topic, Content = content, StatusName = StatusName.Enqueued }; await _store.StoreSentMessageAsync(message); WaitHandleEx.PulseEvent.Set(); _logger.EnqueuingSentMessage(topic, content); }
public async Task <OperateResult> ChangeSentMessageStateAsync(CapSentMessage message, string status, bool autoSaveChanges = true) { Context.Attach(message); message.LastRun = DateTime.Now; message.StatusName = status; try { if (autoSaveChanges) { await Context.SaveChangesAsync(); } } catch (DbUpdateConcurrencyException ex) { return(OperateResult.Failed( new OperateError() { Code = "DbUpdateConcurrencyException", Description = ex.Message })); } return(OperateResult.Success); }
public Task <OperateResult> UpdateSentMessageAsync(CapSentMessage message) { throw new NotImplementedException(); }
public Task <OperateResult> ChangeSentMessageStateAsync(CapSentMessage message, string statusName, bool autoSaveChanges = true) { throw new NotImplementedException(); }