public void ShareCollection_ShareCollectionToNotExistingUser_NotFound()
        {
            //Arrange
            var user1 = NewGuid;

            AddUser(user1);
            var collection = AddCollection(user1, 5);

            //Act
            var sharedCollectionData = new SharedCollectionCreationData
            {
                CollectionId = collection.Id,
                EditRights   = true,
                UserId       = NewGuid
            };
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new SharedCollectionsController(context, GetUserProviderMock(user1));
                result         = controller.ShareCollection(sharedCollectionData);
            });

            //Assert
            result.Should().BeOfType <NotFoundResult>();
        }
        public void ShareCollection_ShareCollectionOfDifferentUser_Forbidden()
        {
            //Arrange
            var user1 = NewGuid;
            var user2 = NewGuid;
            var user3 = NewGuid;

            AddUser(user1);
            AddUser(user2);
            AddUser(user3);
            var collection = AddCollection(user1, 5);

            //Act
            var sharedCollectionData = new SharedCollectionCreationData
            {
                CollectionId = collection.Id,
                EditRights   = true,
                UserId       = user3
            };
            IActionResult result = null;

            InTransaction(context =>
            {
                var controller = new SharedCollectionsController(context, GetUserProviderMock(user2));
                result         = controller.ShareCollection(sharedCollectionData);
            });

            //Assert
            result.Should().BeOfType <ForbidResult>();
        }
        public void ShareCollection_CollectionAlreadySharedToUser_NoRecordAdded()
        {
            //Arrange
            var user1 = NewGuid;
            var user2 = NewGuid;

            AddUser(user1);
            AddUser(user2);
            var collection = AddCollection(user1, 5);

            //Act
            var sharedCollectionData = new SharedCollectionCreationData
            {
                CollectionId = collection.Id,
                EditRights   = true,
                UserId       = user2
            };

            InTransaction(context =>
            {
                var controller = new SharedCollectionsController(context, GetUserProviderMock(user1));
                controller.ShareCollection(sharedCollectionData);
            });
            InTransaction(context =>
            {
                var controller = new SharedCollectionsController(context, GetUserProviderMock(user1));
                controller.ShareCollection(sharedCollectionData);
            });

            //Assert
            InTransaction(context => { context.SharedCollection.Should().HaveCount(1); });
        }
        public void ShareCollection_OneCollectionSharedWithRights_ProperRightsSaved(bool editRights)
        {
            //Arrange
            var user1 = NewGuid;
            var user2 = NewGuid;

            AddUser(user1);
            AddUser(user2);
            var collection = AddCollection(user1, 5);

            //Act
            var sharedCollectionData = new SharedCollectionCreationData
            {
                CollectionId = collection.Id,
                EditRights   = editRights,
                UserId       = user2
            };

            InTransaction(context =>
            {
                var controller = new SharedCollectionsController(context, GetUserProviderMock(user1));
                controller.ShareCollection(sharedCollectionData);
            });

            //Assert
            InTransaction(context =>
            {
                var singleCollection = context.SharedCollection.Single();
                singleCollection.EditRights.Should().Be(editRights);
            });
        }
Exemple #5
0
        public IActionResult ChangeUserRoghts(int collectionId, [FromBody] SharedCollectionCreationData data)
        {
            var userId           = _userProvider.GetCurrentUserId();
            var sharedCollection = _dbContext.SharedCollection
                                   .Include(sc => sc.Collection)
                                   .SingleOrDefault(sc => sc.UserId == data.UserId && sc.CollectionId == data.CollectionId);

            if (sharedCollection == null)
            {
                return(NotFound());
            }

            if (sharedCollection.Collection.OwnerId != userId)
            {
                return(Forbid());
            }

            sharedCollection.EditRights = data.EditRights;
            _dbContext.SaveChanges();
            return(Ok());
        }
Exemple #6
0
        public IActionResult ShareCollection(SharedCollectionCreationData data)
        {
            var userId            = _userProvider.GetCurrentUserId();
            var collectionToShare = _dbContext.Collection.SingleOrDefault(c => c.Id == data.CollectionId);

            if (collectionToShare == null)
            {
                return(NotFound());
            }

            if (collectionToShare.OwnerId != userId)
            {
                return(Forbid());
            }

            var userToShare = _dbContext.Users
                              .Include(user => user.SharedCollections)
                              .SingleOrDefault(user => user.Id == data.UserId);

            if (userToShare == null)
            {
                return(NotFound());
            }

            if (userToShare.SharedCollections.Any(sc => sc.CollectionId == data.CollectionId))
            {
                return(NoContent());
            }

            userToShare.SharedCollections.Add(new SharedCollection
            {
                CollectionId = data.CollectionId,
                UserId       = data.UserId,
                EditRights   = data.EditRights
            });
            _dbContext.SaveChanges();
            return(Ok());
        }