public virtual async Task <IActionResult> Delete(string key, string value) { var loader = new NotesByRefId { Id = key }; await DataHandler.Execute(loader); if (loader.Result != null) { var counter = Convert.ToInt32(value); if (loader.Result.History.Any(n => n.Counter == counter)) { var model = loader.Result.History.First(n => n.Counter == counter); loader.Result.History.Remove(model); var persist = new Persist <Notes> { Model = loader.Result }; await DataHandler.Execute(persist); await DataHandler.Commit(); return(Ok(new NotableViewModel() { Notable = Mapper.Map <ResultOwned>(loader.ResultNotable), Notes = loader.Result })); } } return(NotFound()); }
public async Task <IActionResult> Post([FromBody] NoteViewModel viewModel) { if (string.IsNullOrEmpty(viewModel.Id)) { return(NotFound()); } var loader = new NotesByRefId { Id = viewModel.Id }; await DataHandler.Execute(loader); var notes = loader.Result; var model = new Note { AuthorId = CurrentUser.Id, AuthorName = CurrentUser.Name, AuthorProfileThumbUrl = CurrentUser.ProfileThumbUrl, Text = viewModel.Text, IsPrivate = viewModel.IsPrivate, ForceNotify = viewModel.ForceNotify, IsActive = true, Counter = 1 }; if (viewModel.Counter == 0) { if (notes.History.Any()) { model.Counter = notes.History.Max(h => h.Counter) + 1; } notes.History.Insert(0, model); viewModel.Counter = model.Counter; } else { model = notes.History.First(n => n.Counter == viewModel.Counter); model.Text = viewModel.Text; model.IsPrivate = viewModel.IsPrivate; model.ForceNotify = viewModel.ForceNotify; } var persist = new Persist <Notes> { Model = notes }; await DataHandler.Execute(persist); await DataHandler.Commit(); return(Ok(new NotableViewModel() { Notable = Mapper.Map <ResultOwned>(loader.ResultNotable), Notes = notes })); }
public async Task NotableMasterByIdDataTest() { using var store = GetDocumentStore(); using var session = store.OpenAsyncSession(); var query = new NotesByRefId { Session = session, Id = UserData.FirstId }; await query.Execute(); query.Result.Should().NotBeNull(); query.Result.Id.Should().Be(NoteData.FirstId); }
public async Task NoteByRefIdDataTest() { using var store = GetDocumentStore(); using var session = store.OpenAsyncSession(); var loader = new NotesByRefId { Session = session, Id = UserData.FirstId }; await loader.Execute(); loader.Result.Should().NotBeNull(); loader.Result.Id.Should().Be(NoteData.FirstId); Assert.That(loader.Result, Is.DeepEqualTo(NoteData.GetFirst())); }
public async Task <IActionResult> Get(string id) { var loader = new NotesByRefId { Id = id }; await DataHandler.Execute(loader); if (loader.ResultNotable != null) { var model = loader.Result; if (model == null) { model = new Notes { RefId = loader.ResultNotable.Id, TenantId = CurrentUser.TenantId, TenantName = CurrentUser.TenantName, AuthorId = CurrentUser.Id, AuthorName = CurrentUser.Name, Name = loader.ResultNotable.Name, RegionKey = CurrentUser.RegionKey, IsActive = true }; var persist = new Persist <Notes> { Model = model }; await DataHandler.Execute(persist); loader.ResultNotable.NotesId = persist.Model.Id; var persistNotable = new Persist <INotable>() { Model = loader.ResultNotable }; await DataHandler.Execute(persistNotable); await DataHandler.Commit(); model = persist.Model; } return(Ok(new NotableViewModel() { Notable = Mapper.Map <ResultOwned>(loader.ResultNotable), Notes = model })); } return(NotFound()); }