Example #1
0
        public async Task <IActionResult> Delete(string id)
        {
            string userId         = _authentication.GetUserIdentifier(User);
            string installationId = Request.GetInstallationId();

            try
            {
                var item = await _context.TodoItems.FindAsync(id);

                if (item != null)
                {
                    List <NubeOperation> operations = await _changeTracker.TrackDeleteAsync(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);
        }