public async Task MsgDisplayByIdDataTest() { using var store = GetDocumentStore(); using var session = store.OpenAsyncSession(); var query = new MsgDisplayById { Session = session, Id = MsgData.FirstId }; await query.Execute(); query.Result.Should().NotBeNull(); query.Result.Id.Should().Be(MsgData.FirstId); Assert.That(query.Result, Is.DeepEqualTo(MsgData.GetFirstDisplay(false))); query.Result.Searchable.Should().BeNullOrEmpty(); query.Result.Searchable = new List <string> { "something!" }; }
public async Task <IActionResult> Display(string id) { var query = new MsgDisplayById { Id = id }; await DataHandler.Execute(query); if (query.Result != null) { if (query.Result.AuthorId == CurrentUser.Id || query.Result.Recipients.Any(r => r.Id == CurrentUser.Id) || (CurrentUser.Right.CanAdmin && CurrentUser.TenantId == query.Result.TenantId) || CurrentUser.Right.CanSuperuser) { return(Ok(Strip(query.Result))); } return(Unauthorized()); } return(NotFound()); }