Exemple #1
0
        public async Task <IActionResult> Update(TodoItem item)
        {
            string userId         = _authentication.GetUserIdentifier(User);
            string installationId = Request.GetInstallationId();

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

                List <NubeOperation> operations = await _changeTracker.TrackModifyAsync(currentItem, 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);
        }