Matter Manager (.NET)

In Relativity, a matter is a legal case, such as a dispute or other action during which a law firm acts as a representative of a client. For general information, see Matters on the Relativity Documentation site.

The Matter Manager API exposes multiple methods for programmatically managing matters in your Relativity environment. It includes the following features:

  • Supports create, read, update, and delete operations on matters.
  • Provides helper methods used to retrieve available clients and statuses. Use these helper methods when creating and updating matters.

You can also interact with the Matter Manager API through REST. For more information, see Matter Manager (REST).

This page contains the following information:

The Relativity.Environment.SDK contains this API. For compatibility and package installation instructions, see Download the SDKs and NuGet packages.

Retrieve a list of available clients

Use the the GetEligibleClientsAsync() method to retrieve a list of the available clients that you can associate with a matter.

public static async Task GetEligibleClientsAsync()
{ 
    using (Relativity.Environment.V1.Matter.IMatterManager matterManager = serviceFactory.CreateProxy<Relativity.Environment.V1.Matter.IMatterManager>())
    {
        try
        {
            List<DisplayableObjectIdentifier> response = await matterManager.GetEligibleClientsAsync();
            foreach (DisplayableObjectIdentifier client in response)
            {
                string info = string.Format("Read client {0} with Artifact ID {1}", client.Name, client.ArtifactID);
                Console.Write(info);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(string.Format("An error occurred: {0}", ex.Message));
        }
    }
}

Retrieve a list of matter statuses

Use GetEligibleStatusesAsync() method to get a list of the available statuses for matters.

public static async Task GetEligibleStatusesAsync()
{
    using (Relativity.Environment.V1.Matter.IMatterManager matterManager = serviceFactory.CreateProxy<Relativity.Environment.V1.Matter.IMatterManager>())
    {
        try
        {
            List<DisplayableObjectIdentifier> response = await matterManager.GetEligibleStatusesAsync();
            foreach (DisplayableObjectIdentifier status in response)
            {
                string info = string.Format("Read status {0} with Artifact ID {1}", status.Name, status.ArtifactID);
                Console.Write(info);
            }
        }
        catch (Exception ex)
        {
            Console.WriteLine(string.Format("An error occurred: {0}", ex.Message));
        }
    }
}

Create a matter

Use the CreateAsync() method to add a new matter.

public static async Task CreateAsync()
{
    int clientId = 1015253;
    int statusId = 1016892;
  
    MatterRequest request = new MatterRequest
    {
        Name = "New Matter",
        Number = "10",
        Keywords = "keywords",
        Notes = "notes",
        Client = new Securable<ObjectIdentifier>(new ObjectIdentifier { ArtifactID = clientId }),
        Status = new Securable<ObjectIdentifier>(new ObjectIdentifier { ArtifactID = statusId })
    };
  
    using (Relativity.Environment.V1.Matter.IMatterManager matterManager = serviceFactory.CreateProxy<Relativity.Environment.V1.Matter.IMatterManager>())
    {
        try
        {
            int newMatterArtifactId = await matterManager.CreateAsync(request);
            string info = string.Format("Created matter with Artifact ID {0}", newMatterArtifactId);
            Console.Write(info);
        }
        catch (Exception ex)
        {
            Console.WriteLine(string.Format("An error occurred: {0}", ex.Message));
        }
    }
}

Retrieve metadata for a matter

Use ReadAsync() method to retrieve the metadata for a matter.

public static async Task ReadAsync()
{
    int matterArtifactId = 1016911;
  
    using (Relativity.Environment.V1.Matter.IMatterManager matterManager = serviceFactory.CreateProxy<Relativity.Environment.V1.Matter.IMatterManager>())
    {
        try
        {
            MatterResponse response = await matterManager.ReadAsync(matterArtifactId);
            string info = string.Format("Read matter {0} with Artifact ID {1}", response.Name, response.ArtifactID);
            Console.Write(info);
        }
        catch (Exception ex)
        {
            Console.WriteLine(string.Format("An error occurred: {0}", ex.Message));
        }
    }
}

Update a matter

Use the UpdateAsync() method to modify the properties of a matter.

public static async Task UpdateAsync()
{
    int matterArtifactId = 1016911;
    int clientId = 1015253;
    int statusId = 1016892;
  
    MatterRequest request = new MatterRequest
    {
        Name = "New Matter",
        Number = "10",
        Keywords = "keywords",
        Notes = "notes",
        Client = new Securable<ObjectIdentifier>(new ObjectIdentifier { ArtifactID = clientId }),
        Status = new Securable<ObjectIdentifier>(new ObjectIdentifier { ArtifactID = statusId })
    };
  
    using (Relativity.Environment.V1.Matter.IMatterManager matterManager = serviceFactory.CreateProxy<Relativity.Environment.V1.Matter.IMatterManager>())
    {
        try
        {
            await matterManager.UpdateAsync(matterArtifactId, request);
        }
        catch (Exception ex)
        {
            Console.WriteLine(string.Format("An error occurred: {0}", ex.Message));
        }
    }
}

Delete a matter

Use the DeleteAsync() method to remove a matter from Relativity.

public static async Task DeleteAsync()
{
    int matterArtifactId = 1016911;
  
    using (Relativity.Environment.V1.Matter.IMatterManager matterManager = serviceFactory.CreateProxy<Relativity.Environment.V1.Matter.IMatterManager>())
    {
        try
        {
            await matterManager.DeleteAsync(matterArtifactId);
        }
        catch (Exception ex)
        {
            Console.WriteLine(string.Format("An error occurred: {0}", ex.Message));
        }
    }
}

Additional Resources

DevHelp Community GitHub Release Notes NuGet

Share knowledge with the Relativity developer community.

Access tools and resources to build an application.

Review the most recent product release notes.

Create .NET Apps faster with NuGet.