public async Task <IActionResult> Add(TodoItem item) { string userId = _authentication.GetUserIdentifier(User); string installationId = Request.GetInstallationId(); try { var operations = await _changeTracker.TrackAddAsync(item); await _operationService.ProcessOperationsAsync(_context, operations, userId, installationId); return(Ok()); } catch (Exception) { // log exception here return(StatusCode(500)); } }
public NubeClientTestBase() { AddedOperations = new List <NubeOperation>(); RemovedOperations = new List <NubeOperation>(); Item = TestFactory.CreateTestItem("MyId", "MyName", DateTimeOffset.Now); Authentication = TestFactory.CreateAuthentication(); DataStore = TestFactory.CreateDataStore(); DataStore.When(x => x.AddOperationsAsync(Arg.Any <NubeOperation[]>())).Do( y => AddedOperations.AddRange(y.Arg <NubeOperation[]>())); DataStore.When(x => x.DeleteOperationsAsync(Arg.Any <NubeOperation[]>())).Do( y => RemovedOperations.AddRange(y.Arg <NubeOperation[]>())); DataStore.DeleteOperationsAsync(Arg.Any <NubeOperation[]>()).Returns(true); DataStore.AddOperationsAsync(Arg.Any <NubeOperation[]>()).Returns(true); DataStore.DeleteAsync(Arg.Any <TestItem>()).Returns(true); HttpMessageHandler = new MockHttpMessageHandler(); HttpClient = new HttpClient(HttpMessageHandler); ChangeTracker = TestFactory.CreateChangeTracker(); ChangeTracker.TrackAddAsync(Arg.Any <TestItem>()).Returns(new List <NubeOperation>()); ChangeTracker.TrackDeleteAsync(Arg.Any <TestItem>()).Returns(new List <NubeOperation>()); ChangeTracker.TrackModifyAsync(Arg.Any <TestItem>(), Arg.Any <TestItem>()).Returns(new List <NubeOperation>()); NubeClient = new NubeClient(DataStore, ServerUrl, Authentication, HttpClient, ChangeTracker); }