public void CreateAssociationOrganizationUser_Test() { var transactionMock = new Mock <IDbContextTransaction>(); database.Setup(d => d.BeginTransaction()).Returns(transactionMock.Object); context.Setup(e => e.Database).Returns(database.Object); SetupOrganizationUsersDbSet(new List <OrganizationUserEntity>()); var command = new CreateOrganizationUsersAssociationCommand { OrganizationId = 1, OrganizationUserId1 = 1, OrganizationUserId2 = 1, AssociationType = 2, TransactionId = "abc" }; var associatedUsers = Ext.MockDbSet(new List <AssociatedOrganizationUserEntity> { new AssociatedOrganizationUserEntity() }); context.Setup(ctx => ctx.AssociatedOrganizationUserEntities).Returns(associatedUsers.Object); var res = organizationUserRepository.CreateAssociationOrganizationUser(command); Assert.True(res >= 0); }
public bool AssociationExists(CreateOrganizationUsersAssociationCommand associationCommand) => this .context .AssociatedOrganizationUserEntities .Any(d => d.AssociationType == associationCommand.AssociationType && d.OrganizationUserId1 == associationCommand.OrganizationUserId1 && d.OrganizationUserId2 == associationCommand.OrganizationUserId2 && d.DeletedAt == null);
public void UnDeleteAssociationOrganizationUser(CreateOrganizationUsersAssociationCommand associationCommand, int associatedOrganizationUserEntityId) { var entityToUpdate = this.context.AssociatedOrganizationUserEntities.First(aoue => aoue.AssociatedOrganizationUserEntityId == associatedOrganizationUserEntityId); //TODO: add UpdatedBy details for traceability entityToUpdate.UpdatedAt = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); entityToUpdate.DeletedBy = null; entityToUpdate.DeletedAt = null; this.context.SaveChanges(); }
/// <inheritdoc /> public int CreateAssociationOrganizationUser(CreateOrganizationUsersAssociationCommand associationCommand) { var now = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(); var entity = mapper.Map <AssociatedOrganizationUserEntity>(associationCommand); //TODO: add CreatedBy details for traceability entity.CreatedAt = now; entity.UpdatedAt = now; this.context.AssociatedOrganizationUserEntities.Add(entity); context.SaveChanges(); return(entity.AssociatedOrganizationUserEntityId); }
/// <summary> /// Associates two organization users with a given association type. /// </summary> /// <param name="associationCommand"></param> /// <returns></returns> public Result <int> CreateOrganizationUsersAssociation(CreateOrganizationUsersAssociationCommand associationCommand) { if (associationCommand == null) { var error = OrganizationUserServiceErrors.InvalidAssociateOrgUsersData(); logger.LogError(error.Code); return(new Result <int>(error)); } if (!this.organizationUserRepository.OrganizationUserExists(associationCommand.OrganizationUserId1, associationCommand.OrganizationId) || !this.organizationUserRepository.OrganizationUserExists(associationCommand.OrganizationUserId2, associationCommand.OrganizationId) ) { var error = OrganizationUserServiceErrors.InvalidOrganizationUserId(); logger.LogError(error.Code); return(new Result <int>(error)); } var associationExists = this.organizationUserRepository.AssociationExists(associationCommand); if (associationExists) { var error = OrganizationUserServiceErrors.AssociationAlreadyExists(); logger.LogError(error.Code); return(new Result <int>(error)); } //Checks if the primary organizationUser already has an association of the same type with a different user. var associationTypeExists = this.organizationUserRepository.AssociationTypeExists(associationCommand.OrganizationUserId1, associationCommand.AssociationType); if (associationTypeExists) { var error = OrganizationUserServiceErrors.AssociationOfTypeAlreadyExistsWithAnotherUser(); logger.LogError(error.Code); return(new Result <int>(error)); } var result = this.organizationUserRepository.CreateAssociationOrganizationUser(associationCommand); return(new Result <int>(result)); }