public void Create(TaskList entityToCreate) { var taskList = entityToCreate.MapToTaskListEntity(); var taskListShare = new TaskListShareEntity(entityToCreate.RowKey, entityToCreate.Owner.RowKey); TaskLists.Add(taskList); TaskListShares.Add(taskListShare); }
/// <summary> /// Creates a new TaskList. /// </summary> /// <param name="entityToCreate">TaskList domain object with the properties to map to an TaskLists table entity</param> public void Create(TaskList entityToCreate) { entityToCreate.PartitionKey = entityToCreate.Owner.RowKey; entityToCreate.RowKey = ShortGuid.NewGuid(); var taskListEntity = entityToCreate.MapToTaskListEntity(); _unitOfWork.Create(taskListEntity, "TaskLists"); // the User that creates the new TaskList is automatically add in the TaskList Shares list. var sharePartitionKey = string.Format("{0}+{1}", entityToCreate.PartitionKey, entityToCreate.RowKey); var taskListShare = new TaskListShareEntity(sharePartitionKey, entityToCreate.Owner.RowKey); _unitOfWork.Create(taskListShare, "TaskListShares"); }
/// <summary> /// Share the TaskList with a User. /// </summary> /// <param name="taskList">The TaskList to be shared</param> /// <param name="userId">RowKey from the User</param> public void AddShare(TaskList taskList, string userId) { var sharePartitionKey = string.Format("{0}+{1}", taskList.PartitionKey, taskList.RowKey); var share = new TaskListShareEntity(sharePartitionKey, userId); _unitOfWork.Create(share, "TaskListShares"); }
public void TaskListsRepositoryHasPermisionToEditCallsGetFromTheUnitOfWork() { // Arrange var user = new User { PartitionKey = User1PartitionKey, RowKey = User1RowKey }; var taskList = new TaskList("Test title", user) { PartitionKey = TaskList1PartitionKey, RowKey = _taskList1RowKey }; var taskListShare = new TaskListShareEntity(string.Format("{0}+{1}", TaskList1PartitionKey, _taskList1RowKey), User1RowKey); taskList.Share.Add(user); var unitOfWorkMock = new Mock<IUnitOfWork>(); unitOfWorkMock.Setup(u => u.Get("TaskListShares", It.IsAny<Expression<Func<TaskListShareEntity, bool>>>())).Returns(taskListShare); var repository = new TaskListsRepository(unitOfWorkMock.Object); // Act var result = repository.HasPermissionToEdit(user, taskList); // Assert Assert.IsTrue(result); unitOfWorkMock.Verify(uow => uow.Get("TaskListShares", It.IsAny<Expression<Func<TaskListShareEntity, bool>>>()), Times.Once()); }