> ## Documentation Index
> Fetch the complete documentation index at: https://docs.superoffice.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SuperOffice.WebApi.Data.ProjectEntity

<h1 id="SuperOffice_WebApi_Data_ProjectEntity">
  Class ProjectEntity
</h1>

Namespace: [SuperOffice.WebApi.Data](SuperOffice.WebApi.Data.md)\
Assembly: SuperOffice.WebApi.dll

Carrier object for ProjectEntity.
The Project Service. The service implements all services working with the Project object

```csharp theme={null}
public class ProjectEntity : Carrier
```

#### Inheritance

[object](https://learn.microsoft.com/dotnet/api/system.object) ←
[Carrier](SuperOffice.WebApi.Data.Carrier.md) ←
[ProjectEntity](SuperOffice.WebApi.Data.ProjectEntity.md)

#### Inherited Members

[Carrier.TableRight](SuperOffice.WebApi.Data.Carrier.md#SuperOffice_WebApi_Data_Carrier_TableRight),
[Carrier.FieldProperties](SuperOffice.WebApi.Data.Carrier.md#SuperOffice_WebApi_Data_Carrier_FieldProperties),
[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring),
[object.Equals(object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object\)),
[object.Equals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals\(system-object-system-object\)),
[object.ReferenceEquals(object, object)](https://learn.microsoft.com/dotnet/api/system.object.referenceequals),
[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode),
[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype),
[object.MemberwiseClone()](https://learn.microsoft.com/dotnet/api/system.object.memberwiseclone)

## Examples

Get ProjectEntity 123 using the WebApi client:
\<pre>\<code class="lang-csharp">var configuration = new WebApiConfiguration(url);
var agent = new ProjectAgent(configuration);
var projectEntity = agent.GetProjectEntity( 123 );\</code>\</pre>

## Remarks

Use \<xref href="SuperOffice.CRM.Services.ArchiveAgent?text=Archive+agent" data-throw-if-not-resolved="false">\</xref>:
All ProjectEntity: \<pre>\<code class="lang-csharp">"FindProject"\</code>\</pre>
Activities: \<pre>\<code class="lang-csharp">"ProjectActivity"\</code>\</pre> with restriction \<pre>\<code class="lang-csharp">"projectId eq " + id\</code>\</pre>.
Guide: \<pre>\<code class="lang-csharp">"ProjectGuide"\</code>\</pre> with restriction \<pre>\<code class="lang-csharp">"projectId eq " + id\</code>\</pre>.
Members: \<pre>\<code class="lang-csharp">"ProjectMember"\</code>\</pre> with restriction \<pre>\<code class="lang-csharp">"projectId eq " + id\</code>\</pre>.
Contacts: \<pre>\<code class="lang-csharp">"ContactProjects"\</code>\</pre> with restriction \<pre>\<code class="lang-csharp">"projectId eq " + id\</code>\</pre>.
Links: \<pre>\<code class="lang-csharp">"Links"\</code>\</pre> with restriction \<pre>\<code class="lang-csharp">"sourceProjectRestrictionId eq " + id\</code>\</pre>.

## Constructors

<h3 id="SuperOffice_WebApi_Data_ProjectEntity__ctor">
  ProjectEntity()
</h3>

Default constructor - defaults any enum props to 0.

```csharp theme={null}
public ProjectEntity()
```

## Properties

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ActiveErpLinks">
  ActiveErpLinks
</h3>

The number of active erp links

```csharp theme={null}
public virtual int ActiveErpLinks { get; set; }
```

#### Property Value

[int](https://learn.microsoft.com/dotnet/api/system.int32)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ActiveLinks">
  ActiveLinks
</h3>

Number of active links to documents, other appointments, and such

```csharp theme={null}
public virtual uint ActiveLinks { get; set; }
```

#### Property Value

[uint](https://learn.microsoft.com/dotnet/api/system.uint32)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ActiveStatusMonitorId">
  ActiveStatusMonitorId
</h3>

Active status monitor identity with the lowest rank for project

```csharp theme={null}
public virtual int ActiveStatusMonitorId { get; set; }
```

#### Property Value

[int](https://learn.microsoft.com/dotnet/api/system.int32)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_Associate">
  Associate
</h3>

The person that created the project
\<p>Use MDO List name "associate" to get list items.\</p>

```csharp theme={null}
public virtual Associate Associate { get; set; }
```

#### Property Value

[Associate](SuperOffice.WebApi.Data.Associate.md)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_Completed">
  Completed
</h3>

Done (0=false, 1=true). Status implies changes in which fields are shown in GUI, as well as which fields can be updated

```csharp theme={null}
public virtual bool Completed { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_CreatedBy">
  CreatedBy
</h3>

The person that created the project

```csharp theme={null}
public virtual Associate CreatedBy { get; set; }
```

#### Property Value

[Associate](SuperOffice.WebApi.Data.Associate.md)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_CreatedDate">
  CreatedDate
</h3>

Registered date

```csharp theme={null}
public virtual DateTime CreatedDate { get; set; }
```

#### Property Value

[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_CustomFields">
  CustomFields
</h3>

Udef + Extra fields added to the carrier. Extra fields as defined by changes to database schema + user-defined fields as defined by admin.
Custom fields combines user defined fields and extra fields into one bucket.
The individual \<xref href="SuperOffice.WebApi.Data.ProjectEntity.ExtraFields" data-throw-if-not-resolved="false">\</xref> and \<xref href="SuperOffice.WebApi.Data.ProjectEntity.UserDefinedFields?text=UserDefinedFields" data-throw-if-not-resolved="false">\</xref> properties are deprecated in favor of this
combined collection.
The value string is the encoded value: "\[I:123]" or "\[DT:2019-09-11]".

```csharp theme={null}
public virtual StringDictionary CustomFields { get; set; }
```

#### Property Value

[StringDictionary](SuperOffice.WebApi.Data.StringDictionary.md)

#### Remarks

The naming convention of the key string is as follows:
\<table>\<tbody>\<tr>\<td class="term">Extra field data\</td>\<td class="description">
\[Extra field name]\<p>\</p>
Example: \<pre>\<code class="lang-csharp">'x\_gorp' = '\[I:123]'\</code>\</pre>
\</td>\</tr>\<tr>\<td class="term">User defined field data\</td>\<td class="description">
\[Prog-id name]\<p>\</p>
Example: \<pre>\<code class="lang-csharp">'SuperOffice:1' = '\[I:123]'\</code>\</pre>\<p>\</p>
\</td>\</tr>\</tbody>\</table>

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_Description">
  Description
</h3>

The actual text, max 2047 significant characters even though it is stored as a larger data type on some databases

```csharp theme={null}
public virtual string Description { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_EndDate">
  EndDate
</h3>

Planned end date for project, inhertied from type and later editable

```csharp theme={null}
public virtual DateTime EndDate { get; set; }
```

#### Property Value

[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_EventId">
  EventId
</h3>

Reserved field for Lyyti event when project is linked to an event.

```csharp theme={null}
public virtual int EventId { get; set; }
```

#### Property Value

[int](https://learn.microsoft.com/dotnet/api/system.int32)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ExtraFields">
  ExtraFields
</h3>

Deprecated: Use \<xref href="SuperOffice.WebApi.Data.ProjectEntity.CustomFields" data-throw-if-not-resolved="false">\</xref> instead.
Extra fields added to the carrier. This could be data from Plug-ins, the foreign key system, external applications, etc.
The value string is the encoded value: "\[I:123]" or "\[DT:2019-09-11]".

```csharp theme={null}
public virtual StringDictionary ExtraFields { get; set; }
```

#### Property Value

[StringDictionary](SuperOffice.WebApi.Data.StringDictionary.md)

#### Remarks

The naming convention of the key string is as follows:
\<table>\<tbody>\<tr>\<td class="term">Plug-in data\</td>\<td class="description">
\[Plug-in name].\[Property name]
Example: DocumentPlugin.DocumentType
\</td>\</tr>\<tr>\<td class="term">Foreign key data\</td>\<td class="description">
The device identity is appended directly to the device name if it exists.
This is not commonly used, but the database opens for this as a possibility to have several devices with the same name,
and hence we would ensure an unique key if this field is used.
Example: Audience.SecretService.DefaultCountry
\</td>\</tr>\<tr>\<td class="term">User defined table data\</td>\<td class="description">
\[Table name].\[Field name]
Example: Phunneling.AggregatedSales
\</td>\</tr>\<tr>\<td class="term">Other\</td>\<td class="description">
Other data sources must ensure an unique name. If the key already exists we do not add the data to the dictionary.
We also ensure that SuperOffice data are added first, so that existing data doesnt change when more data sources are added (with duplicate data keys).
\</td>\</tr>\</tbody>\</table>

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_HasImage">
  HasImage
</h3>

True if the project has an image. (This is the image that is displayed in the CRM client)

```csharp theme={null}
public virtual bool HasImage { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ImageDescription">
  ImageDescription
</h3>

Description of the project image if it exists. (This is the image that is displayed in the CRM client)

```csharp theme={null}
public virtual string ImageDescription { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_IsPublished">
  IsPublished
</h3>

Publication is published

```csharp theme={null}
public virtual bool IsPublished { get; set; }
```

#### Property Value

[bool](https://learn.microsoft.com/dotnet/api/system.boolean)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_Links">
  Links
</h3>

List of all elements linked to the project

```csharp theme={null}
public virtual Link[] Links { get; set; }
```

#### Property Value

[Link](SuperOffice.WebApi.Data.Link.md)\[]

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_Name">
  Name
</h3>

Project name

```csharp theme={null}
public virtual string Name { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_NextMilestoneDate">
  NextMilestoneDate
</h3>

Calculated date, reflects date of closest non-complete future milestone activity

```csharp theme={null}
public virtual DateTime NextMilestoneDate { get; set; }
```

#### Property Value

[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_NmdAppointmentId">
  NmdAppointmentId
</h3>

ID of appointment that "caused" the nextMilestoneDate, can be 0

```csharp theme={null}
public virtual int NmdAppointmentId { get; set; }
```

#### Property Value

[int](https://learn.microsoft.com/dotnet/api/system.int32)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_Postit">
  Postit
</h3>

The actual text, max 2047 significant characters even though it is stored as a larger data type on some databases

```csharp theme={null}
public virtual string Postit { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ProjectId">
  ProjectId
</h3>

Primary key

```csharp theme={null}
public virtual int ProjectId { get; set; }
```

#### Property Value

[int](https://learn.microsoft.com/dotnet/api/system.int32)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ProjectMembers">
  ProjectMembers
</h3>

The persons which are members of the project

```csharp theme={null}
public virtual ProjectMember[] ProjectMembers { get; set; }
```

#### Property Value

[ProjectMember](SuperOffice.WebApi.Data.ProjectMember.md)\[]

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ProjectNumber">
  ProjectNumber
</h3>

Automatically generated number

```csharp theme={null}
public virtual string ProjectNumber { get; set; }
```

#### Property Value

[string](https://learn.microsoft.com/dotnet/api/system.string)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ProjectStatus">
  ProjectStatus
</h3>

Project status is a list defined by the database administrator. Different statuses of a project may be: “In planning”, “Started”, “Finished” and so on
\<p>Use MDO List name "projectstatus" to get list items.\</p>

```csharp theme={null}
public virtual ProjectStatus ProjectStatus { get; set; }
```

#### Property Value

[ProjectStatus](SuperOffice.WebApi.Data.ProjectStatus.md)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_ProjectType">
  ProjectType
</h3>

Project type is a list defined by the database admin. for example: 'Large', 'Small', 'Party'...
\<p>Use MDO List name "projecttype" to get list items.\</p>

```csharp theme={null}
public virtual ProjectType ProjectType { get; set; }
```

#### Property Value

[ProjectType](SuperOffice.WebApi.Data.ProjectType.md)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_PublishEventDate">
  PublishEventDate
</h3>

Publish event date

```csharp theme={null}
public virtual DateTime PublishEventDate { get; set; }
```

#### Property Value

[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_PublishFrom">
  PublishFrom
</h3>

Publication valid from (inclusive)

```csharp theme={null}
public virtual DateTime PublishFrom { get; set; }
```

#### Property Value

[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_PublishTo">
  PublishTo
</h3>

Publication valid to (inclusive)

```csharp theme={null}
public virtual DateTime PublishTo { get; set; }
```

#### Property Value

[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_StartDate">
  StartDate
</h3>

Reserved field for Lyyti event when project is linked to an event, is the event start date.

```csharp theme={null}
public virtual DateTime StartDate { get; set; }
```

#### Property Value

[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_UpdatedBy">
  UpdatedBy
</h3>

The person that last updated the project

```csharp theme={null}
public virtual Associate UpdatedBy { get; set; }
```

#### Property Value

[Associate](SuperOffice.WebApi.Data.Associate.md)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_UpdatedDate">
  UpdatedDate
</h3>

Last updated date

```csharp theme={null}
public virtual DateTime UpdatedDate { get; set; }
```

#### Property Value

[DateTime](https://learn.microsoft.com/dotnet/api/system.datetime)

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_Urls">
  Urls
</h3>

The project's internet adresses

```csharp theme={null}
public virtual EntityElement[] Urls { get; set; }
```

#### Property Value

[EntityElement](SuperOffice.WebApi.Data.EntityElement.md)\[]

<h3 id="SuperOffice_WebApi_Data_ProjectEntity_UserDefinedFields">
  UserDefinedFields
</h3>

Deprecated: Use \<xref href="SuperOffice.WebApi.Data.ProjectEntity.CustomFields" data-throw-if-not-resolved="false">\</xref> instead.
Dictionary of user defined field data.
The key string is the ProgId of the UdefField, or if the ProgId is empty it is a string of the format "SuperOffice:\[UdefFieldIdentity]", e.g. "SuperOffice:1234"
The value string is the encoded value: "\[I:123]" or "\[DT:2019-09-11]".

```csharp theme={null}
public virtual StringDictionary UserDefinedFields { get; set; }
```

#### Property Value

[StringDictionary](SuperOffice.WebApi.Data.StringDictionary.md)

## See Also

[ProjectAgent](SuperOffice.WebApi.Agents.ProjectAgent.md),
[ArchiveAgent](SuperOffice.WebApi.Agents.ArchiveAgent.md),


## Related topics

- [SuperOffice.WebApi.Data.Project ValidateProjectEntityRequest](/en/api/reference/webapi/SuperOffice.WebApi.Data.Project_ValidateProjectEntityRequest.md)
- [SuperOffice.WebApi.Agents.ProjectAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.ProjectAgent.md)
- [SuperOffice.WebApi.Agents.IProjectAgent](/en/api/reference/webapi/SuperOffice.WebApi.Agents.IProjectAgent.md)
- [SuperOffice.WebApi.Data.Project SaveProjectEntityWithoutMembersRequest](/en/api/reference/webapi/SuperOffice.WebApi.Data.Project_SaveProjectEntityWithoutMembersRequest.md)
- [Validate Project Entity](/en/api/reference/restful/agent/project_agent/validate-project-entity.md)
- [Delete Project Entity](/en/api/reference/restful/rest/project/delete-project-entity.md)
