Changeset 15523


Ignore:
Timestamp:
12/14/17 09:56:23 (3 years ago)
Author:
jzenisek
Message:

#2839 worked on db model and updated dbml

Location:
branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/HiveDataContext.dbml

    r15411 r15523  
    1 <?xml version="1.0" encoding="utf-8"?><Database Name="HeuristicLab.Hive" Class="HiveDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
     1<?xml version="1.0" encoding="utf-8"?><Database Name="HeuristicLab.Hive-3.3" Class="HiveDataContext" xmlns="http://schemas.microsoft.com/linqtosql/dbml/2007">
     2  <Connection Mode="AppSettings" ConnectionString="Data Source=HIVELAB;Initial Catalog=HeuristicLab.Hive-3.3;Integrated Security=True" SettingsObjectName="HeuristicLab.Services.Hive.DataAccess.Settings" SettingsPropertyName="HeuristicLab_Hive_3_3ConnectionString" Provider="System.Data.SqlClient" />
     3  <Table Name="dbo.AssignedJobResource" Member="AssignedJobResources">
     4    <Type Name="AssignedJobResource">
     5      <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     6      <Column Name="JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     7      <Association Name="Job_AssignedJobResource" Member="Job" ThisKey="JobId" OtherKey="JobId" Type="Job" IsForeignKey="true" />
     8      <Association Name="Resource_AssignedJobResource" Member="Resource" ThisKey="ResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" />
     9    </Type>
     10  </Table>
     11  <Table Name="[statistics].FactTask" Member="FactTasks">
     12    <Type Name="FactTask">
     13      <Column Name="TaskId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     14      <Column Name="CalculatingTime" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     15      <Column Name="WaitingTime" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     16      <Column Name="TransferTime" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     17      <Column Name="NumCalculationRuns" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     18      <Column Name="NumRetries" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     19      <Column Name="CoresRequired" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     20      <Column Name="MemoryRequired" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     21      <Column Name="Priority" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     22      <Column Name="LastClientId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
     23      <Column Name="JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     24      <Column Name="StartTime" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
     25      <Column Name="EndTime" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
     26      <Column Name="TaskState" Type="System.String" DbType="VarChar(30) NOT NULL" CanBeNull="false" />
     27      <Column Name="Exception" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
     28      <Column Name="InitialWaitingTime" Type="System.Int32" DbType="Int" CanBeNull="true" />
     29      <Association Name="DimClient_FactTask" Member="DimClient" ThisKey="LastClientId" OtherKey="Id" Type="DimClient" IsForeignKey="true" />
     30      <Association Name="DimJob_FactTask" Member="DimJob" ThisKey="JobId" OtherKey="JobId" Type="DimJob" IsForeignKey="true" />
     31    </Type>
     32  </Table>
    233  <Table Name="dbo.AssignedProjectResource" Member="AssignedProjectResources">
    334    <Type Name="AssignedProjectResource">
    435      <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    5       <Column Name="ProjectId" Storage="_JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    6       <Association Name="Resource_AssignedResource" Member="Resource" ThisKey="ResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" DeleteRule="CASCADE" />
    7       <Association Name="Project_AssignedResource" Member="Project" ThisKey="ProjectId" OtherKey="ProjectId" Type="Project" IsForeignKey="true" DeleteRule="CASCADE" />
     36      <Column Name="ProjectId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     37      <Association Name="Project_AssignedProjectResource" Member="Project" ThisKey="ProjectId" OtherKey="ProjectId" Type="Project" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
     38      <Association Name="Resource_AssignedProjectResource" Member="Resource" ThisKey="ResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
     39    </Type>
     40  </Table>
     41  <Table Name="dbo.Downtime" Member="Downtimes">
     42    <Type Name="Downtime">
     43      <Column Name="DowntimeId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     44      <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     45      <Column Name="StartDate" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
     46      <Column Name="EndDate" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
     47      <Column Name="AllDayEvent" Type="System.Boolean" DbType="Bit NOT NULL" CanBeNull="false" />
     48      <Column Name="Recurring" Type="System.Boolean" DbType="Bit NOT NULL" CanBeNull="false" />
     49      <Column Name="RecurringId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     50      <Column Name="DowntimeType" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
     51      <Association Name="Resource_Downtime" Member="Resource" ThisKey="ResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" />
     52    </Type>
     53  </Table>
     54  <Table Name="dbo.Job" Member="Jobs">
     55    <Type Name="Job">
     56      <Column Name="JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     57      <Column Name="Name" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
     58      <Column Name="Description" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
     59      <Column Name="OwnerUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     60      <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
     61      <Column Name="ProjectId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     62      <Association Name="Job_AssignedJobResource" Member="AssignedJobResources" ThisKey="JobId" OtherKey="JobId" Type="AssignedJobResource" />
     63      <Association Name="Job_JobPermission" Member="JobPermissions" ThisKey="JobId" OtherKey="JobId" Type="JobPermission" />
     64      <Association Name="Job_Task" Member="Tasks" ThisKey="JobId" OtherKey="JobId" Type="Task" />
     65      <Association Name="Project_Job" Member="Project" ThisKey="ProjectId" OtherKey="ProjectId" Type="Project" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
     66    </Type>
     67  </Table>
     68  <Table Name="dbo.JobPermission" Member="JobPermissions">
     69    <Type Name="JobPermission">
     70      <Column Name="JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     71      <Column Name="GrantedUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     72      <Column Name="GrantedByUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     73      <Column Name="Permission" Type="System.String" DbType="VarChar(15) NOT NULL" CanBeNull="false" />
     74      <Association Name="Job_JobPermission" Member="Job" ThisKey="JobId" OtherKey="JobId" Type="Job" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
     75    </Type>
     76  </Table>
     77  <Table Name="dbo.Lifecycle" Member="Lifecycles">
     78    <Type Name="Lifecycle">
     79      <Column Name="LifecycleId" Type="System.Int32" DbType="Int NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     80      <Column Name="LastCleanup" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
    881    </Type>
    982  </Table>
    1083  <Table Name="dbo.Plugin" Member="Plugins">
    1184    <Type Name="Plugin">
    12       <Column Name="PluginId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
    13       <Column Name="Name" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" />
    14       <Column Name="Version" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" />
    15       <Column Name="UserId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
    16       <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
    17       <Column Name="Hash" Type="System.Byte[]" DbType="VarBinary(20) NOT NULL" CanBeNull="false" />
     85      <Column Name="PluginId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     86      <Column Name="Name" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
     87      <Column Name="Version" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
     88      <Column Name="UserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     89      <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
     90      <Column Name="Hash" Type="System.Data.Linq.Binary" DbType="VarBinary(20) NOT NULL" CanBeNull="false" UpdateCheck="Never" />
     91      <Association Name="Plugin_PluginData" Member="PluginDatas" ThisKey="PluginId" OtherKey="PluginId" Type="PluginData" />
    1892      <Association Name="Plugin_RequiredPlugin" Member="RequiredPlugins" ThisKey="PluginId" OtherKey="PluginId" Type="RequiredPlugin" />
    19       <Association Name="Plugin_PluginData" Member="PluginData" ThisKey="PluginId" OtherKey="PluginId" Type="PluginData" />
     93    </Type>
     94  </Table>
     95  <Table Name="dbo.PluginData" Member="PluginDatas">
     96    <Type Name="PluginData">
     97      <Column Name="PluginDataId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     98      <Column Name="PluginId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     99      <Column Name="Data" Type="System.Data.Linq.Binary" DbType="VarBinary(MAX) NOT NULL" CanBeNull="false" UpdateCheck="Never" />
     100      <Column Name="FileName" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
     101      <Association Name="Plugin_PluginData" Member="Plugin" ThisKey="PluginId" OtherKey="PluginId" Type="Plugin" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
     102    </Type>
     103  </Table>
     104  <Table Name="dbo.Project" Member="Projects">
     105    <Type Name="Project">
     106      <Column Name="ProjectId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     107      <Column Name="ParentProjectId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
     108      <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
     109      <Column Name="Name" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
     110      <Column Name="Description" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
     111      <Column Name="OwnerUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     112      <Column Name="StartDate" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
     113      <Column Name="EndDate" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
     114      <Association Name="Project_AssignedProjectResource" Member="AssignedProjectResources" ThisKey="ProjectId" OtherKey="ProjectId" Type="AssignedProjectResource" />
     115      <Association Name="Project_Job" Member="Jobs" ThisKey="ProjectId" OtherKey="ProjectId" Type="Job" />
     116      <Association Name="Project_Project" Member="Projects" ThisKey="ProjectId" OtherKey="ParentProjectId" Type="Project" />
     117      <Association Name="Project_ProjectPermission" Member="ProjectPermissions" ThisKey="ProjectId" OtherKey="ProjectId" Type="ProjectPermission" />
     118      <Association Name="Project_Project" Member="Project1" ThisKey="ParentProjectId" OtherKey="ProjectId" Type="Project" IsForeignKey="true" />
     119    </Type>
     120  </Table>
     121  <Table Name="dbo.ProjectPermission" Member="ProjectPermissions">
     122    <Type Name="ProjectPermission">
     123      <Column Name="ProjectId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     124      <Column Name="GrantedUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     125      <Column Name="GrantedByUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     126      <Association Name="Project_ProjectPermission" Member="Project" ThisKey="ProjectId" OtherKey="ProjectId" Type="Project" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
    20127    </Type>
    21128  </Table>
    22129  <Table Name="dbo.RequiredPlugins" Member="RequiredPlugins">
    23130    <Type Name="RequiredPlugin">
    24       <Column Name="RequiredPluginId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" UpdateCheck="Never" />
    25       <Column Name="TaskId" Storage="_JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     131      <Column Name="RequiredPluginId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     132      <Column Name="TaskId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    26133      <Column Name="PluginId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    27       <Association Name="Plugin_RequiredPlugin" Member="Plugin" Storage="_PluginInfo" ThisKey="PluginId" OtherKey="PluginId" Type="Plugin" IsForeignKey="true" DeleteRule="CASCADE" />
    28       <Association Name="Task_RequiredPlugin" Member="Task" Storage="_Job" ThisKey="TaskId" OtherKey="TaskId" Type="Task" IsForeignKey="true" />
     134      <Association Name="Plugin_RequiredPlugin" Member="Plugin" ThisKey="PluginId" OtherKey="PluginId" Type="Plugin" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
     135      <Association Name="Task_RequiredPlugin" Member="Task" ThisKey="TaskId" OtherKey="TaskId" Type="Task" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
    29136    </Type>
    30137  </Table>
    31138  <Table Name="dbo.Resource" Member="Resources">
    32     <Type Name="Resource" InheritanceCode="RESOURCE">
    33       <Column Name="ResourceId" AutoSync="OnInsert" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    34       <Column Name="Name" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" />
    35       <Column Name="ResourceType" Type="System.String" CanBeNull="false" IsDiscriminator="true" />
     139    <Type Name="Resource">
     140      <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     141      <Column Name="Name" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
     142      <Column Name="ResourceType" Type="System.String" DbType="NVarChar(4000) NOT NULL" CanBeNull="false" />
    36143      <Column Name="ParentResourceId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
    37       <Column Name="HbInterval" Type="System.Int32" DbType="Int" CanBeNull="false" />
     144      <Column Name="CpuSpeed" Type="System.Int32" DbType="Int" CanBeNull="true" />
     145      <Column Name="Memory" Type="System.Int32" DbType="Int" CanBeNull="true" />
     146      <Column Name="Login" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
     147      <Column Name="SlaveState" Type="System.String" DbType="VarChar(15)" CanBeNull="true" />
     148      <Column Name="Cores" Type="System.Int32" DbType="Int" CanBeNull="true" />
     149      <Column Name="FreeCores" Type="System.Int32" DbType="Int" CanBeNull="true" />
     150      <Column Name="FreeMemory" Type="System.Int32" DbType="Int" CanBeNull="true" />
     151      <Column Name="IsAllowedToCalculate" Type="System.Boolean" DbType="Bit" CanBeNull="true" />
     152      <Column Name="CpuArchitecture" Type="System.String" DbType="VarChar(3)" CanBeNull="true" />
     153      <Column Name="OperatingSystem" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
     154      <Column Name="LastHeartbeat" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
     155      <Column Name="CpuUtilization" Type="System.Double" DbType="Float" CanBeNull="true" />
     156      <Column Name="HbInterval" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     157      <Column Name="IsDisposable" Type="System.Boolean" DbType="Bit" CanBeNull="true" />
    38158      <Column Name="OwnerUserId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
    39       <Association Name="Resource_AssignedResource" Member="AssignedProjectResources" Storage="_AssignedResources" ThisKey="ResourceId" OtherKey="ResourceId" Type="AssignedProjectResource" />
    40       <Association Name="Resource_Resource" Member="ChildResources" ThisKey="ResourceId" OtherKey="ParentResourceId" Type="Resource" />
    41       <Association Name="Resource_Downtime" Member="Downtimes" Storage="_UptimeCalendars" ThisKey="ResourceId" OtherKey="ResourceId" Type="Downtime" />
     159      <Association Name="Resource_AssignedJobResource" Member="AssignedJobResources" ThisKey="ResourceId" OtherKey="ResourceId" Type="AssignedJobResource" />
     160      <Association Name="Resource_AssignedProjectResource" Member="AssignedProjectResources" ThisKey="ResourceId" OtherKey="ResourceId" Type="AssignedProjectResource" />
     161      <Association Name="Resource_Downtime" Member="Downtimes" ThisKey="ResourceId" OtherKey="ResourceId" Type="Downtime" />
     162      <Association Name="Resource_Resource" Member="Resources" ThisKey="ResourceId" OtherKey="ParentResourceId" Type="Resource" />
    42163      <Association Name="Resource_StateLog" Member="StateLogs" ThisKey="ResourceId" OtherKey="SlaveId" Type="StateLog" />
    43       <Association Name="Resource_ResourcePermission" Member="ResourcePermissions" ThisKey="ResourceId" OtherKey="ResourceId" Type="ResourcePermission" />
    44       <Association Name="Resource_AssignedTaskResource" Member="AssignedTaskResources" ThisKey="ResourceId" OtherKey="ResourceId" Type="AssignedTaskResource" />
    45       <Association Name="Resource_Resource" Member="ParentResource" ThisKey="ParentResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" />
    46       <Type Name="Slave" InheritanceCode="Slave" IsInheritanceDefault="true">
    47         <Column Name="CpuSpeed" Storage="_CPUSpeed" Type="System.Int32" DbType="Int" CanBeNull="true" />
    48         <Column Name="Memory" Type="System.Int32" DbType="Int" CanBeNull="true" />
    49         <Column Name="Login" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
    50         <Column Name="SlaveState" Storage="_Status" Type="global::HeuristicLab.Services.Hive.DataAccess.SlaveState" DbType="VarChar(15)" CanBeNull="true" />
    51         <Column Name="Cores" Storage="_NumberOfCores" Type="System.Int32" DbType="Int" CanBeNull="true" />
    52         <Column Name="FreeCores" Storage="_NumberOfFreeCores" Type="System.Int32" DbType="Int" CanBeNull="true" />
    53         <Column Name="FreeMemory" Type="System.Int32" DbType="Int" CanBeNull="true" />
    54         <Column Name="IsAllowedToCalculate" Type="System.Boolean" DbType="Bit" CanBeNull="false" />
    55         <Column Name="CpuArchitecture" Type="global::HeuristicLab.Services.Hive.DataAccess.CpuArchitecture" DbType="VarChar(3)" CanBeNull="false" />
    56         <Column Name="OperatingSystem" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" UpdateCheck="Never" />
    57         <Column Name="LastHeartbeat" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
    58         <Column Name="CpuUtilization" Type="System.Double" DbType="float" CanBeNull="false" />
    59         <Column Name="IsDisposable" Type="System.Boolean" DbType="Bit" CanBeNull="true" />
    60       </Type>
    61       <Type Name="SlaveGroup" InheritanceCode="GROUP" />
     164      <Association Name="Resource_Resource" Member="Resource1" ThisKey="ParentResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" />
     165    </Type>
     166  </Table>
     167  <Table Name="dbo.StateLog" Member="StateLogs">
     168    <Type Name="StateLog">
     169      <Column Name="StateLogId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     170      <Column Name="State" Type="System.String" DbType="VarChar(30) NOT NULL" CanBeNull="false" />
     171      <Column Name="DateTime" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
     172      <Column Name="TaskId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     173      <Column Name="UserId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
     174      <Column Name="SlaveId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
     175      <Column Name="Exception" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
     176      <Association Name="Resource_StateLog" Member="Resource" ThisKey="SlaveId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" DeleteRule="SET NULL" />
     177      <Association Name="Task_StateLog" Member="Task" ThisKey="TaskId" OtherKey="TaskId" Type="Task" IsForeignKey="true" DeleteRule="CASCADE" DeleteOnNull="true" />
    62178    </Type>
    63179  </Table>
    64180  <Table Name="dbo.Task" Member="Tasks">
    65181    <Type Name="Task">
    66       <Column Name="TaskId" Storage="_JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
    67       <Column Name="TaskState" Member="State" Type="global::HeuristicLab.Services.Hive.DataAccess.TaskState" DbType="VarChar(30)" CanBeNull="false" />
    68       <Column Name="ExecutionTimeMs" Storage="_ExecutionTime" Type="System.Double" DbType="float" CanBeNull="false" />
     182      <Column Name="TaskId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     183      <Column Name="TaskState" Type="System.String" DbType="VarChar(30) NOT NULL" CanBeNull="false" />
     184      <Column Name="ExecutionTimeMs" Type="System.Double" DbType="Float NOT NULL" CanBeNull="false" />
    69185      <Column Name="LastHeartbeat" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
    70       <Column Name="ParentTaskId" Storage="_ParentJobId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
     186      <Column Name="ParentTaskId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
    71187      <Column Name="Priority" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    72188      <Column Name="CoresNeeded" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    73189      <Column Name="MemoryNeeded" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    74       <Column Name="IsParentTask" Storage="_IsParentJob" Type="System.Boolean" DbType="Bit" CanBeNull="false" />
    75       <Column Name="FinishWhenChildJobsFinished" Type="System.Boolean" DbType="Bit" CanBeNull="false" />
    76       <Column Name="Command" Type="global::HeuristicLab.Services.Hive.DataAccess.Command?" DbType="VarChar(30)" CanBeNull="true" />
    77       <Column Name="JobId" Storage="_HiveExperimentId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     190      <Column Name="IsParentTask" Type="System.Boolean" DbType="Bit NOT NULL" CanBeNull="false" />
     191      <Column Name="FinishWhenChildJobsFinished" Type="System.Boolean" DbType="Bit NOT NULL" CanBeNull="false" />
     192      <Column Name="Command" Type="System.String" DbType="VarChar(30)" CanBeNull="true" />
     193      <Column Name="JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    78194      <Association Name="Task_RequiredPlugin" Member="RequiredPlugins" ThisKey="TaskId" OtherKey="TaskId" Type="RequiredPlugin" />
    79       <Association Name="Task_Task" Member="ChildJobs" Storage="_Jobs" ThisKey="TaskId" OtherKey="ParentTaskId" Type="Task" />
    80       <Association Name="Task_TaskData" Member="JobData" ThisKey="TaskId" OtherKey="TaskId" Type="TaskData" Cardinality="One" />
    81195      <Association Name="Task_StateLog" Member="StateLogs" ThisKey="TaskId" OtherKey="TaskId" Type="StateLog" />
    82       <Association Name="Task_AssignedTaskResource" Member="AssignedTaskResources" ThisKey="TaskId" OtherKey="TaskId" Type="AssignedTaskResource" />
    83       <Association Name="Task_Task" Member="ParentJob" Storage="_Job1" ThisKey="ParentTaskId" OtherKey="TaskId" Type="Task" IsForeignKey="true" />
    84       <Association Name="Job_Task" Member="Job" Storage="_HiveExperiment" ThisKey="JobId" OtherKey="JobId" Type="Job" IsForeignKey="true" />
    85     </Type>
    86   </Table>
    87   <Table Name="dbo.Downtime" Member="Downtimes">
    88     <Type Name="Downtime">
    89       <Column Name="DowntimeId" Storage="_UptimeCalendarId" Type="System.Guid" DbType="UniqueIdentifier" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
    90       <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
    91       <Column Name="StartDate" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
    92       <Column Name="EndDate" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
    93       <Column Name="AllDayEvent" Type="System.Boolean" DbType="Bit" CanBeNull="false" />
    94       <Column Name="Recurring" Type="System.Boolean" DbType="Bit" CanBeNull="false" />
    95       <Column Name="RecurringId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
    96       <Column Name="DowntimeType" Storage="_Type" Type="global::HeuristicLab.Services.Hive.DataAccess.DowntimeType" DbType="VarChar(MAX)" CanBeNull="false" />
    97       <Association Name="Resource_Downtime" Member="Resource" ThisKey="ResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" DeleteRule="CASCADE" />
    98     </Type>
    99   </Table>
    100   <Table Name="dbo.Job" Member="Jobs">
    101     <Type Name="Job">
    102       <Column Name="JobId" Storage="_HiveExperimentId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
    103       <Column Name="Name" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" />
    104       <Column Name="Description" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
    105       <Column Name="ResourceIds" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
    106       <Column Name="OwnerUserId" Storage="_UserId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="false" />
    107       <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
    108       <Column Name="ProjectId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    109       <Association Name="Job_Task" Member="Tasks" Storage="_Jobs" ThisKey="JobId" OtherKey="JobId" Type="Task" />
    110       <Association Name="Job_JobPermission" Member="JobPermissions" Storage="_HiveExperimentPermissions" ThisKey="JobId" OtherKey="JobId" Type="JobPermission" />
    111       <Association Name="Project_Job" Member="Project" ThisKey="ProjectId" OtherKey="ProjectId" Type="Project" IsForeignKey="true" />
     196      <Association Name="Task_Task" Member="Tasks" ThisKey="TaskId" OtherKey="ParentTaskId" Type="Task" />
     197      <Association Name="Task_TaskData" Member="TaskData" ThisKey="TaskId" OtherKey="TaskId" Type="TaskData" Cardinality="One" />
     198      <Association Name="Job_Task" Member="Job" ThisKey="JobId" OtherKey="JobId" Type="Job" IsForeignKey="true" />
     199      <Association Name="Task_Task" Member="Task1" ThisKey="ParentTaskId" OtherKey="TaskId" Type="Task" IsForeignKey="true" />
    112200    </Type>
    113201  </Table>
    114202  <Table Name="dbo.TaskData" Member="TaskDatas">
    115203    <Type Name="TaskData">
    116       <Column Name="TaskId" Storage="_JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    117       <Column Name="Data" Type="System.Byte[]" DbType="VarBinary(MAX)" CanBeNull="false" UpdateCheck="Never" IsDelayLoaded="true" />
    118       <Column Name="LastUpdate" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
    119       <Association Name="Task_TaskData" Member="Task" Storage="_Job" ThisKey="TaskId" OtherKey="TaskId" Type="Task" IsForeignKey="true" />
    120     </Type>
    121   </Table>
    122   <Table Name="dbo.PluginData" Member="PluginDatas">
    123     <Type Name="PluginData">
    124       <Column Name="PluginDataId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
    125       <Column Name="PluginId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    126       <Column Name="Data" Type="System.Byte[]" DbType="VarBinary(MAX) NOT NULL" CanBeNull="false" UpdateCheck="Never" IsDelayLoaded="true" />
    127       <Column Name="FileName" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" />
    128       <Association Name="Plugin_PluginData" Member="Plugin" ThisKey="PluginId" OtherKey="PluginId" Type="Plugin" IsForeignKey="true" />
    129     </Type>
    130   </Table>
    131   <Table Name="dbo.StateLog" Member="StateLogs">
    132     <Type Name="StateLog">
    133       <Column Name="StateLogId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
    134       <Column Name="State" Type="global::HeuristicLab.Services.Hive.DataAccess.TaskState" DbType="VarChar(30) NOT NULL" CanBeNull="false" />
    135       <Column Name="DateTime" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
    136       <Column Name="TaskId" Storage="_JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    137       <Column Name="UserId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
    138       <Column Name="SlaveId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
    139       <Column Name="Exception" Type="System.String" DbType="VarChar(MAX)" CanBeNull="false" />
    140       <Association Name="Task_StateLog" Member="Task" Storage="_Job" ThisKey="TaskId" OtherKey="TaskId" Type="Task" IsForeignKey="true" />
    141       <Association Name="Resource_StateLog" Member="Resource" ThisKey="SlaveId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" />
    142     </Type>
    143   </Table>
    144   <Table Name="dbo.JobPermission" Member="JobPermissions">
    145     <Type Name="JobPermission">
    146       <Column Name="JobId" Storage="_HiveExperimentId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    147       <Column Name="GrantedUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    148       <Column Name="GrantedByUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    149       <Column Name="Permission" Type="global::HeuristicLab.Services.Hive.DataAccess.Permission" DbType="VarChar(15) NOT NULL" CanBeNull="false" />
    150       <Association Name="Job_JobPermission" Member="Job" Storage="_HiveExperiment" ThisKey="JobId" OtherKey="JobId" Type="Job" IsForeignKey="true" />
    151     </Type>
    152   </Table>
    153   <Table Name="" Member="Lifecycles">
    154     <Type Name="Lifecycle">
    155       <Column Name="LifecycleId" Type="System.Int32" DbType="Int" IsPrimaryKey="true" CanBeNull="false" />
    156       <Column Name="LastCleanup" Type="System.DateTime" DbType="DateTime" CanBeNull="false" />
    157     </Type>
    158   </Table>
    159   <Table Name="dbo.ResourcePermission" Member="ResourcePermissions">
    160     <Type Name="ResourcePermission">
    161       <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    162       <Column Name="GrantedUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    163       <Column Name="GrantedByUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    164       <Association Name="Resource_ResourcePermission" Member="Resource" ThisKey="ResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" />
    165     </Type>
    166   </Table>
    167   <Table Name="" Member="UserPriorities">
     204      <Column Name="TaskId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     205      <Column Name="Data" Type="System.Data.Linq.Binary" DbType="VarBinary(MAX) NOT NULL" CanBeNull="false" UpdateCheck="Never" />
     206      <Column Name="LastUpdate" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
     207      <Association Name="Task_TaskData" Member="Task" ThisKey="TaskId" OtherKey="TaskId" Type="Task" IsForeignKey="true" />
     208    </Type>
     209  </Table>
     210  <Table Name="dbo.UserPriority" Member="UserPriorities">
    168211    <Type Name="UserPriority">
    169212      <Column Name="UserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     
    173216  <Table Name="[statistics].DimClient" Member="DimClients">
    174217    <Type Name="DimClient">
    175       <Column Name="Id" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
     218      <Column Name="Id" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    176219      <Column Name="Name" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
    177220      <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
     
    179222      <Column Name="ResourceGroupId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
    180223      <Column Name="ResourceGroup2Id" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
    181       <Column Name="GroupName" Type="System.String" CanBeNull="true" />
    182       <Column Name="GroupName2" Type="System.String" CanBeNull="true" />
     224      <Column Name="GroupName" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
     225      <Column Name="GroupName2" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
    183226      <Association Name="DimClient_FactTask" Member="FactTasks" ThisKey="Id" OtherKey="LastClientId" Type="FactTask" />
    184227      <Association Name="DimClient_FactClientInfo" Member="FactClientInfos" ThisKey="Id" OtherKey="ClientId" Type="FactClientInfo" />
    185     </Type>
    186   </Table>
    187   <Table Name="[statistics].FactTask" Member="FactTasks">
    188     <Type Name="FactTask">
    189       <Column Name="TaskId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    190       <Column Name="CalculatingTime" Storage="_TotalRuntime" Type="System.Int64" DbType="INT NOT NULL" CanBeNull="false" />
    191       <Column Name="WaitingTime" Storage="_TotalWaitingTime" Type="System.Int64" DbType="INT NOT NULL" CanBeNull="false" />
    192       <Column Name="TransferTime" Storage="_TotalTransferTime" Type="System.Int64" DbType="INT NOT NULL" CanBeNull="false" />
    193       <Column Name="NumCalculationRuns" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    194       <Column Name="NumRetries" Storage="_NumFails" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    195       <Column Name="CoresRequired" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    196       <Column Name="MemoryRequired" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    197       <Column Name="Priority" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    198       <Column Name="LastClientId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="true" />
    199       <Column Name="JobId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    200       <Column Name="EndTime" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="true" />
    201       <Column Name="TaskState" Type="global::HeuristicLab.Services.Hive.DataAccess.TaskState" DbType="varchar(30)" CanBeNull="false" />
    202       <Column Name="Exception" Type="System.String" DbType="varchar(MAX)" CanBeNull="true" />
    203       <Column Name="InitialWaitingTime" Storage="_InitialWaitingTimeMs" Type="System.Int64" DbType="INT" CanBeNull="false" />
    204       <Column Name="StartTime" Type="System.DateTime" CanBeNull="true" />
    205       <Association Name="DimClient_FactTask" Member="DimClient" ThisKey="LastClientId" OtherKey="Id" Type="DimClient" IsForeignKey="true" />
    206       <Association Name="DimJob_FactTask" Member="DimJob" ThisKey="JobId" OtherKey="JobId" Type="DimJob" IsForeignKey="true" />
    207228    </Type>
    208229  </Table>
     
    214235      <Column Name="UserName" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
    215236      <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
    216       <Column Name="TotalTasks" Type="System.Int32" DbType="INT NOT NULL" CanBeNull="false" />
    217       <Column Name="CompletedTasks" Type="System.Int32" DbType="INT NOT NULL" CanBeNull="false" />
    218       <Column Name="DateCompleted" Type="System.DateTime" DbType="DateTime NULL" CanBeNull="true" />
     237      <Column Name="TotalTasks" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     238      <Column Name="CompletedTasks" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     239      <Column Name="DateCompleted" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
    219240      <Association Name="DimJob_FactTask" Member="FactTasks" ThisKey="JobId" OtherKey="JobId" Type="FactTask" />
    220241    </Type>
     
    223244    <Type Name="DimTime">
    224245      <Column Name="Time" Type="System.DateTime" DbType="DateTime NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
     246      <Column Name="Minute" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
    225247      <Column Name="Hour" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
    226248      <Column Name="Day" Type="System.DateTime" DbType="Date NOT NULL" CanBeNull="false" />
    227249      <Column Name="Month" Type="System.DateTime" DbType="Date NOT NULL" CanBeNull="false" />
    228250      <Column Name="Year" Type="System.DateTime" DbType="Date NOT NULL" CanBeNull="false" />
    229       <Column Name="Minute" Type="System.DateTime" CanBeNull="false" />
    230251      <Association Name="DimTime_FactClientInfo" Member="FactClientInfos" ThisKey="Time" OtherKey="Time" Type="FactClientInfo" />
    231252    </Type>
     
    248269      <Column Name="TotalMemory" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
    249270      <Column Name="CpuUtilization" Type="System.Double" DbType="Float NOT NULL" CanBeNull="false" />
    250       <Column Name="IdleTime" Storage="_TotalTimeIdle" Type="System.Int64" DbType="INT NOT NULL" CanBeNull="false" />
    251       <Column Name="OfflineTime" Storage="_TotalTimeOffline" Type="System.Int64" DbType="INT NOT NULL" CanBeNull="false" />
    252       <Column Name="UnavailableTime" Storage="_TotalTimeUnavailable" Type="System.Int64" DbType="INT NOT NULL" CanBeNull="false" />
    253       <Column Name="SlaveState" Type="global::HeuristicLab.Services.Hive.DataAccess.SlaveState" DbType="VarChar(15)" CanBeNull="false" />
    254       <Column Name="IsAllowedToCalculate" Type="System.Boolean" DbType="BIT" CanBeNull="false" />
     271      <Column Name="SlaveState" Type="System.String" DbType="VarChar(15) NOT NULL" CanBeNull="false" />
     272      <Column Name="IdleTime" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     273      <Column Name="OfflineTime" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     274      <Column Name="UnavailableTime" Type="System.Int32" DbType="Int NOT NULL" CanBeNull="false" />
     275      <Column Name="IsAllowedToCalculate" Type="System.Boolean" DbType="Bit NOT NULL" CanBeNull="false" />
    255276      <Association Name="DimClient_FactClientInfo" Member="DimClient" ThisKey="ClientId" OtherKey="Id" Type="DimClient" IsForeignKey="true" />
    256277      <Association Name="DimTime_FactClientInfo" Member="DimTime" ThisKey="Time" OtherKey="Time" Type="DimTime" IsForeignKey="true" />
     
    258279    </Type>
    259280  </Table>
    260   <Table Name="dbo.Project" Member="Projects">
    261     <Type Name="Project">
    262       <Column Name="ProjectId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" IsDbGenerated="true" CanBeNull="false" />
    263       <Column Name="ParentProjectId" Type="System.Guid" DbType="UniqueIdentifier" CanBeNull="true" />
    264       <Column Name="DateCreated" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
    265       <Column Name="Name" Type="System.String" DbType="VarChar(MAX) NOT NULL" CanBeNull="false" />
    266       <Column Name="Description" Type="System.String" DbType="VarChar(MAX)" CanBeNull="true" />
    267       <Column Name="OwnerUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    268       <Column Name="StartDate" Type="System.DateTime" DbType="DateTime NOT NULL" CanBeNull="false" />
    269       <Column Name="EndDate" Type="System.DateTime" DbType="DateTime" CanBeNull="true" />
    270       <Association Name="Project_AssignedResource" Member="AssignedProjectResources" Storage="_AssignedResources" ThisKey="ProjectId" OtherKey="ProjectId" Type="AssignedProjectResource" />
    271       <Association Name="Project_Job" Member="Jobs" ThisKey="ProjectId" OtherKey="ProjectId" Type="Job" />
    272       <Association Name="Project_Project" Member="ChildProjects" Storage="_Projects" ThisKey="ProjectId" OtherKey="ParentProjectId" Type="Project" />
    273       <Association Name="Project_ProjectPermission" Member="ProjectPermissions" ThisKey="ProjectId" OtherKey="ProjectId" Type="ProjectPermission" />
    274       <Association Name="Project_Project" Member="ParentProject" Storage="_Project1" ThisKey="ParentProjectId" OtherKey="ProjectId" Type="Project" IsForeignKey="true" />
    275     </Type>
    276   </Table>
    277   <Table Name="dbo.ProjectPermission" Member="ProjectPermissions">
    278     <Type Name="ProjectPermission">
    279       <Column Name="ProjectId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    280       <Column Name="GrantedUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    281       <Column Name="GrantedByUserId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" CanBeNull="false" />
    282       <Association Name="Project_ProjectPermission" Member="Project" ThisKey="ProjectId" OtherKey="ProjectId" Type="Project" IsForeignKey="true" />
    283     </Type>
    284   </Table>
    285   <Table Name="dbo.AssignedTaskResource" Member="AssignedTaskResources">
    286     <Type Name="AssignedTaskResource">
    287       <Column Name="ResourceId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    288       <Column Name="TaskId" Type="System.Guid" DbType="UniqueIdentifier NOT NULL" IsPrimaryKey="true" CanBeNull="false" />
    289       <Association Name="Task_AssignedTaskResource" Member="Task" ThisKey="TaskId" OtherKey="TaskId" Type="Task" IsForeignKey="true" />
    290       <Association Name="Resource_AssignedTaskResource" Member="Resource" ThisKey="ResourceId" OtherKey="ResourceId" Type="Resource" IsForeignKey="true" />
    291     </Type>
    292   </Table>
    293281</Database>
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/HiveDataContext.dbml.layout

    r15411 r15523  
    11<?xml version="1.0" encoding="utf-8"?>
    2 <ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 16.25, 17.875" name="HiveDataContext">
     2<ordesignerObjectsDiagram dslVersion="1.0.0.0" absoluteBounds="0, 0, 17.75, 21.875" name="HiveDataContext">
    33  <DataContextMoniker Name="/HiveDataContext" />
    44  <nestedChildShapes>
    5     <classShape Id="a929c9dc-69f4-4488-ba1c-a2342bf81d89" absoluteBounds="13.875, 8.25, 2, 1.1939925130208327">
     5    <classShape Id="008ed438-fca9-4253-9ae5-7a98f1b3c350" absoluteBounds="9.25, 12.125, 2, 1.1939925130208344">
     6      <DataClassMoniker Name="/HiveDataContext/AssignedJobResource" />
     7      <nestedChildShapes>
     8        <elementListCompartment Id="313a5b97-17ab-4abb-9b55-09e4877bf7a8" absoluteBounds="9.265, 12.585, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     9      </nestedChildShapes>
     10    </classShape>
     11    <classShape Id="3812f3a3-0ccd-4f24-b669-d0d7950caa6e" absoluteBounds="15.5, 4, 2, 3.886212565104167">
     12      <DataClassMoniker Name="/HiveDataContext/FactTask" />
     13      <nestedChildShapes>
     14        <elementListCompartment Id="864cf028-1ee8-44e6-9ee1-f72a19d0ff3b" absoluteBounds="15.515, 4.46, 1.9700000000000002, 3.3262125651041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     15      </nestedChildShapes>
     16    </classShape>
     17    <classShape Id="dbbf95bc-dd06-46da-8dcb-46c47692d3b0" absoluteBounds="6.5, 9.125, 2, 1.1939925130208344">
    618      <DataClassMoniker Name="/HiveDataContext/AssignedProjectResource" />
    719      <nestedChildShapes>
    8         <elementListCompartment Id="8b005775-f0ee-41b0-ae10-6d1151003708" absoluteBounds="13.89, 8.71, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    9       </nestedChildShapes>
    10     </classShape>
    11     <classShape Id="7d998e56-4fba-41ca-a1a8-1dcdb9068edf" absoluteBounds="8.875, 5.875, 2, 1.9631982421874996">
     20        <elementListCompartment Id="bf3a5dab-c8ad-4ca3-aef6-77264c352095" absoluteBounds="6.515, 9.585, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     21      </nestedChildShapes>
     22    </classShape>
     23    <classShape Id="e0afe04d-6ee4-48ee-b332-14153915e733" absoluteBounds="6.5, 3.5, 2, 2.3478011067708344">
     24      <DataClassMoniker Name="/HiveDataContext/Downtime" />
     25      <nestedChildShapes>
     26        <elementListCompartment Id="85841023-0ef4-4c9b-bbf5-5cf40afac158" absoluteBounds="6.515, 3.96, 1.9700000000000002, 1.7878011067708335" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     27      </nestedChildShapes>
     28    </classShape>
     29    <classShape Id="bd66853f-65d2-491d-869d-90a593e65985" absoluteBounds="3.5, 11.75, 2, 1.9631982421874987">
     30      <DataClassMoniker Name="/HiveDataContext/Job" />
     31      <nestedChildShapes>
     32        <elementListCompartment Id="d26915ab-8d9e-4917-8f6f-b83e30a43fcd" absoluteBounds="3.515, 12.21, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     33      </nestedChildShapes>
     34    </classShape>
     35    <classShape Id="1e0c4d5c-4430-428e-8938-1f7aa6b233ed" absoluteBounds="6.25, 11.875, 2, 1.5785953776041666">
     36      <DataClassMoniker Name="/HiveDataContext/JobPermission" />
     37      <nestedChildShapes>
     38        <elementListCompartment Id="4ce7c6dd-c13d-4b30-ac7e-0de8c6d50714" absoluteBounds="6.265, 12.335, 1.9700000000000002, 1.0185953776041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     39      </nestedChildShapes>
     40    </classShape>
     41    <classShape Id="bea84727-a305-4f0f-92a4-31658e06b402" absoluteBounds="11.75, 11.5, 2, 1.1939925130208344">
     42      <DataClassMoniker Name="/HiveDataContext/Lifecycle" />
     43      <nestedChildShapes>
     44        <elementListCompartment Id="d7b8c0bf-1caf-4cc3-b3ba-96fd687f1b47" absoluteBounds="11.765, 11.96, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     45      </nestedChildShapes>
     46    </classShape>
     47    <classShape Id="bfd1449c-5d57-4c9b-9876-99c4a16c5ab8" absoluteBounds="6.25, 18.875, 2, 1.9631982421875023">
    1248      <DataClassMoniker Name="/HiveDataContext/Plugin" />
    1349      <nestedChildShapes>
    14         <elementListCompartment Id="ec4ba325-6dff-4418-baad-59af81ae2024" absoluteBounds="8.89, 6.3350000000000009, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    15       </nestedChildShapes>
    16     </classShape>
    17     <classShape Id="97b00810-fa30-457e-b484-b4e80b22f91b" absoluteBounds="6.5, 5.875, 2, 1.3862939453124996">
     50        <elementListCompartment Id="e3f3b33a-0712-4fde-9ce2-5fa27e87a2f6" absoluteBounds="6.265, 19.335, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     51      </nestedChildShapes>
     52    </classShape>
     53    <classShape Id="2b387dd4-a3e4-49fd-85ac-92919b8a9c2c" absoluteBounds="9, 20, 2, 1.5785953776041666">
     54      <DataClassMoniker Name="/HiveDataContext/PluginData" />
     55      <nestedChildShapes>
     56        <elementListCompartment Id="ee2a110c-2d0a-4bd4-bcf8-059ab6832980" absoluteBounds="9.015, 20.46, 1.9700000000000002, 1.0185953776041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     57      </nestedChildShapes>
     58    </classShape>
     59    <classShape Id="849283f3-5196-4e0b-a93a-d3d76f4585fd" absoluteBounds="0.75, 8.5, 2, 2.3478011067708344">
     60      <DataClassMoniker Name="/HiveDataContext/Project" />
     61      <nestedChildShapes>
     62        <elementListCompartment Id="ed012258-3fc5-4150-8fea-e27642c63da4" absoluteBounds="0.765, 8.96, 1.9700000000000002, 1.7878011067708335" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     63      </nestedChildShapes>
     64    </classShape>
     65    <classShape Id="0f549581-f45d-467e-a6f5-3e77a87e57e9" absoluteBounds="3.5, 7.875, 2, 1.3862939453125005">
     66      <DataClassMoniker Name="/HiveDataContext/ProjectPermission" />
     67      <nestedChildShapes>
     68        <elementListCompartment Id="5ed105a5-b835-4109-97c4-774cbcd52027" absoluteBounds="3.515, 8.335, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     69      </nestedChildShapes>
     70    </classShape>
     71    <classShape Id="0824e725-5579-4ebf-9957-6fe3608829a9" absoluteBounds="9, 15.125, 2, 1.3862939453124987">
    1872      <DataClassMoniker Name="/HiveDataContext/RequiredPlugin" />
    1973      <nestedChildShapes>
    20         <elementListCompartment Id="df6451e5-069e-4ca0-a909-61b8213b5047" absoluteBounds="6.5150000000000006, 6.3350000000000009, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    21       </nestedChildShapes>
    22     </classShape>
    23     <classShape Id="706a4581-6daf-4e71-ae2a-87d50b27a051" absoluteBounds="11.25, 1, 2, 1.9631982421875">
     74        <elementListCompartment Id="cf7b9f74-3faf-46d9-8ee8-c9ff674b93ca" absoluteBounds="9.015, 15.585, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     75      </nestedChildShapes>
     76    </classShape>
     77    <classShape Id="0badebfc-601f-4e3d-a82a-30650fdd9813" absoluteBounds="3.75, 2.5, 2, 4.4631168619791666">
    2478      <DataClassMoniker Name="/HiveDataContext/Resource" />
    2579      <nestedChildShapes>
    26         <elementListCompartment Id="8c24f5bf-2164-4d0f-832e-1730eb0066df" absoluteBounds="11.265, 1.46, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    27       </nestedChildShapes>
    28     </classShape>
    29     <classShape Id="695bfc39-59f3-4e60-8644-f847964bf62c" absoluteBounds="6.5, 1, 2, 3.1170068359374996">
     80        <elementListCompartment Id="832548ae-29c2-4be5-9d22-21ba631f4481" absoluteBounds="3.765, 2.96, 1.9700000000000002, 3.903116861979167" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     81      </nestedChildShapes>
     82    </classShape>
     83    <classShape Id="71d59be5-53fa-4cc2-9901-7134eb19995d" absoluteBounds="12, 14.75, 2, 2.1554996744791648">
     84      <DataClassMoniker Name="/HiveDataContext/StateLog" />
     85      <nestedChildShapes>
     86        <elementListCompartment Id="c7bb3516-0f0c-4868-9a5e-32888a9af00b" absoluteBounds="12.015, 15.21, 1.9700000000000002, 1.5954996744791665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     87      </nestedChildShapes>
     88    </classShape>
     89    <classShape Id="05d17f5c-8a09-4026-a1e1-f9fc65a27c2a" absoluteBounds="6.25, 14.25, 2, 3.1170068359375005">
    3090      <DataClassMoniker Name="/HiveDataContext/Task" />
    3191      <nestedChildShapes>
    32         <elementListCompartment Id="a6a30e11-03d1-4869-82e6-b733f4ef9974" absoluteBounds="6.5150000000000006, 1.46, 1.9700000000000002, 2.5570068359375" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    33       </nestedChildShapes>
    34     </classShape>
    35     <classShape Id="8d5712f7-7a1a-4a89-bd4d-fd60200d3306" absoluteBounds="13.5, 2.5, 2, 2.3478011067708326">
    36       <DataClassMoniker Name="/HiveDataContext/Downtime" />
    37       <nestedChildShapes>
    38         <elementListCompartment Id="7d8f121b-35bb-4753-a25f-3fac1562e68e" absoluteBounds="13.515, 2.9600000000000009, 1.9700000000000002, 1.7878011067708333" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    39       </nestedChildShapes>
    40     </classShape>
    41     <classShape Id="e6f840cc-2968-4be1-b234-eef624ccacbb" absoluteBounds="4.125, 2.625, 2, 2.1554996744791666">
    42       <DataClassMoniker Name="/HiveDataContext/Job" />
    43       <nestedChildShapes>
    44         <elementListCompartment Id="0c65d4e1-256a-4a91-9a57-392f25e4de7f" absoluteBounds="4.1400000000000006, 3.0850000000000009, 1.9700000000000002, 1.5954996744791665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    45       </nestedChildShapes>
    46     </classShape>
    47     <classShape Id="26f4edfa-91dd-4941-a058-359f89e567a8" absoluteBounds="8.875, 0.75, 2, 3.3093082682291666">
    48       <DataClassMoniker Name="/HiveDataContext/Slave" />
    49       <nestedChildShapes>
    50         <elementListCompartment Id="1e61f36b-08dc-4df7-8594-c9dcd95c0791" absoluteBounds="8.89, 1.21, 1.9700000000000002, 2.7493082682291665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    51       </nestedChildShapes>
    52     </classShape>
    53     <classShape Id="bbd91675-92f2-4a69-8429-0950008fc8a4" absoluteBounds="13.5, 1, 2, 0.8093896484375">
    54       <DataClassMoniker Name="/HiveDataContext/SlaveGroup" />
    55       <nestedChildShapes>
    56         <elementListCompartment Id="5a790e8f-6e2e-4bf5-bd2b-f8a82224d9d7" absoluteBounds="13.5, 1, 0.125, 0.2493896484375" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    57       </nestedChildShapes>
    58     </classShape>
    59     <inheritanceConnector edgePoints="[(11.25 : 1.98159912109375); (10.875 : 1.98159912109375)]" fixedFrom="NotFixed" fixedTo="NotFixed" TargetRelationshipDomainClassId="7a7fe09e-e9ef-4b01-9ff3-bde95e827b62">
    60       <nodes>
    61         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
    62         <classShapeMoniker Id="26f4edfa-91dd-4941-a058-359f89e567a8" />
    63       </nodes>
    64     </inheritanceConnector>
    65     <inheritanceConnector edgePoints="[(13.25 : 1.40469482421875); (13.5 : 1.40469482421875)]" fixedFrom="NotFixed" fixedTo="NotFixed" TargetRelationshipDomainClassId="7a7fe09e-e9ef-4b01-9ff3-bde95e827b62">
    66       <nodes>
    67         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
    68         <classShapeMoniker Id="bbd91675-92f2-4a69-8429-0950008fc8a4" />
    69       </nodes>
    70     </inheritanceConnector>
    71     <associationConnector edgePoints="[(13.25 : 2.15469482421875); (15.71875 : 2.15469482421875); (15.71875 : 8.25)]" manuallyRouted="true" fixedFrom="NotFixed" fixedTo="NotFixed">
    72       <AssociationMoniker Name="/HiveDataContext/Resource/Resource_AssignedResource" />
    73       <nodes>
    74         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
    75         <classShapeMoniker Id="a929c9dc-69f4-4488-ba1c-a2342bf81d89" />
    76       </nodes>
    77     </associationConnector>
    78     <classShape Id="6bc13f26-f9a8-4597-b054-35be34190d12" absoluteBounds="4.125, 1, 2, 1.3862939453125">
     92        <elementListCompartment Id="b32af6f0-bf01-4dc6-89f4-04cc15061354" absoluteBounds="6.265, 14.71, 1.9700000000000002, 2.5570068359375" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     93      </nestedChildShapes>
     94    </classShape>
     95    <classShape Id="e096ec63-ea06-44bf-88ed-a7c15df274e3" absoluteBounds="9, 17.25, 2, 1.3862939453125023">
    7996      <DataClassMoniker Name="/HiveDataContext/TaskData" />
    8097      <nestedChildShapes>
    81         <elementListCompartment Id="a068522c-7974-4679-b356-e33c941c465b" absoluteBounds="4.14, 1.46, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    82       </nestedChildShapes>
    83     </classShape>
    84     <classShape Id="ad25bd0f-80e8-4a06-abd8-190eb678eec7" absoluteBounds="11.25, 5.875, 2, 1.5785953776041666">
    85       <DataClassMoniker Name="/HiveDataContext/PluginData" />
    86       <nestedChildShapes>
    87         <elementListCompartment Id="acddb513-7de6-4bb4-8335-d6982fb2ef35" absoluteBounds="11.265, 6.3350000000000009, 1.9700000000000002, 1.0185953776041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    88       </nestedChildShapes>
    89     </classShape>
    90     <associationConnector edgePoints="[(10.875 : 6.66429768880208); (11.25 : 6.66429768880208)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     98        <elementListCompartment Id="f9028a21-b419-4c6b-9bbb-5c0f4fedb8ca" absoluteBounds="9.015, 17.71, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     99      </nestedChildShapes>
     100    </classShape>
     101    <classShape Id="b036182d-de1d-410e-b70b-272294d35f69" absoluteBounds="12.75, 9.5, 2, 1.1939925130208344">
     102      <DataClassMoniker Name="/HiveDataContext/UserPriority" />
     103      <nestedChildShapes>
     104        <elementListCompartment Id="0e3cf7e4-8821-4757-af6d-203914c8662e" absoluteBounds="12.765, 9.96, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     105      </nestedChildShapes>
     106    </classShape>
     107    <classShape Id="0b0f6e46-2970-4c62-a79a-adf31b88fa4f" absoluteBounds="9.75, 4.75, 2, 2.3478011067708344">
     108      <DataClassMoniker Name="/HiveDataContext/DimClient" />
     109      <nestedChildShapes>
     110        <elementListCompartment Id="242b58c1-1b93-4522-8ac5-a00129d49b01" absoluteBounds="9.765, 5.21, 1.9700000000000002, 1.7878011067708335" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     111      </nestedChildShapes>
     112    </classShape>
     113    <classShape Id="9b4c5294-47df-4855-9191-50fc20c03487" absoluteBounds="12.75, 0.75, 2, 2.3478011067708335">
     114      <DataClassMoniker Name="/HiveDataContext/DimJob" />
     115      <nestedChildShapes>
     116        <elementListCompartment Id="4800f367-d0f6-400d-ab63-6109389157a2" absoluteBounds="12.765, 1.21, 1.9700000000000002, 1.7878011067708335" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     117      </nestedChildShapes>
     118    </classShape>
     119    <classShape Id="b5bd8f3a-68fe-4e76-82ad-8abd47b729a0" absoluteBounds="9.75, 7.875, 2, 1.9631982421875005">
     120      <DataClassMoniker Name="/HiveDataContext/DimTime" />
     121      <nestedChildShapes>
     122        <elementListCompartment Id="496f2d00-7438-4de9-85d1-1318b8f3444e" absoluteBounds="9.765, 8.335, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     123      </nestedChildShapes>
     124    </classShape>
     125    <classShape Id="21c9583c-d7ba-42a5-b51f-640eb37b8062" absoluteBounds="9.75, 2, 2, 1.1939925130208335">
     126      <DataClassMoniker Name="/HiveDataContext/DimUser" />
     127      <nestedChildShapes>
     128        <elementListCompartment Id="4cf74fba-b36a-47a9-ae50-d8703ade6ae7" absoluteBounds="9.765, 2.46, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     129      </nestedChildShapes>
     130    </classShape>
     131    <classShape Id="8a0e5c60-ae42-4e3f-b366-68407c56bbd1" absoluteBounds="12.5, 4.25, 2, 3.3093082682291666">
     132      <DataClassMoniker Name="/HiveDataContext/FactClientInfo" />
     133      <nestedChildShapes>
     134        <elementListCompartment Id="f7f2e6a7-17b2-4830-9bf1-97dd5f6525d6" absoluteBounds="12.515, 4.71, 1.9700000000000002, 2.7493082682291665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
     135      </nestedChildShapes>
     136    </classShape>
     137    <associationConnector edgePoints="[(5.5 : 13.6146468098958); (8.66666666666667 : 13.6146468098958 : JumpStart); (8.83333333333333 : 13.6146468098958 : JumpEnd); (10.25 : 13.6146468098958); (10.25 : 13.3189925130208)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     138      <AssociationMoniker Name="/HiveDataContext/Job/Job_AssignedJobResource" />
     139      <nodes>
     140        <classShapeMoniker Id="bd66853f-65d2-491d-869d-90a593e65985" />
     141        <classShapeMoniker Id="008ed438-fca9-4253-9ae5-7a98f1b3c350" />
     142      </nodes>
     143    </associationConnector>
     144    <associationConnector edgePoints="[(5.5 : 12.6642976888021); (6.25 : 12.6642976888021)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     145      <AssociationMoniker Name="/HiveDataContext/Job/Job_JobPermission" />
     146      <nodes>
     147        <classShapeMoniker Id="bd66853f-65d2-491d-869d-90a593e65985" />
     148        <classShapeMoniker Id="1e0c4d5c-4430-428e-8938-1f7aa6b233ed" />
     149      </nodes>
     150    </associationConnector>
     151    <associationConnector edgePoints="[(8.25 : 20.4190991210938); (9 : 20.4190991210938)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    91152      <AssociationMoniker Name="/HiveDataContext/Plugin/Plugin_PluginData" />
    92153      <nodes>
    93         <classShapeMoniker Id="7d998e56-4fba-41ca-a1a8-1dcdb9068edf" />
    94         <classShapeMoniker Id="ad25bd0f-80e8-4a06-abd8-190eb678eec7" />
    95       </nodes>
    96     </associationConnector>
    97     <associationConnector edgePoints="[(8.875 : 6.56814697265625); (8.5 : 6.56814697265625)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     154        <classShapeMoniker Id="bfd1449c-5d57-4c9b-9876-99c4a16c5ab8" />
     155        <classShapeMoniker Id="2b387dd4-a3e4-49fd-85ac-92919b8a9c2c" />
     156      </nodes>
     157    </associationConnector>
     158    <associationConnector edgePoints="[(2.75 : 9.82139322916667); (6.5 : 9.82139322916667)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     159      <AssociationMoniker Name="/HiveDataContext/Project/Project_AssignedProjectResource" />
     160      <nodes>
     161        <classShapeMoniker Id="849283f3-5196-4e0b-a93a-d3d76f4585fd" />
     162        <classShapeMoniker Id="dbbf95bc-dd06-46da-8dcb-46c47692d3b0" />
     163      </nodes>
     164    </associationConnector>
     165    <associationConnector edgePoints="[(1.75 : 10.8478011067708); (1.75 : 12.7315991210937); (3.5 : 12.7315991210937)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     166      <AssociationMoniker Name="/HiveDataContext/Project/Project_Job" />
     167      <nodes>
     168        <classShapeMoniker Id="849283f3-5196-4e0b-a93a-d3d76f4585fd" />
     169        <classShapeMoniker Id="bd66853f-65d2-491d-869d-90a593e65985" />
     170      </nodes>
     171    </associationConnector>
     172    <associationConnector edgePoints="[(1.45923076923077 : 8.5); (1.45923076923077 : 8.25); (2.05461538461538 : 8.25); (2.05461538461538 : 8.5)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     173      <AssociationMoniker Name="/HiveDataContext/Project/Project_Project" />
     174      <nodes>
     175        <classShapeMoniker Id="849283f3-5196-4e0b-a93a-d3d76f4585fd" />
     176        <classShapeMoniker Id="849283f3-5196-4e0b-a93a-d3d76f4585fd" />
     177      </nodes>
     178    </associationConnector>
     179    <associationConnector edgePoints="[(2.75 : 8.88064697265625); (3.5 : 8.88064697265625)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     180      <AssociationMoniker Name="/HiveDataContext/Project/Project_ProjectPermission" />
     181      <nodes>
     182        <classShapeMoniker Id="849283f3-5196-4e0b-a93a-d3d76f4585fd" />
     183        <classShapeMoniker Id="0f549581-f45d-467e-a6f5-3e77a87e57e9" />
     184      </nodes>
     185    </associationConnector>
     186    <associationConnector edgePoints="[(8.25 : 18.876509152494); (8.625 : 18.501509152494); (8.625 : 15.8181469726562); (8.66666666666667 : 15.8181469726562 : JumpStart); (8.83333333333333 : 15.8181469726562 : JumpEnd); (9 : 15.8181469726562)]" fixedFrom="NotFixed" fixedTo="Algorithm">
    98187      <AssociationMoniker Name="/HiveDataContext/Plugin/Plugin_RequiredPlugin" />
    99188      <nodes>
    100         <classShapeMoniker Id="7d998e56-4fba-41ca-a1a8-1dcdb9068edf" />
    101         <classShapeMoniker Id="97b00810-fa30-457e-b484-b4e80b22f91b" />
    102       </nodes>
    103     </associationConnector>
    104     <associationConnector edgePoints="[(11.9586362792969 : 1); (11.9586362792969 : 0.75); (12.5552381835937 : 0.75); (12.5552381835937 : 1)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     189        <classShapeMoniker Id="bfd1449c-5d57-4c9b-9876-99c4a16c5ab8" />
     190        <classShapeMoniker Id="0824e725-5579-4ebf-9957-6fe3608829a9" />
     191      </nodes>
     192    </associationConnector>
     193    <associationConnector edgePoints="[(5.75 : 3.34699625651042); (9.46875 : 3.34699625651042); (9.46875 : 12.125)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     194      <AssociationMoniker Name="/HiveDataContext/Resource/Resource_AssignedJobResource" />
     195      <nodes>
     196        <classShapeMoniker Id="0badebfc-601f-4e3d-a82a-30650fdd9813" />
     197        <classShapeMoniker Id="008ed438-fca9-4253-9ae5-7a98f1b3c350" />
     198      </nodes>
     199    </associationConnector>
     200    <associationConnector edgePoints="[(5.65625 : 6.96311686197917); (5.65625 : 9.54134108723959); (6.5 : 9.54134108723959)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     201      <AssociationMoniker Name="/HiveDataContext/Resource/Resource_AssignedProjectResource" />
     202      <nodes>
     203        <classShapeMoniker Id="0badebfc-601f-4e3d-a82a-30650fdd9813" />
     204        <classShapeMoniker Id="dbbf95bc-dd06-46da-8dcb-46c47692d3b0" />
     205      </nodes>
     206    </associationConnector>
     207    <associationConnector edgePoints="[(5.75 : 4.67390055338542); (6.5 : 4.67390055338542)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     208      <AssociationMoniker Name="/HiveDataContext/Resource/Resource_Downtime" />
     209      <nodes>
     210        <classShapeMoniker Id="0badebfc-601f-4e3d-a82a-30650fdd9813" />
     211        <classShapeMoniker Id="e0afe04d-6ee4-48ee-b332-14153915e733" />
     212      </nodes>
     213    </associationConnector>
     214    <associationConnector edgePoints="[(4.45923076923077 : 2.5); (4.45923076923077 : 2.25); (5.05461538461539 : 2.25); (5.05461538461539 : 2.5)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    105215      <AssociationMoniker Name="/HiveDataContext/Resource/Resource_Resource" />
    106216      <nodes>
    107         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
    108         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
    109       </nodes>
    110     </associationConnector>
    111     <classShape Id="00352397-340e-449a-8e23-6ddd216e8617" absoluteBounds="1.75, 1, 2, 2.1554996744791666">
    112       <DataClassMoniker Name="/HiveDataContext/StateLog" />
    113       <nestedChildShapes>
    114         <elementListCompartment Id="9a003897-deef-4bb5-b180-4c4bcdb7fadc" absoluteBounds="1.765, 1.46, 1.9700000000000002, 1.5954996744791665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    115       </nestedChildShapes>
    116     </classShape>
    117     <classShape Id="4d800dc9-1b18-469f-b02c-d4554757c5e1" absoluteBounds="1.75, 3.625, 2, 1.5785953776041666">
    118       <DataClassMoniker Name="/HiveDataContext/JobPermission" />
    119       <nestedChildShapes>
    120         <elementListCompartment Id="dedd97d3-a9a2-45a2-9b95-d7366fb65a7f" absoluteBounds="1.765, 4.085, 1.9700000000000002, 1.0185953776041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    121       </nestedChildShapes>
    122     </classShape>
    123     <associationConnector edgePoints="[(11.25 : 1.44547136382195); (11.0260416666667 : 1.44547136382195); (11.0260416666667 : 0.5625); (2.75 : 0.5625); (2.75 : 1)]" manuallyRouted="true" fixedFrom="NotFixed" fixedTo="NotFixed">
     217        <classShapeMoniker Id="0badebfc-601f-4e3d-a82a-30650fdd9813" />
     218        <classShapeMoniker Id="0badebfc-601f-4e3d-a82a-30650fdd9813" />
     219      </nodes>
     220    </associationConnector>
     221    <associationConnector edgePoints="[(4.671873 : 6.96311686197917); (4.671873 : 7.625); (5.57291666666667 : 7.625 : JumpStart); (5.73958333333333 : 7.625 : JumpEnd); (8.75 : 7.625); (8.75 : 16.7612939453125); (11.625 : 16.7612939453125); (11.625 : 15.8277498372396); (12 : 15.8277498372396)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    124222      <AssociationMoniker Name="/HiveDataContext/Resource/Resource_StateLog" />
    125223      <nodes>
    126         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
    127         <classShapeMoniker Id="00352397-340e-449a-8e23-6ddd216e8617" />
    128       </nodes>
    129     </associationConnector>
    130     <classShape Id="b4e7aaa8-a382-4560-a1fd-498de77e9340" absoluteBounds="1.75, 5.5, 2, 1.1939925130208327">
    131       <DataClassMoniker Name="/HiveDataContext/Lifecycle" />
    132       <nestedChildShapes>
    133         <elementListCompartment Id="03597a2c-5c5d-4c2c-b741-c49ab5aa34d5" absoluteBounds="1.7650000000000001, 5.96, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    134       </nestedChildShapes>
    135     </classShape>
    136     <associationConnector edgePoints="[(13.25 : 2.73159912109375); (13.5 : 2.73159912109375)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    137       <AssociationMoniker Name="/HiveDataContext/Resource/Resource_Downtime" />
    138       <nodes>
    139         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
    140         <classShapeMoniker Id="8d5712f7-7a1a-4a89-bd4d-fd60200d3306" />
    141       </nodes>
    142     </associationConnector>
    143     <associationConnector edgePoints="[(7.4687475 : 4.1170068359375); (7.4687475 : 5.875)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     224        <classShapeMoniker Id="0badebfc-601f-4e3d-a82a-30650fdd9813" />
     225        <classShapeMoniker Id="71d59be5-53fa-4cc2-9901-7134eb19995d" />
     226      </nodes>
     227    </associationConnector>
     228    <associationConnector edgePoints="[(8.25 : 15.4090734863281); (8.66666666666667 : 15.4090734863281 : JumpStart); (8.83333333333333 : 15.4090734863281 : JumpEnd); (9 : 15.4090734863281)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    144229      <AssociationMoniker Name="/HiveDataContext/Task/Task_RequiredPlugin" />
    145230      <nodes>
    146         <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" />
    147         <classShapeMoniker Id="97b00810-fa30-457e-b484-b4e80b22f91b" />
    148       </nodes>
    149     </associationConnector>
    150     <associationConnector edgePoints="[(7.20923076923077 : 1); (7.20923076923077 : 0.770833333333333); (7.80461538461539 : 0.770833333333333); (7.80461538461539 : 1)]" manuallyRouted="true" fixedFrom="NotFixed" fixedTo="NotFixed">
     231        <classShapeMoniker Id="05d17f5c-8a09-4026-a1e1-f9fc65a27c2a" />
     232        <classShapeMoniker Id="0824e725-5579-4ebf-9957-6fe3608829a9" />
     233      </nodes>
     234    </associationConnector>
     235    <associationConnector edgePoints="[(8.25 : 14.90625); (8.66666666666667 : 14.90625 : JumpStart); (8.83333333333333 : 14.90625 : JumpEnd); (12 : 14.90625)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     236      <AssociationMoniker Name="/HiveDataContext/Task/Task_StateLog" />
     237      <nodes>
     238        <classShapeMoniker Id="05d17f5c-8a09-4026-a1e1-f9fc65a27c2a" />
     239        <classShapeMoniker Id="71d59be5-53fa-4cc2-9901-7134eb19995d" />
     240      </nodes>
     241    </associationConnector>
     242    <associationConnector edgePoints="[(4.5 : 13.7131982421875); (4.5 : 15.8085034179688); (6.25 : 15.8085034179688)]" fixedFrom="Algorithm" fixedTo="Algorithm">
     243      <AssociationMoniker Name="/HiveDataContext/Job/Job_Task" />
     244      <nodes>
     245        <classShapeMoniker Id="bd66853f-65d2-491d-869d-90a593e65985" />
     246        <classShapeMoniker Id="05d17f5c-8a09-4026-a1e1-f9fc65a27c2a" />
     247      </nodes>
     248    </associationConnector>
     249    <associationConnector edgePoints="[(6.95923076923077 : 17.3670068359375); (6.95923076923077 : 17.6170068359375); (7.55461538461539 : 17.6170068359375); (7.55461538461539 : 17.3670068359375)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    151250      <AssociationMoniker Name="/HiveDataContext/Task/Task_Task" />
    152251      <nodes>
    153         <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" />
    154         <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" />
    155       </nodes>
    156     </associationConnector>
    157     <associationConnector edgePoints="[(6.5 : 1.69314697265625); (6.125 : 1.69314697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     252        <classShapeMoniker Id="05d17f5c-8a09-4026-a1e1-f9fc65a27c2a" />
     253        <classShapeMoniker Id="05d17f5c-8a09-4026-a1e1-f9fc65a27c2a" />
     254      </nodes>
     255    </associationConnector>
     256    <associationConnector edgePoints="[(6.57336288461538 : 17.3670068359375); (6.57336288461538 : 18.126650390625); (8.54166666666667 : 18.126650390625 : JumpStart); (8.70833333333333 : 18.126650390625 : JumpEnd); (9 : 18.126650390625)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    158257      <AssociationMoniker Name="/HiveDataContext/Task/Task_TaskData" />
    159258      <nodes>
    160         <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" />
    161         <classShapeMoniker Id="6bc13f26-f9a8-4597-b054-35be34190d12" />
    162       </nodes>
    163     </associationConnector>
    164     <associationConnector edgePoints="[(6.5 : 2.50564697265625); (3.75 : 2.50564697265625)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    165       <AssociationMoniker Name="/HiveDataContext/Task/Task_StateLog" />
    166       <nodes>
    167         <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" />
    168         <classShapeMoniker Id="00352397-340e-449a-8e23-6ddd216e8617" />
    169       </nodes>
    170     </associationConnector>
    171     <associationConnector edgePoints="[(6.125 : 3.37100341796875); (6.5 : 3.37100341796875)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    172       <AssociationMoniker Name="/HiveDataContext/Job/Job_Task" />
    173       <nodes>
    174         <classShapeMoniker Id="e6f840cc-2968-4be1-b234-eef624ccacbb" />
    175         <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" />
    176       </nodes>
    177     </associationConnector>
    178     <associationConnector edgePoints="[(4.125 : 4.20274983723958); (3.75 : 4.20274983723958)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    179       <AssociationMoniker Name="/HiveDataContext/Job/Job_JobPermission" />
    180       <nodes>
    181         <classShapeMoniker Id="e6f840cc-2968-4be1-b234-eef624ccacbb" />
    182         <classShapeMoniker Id="4d800dc9-1b18-469f-b02c-d4554757c5e1" />
    183       </nodes>
    184     </associationConnector>
    185     <classShape Id="a3f352be-9f15-4e73-8d44-3e8ac02fb4cf" absoluteBounds="11.25, 3.875, 2, 1.3862939453124996">
    186       <DataClassMoniker Name="/HiveDataContext/ResourcePermission" />
    187       <nestedChildShapes>
    188         <elementListCompartment Id="45e2f1a8-8a1e-4647-b649-10ec55976ab4" absoluteBounds="11.265, 4.335, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    189       </nestedChildShapes>
    190     </classShape>
    191     <associationConnector edgePoints="[(12.5942481820367 : 2.9631982421875); (12.5942481820367 : 3.875)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    192       <AssociationMoniker Name="/HiveDataContext/Resource/Resource_ResourcePermission" />
    193       <nodes>
    194         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
    195         <classShapeMoniker Id="a3f352be-9f15-4e73-8d44-3e8ac02fb4cf" />
    196       </nodes>
    197     </associationConnector>
    198     <classShape Id="f9e8867f-fd15-4a72-8ca4-4f02cd3f141f" absoluteBounds="4.125, 5.5, 2, 1.1939925130208327">
    199       <DataClassMoniker Name="/HiveDataContext/UserPriority" />
    200       <nestedChildShapes>
    201         <elementListCompartment Id="ee41f516-7d9c-4a1d-a1b8-bbe00a6ffea8" absoluteBounds="4.14, 5.96, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    202       </nestedChildShapes>
    203     </classShape>
    204     <classShape Id="b5b919c2-4efc-4f09-8f52-9d541a11e961" absoluteBounds="4.625, 15.25, 2, 2.3478011067708344">
    205       <DataClassMoniker Name="/HiveDataContext/DimClient" />
    206       <nestedChildShapes>
    207         <elementListCompartment Id="30f62a7b-0b16-404e-b972-fb12bfe978dd" absoluteBounds="4.6400000000000006, 15.71, 1.9700000000000002, 1.7878011067708333" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    208       </nestedChildShapes>
    209     </classShape>
    210     <classShape Id="04f52807-ce17-4d65-bd23-cc38c6dfbd7a" absoluteBounds="6.875, 11.25, 2, 3.8862125651041666">
    211       <DataClassMoniker Name="/HiveDataContext/FactTask" />
    212       <nestedChildShapes>
    213         <elementListCompartment Id="63e3ddcb-a6fe-48e0-a674-e650a55a9f2c" absoluteBounds="6.8900000000000006, 11.71, 1.9700000000000002, 3.3262125651041665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    214       </nestedChildShapes>
    215     </classShape>
    216     <classShape Id="e0cb8641-a75e-4b9f-beda-3218c56938b1" absoluteBounds="8.125, 8.25, 2, 2.3478011067708344">
    217       <DataClassMoniker Name="/HiveDataContext/DimJob" />
    218       <nestedChildShapes>
    219         <elementListCompartment Id="6b9e8260-7e4b-4357-9c26-eebebfd69504" absoluteBounds="8.14, 8.71, 1.9700000000000002, 1.7878011067708333" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    220       </nestedChildShapes>
    221     </classShape>
    222     <classShape Id="a769f2ac-c8e3-4860-baa5-c46f46c38ed8" absoluteBounds="3.625, 8.5, 2, 1.9631982421875005">
    223       <DataClassMoniker Name="/HiveDataContext/DimTime" />
    224       <nestedChildShapes>
    225         <elementListCompartment Id="694c4a5a-20fb-43a9-bc9a-7b59d794a7fb" absoluteBounds="3.6399999999999997, 8.96, 1.9700000000000002, 1.4031982421875" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    226       </nestedChildShapes>
    227     </classShape>
    228     <classShape Id="66c34ced-4fdb-4a1d-b8dd-fe094679b7fb" absoluteBounds="0.625, 8.875, 2, 1.1939925130208344">
    229       <DataClassMoniker Name="/HiveDataContext/DimUser" />
    230       <nestedChildShapes>
    231         <elementListCompartment Id="6181c560-fc74-4d43-b064-a90032bf17a5" absoluteBounds="0.64000000000000012, 9.335, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    232       </nestedChildShapes>
    233     </classShape>
    234     <classShape Id="053a5cff-b18a-4ee5-8d43-48ed5c5dcfad" absoluteBounds="2.625, 11, 2, 3.3093082682291666">
    235       <DataClassMoniker Name="/HiveDataContext/FactClientInfo" />
    236       <nestedChildShapes>
    237         <elementListCompartment Id="0a1cc913-6636-455c-95b3-302f533527db" absoluteBounds="2.6399999999999997, 11.46, 1.9700000000000002, 2.7493082682291665" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    238       </nestedChildShapes>
    239     </classShape>
    240     <associationConnector edgePoints="[(6.625 : 15.25); (6.875 : 15.1362125651042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     259        <classShapeMoniker Id="05d17f5c-8a09-4026-a1e1-f9fc65a27c2a" />
     260        <classShapeMoniker Id="e096ec63-ea06-44bf-88ed-a7c15df274e3" />
     261      </nodes>
     262    </associationConnector>
     263    <associationConnector edgePoints="[(10.75 : 4.75); (10.75 : 4.09375); (12.5104166666667 : 4.09375 : JumpStart); (12.6770833333333 : 4.09375 : JumpEnd); (14.5729166666667 : 4.09375 : JumpStart); (14.7395833333333 : 4.09375 : JumpEnd); (15.5 : 4.09375)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    241264      <AssociationMoniker Name="/HiveDataContext/DimClient/DimClient_FactTask" />
    242265      <nodes>
    243         <classShapeMoniker Id="b5b919c2-4efc-4f09-8f52-9d541a11e961" />
    244         <classShapeMoniker Id="04f52807-ce17-4d65-bd23-cc38c6dfbd7a" />
    245       </nodes>
    246     </associationConnector>
    247     <associationConnector edgePoints="[(8.5 : 10.5978011067708); (8.5 : 11.25)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     266        <classShapeMoniker Id="0b0f6e46-2970-4c62-a79a-adf31b88fa4f" />
     267        <classShapeMoniker Id="3812f3a3-0ccd-4f24-b669-d0d7950caa6e" />
     268      </nodes>
     269    </associationConnector>
     270    <associationConnector edgePoints="[(14.65625 : 3.09780110677083); (14.65625 : 7.75401041666667); (15.5 : 7.75401041666667)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    248271      <AssociationMoniker Name="/HiveDataContext/DimJob/DimJob_FactTask" />
    249272      <nodes>
    250         <classShapeMoniker Id="e0cb8641-a75e-4b9f-beda-3218c56938b1" />
    251         <classShapeMoniker Id="04f52807-ce17-4d65-bd23-cc38c6dfbd7a" />
    252       </nodes>
    253     </associationConnector>
    254     <associationConnector edgePoints="[(5.6249975 : 15.25); (5.6249975 : 12.6546541341146); (4.625 : 12.6546541341146)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     273        <classShapeMoniker Id="9b4c5294-47df-4855-9191-50fc20c03487" />
     274        <classShapeMoniker Id="3812f3a3-0ccd-4f24-b669-d0d7950caa6e" />
     275      </nodes>
     276    </associationConnector>
     277    <associationConnector edgePoints="[(11.75 : 5.92390055338542); (12.5 : 5.92390055338542)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    255278      <AssociationMoniker Name="/HiveDataContext/DimClient/DimClient_FactClientInfo" />
    256279      <nodes>
    257         <classShapeMoniker Id="b5b919c2-4efc-4f09-8f52-9d541a11e961" />
    258         <classShapeMoniker Id="053a5cff-b18a-4ee5-8d43-48ed5c5dcfad" />
    259       </nodes>
    260     </associationConnector>
    261     <associationConnector edgePoints="[(4.125 : 10.4631982421875); (4.125 : 11)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     280        <classShapeMoniker Id="0b0f6e46-2970-4c62-a79a-adf31b88fa4f" />
     281        <classShapeMoniker Id="8a0e5c60-ae42-4e3f-b366-68407c56bbd1" />
     282      </nodes>
     283    </associationConnector>
     284    <associationConnector edgePoints="[(11.75 : 8.65625); (12.59375 : 8.65625); (12.59375 : 7.55930826822917)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    262285      <AssociationMoniker Name="/HiveDataContext/DimTime/DimTime_FactClientInfo" />
    263286      <nodes>
    264         <classShapeMoniker Id="a769f2ac-c8e3-4860-baa5-c46f46c38ed8" />
    265         <classShapeMoniker Id="053a5cff-b18a-4ee5-8d43-48ed5c5dcfad" />
    266       </nodes>
    267     </associationConnector>
    268     <associationConnector edgePoints="[(1.59375 : 10.0689925130208); (1.59375 : 12.6546541341146); (2.625 : 12.6546541341146)]" fixedFrom="NotFixed" fixedTo="NotFixed">
     287        <classShapeMoniker Id="b5bd8f3a-68fe-4e76-82ad-8abd47b729a0" />
     288        <classShapeMoniker Id="8a0e5c60-ae42-4e3f-b366-68407c56bbd1" />
     289      </nodes>
     290    </associationConnector>
     291    <associationConnector edgePoints="[(11.75 : 3.17714680989583); (12.59375 : 3.17714680989583); (12.59375 : 4.25)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    269292      <AssociationMoniker Name="/HiveDataContext/DimUser/DimUser_FactClientInfo" />
    270293      <nodes>
    271         <classShapeMoniker Id="66c34ced-4fdb-4a1d-b8dd-fe094679b7fb" />
    272         <classShapeMoniker Id="053a5cff-b18a-4ee5-8d43-48ed5c5dcfad" />
    273       </nodes>
    274     </associationConnector>
    275     <classShape Id="30778876-b5f6-4a97-9ec7-792011973d75" absoluteBounds="11.25, 8.25, 2, 2.3478011067708344">
    276       <DataClassMoniker Name="/HiveDataContext/Project" />
    277       <nestedChildShapes>
    278         <elementListCompartment Id="2c8b0555-6cea-4cc9-b028-2d066c02401c" absoluteBounds="11.265, 8.71, 1.9700000000000002, 1.7878011067708333" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    279       </nestedChildShapes>
    280     </classShape>
    281     <associationConnector edgePoints="[(11.9592307692308 : 10.5978011067708); (11.9592307692308 : 10.8478011067708); (12.5546153846154 : 10.8478011067708); (12.5546153846154 : 10.5978011067708)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    282       <AssociationMoniker Name="/HiveDataContext/Project/Project_Project" />
    283       <nodes>
    284         <classShapeMoniker Id="30778876-b5f6-4a97-9ec7-792011973d75" />
    285         <classShapeMoniker Id="30778876-b5f6-4a97-9ec7-792011973d75" />
    286       </nodes>
    287     </associationConnector>
    288     <classShape Id="1c20ff2a-adeb-4830-9456-9a2a3e11cee3" absoluteBounds="13.875, 9.875, 2, 1.3862939453125005">
    289       <DataClassMoniker Name="/HiveDataContext/ProjectPermission" />
    290       <nestedChildShapes>
    291         <elementListCompartment Id="d115744c-dfef-4a5d-9b9a-30efc6ef4423" absoluteBounds="13.89, 10.335, 1.9700000000000002, 0.8262939453125" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    292       </nestedChildShapes>
    293     </classShape>
    294     <associationConnector edgePoints="[(13.25 : 10.2364005533854); (13.875 : 10.2364005533854)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    295       <AssociationMoniker Name="/HiveDataContext/Project/Project_ProjectPermission" />
    296       <nodes>
    297         <classShapeMoniker Id="30778876-b5f6-4a97-9ec7-792011973d75" />
    298         <classShapeMoniker Id="1c20ff2a-adeb-4830-9456-9a2a3e11cee3" />
    299       </nodes>
    300     </associationConnector>
    301     <associationConnector edgePoints="[(13.25 : 8.84699625651042); (13.875 : 8.84699625651042)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    302       <AssociationMoniker Name="/HiveDataContext/Project/Project_AssignedResource" />
    303       <nodes>
    304         <classShapeMoniker Id="30778876-b5f6-4a97-9ec7-792011973d75" />
    305         <classShapeMoniker Id="a929c9dc-69f4-4488-ba1c-a2342bf81d89" />
    306       </nodes>
    307     </associationConnector>
    308     <associationConnector edgePoints="[(11.25 : 9.42390055338542); (10.375 : 9.42390055338542); (10.375 : 8); (4 : 8); (4 : 5.15549967447917); (5.125 : 5.15549967447917); (5.125 : 4.78049967447917)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    309       <AssociationMoniker Name="/HiveDataContext/Project/Project_Job" />
    310       <nodes>
    311         <classShapeMoniker Id="30778876-b5f6-4a97-9ec7-792011973d75" />
    312         <classShapeMoniker Id="e6f840cc-2968-4be1-b234-eef624ccacbb" />
    313       </nodes>
    314     </associationConnector>
    315     <classShape Id="72ac5c1b-0fdf-43a1-bbe7-3774893b40af" absoluteBounds="8.875, 4.375, 2, 1.1939925130208327">
    316       <DataClassMoniker Name="/HiveDataContext/AssignedTaskResource" />
    317       <nestedChildShapes>
    318         <elementListCompartment Id="e9acd881-ab35-401c-b4f8-03dafc98422e" absoluteBounds="8.89, 4.835, 1.9700000000000002, 0.63399251302083326" name="DataPropertiesCompartment" titleTextColor="Black" itemTextColor="Black" />
    319       </nestedChildShapes>
    320     </classShape>
    321     <associationConnector edgePoints="[(8.5 : 4.1170068359375); (8.875 : 4.375)]" fixedFrom="NotFixed" fixedTo="NotFixed">
    322       <AssociationMoniker Name="/HiveDataContext/Task/Task_AssignedTaskResource" />
    323       <nodes>
    324         <classShapeMoniker Id="695bfc39-59f3-4e60-8644-f847964bf62c" />
    325         <classShapeMoniker Id="72ac5c1b-0fdf-43a1-bbe7-3774893b40af" />
    326       </nodes>
    327     </associationConnector>
    328     <associationConnector edgePoints="[(12.25 : 2.9631982421875); (12.25 : 3.8125); (11.1875 : 3.8125); (11.1875 : 4.97199625651042); (10.875 : 4.97199625651042)]" fixedFrom="Algorithm" fixedTo="Algorithm">
    329       <AssociationMoniker Name="/HiveDataContext/Resource/Resource_AssignedTaskResource" />
    330       <nodes>
    331         <classShapeMoniker Id="706a4581-6daf-4e71-ae2a-87d50b27a051" />
    332         <classShapeMoniker Id="72ac5c1b-0fdf-43a1-bbe7-3774893b40af" />
     294        <classShapeMoniker Id="21c9583c-d7ba-42a5-b51f-640eb37b8062" />
     295        <classShapeMoniker Id="8a0e5c60-ae42-4e3f-b366-68407c56bbd1" />
    333296      </nodes>
    334297    </associationConnector>
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive.DataAccess/3.3/HiveDataContext.designer.cs

    r15411 r15523  
    2323 
    2424 
    25   [global::System.Data.Linq.Mapping.DatabaseAttribute(Name="HeuristicLab.Hive")]
     25  [global::System.Data.Linq.Mapping.DatabaseAttribute(Name="HeuristicLab.Hive-3.3")]
    2626  public partial class HiveDataContext : System.Data.Linq.DataContext
    2727  {
     
    3131    #region Extensibility Method Definitions
    3232    partial void OnCreated();
     33    partial void InsertFactTask(FactTask instance);
     34    partial void UpdateFactTask(FactTask instance);
     35    partial void DeleteFactTask(FactTask instance);
    3336    partial void InsertAssignedProjectResource(AssignedProjectResource instance);
    3437    partial void UpdateAssignedProjectResource(AssignedProjectResource instance);
    3538    partial void DeleteAssignedProjectResource(AssignedProjectResource instance);
     39    partial void InsertDowntime(Downtime instance);
     40    partial void UpdateDowntime(Downtime instance);
     41    partial void DeleteDowntime(Downtime instance);
     42    partial void InsertJob(Job instance);
     43    partial void UpdateJob(Job instance);
     44    partial void DeleteJob(Job instance);
     45    partial void InsertJobPermission(JobPermission instance);
     46    partial void UpdateJobPermission(JobPermission instance);
     47    partial void DeleteJobPermission(JobPermission instance);
     48    partial void InsertLifecycle(Lifecycle instance);
     49    partial void UpdateLifecycle(Lifecycle instance);
     50    partial void DeleteLifecycle(Lifecycle instance);
    3651    partial void InsertPlugin(Plugin instance);
    3752    partial void UpdatePlugin(Plugin instance);
    3853    partial void DeletePlugin(Plugin instance);
     54    partial void InsertPluginData(PluginData instance);
     55    partial void UpdatePluginData(PluginData instance);
     56    partial void DeletePluginData(PluginData instance);
     57    partial void InsertProject(Project instance);
     58    partial void UpdateProject(Project instance);
     59    partial void DeleteProject(Project instance);
     60    partial void InsertProjectPermission(ProjectPermission instance);
     61    partial void UpdateProjectPermission(ProjectPermission instance);
     62    partial void DeleteProjectPermission(ProjectPermission instance);
    3963    partial void InsertRequiredPlugin(RequiredPlugin instance);
    4064    partial void UpdateRequiredPlugin(RequiredPlugin instance);
     
    4367    partial void UpdateResource(Resource instance);
    4468    partial void DeleteResource(Resource instance);
     69    partial void InsertStateLog(StateLog instance);
     70    partial void UpdateStateLog(StateLog instance);
     71    partial void DeleteStateLog(StateLog instance);
    4572    partial void InsertTask(Task instance);
    4673    partial void UpdateTask(Task instance);
    4774    partial void DeleteTask(Task instance);
    48     partial void InsertDowntime(Downtime instance);
    49     partial void UpdateDowntime(Downtime instance);
    50     partial void DeleteDowntime(Downtime instance);
    51     partial void InsertJob(Job instance);
    52     partial void UpdateJob(Job instance);
    53     partial void DeleteJob(Job instance);
    5475    partial void InsertTaskData(TaskData instance);
    5576    partial void UpdateTaskData(TaskData instance);
    5677    partial void DeleteTaskData(TaskData instance);
    57     partial void InsertPluginData(PluginData instance);
    58     partial void UpdatePluginData(PluginData instance);
    59     partial void DeletePluginData(PluginData instance);
    60     partial void InsertStateLog(StateLog instance);
    61     partial void UpdateStateLog(StateLog instance);
    62     partial void DeleteStateLog(StateLog instance);
    63     partial void InsertJobPermission(JobPermission instance);
    64     partial void UpdateJobPermission(JobPermission instance);
    65     partial void DeleteJobPermission(JobPermission instance);
    66     partial void InsertLifecycle(Lifecycle instance);
    67     partial void UpdateLifecycle(Lifecycle instance);
    68     partial void DeleteLifecycle(Lifecycle instance);
    69     partial void InsertResourcePermission(ResourcePermission instance);
    70     partial void UpdateResourcePermission(ResourcePermission instance);
    71     partial void DeleteResourcePermission(ResourcePermission instance);
    7278    partial void InsertUserPriority(UserPriority instance);
    7379    partial void UpdateUserPriority(UserPriority instance);
     
    7682    partial void UpdateDimClient(DimClient instance);
    7783    partial void DeleteDimClient(DimClient instance);
    78     partial void InsertFactTask(FactTask instance);
    79     partial void UpdateFactTask(FactTask instance);
    80     partial void DeleteFactTask(FactTask instance);
    8184    partial void InsertDimJob(DimJob instance);
    8285    partial void UpdateDimJob(DimJob instance);
     
    9194    partial void UpdateFactClientInfo(FactClientInfo instance);
    9295    partial void DeleteFactClientInfo(FactClientInfo instance);
    93     partial void InsertProject(Project instance);
    94     partial void UpdateProject(Project instance);
    95     partial void DeleteProject(Project instance);
    96     partial void InsertProjectPermission(ProjectPermission instance);
    97     partial void UpdateProjectPermission(ProjectPermission instance);
    98     partial void DeleteProjectPermission(ProjectPermission instance);
    99     partial void InsertAssignedTaskResource(AssignedTaskResource instance);
    100     partial void UpdateAssignedTaskResource(AssignedTaskResource instance);
    101     partial void DeleteAssignedTaskResource(AssignedTaskResource instance);
    10296    #endregion
     97   
     98    public HiveDataContext() :
     99        base(global::HeuristicLab.Services.Hive.DataAccess.Settings.Default.HeuristicLab_Hive_3_3ConnectionString, mappingSource)
     100    {
     101      OnCreated();
     102    }
    103103   
    104104    public HiveDataContext(string connection) :
     
    126126    }
    127127   
     128    public System.Data.Linq.Table<AssignedJobResource> AssignedJobResources
     129    {
     130      get
     131      {
     132        return this.GetTable<AssignedJobResource>();
     133      }
     134    }
     135   
     136    public System.Data.Linq.Table<FactTask> FactTasks
     137    {
     138      get
     139      {
     140        return this.GetTable<FactTask>();
     141      }
     142    }
     143   
    128144    public System.Data.Linq.Table<AssignedProjectResource> AssignedProjectResources
    129145    {
     
    134150    }
    135151   
     152    public System.Data.Linq.Table<Downtime> Downtimes
     153    {
     154      get
     155      {
     156        return this.GetTable<Downtime>();
     157      }
     158    }
     159   
     160    public System.Data.Linq.Table<Job> Jobs
     161    {
     162      get
     163      {
     164        return this.GetTable<Job>();
     165      }
     166    }
     167   
     168    public System.Data.Linq.Table<JobPermission> JobPermissions
     169    {
     170      get
     171      {
     172        return this.GetTable<JobPermission>();
     173      }
     174    }
     175   
     176    public System.Data.Linq.Table<Lifecycle> Lifecycles
     177    {
     178      get
     179      {
     180        return this.GetTable<Lifecycle>();
     181      }
     182    }
     183   
    136184    public System.Data.Linq.Table<Plugin> Plugins
    137185    {
     
    142190    }
    143191   
     192    public System.Data.Linq.Table<PluginData> PluginDatas
     193    {
     194      get
     195      {
     196        return this.GetTable<PluginData>();
     197      }
     198    }
     199   
     200    public System.Data.Linq.Table<Project> Projects
     201    {
     202      get
     203      {
     204        return this.GetTable<Project>();
     205      }
     206    }
     207   
     208    public System.Data.Linq.Table<ProjectPermission> ProjectPermissions
     209    {
     210      get
     211      {
     212        return this.GetTable<ProjectPermission>();
     213      }
     214    }
     215   
    144216    public System.Data.Linq.Table<RequiredPlugin> RequiredPlugins
    145217    {
     
    158230    }
    159231   
     232    public System.Data.Linq.Table<StateLog> StateLogs
     233    {
     234      get
     235      {
     236        return this.GetTable<StateLog>();
     237      }
     238    }
     239   
    160240    public System.Data.Linq.Table<Task> Tasks
    161241    {
     
    166246    }
    167247   
    168     public System.Data.Linq.Table<Downtime> Downtimes
    169     {
    170       get
    171       {
    172         return this.GetTable<Downtime>();
    173       }
    174     }
    175    
    176     public System.Data.Linq.Table<Job> Jobs
    177     {
    178       get
    179       {
    180         return this.GetTable<Job>();
    181       }
    182     }
    183    
    184248    public System.Data.Linq.Table<TaskData> TaskDatas
    185249    {
     
    190254    }
    191255   
    192     public System.Data.Linq.Table<PluginData> PluginDatas
    193     {
    194       get
    195       {
    196         return this.GetTable<PluginData>();
    197       }
    198     }
    199    
    200     public System.Data.Linq.Table<StateLog> StateLogs
    201     {
    202       get
    203       {
    204         return this.GetTable<StateLog>();
    205       }
    206     }
    207    
    208     public System.Data.Linq.Table<JobPermission> JobPermissions
    209     {
    210       get
    211       {
    212         return this.GetTable<JobPermission>();
    213       }
    214     }
    215    
    216     public System.Data.Linq.Table<Lifecycle> Lifecycles
    217     {
    218       get
    219       {
    220         return this.GetTable<Lifecycle>();
    221       }
    222     }
    223    
    224     public System.Data.Linq.Table<ResourcePermission> ResourcePermissions
    225     {
    226       get
    227       {
    228         return this.GetTable<ResourcePermission>();
    229       }
    230     }
    231    
    232256    public System.Data.Linq.Table<UserPriority> UserPriorities
    233257    {
     
    246270    }
    247271   
    248     public System.Data.Linq.Table<FactTask> FactTasks
    249     {
    250       get
    251       {
    252         return this.GetTable<FactTask>();
    253       }
    254     }
    255    
    256272    public System.Data.Linq.Table<DimJob> DimJobs
    257273    {
     
    285301      }
    286302    }
    287    
    288     public System.Data.Linq.Table<Project> Projects
    289     {
    290       get
    291       {
    292         return this.GetTable<Project>();
    293       }
    294     }
    295    
    296     public System.Data.Linq.Table<ProjectPermission> ProjectPermissions
    297     {
    298       get
    299       {
    300         return this.GetTable<ProjectPermission>();
    301       }
    302     }
    303    
    304     public System.Data.Linq.Table<AssignedTaskResource> AssignedTaskResources
    305     {
    306       get
    307       {
    308         return this.GetTable<AssignedTaskResource>();
     303  }
     304 
     305  [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.AssignedJobResource")]
     306  public partial class AssignedJobResource
     307  {
     308   
     309    private System.Guid _ResourceId;
     310   
     311    private System.Guid _JobId;
     312   
     313    public AssignedJobResource()
     314    {
     315    }
     316   
     317    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceId", DbType="UniqueIdentifier NOT NULL")]
     318    public System.Guid ResourceId
     319    {
     320      get
     321      {
     322        return this._ResourceId;
     323      }
     324      set
     325      {
     326        if ((this._ResourceId != value))
     327        {
     328          this._ResourceId = value;
     329        }
     330      }
     331    }
     332   
     333    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JobId", DbType="UniqueIdentifier NOT NULL")]
     334    public System.Guid JobId
     335    {
     336      get
     337      {
     338        return this._JobId;
     339      }
     340      set
     341      {
     342        if ((this._JobId != value))
     343        {
     344          this._JobId = value;
     345        }
     346      }
     347    }
     348  }
     349 
     350  [global::System.Data.Linq.Mapping.TableAttribute(Name="[statistics].FactTask")]
     351  public partial class FactTask : INotifyPropertyChanging, INotifyPropertyChanged
     352  {
     353   
     354    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
     355   
     356    private System.Guid _TaskId;
     357   
     358    private int _CalculatingTime;
     359   
     360    private int _WaitingTime;
     361   
     362    private int _TransferTime;
     363   
     364    private int _NumCalculationRuns;
     365   
     366    private int _NumRetries;
     367   
     368    private int _CoresRequired;
     369   
     370    private int _MemoryRequired;
     371   
     372    private int _Priority;
     373   
     374    private System.Nullable<System.Guid> _LastClientId;
     375   
     376    private System.Guid _JobId;
     377   
     378    private System.Nullable<System.DateTime> _StartTime;
     379   
     380    private System.Nullable<System.DateTime> _EndTime;
     381   
     382    private string _TaskState;
     383   
     384    private string _Exception;
     385   
     386    private System.Nullable<int> _InitialWaitingTime;
     387   
     388    private EntityRef<DimClient> _DimClient;
     389   
     390    private EntityRef<DimJob> _DimJob;
     391   
     392    #region Extensibility Method Definitions
     393    partial void OnLoaded();
     394    partial void OnValidate(System.Data.Linq.ChangeAction action);
     395    partial void OnCreated();
     396    partial void OnTaskIdChanging(System.Guid value);
     397    partial void OnTaskIdChanged();
     398    partial void OnCalculatingTimeChanging(int value);
     399    partial void OnCalculatingTimeChanged();
     400    partial void OnWaitingTimeChanging(int value);
     401    partial void OnWaitingTimeChanged();
     402    partial void OnTransferTimeChanging(int value);
     403    partial void OnTransferTimeChanged();
     404    partial void OnNumCalculationRunsChanging(int value);
     405    partial void OnNumCalculationRunsChanged();
     406    partial void OnNumRetriesChanging(int value);
     407    partial void OnNumRetriesChanged();
     408    partial void OnCoresRequiredChanging(int value);
     409    partial void OnCoresRequiredChanged();
     410    partial void OnMemoryRequiredChanging(int value);
     411    partial void OnMemoryRequiredChanged();
     412    partial void OnPriorityChanging(int value);
     413    partial void OnPriorityChanged();
     414    partial void OnLastClientIdChanging(System.Nullable<System.Guid> value);
     415    partial void OnLastClientIdChanged();
     416    partial void OnJobIdChanging(System.Guid value);
     417    partial void OnJobIdChanged();
     418    partial void OnStartTimeChanging(System.Nullable<System.DateTime> value);
     419    partial void OnStartTimeChanged();
     420    partial void OnEndTimeChanging(System.Nullable<System.DateTime> value);
     421    partial void OnEndTimeChanged();
     422    partial void OnTaskStateChanging(string value);
     423    partial void OnTaskStateChanged();
     424    partial void OnExceptionChanging(string value);
     425    partial void OnExceptionChanged();
     426    partial void OnInitialWaitingTimeChanging(System.Nullable<int> value);
     427    partial void OnInitialWaitingTimeChanged();
     428    #endregion
     429   
     430    public FactTask()
     431    {
     432      this._DimClient = default(EntityRef<DimClient>);
     433      this._DimJob = default(EntityRef<DimJob>);
     434      OnCreated();
     435    }
     436   
     437    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaskId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
     438    public System.Guid TaskId
     439    {
     440      get
     441      {
     442        return this._TaskId;
     443      }
     444      set
     445      {
     446        if ((this._TaskId != value))
     447        {
     448          this.OnTaskIdChanging(value);
     449          this.SendPropertyChanging();
     450          this._TaskId = value;
     451          this.SendPropertyChanged("TaskId");
     452          this.OnTaskIdChanged();
     453        }
     454      }
     455    }
     456   
     457    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CalculatingTime", DbType="Int NOT NULL")]
     458    public int CalculatingTime
     459    {
     460      get
     461      {
     462        return this._CalculatingTime;
     463      }
     464      set
     465      {
     466        if ((this._CalculatingTime != value))
     467        {
     468          this.OnCalculatingTimeChanging(value);
     469          this.SendPropertyChanging();
     470          this._CalculatingTime = value;
     471          this.SendPropertyChanged("CalculatingTime");
     472          this.OnCalculatingTimeChanged();
     473        }
     474      }
     475    }
     476   
     477    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_WaitingTime", DbType="Int NOT NULL")]
     478    public int WaitingTime
     479    {
     480      get
     481      {
     482        return this._WaitingTime;
     483      }
     484      set
     485      {
     486        if ((this._WaitingTime != value))
     487        {
     488          this.OnWaitingTimeChanging(value);
     489          this.SendPropertyChanging();
     490          this._WaitingTime = value;
     491          this.SendPropertyChanged("WaitingTime");
     492          this.OnWaitingTimeChanged();
     493        }
     494      }
     495    }
     496   
     497    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TransferTime", DbType="Int NOT NULL")]
     498    public int TransferTime
     499    {
     500      get
     501      {
     502        return this._TransferTime;
     503      }
     504      set
     505      {
     506        if ((this._TransferTime != value))
     507        {
     508          this.OnTransferTimeChanging(value);
     509          this.SendPropertyChanging();
     510          this._TransferTime = value;
     511          this.SendPropertyChanged("TransferTime");
     512          this.OnTransferTimeChanged();
     513        }
     514      }
     515    }
     516   
     517    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NumCalculationRuns", DbType="Int NOT NULL")]
     518    public int NumCalculationRuns
     519    {
     520      get
     521      {
     522        return this._NumCalculationRuns;
     523      }
     524      set
     525      {
     526        if ((this._NumCalculationRuns != value))
     527        {
     528          this.OnNumCalculationRunsChanging(value);
     529          this.SendPropertyChanging();
     530          this._NumCalculationRuns = value;
     531          this.SendPropertyChanged("NumCalculationRuns");
     532          this.OnNumCalculationRunsChanged();
     533        }
     534      }
     535    }
     536   
     537    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NumRetries", DbType="Int NOT NULL")]
     538    public int NumRetries
     539    {
     540      get
     541      {
     542        return this._NumRetries;
     543      }
     544      set
     545      {
     546        if ((this._NumRetries != value))
     547        {
     548          this.OnNumRetriesChanging(value);
     549          this.SendPropertyChanging();
     550          this._NumRetries = value;
     551          this.SendPropertyChanged("NumRetries");
     552          this.OnNumRetriesChanged();
     553        }
     554      }
     555    }
     556   
     557    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CoresRequired", DbType="Int NOT NULL")]
     558    public int CoresRequired
     559    {
     560      get
     561      {
     562        return this._CoresRequired;
     563      }
     564      set
     565      {
     566        if ((this._CoresRequired != value))
     567        {
     568          this.OnCoresRequiredChanging(value);
     569          this.SendPropertyChanging();
     570          this._CoresRequired = value;
     571          this.SendPropertyChanged("CoresRequired");
     572          this.OnCoresRequiredChanged();
     573        }
     574      }
     575    }
     576   
     577    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MemoryRequired", DbType="Int NOT NULL")]
     578    public int MemoryRequired
     579    {
     580      get
     581      {
     582        return this._MemoryRequired;
     583      }
     584      set
     585      {
     586        if ((this._MemoryRequired != value))
     587        {
     588          this.OnMemoryRequiredChanging(value);
     589          this.SendPropertyChanging();
     590          this._MemoryRequired = value;
     591          this.SendPropertyChanged("MemoryRequired");
     592          this.OnMemoryRequiredChanged();
     593        }
     594      }
     595    }
     596   
     597    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Priority", DbType="Int NOT NULL")]
     598    public int Priority
     599    {
     600      get
     601      {
     602        return this._Priority;
     603      }
     604      set
     605      {
     606        if ((this._Priority != value))
     607        {
     608          this.OnPriorityChanging(value);
     609          this.SendPropertyChanging();
     610          this._Priority = value;
     611          this.SendPropertyChanged("Priority");
     612          this.OnPriorityChanged();
     613        }
     614      }
     615    }
     616   
     617    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastClientId", DbType="UniqueIdentifier")]
     618    public System.Nullable<System.Guid> LastClientId
     619    {
     620      get
     621      {
     622        return this._LastClientId;
     623      }
     624      set
     625      {
     626        if ((this._LastClientId != value))
     627        {
     628          if (this._DimClient.HasLoadedOrAssignedValue)
     629          {
     630            throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
     631          }
     632          this.OnLastClientIdChanging(value);
     633          this.SendPropertyChanging();
     634          this._LastClientId = value;
     635          this.SendPropertyChanged("LastClientId");
     636          this.OnLastClientIdChanged();
     637        }
     638      }
     639    }
     640   
     641    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JobId", DbType="UniqueIdentifier NOT NULL")]
     642    public System.Guid JobId
     643    {
     644      get
     645      {
     646        return this._JobId;
     647      }
     648      set
     649      {
     650        if ((this._JobId != value))
     651        {
     652          if (this._DimJob.HasLoadedOrAssignedValue)
     653          {
     654            throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
     655          }
     656          this.OnJobIdChanging(value);
     657          this.SendPropertyChanging();
     658          this._JobId = value;
     659          this.SendPropertyChanged("JobId");
     660          this.OnJobIdChanged();
     661        }
     662      }
     663    }
     664   
     665    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartTime", DbType="DateTime")]
     666    public System.Nullable<System.DateTime> StartTime
     667    {
     668      get
     669      {
     670        return this._StartTime;
     671      }
     672      set
     673      {
     674        if ((this._StartTime != value))
     675        {
     676          this.OnStartTimeChanging(value);
     677          this.SendPropertyChanging();
     678          this._StartTime = value;
     679          this.SendPropertyChanged("StartTime");
     680          this.OnStartTimeChanged();
     681        }
     682      }
     683    }
     684   
     685    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EndTime", DbType="DateTime")]
     686    public System.Nullable<System.DateTime> EndTime
     687    {
     688      get
     689      {
     690        return this._EndTime;
     691      }
     692      set
     693      {
     694        if ((this._EndTime != value))
     695        {
     696          this.OnEndTimeChanging(value);
     697          this.SendPropertyChanging();
     698          this._EndTime = value;
     699          this.SendPropertyChanged("EndTime");
     700          this.OnEndTimeChanged();
     701        }
     702      }
     703    }
     704   
     705    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaskState", DbType="VarChar(30) NOT NULL", CanBeNull=false)]
     706    public string TaskState
     707    {
     708      get
     709      {
     710        return this._TaskState;
     711      }
     712      set
     713      {
     714        if ((this._TaskState != value))
     715        {
     716          this.OnTaskStateChanging(value);
     717          this.SendPropertyChanging();
     718          this._TaskState = value;
     719          this.SendPropertyChanged("TaskState");
     720          this.OnTaskStateChanged();
     721        }
     722      }
     723    }
     724   
     725    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Exception", DbType="VarChar(MAX)")]
     726    public string Exception
     727    {
     728      get
     729      {
     730        return this._Exception;
     731      }
     732      set
     733      {
     734        if ((this._Exception != value))
     735        {
     736          this.OnExceptionChanging(value);
     737          this.SendPropertyChanging();
     738          this._Exception = value;
     739          this.SendPropertyChanged("Exception");
     740          this.OnExceptionChanged();
     741        }
     742      }
     743    }
     744   
     745    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_InitialWaitingTime", DbType="Int")]
     746    public System.Nullable<int> InitialWaitingTime
     747    {
     748      get
     749      {
     750        return this._InitialWaitingTime;
     751      }
     752      set
     753      {
     754        if ((this._InitialWaitingTime != value))
     755        {
     756          this.OnInitialWaitingTimeChanging(value);
     757          this.SendPropertyChanging();
     758          this._InitialWaitingTime = value;
     759          this.SendPropertyChanged("InitialWaitingTime");
     760          this.OnInitialWaitingTimeChanged();
     761        }
     762      }
     763    }
     764   
     765    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="DimClient_FactTask", Storage="_DimClient", ThisKey="LastClientId", OtherKey="Id", IsForeignKey=true)]
     766    public DimClient DimClient
     767    {
     768      get
     769      {
     770        return this._DimClient.Entity;
     771      }
     772      set
     773      {
     774        DimClient previousValue = this._DimClient.Entity;
     775        if (((previousValue != value)
     776              || (this._DimClient.HasLoadedOrAssignedValue == false)))
     777        {
     778          this.SendPropertyChanging();
     779          if ((previousValue != null))
     780          {
     781            this._DimClient.Entity = null;
     782            previousValue.FactTasks.Remove(this);
     783          }
     784          this._DimClient.Entity = value;
     785          if ((value != null))
     786          {
     787            value.FactTasks.Add(this);
     788            this._LastClientId = value.Id;
     789          }
     790          else
     791          {
     792            this._LastClientId = default(Nullable<System.Guid>);
     793          }
     794          this.SendPropertyChanged("DimClient");
     795        }
     796      }
     797    }
     798   
     799    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="DimJob_FactTask", Storage="_DimJob", ThisKey="JobId", OtherKey="JobId", IsForeignKey=true)]
     800    public DimJob DimJob
     801    {
     802      get
     803      {
     804        return this._DimJob.Entity;
     805      }
     806      set
     807      {
     808        DimJob previousValue = this._DimJob.Entity;
     809        if (((previousValue != value)
     810              || (this._DimJob.HasLoadedOrAssignedValue == false)))
     811        {
     812          this.SendPropertyChanging();
     813          if ((previousValue != null))
     814          {
     815            this._DimJob.Entity = null;
     816            previousValue.FactTasks.Remove(this);
     817          }
     818          this._DimJob.Entity = value;
     819          if ((value != null))
     820          {
     821            value.FactTasks.Add(this);
     822            this._JobId = value.JobId;
     823          }
     824          else
     825          {
     826            this._JobId = default(System.Guid);
     827          }
     828          this.SendPropertyChanged("DimJob");
     829        }
     830      }
     831    }
     832   
     833    public event PropertyChangingEventHandler PropertyChanging;
     834   
     835    public event PropertyChangedEventHandler PropertyChanged;
     836   
     837    protected virtual void SendPropertyChanging()
     838    {
     839      if ((this.PropertyChanging != null))
     840      {
     841        this.PropertyChanging(this, emptyChangingEventArgs);
     842      }
     843    }
     844   
     845    protected virtual void SendPropertyChanged(String propertyName)
     846    {
     847      if ((this.PropertyChanged != null))
     848      {
     849        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    309850      }
    310851    }
     
    319860    private System.Guid _ResourceId;
    320861   
    321     private System.Guid _JobId;
     862    private System.Guid _ProjectId;
     863   
     864    private EntityRef<Project> _Project;
    322865   
    323866    private EntityRef<Resource> _Resource;
    324    
    325     private EntityRef<Project> _Project;
    326867   
    327868    #region Extensibility Method Definitions
     
    337878    public AssignedProjectResource()
    338879    {
     880      this._Project = default(EntityRef<Project>);
    339881      this._Resource = default(EntityRef<Resource>);
    340       this._Project = default(EntityRef<Project>);
    341882      OnCreated();
    342883    }
     
    366907    }
    367908   
    368     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JobId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
     909    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
    369910    public System.Guid ProjectId
    370911    {
    371912      get
    372913      {
    373         return this._JobId;
    374       }
    375       set
    376       {
    377         if ((this._JobId != value))
     914        return this._ProjectId;
     915      }
     916      set
     917      {
     918        if ((this._ProjectId != value))
    378919        {
    379920          if (this._Project.HasLoadedOrAssignedValue)
     
    383924          this.OnProjectIdChanging(value);
    384925          this.SendPropertyChanging();
    385           this._JobId = value;
     926          this._ProjectId = value;
    386927          this.SendPropertyChanged("ProjectId");
    387928          this.OnProjectIdChanged();
     
    390931    }
    391932   
    392     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_AssignedProjectResource", Storage="_Resource", ThisKey="ResourceId", OtherKey="ResourceId", IsForeignKey=true, DeleteRule="CASCADE")]
     933    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_AssignedProjectResource", Storage="_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
     934    public Project Project
     935    {
     936      get
     937      {
     938        return this._Project.Entity;
     939      }
     940      set
     941      {
     942        Project previousValue = this._Project.Entity;
     943        if (((previousValue != value)
     944              || (this._Project.HasLoadedOrAssignedValue == false)))
     945        {
     946          this.SendPropertyChanging();
     947          if ((previousValue != null))
     948          {
     949            this._Project.Entity = null;
     950            previousValue.AssignedProjectResources.Remove(this);
     951          }
     952          this._Project.Entity = value;
     953          if ((value != null))
     954          {
     955            value.AssignedProjectResources.Add(this);
     956            this._ProjectId = value.ProjectId;
     957          }
     958          else
     959          {
     960            this._ProjectId = default(System.Guid);
     961          }
     962          this.SendPropertyChanged("Project");
     963        }
     964      }
     965    }
     966   
     967    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_AssignedProjectResource", Storage="_Resource", ThisKey="ResourceId", OtherKey="ResourceId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
    393968    public Resource Resource
    394969    {
     
    424999    }
    4251000   
    426     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_AssignedProjectResource", Storage="_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true, DeleteRule="CASCADE")]
    427     public Project Project
    428     {
    429       get
    430       {
    431         return this._Project.Entity;
    432       }
    433       set
    434       {
    435         Project previousValue = this._Project.Entity;
    436         if (((previousValue != value)
    437               || (this._Project.HasLoadedOrAssignedValue == false)))
    438         {
    439           this.SendPropertyChanging();
    440           if ((previousValue != null))
    441           {
    442             this._Project.Entity = null;
    443             previousValue.AssignedProjectResources.Remove(this);
    444           }
    445           this._Project.Entity = value;
    446           if ((value != null))
    447           {
    448             value.AssignedProjectResources.Add(this);
    449             this._JobId = value.ProjectId;
    450           }
    451           else
    452           {
    453             this._JobId = default(System.Guid);
    454           }
    455           this.SendPropertyChanged("Project");
    456         }
    457       }
    458     }
    459    
    4601001    public event PropertyChangingEventHandler PropertyChanging;
    4611002   
     
    4761017        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    4771018      }
    478     }
    479   }
    480  
    481   [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Plugin")]
    482   public partial class Plugin : INotifyPropertyChanging, INotifyPropertyChanged
    483   {
    484    
    485     private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
    486    
    487     private System.Guid _PluginId;
    488    
    489     private string _Name;
    490    
    491     private string _Version;
    492    
    493     private System.Guid _UserId;
    494    
    495     private System.DateTime _DateCreated;
    496    
    497     private byte[] _Hash;
    498    
    499     private EntitySet<RequiredPlugin> _RequiredPlugins;
    500    
    501     private EntitySet<PluginData> _PluginData;
    502    
    503     #region Extensibility Method Definitions
    504     partial void OnLoaded();
    505     partial void OnValidate(System.Data.Linq.ChangeAction action);
    506     partial void OnCreated();
    507     partial void OnPluginIdChanging(System.Guid value);
    508     partial void OnPluginIdChanged();
    509     partial void OnNameChanging(string value);
    510     partial void OnNameChanged();
    511     partial void OnVersionChanging(string value);
    512     partial void OnVersionChanged();
    513     partial void OnUserIdChanging(System.Guid value);
    514     partial void OnUserIdChanged();
    515     partial void OnDateCreatedChanging(System.DateTime value);
    516     partial void OnDateCreatedChanged();
    517     partial void OnHashChanging(byte[] value);
    518     partial void OnHashChanged();
    519     #endregion
    520    
    521     public Plugin()
    522     {
    523       this._RequiredPlugins = new EntitySet<RequiredPlugin>(new Action<RequiredPlugin>(this.attach_RequiredPlugins), new Action<RequiredPlugin>(this.detach_RequiredPlugins));
    524       this._PluginData = new EntitySet<PluginData>(new Action<PluginData>(this.attach_PluginData), new Action<PluginData>(this.detach_PluginData));
    525       OnCreated();
    526     }
    527    
    528     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PluginId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)]
    529     public System.Guid PluginId
    530     {
    531       get
    532       {
    533         return this._PluginId;
    534       }
    535       set
    536       {
    537         if ((this._PluginId != value))
    538         {
    539           this.OnPluginIdChanging(value);
    540           this.SendPropertyChanging();
    541           this._PluginId = value;
    542           this.SendPropertyChanged("PluginId");
    543           this.OnPluginIdChanged();
    544         }
    545       }
    546     }
    547    
    548     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="VarChar(MAX)", CanBeNull=false)]
    549     public string Name
    550     {
    551       get
    552       {
    553         return this._Name;
    554       }
    555       set
    556       {
    557         if ((this._Name != value))
    558         {
    559           this.OnNameChanging(value);
    560           this.SendPropertyChanging();
    561           this._Name = value;
    562           this.SendPropertyChanged("Name");
    563           this.OnNameChanged();
    564         }
    565       }
    566     }
    567    
    568     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Version", DbType="VarChar(MAX)", CanBeNull=false)]
    569     public string Version
    570     {
    571       get
    572       {
    573         return this._Version;
    574       }
    575       set
    576       {
    577         if ((this._Version != value))
    578         {
    579           this.OnVersionChanging(value);
    580           this.SendPropertyChanging();
    581           this._Version = value;
    582           this.SendPropertyChanged("Version");
    583           this.OnVersionChanged();
    584         }
    585       }
    586     }
    587    
    588     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserId", DbType="UniqueIdentifier")]
    589     public System.Guid UserId
    590     {
    591       get
    592       {
    593         return this._UserId;
    594       }
    595       set
    596       {
    597         if ((this._UserId != value))
    598         {
    599           this.OnUserIdChanging(value);
    600           this.SendPropertyChanging();
    601           this._UserId = value;
    602           this.SendPropertyChanged("UserId");
    603           this.OnUserIdChanged();
    604         }
    605       }
    606     }
    607    
    608     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DateCreated", DbType="DateTime")]
    609     public System.DateTime DateCreated
    610     {
    611       get
    612       {
    613         return this._DateCreated;
    614       }
    615       set
    616       {
    617         if ((this._DateCreated != value))
    618         {
    619           this.OnDateCreatedChanging(value);
    620           this.SendPropertyChanging();
    621           this._DateCreated = value;
    622           this.SendPropertyChanged("DateCreated");
    623           this.OnDateCreatedChanged();
    624         }
    625       }
    626     }
    627    
    628     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Hash", DbType="VarBinary(20) NOT NULL", CanBeNull=false)]
    629     public byte[] Hash
    630     {
    631       get
    632       {
    633         return this._Hash;
    634       }
    635       set
    636       {
    637         if ((this._Hash != value))
    638         {
    639           this.OnHashChanging(value);
    640           this.SendPropertyChanging();
    641           this._Hash = value;
    642           this.SendPropertyChanged("Hash");
    643           this.OnHashChanged();
    644         }
    645       }
    646     }
    647    
    648     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_RequiredPlugin", Storage="_RequiredPlugins", ThisKey="PluginId", OtherKey="PluginId")]
    649     public EntitySet<RequiredPlugin> RequiredPlugins
    650     {
    651       get
    652       {
    653         return this._RequiredPlugins;
    654       }
    655       set
    656       {
    657         this._RequiredPlugins.Assign(value);
    658       }
    659     }
    660    
    661     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_PluginData", Storage="_PluginData", ThisKey="PluginId", OtherKey="PluginId")]
    662     public EntitySet<PluginData> PluginData
    663     {
    664       get
    665       {
    666         return this._PluginData;
    667       }
    668       set
    669       {
    670         this._PluginData.Assign(value);
    671       }
    672     }
    673    
    674     public event PropertyChangingEventHandler PropertyChanging;
    675    
    676     public event PropertyChangedEventHandler PropertyChanged;
    677    
    678     protected virtual void SendPropertyChanging()
    679     {
    680       if ((this.PropertyChanging != null))
    681       {
    682         this.PropertyChanging(this, emptyChangingEventArgs);
    683       }
    684     }
    685    
    686     protected virtual void SendPropertyChanged(String propertyName)
    687     {
    688       if ((this.PropertyChanged != null))
    689       {
    690         this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    691       }
    692     }
    693    
    694     private void attach_RequiredPlugins(RequiredPlugin entity)
    695     {
    696       this.SendPropertyChanging();
    697       entity.Plugin = this;
    698     }
    699    
    700     private void detach_RequiredPlugins(RequiredPlugin entity)
    701     {
    702       this.SendPropertyChanging();
    703       entity.Plugin = null;
    704     }
    705    
    706     private void attach_PluginData(PluginData entity)
    707     {
    708       this.SendPropertyChanging();
    709       entity.Plugin = this;
    710     }
    711    
    712     private void detach_PluginData(PluginData entity)
    713     {
    714       this.SendPropertyChanging();
    715       entity.Plugin = null;
    716     }
    717   }
    718  
    719   [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.RequiredPlugins")]
    720   public partial class RequiredPlugin : INotifyPropertyChanging, INotifyPropertyChanged
    721   {
    722    
    723     private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
    724    
    725     private System.Guid _RequiredPluginId;
    726    
    727     private System.Guid _JobId;
    728    
    729     private System.Guid _PluginId;
    730    
    731     private EntityRef<Plugin> _PluginInfo;
    732    
    733     private EntityRef<Task> _Job;
    734    
    735     #region Extensibility Method Definitions
    736     partial void OnLoaded();
    737     partial void OnValidate(System.Data.Linq.ChangeAction action);
    738     partial void OnCreated();
    739     partial void OnRequiredPluginIdChanging(System.Guid value);
    740     partial void OnRequiredPluginIdChanged();
    741     partial void OnTaskIdChanging(System.Guid value);
    742     partial void OnTaskIdChanged();
    743     partial void OnPluginIdChanging(System.Guid value);
    744     partial void OnPluginIdChanged();
    745     #endregion
    746    
    747     public RequiredPlugin()
    748     {
    749       this._PluginInfo = default(EntityRef<Plugin>);
    750       this._Job = default(EntityRef<Task>);
    751       OnCreated();
    752     }
    753    
    754     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RequiredPluginId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true, UpdateCheck=UpdateCheck.Never)]
    755     public System.Guid RequiredPluginId
    756     {
    757       get
    758       {
    759         return this._RequiredPluginId;
    760       }
    761       set
    762       {
    763         if ((this._RequiredPluginId != value))
    764         {
    765           this.OnRequiredPluginIdChanging(value);
    766           this.SendPropertyChanging();
    767           this._RequiredPluginId = value;
    768           this.SendPropertyChanged("RequiredPluginId");
    769           this.OnRequiredPluginIdChanged();
    770         }
    771       }
    772     }
    773    
    774     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JobId", DbType="UniqueIdentifier NOT NULL")]
    775     public System.Guid TaskId
    776     {
    777       get
    778       {
    779         return this._JobId;
    780       }
    781       set
    782       {
    783         if ((this._JobId != value))
    784         {
    785           if (this._Job.HasLoadedOrAssignedValue)
    786           {
    787             throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
    788           }
    789           this.OnTaskIdChanging(value);
    790           this.SendPropertyChanging();
    791           this._JobId = value;
    792           this.SendPropertyChanged("TaskId");
    793           this.OnTaskIdChanged();
    794         }
    795       }
    796     }
    797    
    798     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PluginId", DbType="UniqueIdentifier NOT NULL")]
    799     public System.Guid PluginId
    800     {
    801       get
    802       {
    803         return this._PluginId;
    804       }
    805       set
    806       {
    807         if ((this._PluginId != value))
    808         {
    809           if (this._PluginInfo.HasLoadedOrAssignedValue)
    810           {
    811             throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
    812           }
    813           this.OnPluginIdChanging(value);
    814           this.SendPropertyChanging();
    815           this._PluginId = value;
    816           this.SendPropertyChanged("PluginId");
    817           this.OnPluginIdChanged();
    818         }
    819       }
    820     }
    821    
    822     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_RequiredPlugin", Storage="_PluginInfo", ThisKey="PluginId", OtherKey="PluginId", IsForeignKey=true, DeleteRule="CASCADE")]
    823     public Plugin Plugin
    824     {
    825       get
    826       {
    827         return this._PluginInfo.Entity;
    828       }
    829       set
    830       {
    831         Plugin previousValue = this._PluginInfo.Entity;
    832         if (((previousValue != value)
    833               || (this._PluginInfo.HasLoadedOrAssignedValue == false)))
    834         {
    835           this.SendPropertyChanging();
    836           if ((previousValue != null))
    837           {
    838             this._PluginInfo.Entity = null;
    839             previousValue.RequiredPlugins.Remove(this);
    840           }
    841           this._PluginInfo.Entity = value;
    842           if ((value != null))
    843           {
    844             value.RequiredPlugins.Add(this);
    845             this._PluginId = value.PluginId;
    846           }
    847           else
    848           {
    849             this._PluginId = default(System.Guid);
    850           }
    851           this.SendPropertyChanged("Plugin");
    852         }
    853       }
    854     }
    855    
    856     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Task_RequiredPlugin", Storage="_Job", ThisKey="TaskId", OtherKey="TaskId", IsForeignKey=true)]
    857     public Task Task
    858     {
    859       get
    860       {
    861         return this._Job.Entity;
    862       }
    863       set
    864       {
    865         Task previousValue = this._Job.Entity;
    866         if (((previousValue != value)
    867               || (this._Job.HasLoadedOrAssignedValue == false)))
    868         {
    869           this.SendPropertyChanging();
    870           if ((previousValue != null))
    871           {
    872             this._Job.Entity = null;
    873             previousValue.RequiredPlugins.Remove(this);
    874           }
    875           this._Job.Entity = value;
    876           if ((value != null))
    877           {
    878             value.RequiredPlugins.Add(this);
    879             this._JobId = value.TaskId;
    880           }
    881           else
    882           {
    883             this._JobId = default(System.Guid);
    884           }
    885           this.SendPropertyChanged("Task");
    886         }
    887       }
    888     }
    889    
    890     public event PropertyChangingEventHandler PropertyChanging;
    891    
    892     public event PropertyChangedEventHandler PropertyChanged;
    893    
    894     protected virtual void SendPropertyChanging()
    895     {
    896       if ((this.PropertyChanging != null))
    897       {
    898         this.PropertyChanging(this, emptyChangingEventArgs);
    899       }
    900     }
    901    
    902     protected virtual void SendPropertyChanged(String propertyName)
    903     {
    904       if ((this.PropertyChanged != null))
    905       {
    906         this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    907       }
    908     }
    909   }
    910  
    911   [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Resource")]
    912   [global::System.Data.Linq.Mapping.InheritanceMappingAttribute(Code="RESOURCE", Type=typeof(Resource))]
    913   [global::System.Data.Linq.Mapping.InheritanceMappingAttribute(Code="Slave", Type=typeof(Slave), IsDefault=true)]
    914   [global::System.Data.Linq.Mapping.InheritanceMappingAttribute(Code="GROUP", Type=typeof(SlaveGroup))]
    915   public partial class Resource : INotifyPropertyChanging, INotifyPropertyChanged
    916   {
    917    
    918     private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
    919    
    920     private System.Guid _ResourceId;
    921    
    922     private string _Name;
    923    
    924     private string _ResourceType;
    925    
    926     private System.Nullable<System.Guid> _ParentResourceId;
    927    
    928     private int _HbInterval;
    929    
    930     private System.Nullable<System.Guid> _OwnerUserId;
    931    
    932     private EntitySet<AssignedProjectResource> _AssignedResources;
    933    
    934     private EntitySet<Resource> _ChildResources;
    935    
    936     private EntitySet<Downtime> _UptimeCalendars;
    937    
    938     private EntitySet<StateLog> _StateLogs;
    939    
    940     private EntitySet<ResourcePermission> _ResourcePermissions;
    941    
    942     private EntitySet<AssignedTaskResource> _AssignedTaskResources;
    943    
    944     private EntityRef<Resource> _ParentResource;
    945    
    946     #region Extensibility Method Definitions
    947     partial void OnLoaded();
    948     partial void OnValidate(System.Data.Linq.ChangeAction action);
    949     partial void OnCreated();
    950     partial void OnResourceIdChanging(System.Guid value);
    951     partial void OnResourceIdChanged();
    952     partial void OnNameChanging(string value);
    953     partial void OnNameChanged();
    954     partial void OnResourceTypeChanging(string value);
    955     partial void OnResourceTypeChanged();
    956     partial void OnParentResourceIdChanging(System.Nullable<System.Guid> value);
    957     partial void OnParentResourceIdChanged();
    958     partial void OnHbIntervalChanging(int value);
    959     partial void OnHbIntervalChanged();
    960     partial void OnOwnerUserIdChanging(System.Nullable<System.Guid> value);
    961     partial void OnOwnerUserIdChanged();
    962     #endregion
    963    
    964     public Resource()
    965     {
    966       this._AssignedResources = new EntitySet<AssignedProjectResource>(new Action<AssignedProjectResource>(this.attach_AssignedResources), new Action<AssignedProjectResource>(this.detach_AssignedResources));
    967       this._ChildResources = new EntitySet<Resource>(new Action<Resource>(this.attach_ChildResources), new Action<Resource>(this.detach_ChildResources));
    968       this._UptimeCalendars = new EntitySet<Downtime>(new Action<Downtime>(this.attach_UptimeCalendars), new Action<Downtime>(this.detach_UptimeCalendars));
    969       this._StateLogs = new EntitySet<StateLog>(new Action<StateLog>(this.attach_StateLogs), new Action<StateLog>(this.detach_StateLogs));
    970       this._ResourcePermissions = new EntitySet<ResourcePermission>(new Action<ResourcePermission>(this.attach_ResourcePermissions), new Action<ResourcePermission>(this.detach_ResourcePermissions));
    971       this._AssignedTaskResources = new EntitySet<AssignedTaskResource>(new Action<AssignedTaskResource>(this.attach_AssignedTaskResources), new Action<AssignedTaskResource>(this.detach_AssignedTaskResources));
    972       this._ParentResource = default(EntityRef<Resource>);
    973       OnCreated();
    974     }
    975    
    976     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
    977     public System.Guid ResourceId
    978     {
    979       get
    980       {
    981         return this._ResourceId;
    982       }
    983       set
    984       {
    985         if ((this._ResourceId != value))
    986         {
    987           this.OnResourceIdChanging(value);
    988           this.SendPropertyChanging();
    989           this._ResourceId = value;
    990           this.SendPropertyChanged("ResourceId");
    991           this.OnResourceIdChanged();
    992         }
    993       }
    994     }
    995    
    996     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="VarChar(MAX)", CanBeNull=false)]
    997     public string Name
    998     {
    999       get
    1000       {
    1001         return this._Name;
    1002       }
    1003       set
    1004       {
    1005         if ((this._Name != value))
    1006         {
    1007           this.OnNameChanging(value);
    1008           this.SendPropertyChanging();
    1009           this._Name = value;
    1010           this.SendPropertyChanged("Name");
    1011           this.OnNameChanged();
    1012         }
    1013       }
    1014     }
    1015    
    1016     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceType", CanBeNull=false, IsDiscriminator=true)]
    1017     public string ResourceType
    1018     {
    1019       get
    1020       {
    1021         return this._ResourceType;
    1022       }
    1023       set
    1024       {
    1025         if ((this._ResourceType != value))
    1026         {
    1027           this.OnResourceTypeChanging(value);
    1028           this.SendPropertyChanging();
    1029           this._ResourceType = value;
    1030           this.SendPropertyChanged("ResourceType");
    1031           this.OnResourceTypeChanged();
    1032         }
    1033       }
    1034     }
    1035    
    1036     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentResourceId", DbType="UniqueIdentifier")]
    1037     public System.Nullable<System.Guid> ParentResourceId
    1038     {
    1039       get
    1040       {
    1041         return this._ParentResourceId;
    1042       }
    1043       set
    1044       {
    1045         if ((this._ParentResourceId != value))
    1046         {
    1047           if (this._ParentResource.HasLoadedOrAssignedValue)
    1048           {
    1049             throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
    1050           }
    1051           this.OnParentResourceIdChanging(value);
    1052           this.SendPropertyChanging();
    1053           this._ParentResourceId = value;
    1054           this.SendPropertyChanged("ParentResourceId");
    1055           this.OnParentResourceIdChanged();
    1056         }
    1057       }
    1058     }
    1059    
    1060     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HbInterval", DbType="Int")]
    1061     public int HbInterval
    1062     {
    1063       get
    1064       {
    1065         return this._HbInterval;
    1066       }
    1067       set
    1068       {
    1069         if ((this._HbInterval != value))
    1070         {
    1071           this.OnHbIntervalChanging(value);
    1072           this.SendPropertyChanging();
    1073           this._HbInterval = value;
    1074           this.SendPropertyChanged("HbInterval");
    1075           this.OnHbIntervalChanged();
    1076         }
    1077       }
    1078     }
    1079    
    1080     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OwnerUserId", DbType="UniqueIdentifier")]
    1081     public System.Nullable<System.Guid> OwnerUserId
    1082     {
    1083       get
    1084       {
    1085         return this._OwnerUserId;
    1086       }
    1087       set
    1088       {
    1089         if ((this._OwnerUserId != value))
    1090         {
    1091           this.OnOwnerUserIdChanging(value);
    1092           this.SendPropertyChanging();
    1093           this._OwnerUserId = value;
    1094           this.SendPropertyChanged("OwnerUserId");
    1095           this.OnOwnerUserIdChanged();
    1096         }
    1097       }
    1098     }
    1099    
    1100     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_AssignedProjectResource", Storage="_AssignedResources", ThisKey="ResourceId", OtherKey="ResourceId")]
    1101     public EntitySet<AssignedProjectResource> AssignedProjectResources
    1102     {
    1103       get
    1104       {
    1105         return this._AssignedResources;
    1106       }
    1107       set
    1108       {
    1109         this._AssignedResources.Assign(value);
    1110       }
    1111     }
    1112    
    1113     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_Resource", Storage="_ChildResources", ThisKey="ResourceId", OtherKey="ParentResourceId")]
    1114     public EntitySet<Resource> ChildResources
    1115     {
    1116       get
    1117       {
    1118         return this._ChildResources;
    1119       }
    1120       set
    1121       {
    1122         this._ChildResources.Assign(value);
    1123       }
    1124     }
    1125    
    1126     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_Downtime", Storage="_UptimeCalendars", ThisKey="ResourceId", OtherKey="ResourceId")]
    1127     public EntitySet<Downtime> Downtimes
    1128     {
    1129       get
    1130       {
    1131         return this._UptimeCalendars;
    1132       }
    1133       set
    1134       {
    1135         this._UptimeCalendars.Assign(value);
    1136       }
    1137     }
    1138    
    1139     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_StateLog", Storage="_StateLogs", ThisKey="ResourceId", OtherKey="SlaveId")]
    1140     public EntitySet<StateLog> StateLogs
    1141     {
    1142       get
    1143       {
    1144         return this._StateLogs;
    1145       }
    1146       set
    1147       {
    1148         this._StateLogs.Assign(value);
    1149       }
    1150     }
    1151    
    1152     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_ResourcePermission", Storage="_ResourcePermissions", ThisKey="ResourceId", OtherKey="ResourceId")]
    1153     public EntitySet<ResourcePermission> ResourcePermissions
    1154     {
    1155       get
    1156       {
    1157         return this._ResourcePermissions;
    1158       }
    1159       set
    1160       {
    1161         this._ResourcePermissions.Assign(value);
    1162       }
    1163     }
    1164    
    1165     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_AssignedTaskResource", Storage="_AssignedTaskResources", ThisKey="ResourceId", OtherKey="ResourceId")]
    1166     public EntitySet<AssignedTaskResource> AssignedTaskResources
    1167     {
    1168       get
    1169       {
    1170         return this._AssignedTaskResources;
    1171       }
    1172       set
    1173       {
    1174         this._AssignedTaskResources.Assign(value);
    1175       }
    1176     }
    1177    
    1178     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_Resource", Storage="_ParentResource", ThisKey="ParentResourceId", OtherKey="ResourceId", IsForeignKey=true)]
    1179     public Resource ParentResource
    1180     {
    1181       get
    1182       {
    1183         return this._ParentResource.Entity;
    1184       }
    1185       set
    1186       {
    1187         Resource previousValue = this._ParentResource.Entity;
    1188         if (((previousValue != value)
    1189               || (this._ParentResource.HasLoadedOrAssignedValue == false)))
    1190         {
    1191           this.SendPropertyChanging();
    1192           if ((previousValue != null))
    1193           {
    1194             this._ParentResource.Entity = null;
    1195             previousValue.ChildResources.Remove(this);
    1196           }
    1197           this._ParentResource.Entity = value;
    1198           if ((value != null))
    1199           {
    1200             value.ChildResources.Add(this);
    1201             this._ParentResourceId = value.ResourceId;
    1202           }
    1203           else
    1204           {
    1205             this._ParentResourceId = default(Nullable<System.Guid>);
    1206           }
    1207           this.SendPropertyChanged("ParentResource");
    1208         }
    1209       }
    1210     }
    1211    
    1212     public event PropertyChangingEventHandler PropertyChanging;
    1213    
    1214     public event PropertyChangedEventHandler PropertyChanged;
    1215    
    1216     protected virtual void SendPropertyChanging()
    1217     {
    1218       if ((this.PropertyChanging != null))
    1219       {
    1220         this.PropertyChanging(this, emptyChangingEventArgs);
    1221       }
    1222     }
    1223    
    1224     protected virtual void SendPropertyChanged(String propertyName)
    1225     {
    1226       if ((this.PropertyChanged != null))
    1227       {
    1228         this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    1229       }
    1230     }
    1231    
    1232     private void attach_AssignedResources(AssignedProjectResource entity)
    1233     {
    1234       this.SendPropertyChanging();
    1235       entity.Resource = this;
    1236     }
    1237    
    1238     private void detach_AssignedResources(AssignedProjectResource entity)
    1239     {
    1240       this.SendPropertyChanging();
    1241       entity.Resource = null;
    1242     }
    1243    
    1244     private void attach_ChildResources(Resource entity)
    1245     {
    1246       this.SendPropertyChanging();
    1247       entity.ParentResource = this;
    1248     }
    1249    
    1250     private void detach_ChildResources(Resource entity)
    1251     {
    1252       this.SendPropertyChanging();
    1253       entity.ParentResource = null;
    1254     }
    1255    
    1256     private void attach_UptimeCalendars(Downtime entity)
    1257     {
    1258       this.SendPropertyChanging();
    1259       entity.Resource = this;
    1260     }
    1261    
    1262     private void detach_UptimeCalendars(Downtime entity)
    1263     {
    1264       this.SendPropertyChanging();
    1265       entity.Resource = null;
    1266     }
    1267    
    1268     private void attach_StateLogs(StateLog entity)
    1269     {
    1270       this.SendPropertyChanging();
    1271       entity.Resource = this;
    1272     }
    1273    
    1274     private void detach_StateLogs(StateLog entity)
    1275     {
    1276       this.SendPropertyChanging();
    1277       entity.Resource = null;
    1278     }
    1279    
    1280     private void attach_ResourcePermissions(ResourcePermission entity)
    1281     {
    1282       this.SendPropertyChanging();
    1283       entity.Resource = this;
    1284     }
    1285    
    1286     private void detach_ResourcePermissions(ResourcePermission entity)
    1287     {
    1288       this.SendPropertyChanging();
    1289       entity.Resource = null;
    1290     }
    1291    
    1292     private void attach_AssignedTaskResources(AssignedTaskResource entity)
    1293     {
    1294       this.SendPropertyChanging();
    1295       entity.Resource = this;
    1296     }
    1297    
    1298     private void detach_AssignedTaskResources(AssignedTaskResource entity)
    1299     {
    1300       this.SendPropertyChanging();
    1301       entity.Resource = null;
    1302     }
    1303   }
    1304  
    1305   public partial class Slave : Resource
    1306   {
    1307    
    1308     private System.Nullable<int> _CPUSpeed;
    1309    
    1310     private System.Nullable<int> _Memory;
    1311    
    1312     private System.Nullable<System.DateTime> _Login;
    1313    
    1314     private global::HeuristicLab.Services.Hive.DataAccess.SlaveState _Status;
    1315    
    1316     private System.Nullable<int> _NumberOfCores;
    1317    
    1318     private System.Nullable<int> _NumberOfFreeCores;
    1319    
    1320     private System.Nullable<int> _FreeMemory;
    1321    
    1322     private bool _IsAllowedToCalculate;
    1323    
    1324     private global::HeuristicLab.Services.Hive.DataAccess.CpuArchitecture _CpuArchitecture;
    1325    
    1326     private string _OperatingSystem;
    1327    
    1328     private System.Nullable<System.DateTime> _LastHeartbeat;
    1329    
    1330     private double _CpuUtilization;
    1331    
    1332     private System.Nullable<bool> _IsDisposable;
    1333    
    1334     #region Extensibility Method Definitions
    1335     partial void OnLoaded();
    1336     partial void OnValidate(System.Data.Linq.ChangeAction action);
    1337     partial void OnCreated();
    1338     partial void OnCpuSpeedChanging(System.Nullable<int> value);
    1339     partial void OnCpuSpeedChanged();
    1340     partial void OnMemoryChanging(System.Nullable<int> value);
    1341     partial void OnMemoryChanged();
    1342     partial void OnLoginChanging(System.Nullable<System.DateTime> value);
    1343     partial void OnLoginChanged();
    1344     partial void OnSlaveStateChanging(global::HeuristicLab.Services.Hive.DataAccess.SlaveState value);
    1345     partial void OnSlaveStateChanged();
    1346     partial void OnCoresChanging(System.Nullable<int> value);
    1347     partial void OnCoresChanged();
    1348     partial void OnFreeCoresChanging(System.Nullable<int> value);
    1349     partial void OnFreeCoresChanged();
    1350     partial void OnFreeMemoryChanging(System.Nullable<int> value);
    1351     partial void OnFreeMemoryChanged();
    1352     partial void OnIsAllowedToCalculateChanging(bool value);
    1353     partial void OnIsAllowedToCalculateChanged();
    1354     partial void OnCpuArchitectureChanging(global::HeuristicLab.Services.Hive.DataAccess.CpuArchitecture value);
    1355     partial void OnCpuArchitectureChanged();
    1356     partial void OnOperatingSystemChanging(string value);
    1357     partial void OnOperatingSystemChanged();
    1358     partial void OnLastHeartbeatChanging(System.Nullable<System.DateTime> value);
    1359     partial void OnLastHeartbeatChanged();
    1360     partial void OnCpuUtilizationChanging(double value);
    1361     partial void OnCpuUtilizationChanged();
    1362     partial void OnIsDisposableChanging(System.Nullable<bool> value);
    1363     partial void OnIsDisposableChanged();
    1364     #endregion
    1365    
    1366     public Slave()
    1367     {
    1368       OnCreated();
    1369     }
    1370    
    1371     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CPUSpeed", DbType="Int")]
    1372     public System.Nullable<int> CpuSpeed
    1373     {
    1374       get
    1375       {
    1376         return this._CPUSpeed;
    1377       }
    1378       set
    1379       {
    1380         if ((this._CPUSpeed != value))
    1381         {
    1382           this.OnCpuSpeedChanging(value);
    1383           this.SendPropertyChanging();
    1384           this._CPUSpeed = value;
    1385           this.SendPropertyChanged("CpuSpeed");
    1386           this.OnCpuSpeedChanged();
    1387         }
    1388       }
    1389     }
    1390    
    1391     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Memory", DbType="Int")]
    1392     public System.Nullable<int> Memory
    1393     {
    1394       get
    1395       {
    1396         return this._Memory;
    1397       }
    1398       set
    1399       {
    1400         if ((this._Memory != value))
    1401         {
    1402           this.OnMemoryChanging(value);
    1403           this.SendPropertyChanging();
    1404           this._Memory = value;
    1405           this.SendPropertyChanged("Memory");
    1406           this.OnMemoryChanged();
    1407         }
    1408       }
    1409     }
    1410    
    1411     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Login", DbType="DateTime")]
    1412     public System.Nullable<System.DateTime> Login
    1413     {
    1414       get
    1415       {
    1416         return this._Login;
    1417       }
    1418       set
    1419       {
    1420         if ((this._Login != value))
    1421         {
    1422           this.OnLoginChanging(value);
    1423           this.SendPropertyChanging();
    1424           this._Login = value;
    1425           this.SendPropertyChanged("Login");
    1426           this.OnLoginChanged();
    1427         }
    1428       }
    1429     }
    1430    
    1431     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Status", DbType="VarChar(15)", CanBeNull=true)]
    1432     public global::HeuristicLab.Services.Hive.DataAccess.SlaveState SlaveState
    1433     {
    1434       get
    1435       {
    1436         return this._Status;
    1437       }
    1438       set
    1439       {
    1440         if ((this._Status != value))
    1441         {
    1442           this.OnSlaveStateChanging(value);
    1443           this.SendPropertyChanging();
    1444           this._Status = value;
    1445           this.SendPropertyChanged("SlaveState");
    1446           this.OnSlaveStateChanged();
    1447         }
    1448       }
    1449     }
    1450    
    1451     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NumberOfCores", DbType="Int")]
    1452     public System.Nullable<int> Cores
    1453     {
    1454       get
    1455       {
    1456         return this._NumberOfCores;
    1457       }
    1458       set
    1459       {
    1460         if ((this._NumberOfCores != value))
    1461         {
    1462           this.OnCoresChanging(value);
    1463           this.SendPropertyChanging();
    1464           this._NumberOfCores = value;
    1465           this.SendPropertyChanged("Cores");
    1466           this.OnCoresChanged();
    1467         }
    1468       }
    1469     }
    1470    
    1471     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_NumberOfFreeCores", DbType="Int")]
    1472     public System.Nullable<int> FreeCores
    1473     {
    1474       get
    1475       {
    1476         return this._NumberOfFreeCores;
    1477       }
    1478       set
    1479       {
    1480         if ((this._NumberOfFreeCores != value))
    1481         {
    1482           this.OnFreeCoresChanging(value);
    1483           this.SendPropertyChanging();
    1484           this._NumberOfFreeCores = value;
    1485           this.SendPropertyChanged("FreeCores");
    1486           this.OnFreeCoresChanged();
    1487         }
    1488       }
    1489     }
    1490    
    1491     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FreeMemory", DbType="Int")]
    1492     public System.Nullable<int> FreeMemory
    1493     {
    1494       get
    1495       {
    1496         return this._FreeMemory;
    1497       }
    1498       set
    1499       {
    1500         if ((this._FreeMemory != value))
    1501         {
    1502           this.OnFreeMemoryChanging(value);
    1503           this.SendPropertyChanging();
    1504           this._FreeMemory = value;
    1505           this.SendPropertyChanged("FreeMemory");
    1506           this.OnFreeMemoryChanged();
    1507         }
    1508       }
    1509     }
    1510    
    1511     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsAllowedToCalculate", DbType="Bit")]
    1512     public bool IsAllowedToCalculate
    1513     {
    1514       get
    1515       {
    1516         return this._IsAllowedToCalculate;
    1517       }
    1518       set
    1519       {
    1520         if ((this._IsAllowedToCalculate != value))
    1521         {
    1522           this.OnIsAllowedToCalculateChanging(value);
    1523           this.SendPropertyChanging();
    1524           this._IsAllowedToCalculate = value;
    1525           this.SendPropertyChanged("IsAllowedToCalculate");
    1526           this.OnIsAllowedToCalculateChanged();
    1527         }
    1528       }
    1529     }
    1530    
    1531     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CpuArchitecture", DbType="VarChar(3)", CanBeNull=false)]
    1532     public global::HeuristicLab.Services.Hive.DataAccess.CpuArchitecture CpuArchitecture
    1533     {
    1534       get
    1535       {
    1536         return this._CpuArchitecture;
    1537       }
    1538       set
    1539       {
    1540         if ((this._CpuArchitecture != value))
    1541         {
    1542           this.OnCpuArchitectureChanging(value);
    1543           this.SendPropertyChanging();
    1544           this._CpuArchitecture = value;
    1545           this.SendPropertyChanged("CpuArchitecture");
    1546           this.OnCpuArchitectureChanged();
    1547         }
    1548       }
    1549     }
    1550    
    1551     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OperatingSystem", DbType="VarChar(MAX)", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
    1552     public string OperatingSystem
    1553     {
    1554       get
    1555       {
    1556         return this._OperatingSystem;
    1557       }
    1558       set
    1559       {
    1560         if ((this._OperatingSystem != value))
    1561         {
    1562           this.OnOperatingSystemChanging(value);
    1563           this.SendPropertyChanging();
    1564           this._OperatingSystem = value;
    1565           this.SendPropertyChanged("OperatingSystem");
    1566           this.OnOperatingSystemChanged();
    1567         }
    1568       }
    1569     }
    1570    
    1571     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastHeartbeat", DbType="DateTime")]
    1572     public System.Nullable<System.DateTime> LastHeartbeat
    1573     {
    1574       get
    1575       {
    1576         return this._LastHeartbeat;
    1577       }
    1578       set
    1579       {
    1580         if ((this._LastHeartbeat != value))
    1581         {
    1582           this.OnLastHeartbeatChanging(value);
    1583           this.SendPropertyChanging();
    1584           this._LastHeartbeat = value;
    1585           this.SendPropertyChanged("LastHeartbeat");
    1586           this.OnLastHeartbeatChanged();
    1587         }
    1588       }
    1589     }
    1590    
    1591     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CpuUtilization", DbType="float")]
    1592     public double CpuUtilization
    1593     {
    1594       get
    1595       {
    1596         return this._CpuUtilization;
    1597       }
    1598       set
    1599       {
    1600         if ((this._CpuUtilization != value))
    1601         {
    1602           this.OnCpuUtilizationChanging(value);
    1603           this.SendPropertyChanging();
    1604           this._CpuUtilization = value;
    1605           this.SendPropertyChanged("CpuUtilization");
    1606           this.OnCpuUtilizationChanged();
    1607         }
    1608       }
    1609     }
    1610    
    1611     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsDisposable", DbType="Bit")]
    1612     public System.Nullable<bool> IsDisposable
    1613     {
    1614       get
    1615       {
    1616         return this._IsDisposable;
    1617       }
    1618       set
    1619       {
    1620         if ((this._IsDisposable != value))
    1621         {
    1622           this.OnIsDisposableChanging(value);
    1623           this.SendPropertyChanging();
    1624           this._IsDisposable = value;
    1625           this.SendPropertyChanged("IsDisposable");
    1626           this.OnIsDisposableChanged();
    1627         }
    1628       }
    1629     }
    1630   }
    1631  
    1632   public partial class SlaveGroup : Resource
    1633   {
    1634    
    1635     #region Extensibility Method Definitions
    1636     partial void OnLoaded();
    1637     partial void OnValidate(System.Data.Linq.ChangeAction action);
    1638     partial void OnCreated();
    1639     #endregion
    1640    
    1641     public SlaveGroup()
    1642     {
    1643       OnCreated();
    1644     }
    1645   }
    1646  
    1647   [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Task")]
    1648   public partial class Task : INotifyPropertyChanging, INotifyPropertyChanged
    1649   {
    1650    
    1651     private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
    1652    
    1653     private System.Guid _JobId;
    1654    
    1655     private global::HeuristicLab.Services.Hive.DataAccess.TaskState _State;
    1656    
    1657     private double _ExecutionTime;
    1658    
    1659     private System.Nullable<System.DateTime> _LastHeartbeat;
    1660    
    1661     private System.Nullable<System.Guid> _ParentJobId;
    1662    
    1663     private int _Priority;
    1664    
    1665     private int _CoresNeeded;
    1666    
    1667     private int _MemoryNeeded;
    1668    
    1669     private bool _IsParentJob;
    1670    
    1671     private bool _FinishWhenChildJobsFinished;
    1672    
    1673     private global::HeuristicLab.Services.Hive.DataAccess.Command? _Command;
    1674    
    1675     private System.Guid _HiveExperimentId;
    1676    
    1677     private EntitySet<RequiredPlugin> _RequiredPlugins;
    1678    
    1679     private EntitySet<Task> _Jobs;
    1680    
    1681     private EntityRef<TaskData> _JobData;
    1682    
    1683     private EntitySet<StateLog> _StateLogs;
    1684    
    1685     private EntitySet<AssignedTaskResource> _AssignedTaskResources;
    1686    
    1687     private EntityRef<Task> _Job1;
    1688    
    1689     private EntityRef<Job> _HiveExperiment;
    1690    
    1691     #region Extensibility Method Definitions
    1692     partial void OnLoaded();
    1693     partial void OnValidate(System.Data.Linq.ChangeAction action);
    1694     partial void OnCreated();
    1695     partial void OnTaskIdChanging(System.Guid value);
    1696     partial void OnTaskIdChanged();
    1697     partial void OnStateChanging(global::HeuristicLab.Services.Hive.DataAccess.TaskState value);
    1698     partial void OnStateChanged();
    1699     partial void OnExecutionTimeMsChanging(double value);
    1700     partial void OnExecutionTimeMsChanged();
    1701     partial void OnLastHeartbeatChanging(System.Nullable<System.DateTime> value);
    1702     partial void OnLastHeartbeatChanged();
    1703     partial void OnParentTaskIdChanging(System.Nullable<System.Guid> value);
    1704     partial void OnParentTaskIdChanged();
    1705     partial void OnPriorityChanging(int value);
    1706     partial void OnPriorityChanged();
    1707     partial void OnCoresNeededChanging(int value);
    1708     partial void OnCoresNeededChanged();
    1709     partial void OnMemoryNeededChanging(int value);
    1710     partial void OnMemoryNeededChanged();
    1711     partial void OnIsParentTaskChanging(bool value);
    1712     partial void OnIsParentTaskChanged();
    1713     partial void OnFinishWhenChildJobsFinishedChanging(bool value);
    1714     partial void OnFinishWhenChildJobsFinishedChanged();
    1715     partial void OnCommandChanging(global::HeuristicLab.Services.Hive.DataAccess.Command? value);
    1716     partial void OnCommandChanged();
    1717     partial void OnJobIdChanging(System.Guid value);
    1718     partial void OnJobIdChanged();
    1719     #endregion
    1720    
    1721     public Task()
    1722     {
    1723       this._RequiredPlugins = new EntitySet<RequiredPlugin>(new Action<RequiredPlugin>(this.attach_RequiredPlugins), new Action<RequiredPlugin>(this.detach_RequiredPlugins));
    1724       this._Jobs = new EntitySet<Task>(new Action<Task>(this.attach_Jobs), new Action<Task>(this.detach_Jobs));
    1725       this._JobData = default(EntityRef<TaskData>);
    1726       this._StateLogs = new EntitySet<StateLog>(new Action<StateLog>(this.attach_StateLogs), new Action<StateLog>(this.detach_StateLogs));
    1727       this._AssignedTaskResources = new EntitySet<AssignedTaskResource>(new Action<AssignedTaskResource>(this.attach_AssignedTaskResources), new Action<AssignedTaskResource>(this.detach_AssignedTaskResources));
    1728       this._Job1 = default(EntityRef<Task>);
    1729       this._HiveExperiment = default(EntityRef<Job>);
    1730       OnCreated();
    1731     }
    1732    
    1733     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JobId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)]
    1734     public System.Guid TaskId
    1735     {
    1736       get
    1737       {
    1738         return this._JobId;
    1739       }
    1740       set
    1741       {
    1742         if ((this._JobId != value))
    1743         {
    1744           this.OnTaskIdChanging(value);
    1745           this.SendPropertyChanging();
    1746           this._JobId = value;
    1747           this.SendPropertyChanged("TaskId");
    1748           this.OnTaskIdChanged();
    1749         }
    1750       }
    1751     }
    1752    
    1753     [global::System.Data.Linq.Mapping.ColumnAttribute(Name="TaskState", Storage="_State", DbType="VarChar(30)", CanBeNull=false)]
    1754     public global::HeuristicLab.Services.Hive.DataAccess.TaskState State
    1755     {
    1756       get
    1757       {
    1758         return this._State;
    1759       }
    1760       set
    1761       {
    1762         if ((this._State != value))
    1763         {
    1764           this.OnStateChanging(value);
    1765           this.SendPropertyChanging();
    1766           this._State = value;
    1767           this.SendPropertyChanged("State");
    1768           this.OnStateChanged();
    1769         }
    1770       }
    1771     }
    1772    
    1773     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ExecutionTime", DbType="float")]
    1774     public double ExecutionTimeMs
    1775     {
    1776       get
    1777       {
    1778         return this._ExecutionTime;
    1779       }
    1780       set
    1781       {
    1782         if ((this._ExecutionTime != value))
    1783         {
    1784           this.OnExecutionTimeMsChanging(value);
    1785           this.SendPropertyChanging();
    1786           this._ExecutionTime = value;
    1787           this.SendPropertyChanged("ExecutionTimeMs");
    1788           this.OnExecutionTimeMsChanged();
    1789         }
    1790       }
    1791     }
    1792    
    1793     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastHeartbeat", DbType="DateTime")]
    1794     public System.Nullable<System.DateTime> LastHeartbeat
    1795     {
    1796       get
    1797       {
    1798         return this._LastHeartbeat;
    1799       }
    1800       set
    1801       {
    1802         if ((this._LastHeartbeat != value))
    1803         {
    1804           this.OnLastHeartbeatChanging(value);
    1805           this.SendPropertyChanging();
    1806           this._LastHeartbeat = value;
    1807           this.SendPropertyChanged("LastHeartbeat");
    1808           this.OnLastHeartbeatChanged();
    1809         }
    1810       }
    1811     }
    1812    
    1813     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentJobId", DbType="UniqueIdentifier")]
    1814     public System.Nullable<System.Guid> ParentTaskId
    1815     {
    1816       get
    1817       {
    1818         return this._ParentJobId;
    1819       }
    1820       set
    1821       {
    1822         if ((this._ParentJobId != value))
    1823         {
    1824           if (this._Job1.HasLoadedOrAssignedValue)
    1825           {
    1826             throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
    1827           }
    1828           this.OnParentTaskIdChanging(value);
    1829           this.SendPropertyChanging();
    1830           this._ParentJobId = value;
    1831           this.SendPropertyChanged("ParentTaskId");
    1832           this.OnParentTaskIdChanged();
    1833         }
    1834       }
    1835     }
    1836    
    1837     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Priority", DbType="Int NOT NULL")]
    1838     public int Priority
    1839     {
    1840       get
    1841       {
    1842         return this._Priority;
    1843       }
    1844       set
    1845       {
    1846         if ((this._Priority != value))
    1847         {
    1848           this.OnPriorityChanging(value);
    1849           this.SendPropertyChanging();
    1850           this._Priority = value;
    1851           this.SendPropertyChanged("Priority");
    1852           this.OnPriorityChanged();
    1853         }
    1854       }
    1855     }
    1856    
    1857     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CoresNeeded", DbType="Int NOT NULL")]
    1858     public int CoresNeeded
    1859     {
    1860       get
    1861       {
    1862         return this._CoresNeeded;
    1863       }
    1864       set
    1865       {
    1866         if ((this._CoresNeeded != value))
    1867         {
    1868           this.OnCoresNeededChanging(value);
    1869           this.SendPropertyChanging();
    1870           this._CoresNeeded = value;
    1871           this.SendPropertyChanged("CoresNeeded");
    1872           this.OnCoresNeededChanged();
    1873         }
    1874       }
    1875     }
    1876    
    1877     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_MemoryNeeded", DbType="Int NOT NULL")]
    1878     public int MemoryNeeded
    1879     {
    1880       get
    1881       {
    1882         return this._MemoryNeeded;
    1883       }
    1884       set
    1885       {
    1886         if ((this._MemoryNeeded != value))
    1887         {
    1888           this.OnMemoryNeededChanging(value);
    1889           this.SendPropertyChanging();
    1890           this._MemoryNeeded = value;
    1891           this.SendPropertyChanged("MemoryNeeded");
    1892           this.OnMemoryNeededChanged();
    1893         }
    1894       }
    1895     }
    1896    
    1897     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsParentJob", DbType="Bit")]
    1898     public bool IsParentTask
    1899     {
    1900       get
    1901       {
    1902         return this._IsParentJob;
    1903       }
    1904       set
    1905       {
    1906         if ((this._IsParentJob != value))
    1907         {
    1908           this.OnIsParentTaskChanging(value);
    1909           this.SendPropertyChanging();
    1910           this._IsParentJob = value;
    1911           this.SendPropertyChanged("IsParentTask");
    1912           this.OnIsParentTaskChanged();
    1913         }
    1914       }
    1915     }
    1916    
    1917     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FinishWhenChildJobsFinished", DbType="Bit")]
    1918     public bool FinishWhenChildJobsFinished
    1919     {
    1920       get
    1921       {
    1922         return this._FinishWhenChildJobsFinished;
    1923       }
    1924       set
    1925       {
    1926         if ((this._FinishWhenChildJobsFinished != value))
    1927         {
    1928           this.OnFinishWhenChildJobsFinishedChanging(value);
    1929           this.SendPropertyChanging();
    1930           this._FinishWhenChildJobsFinished = value;
    1931           this.SendPropertyChanged("FinishWhenChildJobsFinished");
    1932           this.OnFinishWhenChildJobsFinishedChanged();
    1933         }
    1934       }
    1935     }
    1936    
    1937     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Command", DbType="VarChar(30)", CanBeNull=true)]
    1938     public global::HeuristicLab.Services.Hive.DataAccess.Command? Command
    1939     {
    1940       get
    1941       {
    1942         return this._Command;
    1943       }
    1944       set
    1945       {
    1946         if ((this._Command != value))
    1947         {
    1948           this.OnCommandChanging(value);
    1949           this.SendPropertyChanging();
    1950           this._Command = value;
    1951           this.SendPropertyChanged("Command");
    1952           this.OnCommandChanged();
    1953         }
    1954       }
    1955     }
    1956    
    1957     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HiveExperimentId", DbType="UniqueIdentifier NOT NULL")]
    1958     public System.Guid JobId
    1959     {
    1960       get
    1961       {
    1962         return this._HiveExperimentId;
    1963       }
    1964       set
    1965       {
    1966         if ((this._HiveExperimentId != value))
    1967         {
    1968           if (this._HiveExperiment.HasLoadedOrAssignedValue)
    1969           {
    1970             throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
    1971           }
    1972           this.OnJobIdChanging(value);
    1973           this.SendPropertyChanging();
    1974           this._HiveExperimentId = value;
    1975           this.SendPropertyChanged("JobId");
    1976           this.OnJobIdChanged();
    1977         }
    1978       }
    1979     }
    1980    
    1981     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Task_RequiredPlugin", Storage="_RequiredPlugins", ThisKey="TaskId", OtherKey="TaskId")]
    1982     public EntitySet<RequiredPlugin> RequiredPlugins
    1983     {
    1984       get
    1985       {
    1986         return this._RequiredPlugins;
    1987       }
    1988       set
    1989       {
    1990         this._RequiredPlugins.Assign(value);
    1991       }
    1992     }
    1993    
    1994     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Task_Task", Storage="_Jobs", ThisKey="TaskId", OtherKey="ParentTaskId")]
    1995     public EntitySet<Task> ChildJobs
    1996     {
    1997       get
    1998       {
    1999         return this._Jobs;
    2000       }
    2001       set
    2002       {
    2003         this._Jobs.Assign(value);
    2004       }
    2005     }
    2006    
    2007     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Task_TaskData", Storage="_JobData", ThisKey="TaskId", OtherKey="TaskId", IsUnique=true, IsForeignKey=false)]
    2008     public TaskData JobData
    2009     {
    2010       get
    2011       {
    2012         return this._JobData.Entity;
    2013       }
    2014       set
    2015       {
    2016         TaskData previousValue = this._JobData.Entity;
    2017         if (((previousValue != value)
    2018               || (this._JobData.HasLoadedOrAssignedValue == false)))
    2019         {
    2020           this.SendPropertyChanging();
    2021           if ((previousValue != null))
    2022           {
    2023             this._JobData.Entity = null;
    2024             previousValue.Task = null;
    2025           }
    2026           this._JobData.Entity = value;
    2027           if ((value != null))
    2028           {
    2029             value.Task = this;
    2030           }
    2031           this.SendPropertyChanged("JobData");
    2032         }
    2033       }
    2034     }
    2035    
    2036     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Task_StateLog", Storage="_StateLogs", ThisKey="TaskId", OtherKey="TaskId")]
    2037     public EntitySet<StateLog> StateLogs
    2038     {
    2039       get
    2040       {
    2041         return this._StateLogs;
    2042       }
    2043       set
    2044       {
    2045         this._StateLogs.Assign(value);
    2046       }
    2047     }
    2048    
    2049     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Task_AssignedTaskResource", Storage="_AssignedTaskResources", ThisKey="TaskId", OtherKey="TaskId")]
    2050     public EntitySet<AssignedTaskResource> AssignedTaskResources
    2051     {
    2052       get
    2053       {
    2054         return this._AssignedTaskResources;
    2055       }
    2056       set
    2057       {
    2058         this._AssignedTaskResources.Assign(value);
    2059       }
    2060     }
    2061    
    2062     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Task_Task", Storage="_Job1", ThisKey="ParentTaskId", OtherKey="TaskId", IsForeignKey=true)]
    2063     public Task ParentJob
    2064     {
    2065       get
    2066       {
    2067         return this._Job1.Entity;
    2068       }
    2069       set
    2070       {
    2071         Task previousValue = this._Job1.Entity;
    2072         if (((previousValue != value)
    2073               || (this._Job1.HasLoadedOrAssignedValue == false)))
    2074         {
    2075           this.SendPropertyChanging();
    2076           if ((previousValue != null))
    2077           {
    2078             this._Job1.Entity = null;
    2079             previousValue.ChildJobs.Remove(this);
    2080           }
    2081           this._Job1.Entity = value;
    2082           if ((value != null))
    2083           {
    2084             value.ChildJobs.Add(this);
    2085             this._ParentJobId = value.TaskId;
    2086           }
    2087           else
    2088           {
    2089             this._ParentJobId = default(Nullable<System.Guid>);
    2090           }
    2091           this.SendPropertyChanged("ParentJob");
    2092         }
    2093       }
    2094     }
    2095    
    2096     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Job_Task", Storage="_HiveExperiment", ThisKey="JobId", OtherKey="JobId", IsForeignKey=true)]
    2097     public Job Job
    2098     {
    2099       get
    2100       {
    2101         return this._HiveExperiment.Entity;
    2102       }
    2103       set
    2104       {
    2105         Job previousValue = this._HiveExperiment.Entity;
    2106         if (((previousValue != value)
    2107               || (this._HiveExperiment.HasLoadedOrAssignedValue == false)))
    2108         {
    2109           this.SendPropertyChanging();
    2110           if ((previousValue != null))
    2111           {
    2112             this._HiveExperiment.Entity = null;
    2113             previousValue.Tasks.Remove(this);
    2114           }
    2115           this._HiveExperiment.Entity = value;
    2116           if ((value != null))
    2117           {
    2118             value.Tasks.Add(this);
    2119             this._HiveExperimentId = value.JobId;
    2120           }
    2121           else
    2122           {
    2123             this._HiveExperimentId = default(System.Guid);
    2124           }
    2125           this.SendPropertyChanged("Job");
    2126         }
    2127       }
    2128     }
    2129    
    2130     public event PropertyChangingEventHandler PropertyChanging;
    2131    
    2132     public event PropertyChangedEventHandler PropertyChanged;
    2133    
    2134     protected virtual void SendPropertyChanging()
    2135     {
    2136       if ((this.PropertyChanging != null))
    2137       {
    2138         this.PropertyChanging(this, emptyChangingEventArgs);
    2139       }
    2140     }
    2141    
    2142     protected virtual void SendPropertyChanged(String propertyName)
    2143     {
    2144       if ((this.PropertyChanged != null))
    2145       {
    2146         this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    2147       }
    2148     }
    2149    
    2150     private void attach_RequiredPlugins(RequiredPlugin entity)
    2151     {
    2152       this.SendPropertyChanging();
    2153       entity.Task = this;
    2154     }
    2155    
    2156     private void detach_RequiredPlugins(RequiredPlugin entity)
    2157     {
    2158       this.SendPropertyChanging();
    2159       entity.Task = null;
    2160     }
    2161    
    2162     private void attach_Jobs(Task entity)
    2163     {
    2164       this.SendPropertyChanging();
    2165       entity.ParentJob = this;
    2166     }
    2167    
    2168     private void detach_Jobs(Task entity)
    2169     {
    2170       this.SendPropertyChanging();
    2171       entity.ParentJob = null;
    2172     }
    2173    
    2174     private void attach_StateLogs(StateLog entity)
    2175     {
    2176       this.SendPropertyChanging();
    2177       entity.Task = this;
    2178     }
    2179    
    2180     private void detach_StateLogs(StateLog entity)
    2181     {
    2182       this.SendPropertyChanging();
    2183       entity.Task = null;
    2184     }
    2185    
    2186     private void attach_AssignedTaskResources(AssignedTaskResource entity)
    2187     {
    2188       this.SendPropertyChanging();
    2189       entity.Task = this;
    2190     }
    2191    
    2192     private void detach_AssignedTaskResources(AssignedTaskResource entity)
    2193     {
    2194       this.SendPropertyChanging();
    2195       entity.Task = null;
    21961019    }
    21971020  }
     
    22031026    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
    22041027   
    2205     private System.Guid _UptimeCalendarId;
     1028    private System.Guid _DowntimeId;
    22061029   
    22071030    private System.Guid _ResourceId;
     
    22171040    private System.Guid _RecurringId;
    22181041   
    2219     private global::HeuristicLab.Services.Hive.DataAccess.DowntimeType _Type;
     1042    private string _DowntimeType;
    22201043   
    22211044    private EntityRef<Resource> _Resource;
     
    22391062    partial void OnRecurringIdChanging(System.Guid value);
    22401063    partial void OnRecurringIdChanged();
    2241     partial void OnDowntimeTypeChanging(global::HeuristicLab.Services.Hive.DataAccess.DowntimeType value);
     1064    partial void OnDowntimeTypeChanging(string value);
    22421065    partial void OnDowntimeTypeChanged();
    22431066    #endregion
     
    22491072    }
    22501073   
    2251     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UptimeCalendarId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier", IsPrimaryKey=true, IsDbGenerated=true)]
     1074    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DowntimeId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
    22521075    public System.Guid DowntimeId
    22531076    {
    22541077      get
    22551078      {
    2256         return this._UptimeCalendarId;
    2257       }
    2258       set
    2259       {
    2260         if ((this._UptimeCalendarId != value))
     1079        return this._DowntimeId;
     1080      }
     1081      set
     1082      {
     1083        if ((this._DowntimeId != value))
    22611084        {
    22621085          this.OnDowntimeIdChanging(value);
    22631086          this.SendPropertyChanging();
    2264           this._UptimeCalendarId = value;
     1087          this._DowntimeId = value;
    22651088          this.SendPropertyChanged("DowntimeId");
    22661089          this.OnDowntimeIdChanged();
     
    22691092    }
    22701093   
    2271     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceId", DbType="UniqueIdentifier")]
     1094    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceId", DbType="UniqueIdentifier NOT NULL")]
    22721095    public System.Guid ResourceId
    22731096    {
     
    22931116    }
    22941117   
    2295     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartDate", DbType="DateTime")]
     1118    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartDate", DbType="DateTime NOT NULL")]
    22961119    public System.DateTime StartDate
    22971120    {
     
    23131136    }
    23141137   
    2315     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EndDate", DbType="DateTime")]
     1138    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EndDate", DbType="DateTime NOT NULL")]
    23161139    public System.DateTime EndDate
    23171140    {
     
    23331156    }
    23341157   
    2335     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllDayEvent", DbType="Bit")]
     1158    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_AllDayEvent", DbType="Bit NOT NULL")]
    23361159    public bool AllDayEvent
    23371160    {
     
    23531176    }
    23541177   
    2355     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Recurring", DbType="Bit")]
     1178    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Recurring", DbType="Bit NOT NULL")]
    23561179    public bool Recurring
    23571180    {
     
    23731196    }
    23741197   
    2375     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecurringId", DbType="UniqueIdentifier")]
     1198    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RecurringId", DbType="UniqueIdentifier NOT NULL")]
    23761199    public System.Guid RecurringId
    23771200    {
     
    23931216    }
    23941217   
    2395     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Type", DbType="VarChar(MAX)", CanBeNull=false)]
    2396     public global::HeuristicLab.Services.Hive.DataAccess.DowntimeType DowntimeType
    2397     {
    2398       get
    2399       {
    2400         return this._Type;
    2401       }
    2402       set
    2403       {
    2404         if ((this._Type != value))
     1218    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DowntimeType", DbType="VarChar(MAX) NOT NULL", CanBeNull=false)]
     1219    public string DowntimeType
     1220    {
     1221      get
     1222      {
     1223        return this._DowntimeType;
     1224      }
     1225      set
     1226      {
     1227        if ((this._DowntimeType != value))
    24051228        {
    24061229          this.OnDowntimeTypeChanging(value);
    24071230          this.SendPropertyChanging();
    2408           this._Type = value;
     1231          this._DowntimeType = value;
    24091232          this.SendPropertyChanged("DowntimeType");
    24101233          this.OnDowntimeTypeChanged();
     
    24131236    }
    24141237   
    2415     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_Downtime", Storage="_Resource", ThisKey="ResourceId", OtherKey="ResourceId", IsForeignKey=true, DeleteRule="CASCADE")]
     1238    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_Downtime", Storage="_Resource", ThisKey="ResourceId", OtherKey="ResourceId", IsForeignKey=true)]
    24161239    public Resource Resource
    24171240    {
     
    24741297    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
    24751298   
    2476     private System.Guid _HiveExperimentId;
     1299    private System.Guid _JobId;
    24771300   
    24781301    private string _Name;
     
    24801303    private string _Description;
    24811304   
    2482     private string _ResourceIds;
    2483    
    2484     private System.Guid _UserId;
     1305    private System.Guid _OwnerUserId;
    24851306   
    24861307    private System.DateTime _DateCreated;
     
    24881309    private System.Guid _ProjectId;
    24891310   
    2490     private EntitySet<Task> _Jobs;
    2491    
    2492     private EntitySet<JobPermission> _HiveExperimentPermissions;
     1311    private EntitySet<JobPermission> _JobPermissions;
     1312   
     1313    private EntitySet<Task> _Tasks;
    24931314   
    24941315    private EntityRef<Project> _Project;
     
    25041325    partial void OnDescriptionChanging(string value);
    25051326    partial void OnDescriptionChanged();
    2506     partial void OnResourceIdsChanging(string value);
    2507     partial void OnResourceIdsChanged();
    25081327    partial void OnOwnerUserIdChanging(System.Guid value);
    25091328    partial void OnOwnerUserIdChanged();
     
    25161335    public Job()
    25171336    {
    2518       this._Jobs = new EntitySet<Task>(new Action<Task>(this.attach_Jobs), new Action<Task>(this.detach_Jobs));
    2519       this._HiveExperimentPermissions = new EntitySet<JobPermission>(new Action<JobPermission>(this.attach_HiveExperimentPermissions), new Action<JobPermission>(this.detach_HiveExperimentPermissions));
     1337      this._JobPermissions = new EntitySet<JobPermission>(new Action<JobPermission>(this.attach_JobPermissions), new Action<JobPermission>(this.detach_JobPermissions));
     1338      this._Tasks = new EntitySet<Task>(new Action<Task>(this.attach_Tasks), new Action<Task>(this.detach_Tasks));
    25201339      this._Project = default(EntityRef<Project>);
    25211340      OnCreated();
    25221341    }
    25231342   
    2524     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HiveExperimentId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)]
     1343    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JobId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
    25251344    public System.Guid JobId
    25261345    {
    25271346      get
    25281347      {
    2529         return this._HiveExperimentId;
    2530       }
    2531       set
    2532       {
    2533         if ((this._HiveExperimentId != value))
     1348        return this._JobId;
     1349      }
     1350      set
     1351      {
     1352        if ((this._JobId != value))
    25341353        {
    25351354          this.OnJobIdChanging(value);
    25361355          this.SendPropertyChanging();
    2537           this._HiveExperimentId = value;
     1356          this._JobId = value;
    25381357          this.SendPropertyChanged("JobId");
    25391358          this.OnJobIdChanged();
     
    25421361    }
    25431362   
    2544     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="VarChar(MAX)", CanBeNull=false)]
     1363    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="VarChar(MAX) NOT NULL", CanBeNull=false)]
    25451364    public string Name
    25461365    {
     
    25821401    }
    25831402   
    2584     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceIds", DbType="VarChar(MAX)")]
    2585     public string ResourceIds
    2586     {
    2587       get
    2588       {
    2589         return this._ResourceIds;
    2590       }
    2591       set
    2592       {
    2593         if ((this._ResourceIds != value))
    2594         {
    2595           this.OnResourceIdsChanging(value);
    2596           this.SendPropertyChanging();
    2597           this._ResourceIds = value;
    2598           this.SendPropertyChanged("ResourceIds");
    2599           this.OnResourceIdsChanged();
    2600         }
    2601       }
    2602     }
    2603    
    2604     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserId", DbType="UniqueIdentifier")]
     1403    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OwnerUserId", DbType="UniqueIdentifier NOT NULL")]
    26051404    public System.Guid OwnerUserId
    26061405    {
    26071406      get
    26081407      {
    2609         return this._UserId;
    2610       }
    2611       set
    2612       {
    2613         if ((this._UserId != value))
     1408        return this._OwnerUserId;
     1409      }
     1410      set
     1411      {
     1412        if ((this._OwnerUserId != value))
    26141413        {
    26151414          this.OnOwnerUserIdChanging(value);
    26161415          this.SendPropertyChanging();
    2617           this._UserId = value;
     1416          this._OwnerUserId = value;
    26181417          this.SendPropertyChanged("OwnerUserId");
    26191418          this.OnOwnerUserIdChanged();
     
    26221421    }
    26231422   
    2624     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DateCreated", DbType="DateTime")]
     1423    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DateCreated", DbType="DateTime NOT NULL")]
    26251424    public System.DateTime DateCreated
    26261425    {
     
    26661465    }
    26671466   
    2668     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Job_Task", Storage="_Jobs", ThisKey="JobId", OtherKey="JobId")]
     1467    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Job_JobPermission", Storage="_JobPermissions", ThisKey="JobId", OtherKey="JobId")]
     1468    public EntitySet<JobPermission> JobPermissions
     1469    {
     1470      get
     1471      {
     1472        return this._JobPermissions;
     1473      }
     1474      set
     1475      {
     1476        this._JobPermissions.Assign(value);
     1477      }
     1478    }
     1479   
     1480    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Job_Task", Storage="_Tasks", ThisKey="JobId", OtherKey="JobId")]
    26691481    public EntitySet<Task> Tasks
    26701482    {
    26711483      get
    26721484      {
    2673         return this._Jobs;
    2674       }
    2675       set
    2676       {
    2677         this._Jobs.Assign(value);
    2678       }
    2679     }
    2680    
    2681     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Job_JobPermission", Storage="_HiveExperimentPermissions", ThisKey="JobId", OtherKey="JobId")]
    2682     public EntitySet<JobPermission> JobPermissions
    2683     {
    2684       get
    2685       {
    2686         return this._HiveExperimentPermissions;
    2687       }
    2688       set
    2689       {
    2690         this._HiveExperimentPermissions.Assign(value);
    2691       }
    2692     }
    2693    
    2694     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_Job", Storage="_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)]
     1485        return this._Tasks;
     1486      }
     1487      set
     1488      {
     1489        this._Tasks.Assign(value);
     1490      }
     1491    }
     1492   
     1493    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_Job", Storage="_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
    26951494    public Project Project
    26961495    {
     
    27461545    }
    27471546   
    2748     private void attach_Jobs(Task entity)
     1547    private void attach_JobPermissions(JobPermission entity)
    27491548    {
    27501549      this.SendPropertyChanging();
     
    27521551    }
    27531552   
    2754     private void detach_Jobs(Task entity)
     1553    private void detach_JobPermissions(JobPermission entity)
    27551554    {
    27561555      this.SendPropertyChanging();
     
    27581557    }
    27591558   
    2760     private void attach_HiveExperimentPermissions(JobPermission entity)
     1559    private void attach_Tasks(Task entity)
    27611560    {
    27621561      this.SendPropertyChanging();
     
    27641563    }
    27651564   
    2766     private void detach_HiveExperimentPermissions(JobPermission entity)
     1565    private void detach_Tasks(Task entity)
    27671566    {
    27681567      this.SendPropertyChanging();
     
    27711570  }
    27721571 
    2773   [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.TaskData")]
    2774   public partial class TaskData : INotifyPropertyChanging, INotifyPropertyChanged
     1572  [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.JobPermission")]
     1573  public partial class JobPermission : INotifyPropertyChanging, INotifyPropertyChanged
    27751574  {
    27761575   
     
    27791578    private System.Guid _JobId;
    27801579   
    2781     private System.Data.Linq.Link<byte[]> _Data;
    2782    
    2783     private System.DateTime _LastUpdate;
    2784    
    2785     private EntityRef<Task> _Job;
     1580    private System.Guid _GrantedUserId;
     1581   
     1582    private System.Guid _GrantedByUserId;
     1583   
     1584    private string _Permission;
     1585   
     1586    private EntityRef<Job> _Job;
    27861587   
    27871588    #region Extensibility Method Definitions
     
    27891590    partial void OnValidate(System.Data.Linq.ChangeAction action);
    27901591    partial void OnCreated();
    2791     partial void OnTaskIdChanging(System.Guid value);
    2792     partial void OnTaskIdChanged();
    2793     partial void OnDataChanging(byte[] value);
    2794     partial void OnDataChanged();
    2795     partial void OnLastUpdateChanging(System.DateTime value);
    2796     partial void OnLastUpdateChanged();
     1592    partial void OnJobIdChanging(System.Guid value);
     1593    partial void OnJobIdChanged();
     1594    partial void OnGrantedUserIdChanging(System.Guid value);
     1595    partial void OnGrantedUserIdChanged();
     1596    partial void OnGrantedByUserIdChanging(System.Guid value);
     1597    partial void OnGrantedByUserIdChanged();
     1598    partial void OnPermissionChanging(string value);
     1599    partial void OnPermissionChanged();
    27971600    #endregion
    27981601   
    2799     public TaskData()
    2800     {
    2801       this._Job = default(EntityRef<Task>);
     1602    public JobPermission()
     1603    {
     1604      this._Job = default(EntityRef<Job>);
    28021605      OnCreated();
    28031606    }
    28041607   
    28051608    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_JobId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
    2806     public System.Guid TaskId
     1609    public System.Guid JobId
    28071610    {
    28081611      get
     
    28181621            throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
    28191622          }
    2820           this.OnTaskIdChanging(value);
     1623          this.OnJobIdChanging(value);
    28211624          this.SendPropertyChanging();
    28221625          this._JobId = value;
    2823           this.SendPropertyChanged("TaskId");
    2824           this.OnTaskIdChanged();
    2825         }
    2826       }
    2827     }
    2828    
    2829     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Data", DbType="VarBinary(MAX)", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
    2830     public byte[] Data
    2831     {
    2832       get
    2833       {
    2834         return this._Data.Value;
    2835       }
    2836       set
    2837       {
    2838         if ((this._Data.Value != value))
    2839         {
    2840           this.OnDataChanging(value);
    2841           this.SendPropertyChanging();
    2842           this._Data.Value = value;
    2843           this.SendPropertyChanged("Data");
    2844           this.OnDataChanged();
    2845         }
    2846       }
    2847     }
    2848    
    2849     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastUpdate", DbType="DateTime")]
    2850     public System.DateTime LastUpdate
    2851     {
    2852       get
    2853       {
    2854         return this._LastUpdate;
    2855       }
    2856       set
    2857       {
    2858         if ((this._LastUpdate != value))
    2859         {
    2860           this.OnLastUpdateChanging(value);
    2861           this.SendPropertyChanging();
    2862           this._LastUpdate = value;
    2863           this.SendPropertyChanged("LastUpdate");
    2864           this.OnLastUpdateChanged();
    2865         }
    2866       }
    2867     }
    2868    
    2869     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Task_TaskData", Storage="_Job", ThisKey="TaskId", OtherKey="TaskId", IsForeignKey=true)]
    2870     public Task Task
     1626          this.SendPropertyChanged("JobId");
     1627          this.OnJobIdChanged();
     1628        }
     1629      }
     1630    }
     1631   
     1632    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GrantedUserId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
     1633    public System.Guid GrantedUserId
     1634    {
     1635      get
     1636      {
     1637        return this._GrantedUserId;
     1638      }
     1639      set
     1640      {
     1641        if ((this._GrantedUserId != value))
     1642        {
     1643          this.OnGrantedUserIdChanging(value);
     1644          this.SendPropertyChanging();
     1645          this._GrantedUserId = value;
     1646          this.SendPropertyChanged("GrantedUserId");
     1647          this.OnGrantedUserIdChanged();
     1648        }
     1649      }
     1650    }
     1651   
     1652    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GrantedByUserId", DbType="UniqueIdentifier NOT NULL")]
     1653    public System.Guid GrantedByUserId
     1654    {
     1655      get
     1656      {
     1657        return this._GrantedByUserId;
     1658      }
     1659      set
     1660      {
     1661        if ((this._GrantedByUserId != value))
     1662        {
     1663          this.OnGrantedByUserIdChanging(value);
     1664          this.SendPropertyChanging();
     1665          this._GrantedByUserId = value;
     1666          this.SendPropertyChanged("GrantedByUserId");
     1667          this.OnGrantedByUserIdChanged();
     1668        }
     1669      }
     1670    }
     1671   
     1672    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Permission", DbType="VarChar(15) NOT NULL", CanBeNull=false)]
     1673    public string Permission
     1674    {
     1675      get
     1676      {
     1677        return this._Permission;
     1678      }
     1679      set
     1680      {
     1681        if ((this._Permission != value))
     1682        {
     1683          this.OnPermissionChanging(value);
     1684          this.SendPropertyChanging();
     1685          this._Permission = value;
     1686          this.SendPropertyChanged("Permission");
     1687          this.OnPermissionChanged();
     1688        }
     1689      }
     1690    }
     1691   
     1692    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Job_JobPermission", Storage="_Job", ThisKey="JobId", OtherKey="JobId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
     1693    public Job Job
    28711694    {
    28721695      get
     
    28761699      set
    28771700      {
    2878         Task previousValue = this._Job.Entity;
     1701        Job previousValue = this._Job.Entity;
    28791702        if (((previousValue != value)
    28801703              || (this._Job.HasLoadedOrAssignedValue == false)))
     
    28841707          {
    28851708            this._Job.Entity = null;
    2886             previousValue.JobData = null;
     1709            previousValue.JobPermissions.Remove(this);
    28871710          }
    28881711          this._Job.Entity = value;
    28891712          if ((value != null))
    28901713          {
    2891             value.JobData = this;
    2892             this._JobId = value.TaskId;
     1714            value.JobPermissions.Add(this);
     1715            this._JobId = value.JobId;
    28931716          }
    28941717          else
     
    28961719            this._JobId = default(System.Guid);
    28971720          }
    2898           this.SendPropertyChanged("Task");
     1721          this.SendPropertyChanged("Job");
    28991722        }
    29001723      }
     
    29191742        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    29201743      }
     1744    }
     1745  }
     1746 
     1747  [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Lifecycle")]
     1748  public partial class Lifecycle : INotifyPropertyChanging, INotifyPropertyChanged
     1749  {
     1750   
     1751    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
     1752   
     1753    private int _LifecycleId;
     1754   
     1755    private System.DateTime _LastCleanup;
     1756   
     1757    #region Extensibility Method Definitions
     1758    partial void OnLoaded();
     1759    partial void OnValidate(System.Data.Linq.ChangeAction action);
     1760    partial void OnCreated();
     1761    partial void OnLifecycleIdChanging(int value);
     1762    partial void OnLifecycleIdChanged();
     1763    partial void OnLastCleanupChanging(System.DateTime value);
     1764    partial void OnLastCleanupChanged();
     1765    #endregion
     1766   
     1767    public Lifecycle()
     1768    {
     1769      OnCreated();
     1770    }
     1771   
     1772    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LifecycleId", DbType="Int NOT NULL", IsPrimaryKey=true)]
     1773    public int LifecycleId
     1774    {
     1775      get
     1776      {
     1777        return this._LifecycleId;
     1778      }
     1779      set
     1780      {
     1781        if ((this._LifecycleId != value))
     1782        {
     1783          this.OnLifecycleIdChanging(value);
     1784          this.SendPropertyChanging();
     1785          this._LifecycleId = value;
     1786          this.SendPropertyChanged("LifecycleId");
     1787          this.OnLifecycleIdChanged();
     1788        }
     1789      }
     1790    }
     1791   
     1792    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastCleanup", DbType="DateTime NOT NULL")]
     1793    public System.DateTime LastCleanup
     1794    {
     1795      get
     1796      {
     1797        return this._LastCleanup;
     1798      }
     1799      set
     1800      {
     1801        if ((this._LastCleanup != value))
     1802        {
     1803          this.OnLastCleanupChanging(value);
     1804          this.SendPropertyChanging();
     1805          this._LastCleanup = value;
     1806          this.SendPropertyChanged("LastCleanup");
     1807          this.OnLastCleanupChanged();
     1808        }
     1809      }
     1810    }
     1811   
     1812    public event PropertyChangingEventHandler PropertyChanging;
     1813   
     1814    public event PropertyChangedEventHandler PropertyChanged;
     1815   
     1816    protected virtual void SendPropertyChanging()
     1817    {
     1818      if ((this.PropertyChanging != null))
     1819      {
     1820        this.PropertyChanging(this, emptyChangingEventArgs);
     1821      }
     1822    }
     1823   
     1824    protected virtual void SendPropertyChanged(String propertyName)
     1825    {
     1826      if ((this.PropertyChanged != null))
     1827      {
     1828        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
     1829      }
     1830    }
     1831  }
     1832 
     1833  [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Plugin")]
     1834  public partial class Plugin : INotifyPropertyChanging, INotifyPropertyChanged
     1835  {
     1836   
     1837    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
     1838   
     1839    private System.Guid _PluginId;
     1840   
     1841    private string _Name;
     1842   
     1843    private string _Version;
     1844   
     1845    private System.Guid _UserId;
     1846   
     1847    private System.DateTime _DateCreated;
     1848   
     1849    private System.Data.Linq.Binary _Hash;
     1850   
     1851    private EntitySet<PluginData> _PluginDatas;
     1852   
     1853    private EntitySet<RequiredPlugin> _RequiredPlugins;
     1854   
     1855    #region Extensibility Method Definitions
     1856    partial void OnLoaded();
     1857    partial void OnValidate(System.Data.Linq.ChangeAction action);
     1858    partial void OnCreated();
     1859    partial void OnPluginIdChanging(System.Guid value);
     1860    partial void OnPluginIdChanged();
     1861    partial void OnNameChanging(string value);
     1862    partial void OnNameChanged();
     1863    partial void OnVersionChanging(string value);
     1864    partial void OnVersionChanged();
     1865    partial void OnUserIdChanging(System.Guid value);
     1866    partial void OnUserIdChanged();
     1867    partial void OnDateCreatedChanging(System.DateTime value);
     1868    partial void OnDateCreatedChanged();
     1869    partial void OnHashChanging(System.Data.Linq.Binary value);
     1870    partial void OnHashChanged();
     1871    #endregion
     1872   
     1873    public Plugin()
     1874    {
     1875      this._PluginDatas = new EntitySet<PluginData>(new Action<PluginData>(this.attach_PluginDatas), new Action<PluginData>(this.detach_PluginDatas));
     1876      this._RequiredPlugins = new EntitySet<RequiredPlugin>(new Action<RequiredPlugin>(this.attach_RequiredPlugins), new Action<RequiredPlugin>(this.detach_RequiredPlugins));
     1877      OnCreated();
     1878    }
     1879   
     1880    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PluginId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
     1881    public System.Guid PluginId
     1882    {
     1883      get
     1884      {
     1885        return this._PluginId;
     1886      }
     1887      set
     1888      {
     1889        if ((this._PluginId != value))
     1890        {
     1891          this.OnPluginIdChanging(value);
     1892          this.SendPropertyChanging();
     1893          this._PluginId = value;
     1894          this.SendPropertyChanged("PluginId");
     1895          this.OnPluginIdChanged();
     1896        }
     1897      }
     1898    }
     1899   
     1900    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="VarChar(MAX) NOT NULL", CanBeNull=false)]
     1901    public string Name
     1902    {
     1903      get
     1904      {
     1905        return this._Name;
     1906      }
     1907      set
     1908      {
     1909        if ((this._Name != value))
     1910        {
     1911          this.OnNameChanging(value);
     1912          this.SendPropertyChanging();
     1913          this._Name = value;
     1914          this.SendPropertyChanged("Name");
     1915          this.OnNameChanged();
     1916        }
     1917      }
     1918    }
     1919   
     1920    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Version", DbType="VarChar(MAX) NOT NULL", CanBeNull=false)]
     1921    public string Version
     1922    {
     1923      get
     1924      {
     1925        return this._Version;
     1926      }
     1927      set
     1928      {
     1929        if ((this._Version != value))
     1930        {
     1931          this.OnVersionChanging(value);
     1932          this.SendPropertyChanging();
     1933          this._Version = value;
     1934          this.SendPropertyChanged("Version");
     1935          this.OnVersionChanged();
     1936        }
     1937      }
     1938    }
     1939   
     1940    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_UserId", DbType="UniqueIdentifier NOT NULL")]
     1941    public System.Guid UserId
     1942    {
     1943      get
     1944      {
     1945        return this._UserId;
     1946      }
     1947      set
     1948      {
     1949        if ((this._UserId != value))
     1950        {
     1951          this.OnUserIdChanging(value);
     1952          this.SendPropertyChanging();
     1953          this._UserId = value;
     1954          this.SendPropertyChanged("UserId");
     1955          this.OnUserIdChanged();
     1956        }
     1957      }
     1958    }
     1959   
     1960    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DateCreated", DbType="DateTime NOT NULL")]
     1961    public System.DateTime DateCreated
     1962    {
     1963      get
     1964      {
     1965        return this._DateCreated;
     1966      }
     1967      set
     1968      {
     1969        if ((this._DateCreated != value))
     1970        {
     1971          this.OnDateCreatedChanging(value);
     1972          this.SendPropertyChanging();
     1973          this._DateCreated = value;
     1974          this.SendPropertyChanged("DateCreated");
     1975          this.OnDateCreatedChanged();
     1976        }
     1977      }
     1978    }
     1979   
     1980    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Hash", DbType="VarBinary(20) NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
     1981    public System.Data.Linq.Binary Hash
     1982    {
     1983      get
     1984      {
     1985        return this._Hash;
     1986      }
     1987      set
     1988      {
     1989        if ((this._Hash != value))
     1990        {
     1991          this.OnHashChanging(value);
     1992          this.SendPropertyChanging();
     1993          this._Hash = value;
     1994          this.SendPropertyChanged("Hash");
     1995          this.OnHashChanged();
     1996        }
     1997      }
     1998    }
     1999   
     2000    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_PluginData", Storage="_PluginDatas", ThisKey="PluginId", OtherKey="PluginId")]
     2001    public EntitySet<PluginData> PluginDatas
     2002    {
     2003      get
     2004      {
     2005        return this._PluginDatas;
     2006      }
     2007      set
     2008      {
     2009        this._PluginDatas.Assign(value);
     2010      }
     2011    }
     2012   
     2013    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_RequiredPlugin", Storage="_RequiredPlugins", ThisKey="PluginId", OtherKey="PluginId")]
     2014    public EntitySet<RequiredPlugin> RequiredPlugins
     2015    {
     2016      get
     2017      {
     2018        return this._RequiredPlugins;
     2019      }
     2020      set
     2021      {
     2022        this._RequiredPlugins.Assign(value);
     2023      }
     2024    }
     2025   
     2026    public event PropertyChangingEventHandler PropertyChanging;
     2027   
     2028    public event PropertyChangedEventHandler PropertyChanged;
     2029   
     2030    protected virtual void SendPropertyChanging()
     2031    {
     2032      if ((this.PropertyChanging != null))
     2033      {
     2034        this.PropertyChanging(this, emptyChangingEventArgs);
     2035      }
     2036    }
     2037   
     2038    protected virtual void SendPropertyChanged(String propertyName)
     2039    {
     2040      if ((this.PropertyChanged != null))
     2041      {
     2042        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
     2043      }
     2044    }
     2045   
     2046    private void attach_PluginDatas(PluginData entity)
     2047    {
     2048      this.SendPropertyChanging();
     2049      entity.Plugin = this;
     2050    }
     2051   
     2052    private void detach_PluginDatas(PluginData entity)
     2053    {
     2054      this.SendPropertyChanging();
     2055      entity.Plugin = null;
     2056    }
     2057   
     2058    private void attach_RequiredPlugins(RequiredPlugin entity)
     2059    {
     2060      this.SendPropertyChanging();
     2061      entity.Plugin = this;
     2062    }
     2063   
     2064    private void detach_RequiredPlugins(RequiredPlugin entity)
     2065    {
     2066      this.SendPropertyChanging();
     2067      entity.Plugin = null;
    29212068    }
    29222069  }
     
    29322079    private System.Guid _PluginId;
    29332080   
    2934     private System.Data.Linq.Link<byte[]> _Data;
     2081    private System.Data.Linq.Binary _Data;
    29352082   
    29362083    private string _FileName;
     
    29462093    partial void OnPluginIdChanging(System.Guid value);
    29472094    partial void OnPluginIdChanged();
    2948     partial void OnDataChanging(byte[] value);
     2095    partial void OnDataChanging(System.Data.Linq.Binary value);
    29492096    partial void OnDataChanged();
    29502097    partial void OnFileNameChanging(string value);
     
    29582105    }
    29592106   
    2960     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PluginDataId", AutoSync=AutoSync.OnInsert, DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true, IsDbGenerated=true)]
     2107    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PluginDataId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
    29612108    public System.Guid PluginDataId
    29622109    {
     
    30032150   
    30042151    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Data", DbType="VarBinary(MAX) NOT NULL", CanBeNull=false, UpdateCheck=UpdateCheck.Never)]
    3005     public byte[] Data
    3006     {
    3007       get
    3008       {
    3009         return this._Data.Value;
    3010       }
    3011       set
    3012       {
    3013         if ((this._Data.Value != value))
     2152    public System.Data.Linq.Binary Data
     2153    {
     2154      get
     2155      {
     2156        return this._Data;
     2157      }
     2158      set
     2159      {
     2160        if ((this._Data != value))
    30142161        {
    30152162          this.OnDataChanging(value);
    30162163          this.SendPropertyChanging();
    3017           this._Data.Value = value;
     2164          this._Data = value;
    30182165          this.SendPropertyChanged("Data");
    30192166          this.OnDataChanged();
     
    30222169    }
    30232170   
    3024     [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FileName", DbType="VarChar(MAX)", CanBeNull=false)]
     2171    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FileName", DbType="VarChar(MAX) NOT NULL", CanBeNull=false)]
    30252172    public string FileName
    30262173    {
     
    30422189    }
    30432190   
    3044     [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_PluginData", Storage="_Plugin", ThisKey="PluginId", OtherKey="PluginId", IsForeignKey=true)]
     2191    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_PluginData", Storage="_Plugin", ThisKey="PluginId", OtherKey="PluginId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
    30452192    public Plugin Plugin
    30462193    {
     
    30592206          {
    30602207            this._Plugin.Entity = null;
    3061             previousValue.PluginData.Remove(this);
     2208            previousValue.PluginDatas.Remove(this);
    30622209          }
    30632210          this._Plugin.Entity = value;
    30642211          if ((value != null))
    30652212          {
    3066             value.PluginData.Add(this);
     2213            value.PluginDatas.Add(this);
    30672214            this._PluginId = value.PluginId;
    30682215          }
     
    30942241        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
    30952242      }
     2243    }
     2244  }
     2245 
     2246  [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Project")]
     2247  public partial class Project : INotifyPropertyChanging, INotifyPropertyChanged
     2248  {
     2249   
     2250    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
     2251   
     2252    private System.Guid _ProjectId;
     2253   
     2254    private System.Nullable<System.Guid> _ParentProjectId;
     2255   
     2256    private System.DateTime _DateCreated;
     2257   
     2258    private string _Name;
     2259   
     2260    private string _Description;
     2261   
     2262    private System.Guid _OwnerUserId;
     2263   
     2264    private System.DateTime _StartDate;
     2265   
     2266    private System.Nullable<System.DateTime> _EndDate;
     2267   
     2268    private EntitySet<AssignedProjectResource> _AssignedProjectResources;
     2269   
     2270    private EntitySet<Job> _Jobs;
     2271   
     2272    private EntitySet<Project> _Projects;
     2273   
     2274    private EntitySet<ProjectPermission> _ProjectPermissions;
     2275   
     2276    private EntityRef<Project> _Project1;
     2277   
     2278    #region Extensibility Method Definitions
     2279    partial void OnLoaded();
     2280    partial void OnValidate(System.Data.Linq.ChangeAction action);
     2281    partial void OnCreated();
     2282    partial void OnProjectIdChanging(System.Guid value);
     2283    partial void OnProjectIdChanged();
     2284    partial void OnParentProjectIdChanging(System.Nullable<System.Guid> value);
     2285    partial void OnParentProjectIdChanged();
     2286    partial void OnDateCreatedChanging(System.DateTime value);
     2287    partial void OnDateCreatedChanged();
     2288    partial void OnNameChanging(string value);
     2289    partial void OnNameChanged();
     2290    partial void OnDescriptionChanging(string value);
     2291    partial void OnDescriptionChanged();
     2292    partial void OnOwnerUserIdChanging(System.Guid value);
     2293    partial void OnOwnerUserIdChanged();
     2294    partial void OnStartDateChanging(System.DateTime value);
     2295    partial void OnStartDateChanged();
     2296    partial void OnEndDateChanging(System.Nullable<System.DateTime> value);
     2297    partial void OnEndDateChanged();
     2298    #endregion
     2299   
     2300    public Project()
     2301    {
     2302      this._AssignedProjectResources = new EntitySet<AssignedProjectResource>(new Action<AssignedProjectResource>(this.attach_AssignedProjectResources), new Action<AssignedProjectResource>(this.detach_AssignedProjectResources));
     2303      this._Jobs = new EntitySet<Job>(new Action<Job>(this.attach_Jobs), new Action<Job>(this.detach_Jobs));
     2304      this._Projects = new EntitySet<Project>(new Action<Project>(this.attach_Projects), new Action<Project>(this.detach_Projects));
     2305      this._ProjectPermissions = new EntitySet<ProjectPermission>(new Action<ProjectPermission>(this.attach_ProjectPermissions), new Action<ProjectPermission>(this.detach_ProjectPermissions));
     2306      this._Project1 = default(EntityRef<Project>);
     2307      OnCreated();
     2308    }
     2309   
     2310    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
     2311    public System.Guid ProjectId
     2312    {
     2313      get
     2314      {
     2315        return this._ProjectId;
     2316      }
     2317      set
     2318      {
     2319        if ((this._ProjectId != value))
     2320        {
     2321          this.OnProjectIdChanging(value);
     2322          this.SendPropertyChanging();
     2323          this._ProjectId = value;
     2324          this.SendPropertyChanged("ProjectId");
     2325          this.OnProjectIdChanged();
     2326        }
     2327      }
     2328    }
     2329   
     2330    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentProjectId", DbType="UniqueIdentifier")]
     2331    public System.Nullable<System.Guid> ParentProjectId
     2332    {
     2333      get
     2334      {
     2335        return this._ParentProjectId;
     2336      }
     2337      set
     2338      {
     2339        if ((this._ParentProjectId != value))
     2340        {
     2341          if (this._Project1.HasLoadedOrAssignedValue)
     2342          {
     2343            throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
     2344          }
     2345          this.OnParentProjectIdChanging(value);
     2346          this.SendPropertyChanging();
     2347          this._ParentProjectId = value;
     2348          this.SendPropertyChanged("ParentProjectId");
     2349          this.OnParentProjectIdChanged();
     2350        }
     2351      }
     2352    }
     2353   
     2354    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_DateCreated", DbType="DateTime NOT NULL")]
     2355    public System.DateTime DateCreated
     2356    {
     2357      get
     2358      {
     2359        return this._DateCreated;
     2360      }
     2361      set
     2362      {
     2363        if ((this._DateCreated != value))
     2364        {
     2365          this.OnDateCreatedChanging(value);
     2366          this.SendPropertyChanging();
     2367          this._DateCreated = value;
     2368          this.SendPropertyChanged("DateCreated");
     2369          this.OnDateCreatedChanged();
     2370        }
     2371      }
     2372    }
     2373   
     2374    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="VarChar(MAX) NOT NULL", CanBeNull=false)]
     2375    public string Name
     2376    {
     2377      get
     2378      {
     2379        return this._Name;
     2380      }
     2381      set
     2382      {
     2383        if ((this._Name != value))
     2384        {
     2385          this.OnNameChanging(value);
     2386          this.SendPropertyChanging();
     2387          this._Name = value;
     2388          this.SendPropertyChanged("Name");
     2389          this.OnNameChanged();
     2390        }
     2391      }
     2392    }
     2393   
     2394    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Description", DbType="VarChar(MAX)")]
     2395    public string Description
     2396    {
     2397      get
     2398      {
     2399        return this._Description;
     2400      }
     2401      set
     2402      {
     2403        if ((this._Description != value))
     2404        {
     2405          this.OnDescriptionChanging(value);
     2406          this.SendPropertyChanging();
     2407          this._Description = value;
     2408          this.SendPropertyChanged("Description");
     2409          this.OnDescriptionChanged();
     2410        }
     2411      }
     2412    }
     2413   
     2414    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OwnerUserId", DbType="UniqueIdentifier NOT NULL")]
     2415    public System.Guid OwnerUserId
     2416    {
     2417      get
     2418      {
     2419        return this._OwnerUserId;
     2420      }
     2421      set
     2422      {
     2423        if ((this._OwnerUserId != value))
     2424        {
     2425          this.OnOwnerUserIdChanging(value);
     2426          this.SendPropertyChanging();
     2427          this._OwnerUserId = value;
     2428          this.SendPropertyChanged("OwnerUserId");
     2429          this.OnOwnerUserIdChanged();
     2430        }
     2431      }
     2432    }
     2433   
     2434    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_StartDate", DbType="DateTime NOT NULL")]
     2435    public System.DateTime StartDate
     2436    {
     2437      get
     2438      {
     2439        return this._StartDate;
     2440      }
     2441      set
     2442      {
     2443        if ((this._StartDate != value))
     2444        {
     2445          this.OnStartDateChanging(value);
     2446          this.SendPropertyChanging();
     2447          this._StartDate = value;
     2448          this.SendPropertyChanged("StartDate");
     2449          this.OnStartDateChanged();
     2450        }
     2451      }
     2452    }
     2453   
     2454    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_EndDate", DbType="DateTime")]
     2455    public System.Nullable<System.DateTime> EndDate
     2456    {
     2457      get
     2458      {
     2459        return this._EndDate;
     2460      }
     2461      set
     2462      {
     2463        if ((this._EndDate != value))
     2464        {
     2465          this.OnEndDateChanging(value);
     2466          this.SendPropertyChanging();
     2467          this._EndDate = value;
     2468          this.SendPropertyChanged("EndDate");
     2469          this.OnEndDateChanged();
     2470        }
     2471      }
     2472    }
     2473   
     2474    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_AssignedProjectResource", Storage="_AssignedProjectResources", ThisKey="ProjectId", OtherKey="ProjectId")]
     2475    public EntitySet<AssignedProjectResource> AssignedProjectResources
     2476    {
     2477      get
     2478      {
     2479        return this._AssignedProjectResources;
     2480      }
     2481      set
     2482      {
     2483        this._AssignedProjectResources.Assign(value);
     2484      }
     2485    }
     2486   
     2487    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_Job", Storage="_Jobs", ThisKey="ProjectId", OtherKey="ProjectId")]
     2488    public EntitySet<Job> Jobs
     2489    {
     2490      get
     2491      {
     2492        return this._Jobs;
     2493      }
     2494      set
     2495      {
     2496        this._Jobs.Assign(value);
     2497      }
     2498    }
     2499   
     2500    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_Project", Storage="_Projects", ThisKey="ProjectId", OtherKey="ParentProjectId")]
     2501    public EntitySet<Project> Projects
     2502    {
     2503      get
     2504      {
     2505        return this._Projects;
     2506      }
     2507      set
     2508      {
     2509        this._Projects.Assign(value);
     2510      }
     2511    }
     2512   
     2513    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_ProjectPermission", Storage="_ProjectPermissions", ThisKey="ProjectId", OtherKey="ProjectId")]
     2514    public EntitySet<ProjectPermission> ProjectPermissions
     2515    {
     2516      get
     2517      {
     2518        return this._ProjectPermissions;
     2519      }
     2520      set
     2521      {
     2522        this._ProjectPermissions.Assign(value);
     2523      }
     2524    }
     2525   
     2526    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_Project", Storage="_Project1", ThisKey="ParentProjectId", OtherKey="ProjectId", IsForeignKey=true)]
     2527    public Project Project1
     2528    {
     2529      get
     2530      {
     2531        return this._Project1.Entity;
     2532      }
     2533      set
     2534      {
     2535        Project previousValue = this._Project1.Entity;
     2536        if (((previousValue != value)
     2537              || (this._Project1.HasLoadedOrAssignedValue == false)))
     2538        {
     2539          this.SendPropertyChanging();
     2540          if ((previousValue != null))
     2541          {
     2542            this._Project1.Entity = null;
     2543            previousValue.Projects.Remove(this);
     2544          }
     2545          this._Project1.Entity = value;
     2546          if ((value != null))
     2547          {
     2548            value.Projects.Add(this);
     2549            this._ParentProjectId = value.ProjectId;
     2550          }
     2551          else
     2552          {
     2553            this._ParentProjectId = default(Nullable<System.Guid>);
     2554          }
     2555          this.SendPropertyChanged("Project1");
     2556        }
     2557      }
     2558    }
     2559   
     2560    public event PropertyChangingEventHandler PropertyChanging;
     2561   
     2562    public event PropertyChangedEventHandler PropertyChanged;
     2563   
     2564    protected virtual void SendPropertyChanging()
     2565    {
     2566      if ((this.PropertyChanging != null))
     2567      {
     2568        this.PropertyChanging(this, emptyChangingEventArgs);
     2569      }
     2570    }
     2571   
     2572    protected virtual void SendPropertyChanged(String propertyName)
     2573    {
     2574      if ((this.PropertyChanged != null))
     2575      {
     2576        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
     2577      }
     2578    }
     2579   
     2580    private void attach_AssignedProjectResources(AssignedProjectResource entity)
     2581    {
     2582      this.SendPropertyChanging();
     2583      entity.Project = this;
     2584    }
     2585   
     2586    private void detach_AssignedProjectResources(AssignedProjectResource entity)
     2587    {
     2588      this.SendPropertyChanging();
     2589      entity.Project = null;
     2590    }
     2591   
     2592    private void attach_Jobs(Job entity)
     2593    {
     2594      this.SendPropertyChanging();
     2595      entity.Project = this;
     2596    }
     2597   
     2598    private void detach_Jobs(Job entity)
     2599    {
     2600      this.SendPropertyChanging();
     2601      entity.Project = null;
     2602    }
     2603   
     2604    private void attach_Projects(Project entity)
     2605    {
     2606      this.SendPropertyChanging();
     2607      entity.Project1 = this;
     2608    }
     2609   
     2610    private void detach_Projects(Project entity)
     2611    {
     2612      this.SendPropertyChanging();
     2613      entity.Project1 = null;
     2614    }
     2615   
     2616    private void attach_ProjectPermissions(ProjectPermission entity)
     2617    {
     2618      this.SendPropertyChanging();
     2619      entity.Project = this;
     2620    }
     2621   
     2622    private void detach_ProjectPermissions(ProjectPermission entity)
     2623    {
     2624      this.SendPropertyChanging();
     2625      entity.Project = null;
     2626    }
     2627  }
     2628 
     2629  [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.ProjectPermission")]
     2630  public partial class ProjectPermission : INotifyPropertyChanging, INotifyPropertyChanged
     2631  {
     2632   
     2633    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
     2634   
     2635    private System.Guid _ProjectId;
     2636   
     2637    private System.Guid _GrantedUserId;
     2638   
     2639    private System.Guid _GrantedByUserId;
     2640   
     2641    private EntityRef<Project> _Project;
     2642   
     2643    #region Extensibility Method Definitions
     2644    partial void OnLoaded();
     2645    partial void OnValidate(System.Data.Linq.ChangeAction action);
     2646    partial void OnCreated();
     2647    partial void OnProjectIdChanging(System.Guid value);
     2648    partial void OnProjectIdChanged();
     2649    partial void OnGrantedUserIdChanging(System.Guid value);
     2650    partial void OnGrantedUserIdChanged();
     2651    partial void OnGrantedByUserIdChanging(System.Guid value);
     2652    partial void OnGrantedByUserIdChanged();
     2653    #endregion
     2654   
     2655    public ProjectPermission()
     2656    {
     2657      this._Project = default(EntityRef<Project>);
     2658      OnCreated();
     2659    }
     2660   
     2661    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ProjectId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
     2662    public System.Guid ProjectId
     2663    {
     2664      get
     2665      {
     2666        return this._ProjectId;
     2667      }
     2668      set
     2669      {
     2670        if ((this._ProjectId != value))
     2671        {
     2672          if (this._Project.HasLoadedOrAssignedValue)
     2673          {
     2674            throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
     2675          }
     2676          this.OnProjectIdChanging(value);
     2677          this.SendPropertyChanging();
     2678          this._ProjectId = value;
     2679          this.SendPropertyChanged("ProjectId");
     2680          this.OnProjectIdChanged();
     2681        }
     2682      }
     2683    }
     2684   
     2685    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GrantedUserId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
     2686    public System.Guid GrantedUserId
     2687    {
     2688      get
     2689      {
     2690        return this._GrantedUserId;
     2691      }
     2692      set
     2693      {
     2694        if ((this._GrantedUserId != value))
     2695        {
     2696          this.OnGrantedUserIdChanging(value);
     2697          this.SendPropertyChanging();
     2698          this._GrantedUserId = value;
     2699          this.SendPropertyChanged("GrantedUserId");
     2700          this.OnGrantedUserIdChanged();
     2701        }
     2702      }
     2703    }
     2704   
     2705    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_GrantedByUserId", DbType="UniqueIdentifier NOT NULL")]
     2706    public System.Guid GrantedByUserId
     2707    {
     2708      get
     2709      {
     2710        return this._GrantedByUserId;
     2711      }
     2712      set
     2713      {
     2714        if ((this._GrantedByUserId != value))
     2715        {
     2716          this.OnGrantedByUserIdChanging(value);
     2717          this.SendPropertyChanging();
     2718          this._GrantedByUserId = value;
     2719          this.SendPropertyChanged("GrantedByUserId");
     2720          this.OnGrantedByUserIdChanged();
     2721        }
     2722      }
     2723    }
     2724   
     2725    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Project_ProjectPermission", Storage="_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
     2726    public Project Project
     2727    {
     2728      get
     2729      {
     2730        return this._Project.Entity;
     2731      }
     2732      set
     2733      {
     2734        Project previousValue = this._Project.Entity;
     2735        if (((previousValue != value)
     2736              || (this._Project.HasLoadedOrAssignedValue == false)))
     2737        {
     2738          this.SendPropertyChanging();
     2739          if ((previousValue != null))
     2740          {
     2741            this._Project.Entity = null;
     2742            previousValue.ProjectPermissions.Remove(this);
     2743          }
     2744          this._Project.Entity = value;
     2745          if ((value != null))
     2746          {
     2747            value.ProjectPermissions.Add(this);
     2748            this._ProjectId = value.ProjectId;
     2749          }
     2750          else
     2751          {
     2752            this._ProjectId = default(System.Guid);
     2753          }
     2754          this.SendPropertyChanged("Project");
     2755        }
     2756      }
     2757    }
     2758   
     2759    public event PropertyChangingEventHandler PropertyChanging;
     2760   
     2761    public event PropertyChangedEventHandler PropertyChanged;
     2762   
     2763    protected virtual void SendPropertyChanging()
     2764    {
     2765      if ((this.PropertyChanging != null))
     2766      {
     2767        this.PropertyChanging(this, emptyChangingEventArgs);
     2768      }
     2769    }
     2770   
     2771    protected virtual void SendPropertyChanged(String propertyName)
     2772    {
     2773      if ((this.PropertyChanged != null))
     2774      {
     2775        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
     2776      }
     2777    }
     2778  }
     2779 
     2780  [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.RequiredPlugins")]
     2781  public partial class RequiredPlugin : INotifyPropertyChanging, INotifyPropertyChanged
     2782  {
     2783   
     2784    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
     2785   
     2786    private System.Guid _RequiredPluginId;
     2787   
     2788    private System.Guid _TaskId;
     2789   
     2790    private System.Guid _PluginId;
     2791   
     2792    private EntityRef<Plugin> _Plugin;
     2793   
     2794    private EntityRef<Task> _Task;
     2795   
     2796    #region Extensibility Method Definitions
     2797    partial void OnLoaded();
     2798    partial void OnValidate(System.Data.Linq.ChangeAction action);
     2799    partial void OnCreated();
     2800    partial void OnRequiredPluginIdChanging(System.Guid value);
     2801    partial void OnRequiredPluginIdChanged();
     2802    partial void OnTaskIdChanging(System.Guid value);
     2803    partial void OnTaskIdChanged();
     2804    partial void OnPluginIdChanging(System.Guid value);
     2805    partial void OnPluginIdChanged();
     2806    #endregion
     2807   
     2808    public RequiredPlugin()
     2809    {
     2810      this._Plugin = default(EntityRef<Plugin>);
     2811      this._Task = default(EntityRef<Task>);
     2812      OnCreated();
     2813    }
     2814   
     2815    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_RequiredPluginId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
     2816    public System.Guid RequiredPluginId
     2817    {
     2818      get
     2819      {
     2820        return this._RequiredPluginId;
     2821      }
     2822      set
     2823      {
     2824        if ((this._RequiredPluginId != value))
     2825        {
     2826          this.OnRequiredPluginIdChanging(value);
     2827          this.SendPropertyChanging();
     2828          this._RequiredPluginId = value;
     2829          this.SendPropertyChanged("RequiredPluginId");
     2830          this.OnRequiredPluginIdChanged();
     2831        }
     2832      }
     2833    }
     2834   
     2835    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_TaskId", DbType="UniqueIdentifier NOT NULL")]
     2836    public System.Guid TaskId
     2837    {
     2838      get
     2839      {
     2840        return this._TaskId;
     2841      }
     2842      set
     2843      {
     2844        if ((this._TaskId != value))
     2845        {
     2846          if (this._Task.HasLoadedOrAssignedValue)
     2847          {
     2848            throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
     2849          }
     2850          this.OnTaskIdChanging(value);
     2851          this.SendPropertyChanging();
     2852          this._TaskId = value;
     2853          this.SendPropertyChanged("TaskId");
     2854          this.OnTaskIdChanged();
     2855        }
     2856      }
     2857    }
     2858   
     2859    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_PluginId", DbType="UniqueIdentifier NOT NULL")]
     2860    public System.Guid PluginId
     2861    {
     2862      get
     2863      {
     2864        return this._PluginId;
     2865      }
     2866      set
     2867      {
     2868        if ((this._PluginId != value))
     2869        {
     2870          if (this._Plugin.HasLoadedOrAssignedValue)
     2871          {
     2872            throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
     2873          }
     2874          this.OnPluginIdChanging(value);
     2875          this.SendPropertyChanging();
     2876          this._PluginId = value;
     2877          this.SendPropertyChanged("PluginId");
     2878          this.OnPluginIdChanged();
     2879        }
     2880      }
     2881    }
     2882   
     2883    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Plugin_RequiredPlugin", Storage="_Plugin", ThisKey="PluginId", OtherKey="PluginId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
     2884    public Plugin Plugin
     2885    {
     2886      get
     2887      {
     2888        return this._Plugin.Entity;
     2889      }
     2890      set
     2891      {
     2892        Plugin previousValue = this._Plugin.Entity;
     2893        if (((previousValue != value)
     2894              || (this._Plugin.HasLoadedOrAssignedValue == false)))
     2895        {
     2896          this.SendPropertyChanging();
     2897          if ((previousValue != null))
     2898          {
     2899            this._Plugin.Entity = null;
     2900            previousValue.RequiredPlugins.Remove(this);
     2901          }
     2902          this._Plugin.Entity = value;
     2903          if ((value != null))
     2904          {
     2905            value.RequiredPlugins.Add(this);
     2906            this._PluginId = value.PluginId;
     2907          }
     2908          else
     2909          {
     2910            this._PluginId = default(System.Guid);
     2911          }
     2912          this.SendPropertyChanged("Plugin");
     2913        }
     2914      }
     2915    }
     2916   
     2917    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Task_RequiredPlugin", Storage="_Task", ThisKey="TaskId", OtherKey="TaskId", IsForeignKey=true, DeleteOnNull=true, DeleteRule="CASCADE")]
     2918    public Task Task
     2919    {
     2920      get
     2921      {
     2922        return this._Task.Entity;
     2923      }
     2924      set
     2925      {
     2926        Task previousValue = this._Task.Entity;
     2927        if (((previousValue != value)
     2928              || (this._Task.HasLoadedOrAssignedValue == false)))
     2929        {
     2930          this.SendPropertyChanging();
     2931          if ((previousValue != null))
     2932          {
     2933            this._Task.Entity = null;
     2934            previousValue.RequiredPlugins.Remove(this);
     2935          }
     2936          this._Task.Entity = value;
     2937          if ((value != null))
     2938          {
     2939            value.RequiredPlugins.Add(this);
     2940            this._TaskId = value.TaskId;
     2941          }
     2942          else
     2943          {
     2944            this._TaskId = default(System.Guid);
     2945          }
     2946          this.SendPropertyChanged("Task");
     2947        }
     2948      }
     2949    }
     2950   
     2951    public event PropertyChangingEventHandler PropertyChanging;
     2952   
     2953    public event PropertyChangedEventHandler PropertyChanged;
     2954   
     2955    protected virtual void SendPropertyChanging()
     2956    {
     2957      if ((this.PropertyChanging != null))
     2958      {
     2959        this.PropertyChanging(this, emptyChangingEventArgs);
     2960      }
     2961    }
     2962   
     2963    protected virtual void SendPropertyChanged(String propertyName)
     2964    {
     2965      if ((this.PropertyChanged != null))
     2966      {
     2967        this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
     2968      }
     2969    }
     2970  }
     2971 
     2972  [global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Resource")]
     2973  public partial class Resource : INotifyPropertyChanging, INotifyPropertyChanged
     2974  {
     2975   
     2976    private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);
     2977   
     2978    private System.Guid _ResourceId;
     2979   
     2980    private string _Name;
     2981   
     2982    private string _ResourceType;
     2983   
     2984    private System.Nullable<System.Guid> _ParentResourceId;
     2985   
     2986    private System.Nullable<int> _CpuSpeed;
     2987   
     2988    private System.Nullable<int> _Memory;
     2989   
     2990    private System.Nullable<System.DateTime> _Login;
     2991   
     2992    private string _SlaveState;
     2993   
     2994    private System.Nullable<int> _Cores;
     2995   
     2996    private System.Nullable<int> _FreeCores;
     2997   
     2998    private System.Nullable<int> _FreeMemory;
     2999   
     3000    private System.Nullable<bool> _IsAllowedToCalculate;
     3001   
     3002    private string _CpuArchitecture;
     3003   
     3004    private string _OperatingSystem;
     3005   
     3006    private System.Nullable<System.DateTime> _LastHeartbeat;
     3007   
     3008    private System.Nullable<double> _CpuUtilization;
     3009   
     3010    private int _HbInterval;
     3011   
     3012    private System.Nullable<bool> _IsDisposable;
     3013   
     3014    private System.Nullable<System.Guid> _OwnerUserId;
     3015   
     3016    private EntitySet<AssignedProjectResource> _AssignedProjectResources;
     3017   
     3018    private EntitySet<Downtime> _Downtimes;
     3019   
     3020    private EntitySet<Resource> _Resources;
     3021   
     3022    private EntitySet<StateLog> _StateLogs;
     3023   
     3024    private EntityRef<Resource> _Resource1;
     3025   
     3026    #region Extensibility Method Definitions
     3027    partial void OnLoaded();
     3028    partial void OnValidate(System.Data.Linq.ChangeAction action);
     3029    partial void OnCreated();
     3030    partial void OnResourceIdChanging(System.Guid value);
     3031    partial void OnResourceIdChanged();
     3032    partial void OnNameChanging(string value);
     3033    partial void OnNameChanged();
     3034    partial void OnResourceTypeChanging(string value);
     3035    partial void OnResourceTypeChanged();
     3036    partial void OnParentResourceIdChanging(System.Nullable<System.Guid> value);
     3037    partial void OnParentResourceIdChanged();
     3038    partial void OnCpuSpeedChanging(System.Nullable<int> value);
     3039    partial void OnCpuSpeedChanged();
     3040    partial void OnMemoryChanging(System.Nullable<int> value);
     3041    partial void OnMemoryChanged();
     3042    partial void OnLoginChanging(System.Nullable<System.DateTime> value);
     3043    partial void OnLoginChanged();
     3044    partial void OnSlaveStateChanging(string value);
     3045    partial void OnSlaveStateChanged();
     3046    partial void OnCoresChanging(System.Nullable<int> value);
     3047    partial void OnCoresChanged();
     3048    partial void OnFreeCoresChanging(System.Nullable<int> value);
     3049    partial void OnFreeCoresChanged();
     3050    partial void OnFreeMemoryChanging(System.Nullable<int> value);
     3051    partial void OnFreeMemoryChanged();
     3052    partial void OnIsAllowedToCalculateChanging(System.Nullable<bool> value);
     3053    partial void OnIsAllowedToCalculateChanged();
     3054    partial void OnCpuArchitectureChanging(string value);
     3055    partial void OnCpuArchitectureChanged();
     3056    partial void OnOperatingSystemChanging(string value);
     3057    partial void OnOperatingSystemChanged();
     3058    partial void OnLastHeartbeatChanging(System.Nullable<System.DateTime> value);
     3059    partial void OnLastHeartbeatChanged();
     3060    partial void OnCpuUtilizationChanging(System.Nullable<double> value);
     3061    partial void OnCpuUtilizationChanged();
     3062    partial void OnHbIntervalChanging(int value);
     3063    partial void OnHbIntervalChanged();
     3064    partial void OnIsDisposableChanging(System.Nullable<bool> value);
     3065    partial void OnIsDisposableChanged();
     3066    partial void OnOwnerUserIdChanging(System.Nullable<System.Guid> value);
     3067    partial void OnOwnerUserIdChanged();
     3068    #endregion
     3069   
     3070    public Resource()
     3071    {
     3072      this._AssignedProjectResources = new EntitySet<AssignedProjectResource>(new Action<AssignedProjectResource>(this.attach_AssignedProjectResources), new Action<AssignedProjectResource>(this.detach_AssignedProjectResources));
     3073      this._Downtimes = new EntitySet<Downtime>(new Action<Downtime>(this.attach_Downtimes), new Action<Downtime>(this.detach_Downtimes));
     3074      this._Resources = new EntitySet<Resource>(new Action<Resource>(this.attach_Resources), new Action<Resource>(this.detach_Resources));
     3075      this._StateLogs = new EntitySet<StateLog>(new Action<StateLog>(this.attach_StateLogs), new Action<StateLog>(this.detach_StateLogs));
     3076      this._Resource1 = default(EntityRef<Resource>);
     3077      OnCreated();
     3078    }
     3079   
     3080    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceId", DbType="UniqueIdentifier NOT NULL", IsPrimaryKey=true)]
     3081    public System.Guid ResourceId
     3082    {
     3083      get
     3084      {
     3085        return this._ResourceId;
     3086      }
     3087      set
     3088      {
     3089        if ((this._ResourceId != value))
     3090        {
     3091          this.OnResourceIdChanging(value);
     3092          this.SendPropertyChanging();
     3093          this._ResourceId = value;
     3094          this.SendPropertyChanged("ResourceId");
     3095          this.OnResourceIdChanged();
     3096        }
     3097      }
     3098    }
     3099   
     3100    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Name", DbType="VarChar(MAX) NOT NULL", CanBeNull=false)]
     3101    public string Name
     3102    {
     3103      get
     3104      {
     3105        return this._Name;
     3106      }
     3107      set
     3108      {
     3109        if ((this._Name != value))
     3110        {
     3111          this.OnNameChanging(value);
     3112          this.SendPropertyChanging();
     3113          this._Name = value;
     3114          this.SendPropertyChanged("Name");
     3115          this.OnNameChanged();
     3116        }
     3117      }
     3118    }
     3119   
     3120    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ResourceType", DbType="NVarChar(4000) NOT NULL", CanBeNull=false)]
     3121    public string ResourceType
     3122    {
     3123      get
     3124      {
     3125        return this._ResourceType;
     3126      }
     3127      set
     3128      {
     3129        if ((this._ResourceType != value))
     3130        {
     3131          this.OnResourceTypeChanging(value);
     3132          this.SendPropertyChanging();
     3133          this._ResourceType = value;
     3134          this.SendPropertyChanged("ResourceType");
     3135          this.OnResourceTypeChanged();
     3136        }
     3137      }
     3138    }
     3139   
     3140    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_ParentResourceId", DbType="UniqueIdentifier")]
     3141    public System.Nullable<System.Guid> ParentResourceId
     3142    {
     3143      get
     3144      {
     3145        return this._ParentResourceId;
     3146      }
     3147      set
     3148      {
     3149        if ((this._ParentResourceId != value))
     3150        {
     3151          if (this._Resource1.HasLoadedOrAssignedValue)
     3152          {
     3153            throw new System.Data.Linq.ForeignKeyReferenceAlreadyHasValueException();
     3154          }
     3155          this.OnParentResourceIdChanging(value);
     3156          this.SendPropertyChanging();
     3157          this._ParentResourceId = value;
     3158          this.SendPropertyChanged("ParentResourceId");
     3159          this.OnParentResourceIdChanged();
     3160        }
     3161      }
     3162    }
     3163   
     3164    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CpuSpeed", DbType="Int")]
     3165    public System.Nullable<int> CpuSpeed
     3166    {
     3167      get
     3168      {
     3169        return this._CpuSpeed;
     3170      }
     3171      set
     3172      {
     3173        if ((this._CpuSpeed != value))
     3174        {
     3175          this.OnCpuSpeedChanging(value);
     3176          this.SendPropertyChanging();
     3177          this._CpuSpeed = value;
     3178          this.SendPropertyChanged("CpuSpeed");
     3179          this.OnCpuSpeedChanged();
     3180        }
     3181      }
     3182    }
     3183   
     3184    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Memory", DbType="Int")]
     3185    public System.Nullable<int> Memory
     3186    {
     3187      get
     3188      {
     3189        return this._Memory;
     3190      }
     3191      set
     3192      {
     3193        if ((this._Memory != value))
     3194        {
     3195          this.OnMemoryChanging(value);
     3196          this.SendPropertyChanging();
     3197          this._Memory = value;
     3198          this.SendPropertyChanged("Memory");
     3199          this.OnMemoryChanged();
     3200        }
     3201      }
     3202    }
     3203   
     3204    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Login", DbType="DateTime")]
     3205    public System.Nullable<System.DateTime> Login
     3206    {
     3207      get
     3208      {
     3209        return this._Login;
     3210      }
     3211      set
     3212      {
     3213        if ((this._Login != value))
     3214        {
     3215          this.OnLoginChanging(value);
     3216          this.SendPropertyChanging();
     3217          this._Login = value;
     3218          this.SendPropertyChanged("Login");
     3219          this.OnLoginChanged();
     3220        }
     3221      }
     3222    }
     3223   
     3224    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SlaveState", DbType="VarChar(15)")]
     3225    public string SlaveState
     3226    {
     3227      get
     3228      {
     3229        return this._SlaveState;
     3230      }
     3231      set
     3232      {
     3233        if ((this._SlaveState != value))
     3234        {
     3235          this.OnSlaveStateChanging(value);
     3236          this.SendPropertyChanging();
     3237          this._SlaveState = value;
     3238          this.SendPropertyChanged("SlaveState");
     3239          this.OnSlaveStateChanged();
     3240        }
     3241      }
     3242    }
     3243   
     3244    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_Cores", DbType="Int")]
     3245    public System.Nullable<int> Cores
     3246    {
     3247      get
     3248      {
     3249        return this._Cores;
     3250      }
     3251      set
     3252      {
     3253        if ((this._Cores != value))
     3254        {
     3255          this.OnCoresChanging(value);
     3256          this.SendPropertyChanging();
     3257          this._Cores = value;
     3258          this.SendPropertyChanged("Cores");
     3259          this.OnCoresChanged();
     3260        }
     3261      }
     3262    }
     3263   
     3264    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FreeCores", DbType="Int")]
     3265    public System.Nullable<int> FreeCores
     3266    {
     3267      get
     3268      {
     3269        return this._FreeCores;
     3270      }
     3271      set
     3272      {
     3273        if ((this._FreeCores != value))
     3274        {
     3275          this.OnFreeCoresChanging(value);
     3276          this.SendPropertyChanging();
     3277          this._FreeCores = value;
     3278          this.SendPropertyChanged("FreeCores");
     3279          this.OnFreeCoresChanged();
     3280        }
     3281      }
     3282    }
     3283   
     3284    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_FreeMemory", DbType="Int")]
     3285    public System.Nullable<int> FreeMemory
     3286    {
     3287      get
     3288      {
     3289        return this._FreeMemory;
     3290      }
     3291      set
     3292      {
     3293        if ((this._FreeMemory != value))
     3294        {
     3295          this.OnFreeMemoryChanging(value);
     3296          this.SendPropertyChanging();
     3297          this._FreeMemory = value;
     3298          this.SendPropertyChanged("FreeMemory");
     3299          this.OnFreeMemoryChanged();
     3300        }
     3301      }
     3302    }
     3303   
     3304    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsAllowedToCalculate", DbType="Bit")]
     3305    public System.Nullable<bool> IsAllowedToCalculate
     3306    {
     3307      get
     3308      {
     3309        return this._IsAllowedToCalculate;
     3310      }
     3311      set
     3312      {
     3313        if ((this._IsAllowedToCalculate != value))
     3314        {
     3315          this.OnIsAllowedToCalculateChanging(value);
     3316          this.SendPropertyChanging();
     3317          this._IsAllowedToCalculate = value;
     3318          this.SendPropertyChanged("IsAllowedToCalculate");
     3319          this.OnIsAllowedToCalculateChanged();
     3320        }
     3321      }
     3322    }
     3323   
     3324    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CpuArchitecture", DbType="VarChar(3)")]
     3325    public string CpuArchitecture
     3326    {
     3327      get
     3328      {
     3329        return this._CpuArchitecture;
     3330      }
     3331      set
     3332      {
     3333        if ((this._CpuArchitecture != value))
     3334        {
     3335          this.OnCpuArchitectureChanging(value);
     3336          this.SendPropertyChanging();
     3337          this._CpuArchitecture = value;
     3338          this.SendPropertyChanged("CpuArchitecture");
     3339          this.OnCpuArchitectureChanged();
     3340        }
     3341      }
     3342    }
     3343   
     3344    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OperatingSystem", DbType="VarChar(MAX)")]
     3345    public string OperatingSystem
     3346    {
     3347      get
     3348      {
     3349        return this._OperatingSystem;
     3350      }
     3351      set
     3352      {
     3353        if ((this._OperatingSystem != value))
     3354        {
     3355          this.OnOperatingSystemChanging(value);
     3356          this.SendPropertyChanging();
     3357          this._OperatingSystem = value;
     3358          this.SendPropertyChanged("OperatingSystem");
     3359          this.OnOperatingSystemChanged();
     3360        }
     3361      }
     3362    }
     3363   
     3364    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_LastHeartbeat", DbType="DateTime")]
     3365    public System.Nullable<System.DateTime> LastHeartbeat
     3366    {
     3367      get
     3368      {
     3369        return this._LastHeartbeat;
     3370      }
     3371      set
     3372      {
     3373        if ((this._LastHeartbeat != value))
     3374        {
     3375          this.OnLastHeartbeatChanging(value);
     3376          this.SendPropertyChanging();
     3377          this._LastHeartbeat = value;
     3378          this.SendPropertyChanged("LastHeartbeat");
     3379          this.OnLastHeartbeatChanged();
     3380        }
     3381      }
     3382    }
     3383   
     3384    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_CpuUtilization", DbType="Float")]
     3385    public System.Nullable<double> CpuUtilization
     3386    {
     3387      get
     3388      {
     3389        return this._CpuUtilization;
     3390      }
     3391      set
     3392      {
     3393        if ((this._CpuUtilization != value))
     3394        {
     3395          this.OnCpuUtilizationChanging(value);
     3396          this.SendPropertyChanging();
     3397          this._CpuUtilization = value;
     3398          this.SendPropertyChanged("CpuUtilization");
     3399          this.OnCpuUtilizationChanged();
     3400        }
     3401      }
     3402    }
     3403   
     3404    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_HbInterval", DbType="Int NOT NULL")]
     3405    public int HbInterval
     3406    {
     3407      get
     3408      {
     3409        return this._HbInterval;
     3410      }
     3411      set
     3412      {
     3413        if ((this._HbInterval != value))
     3414        {
     3415          this.OnHbIntervalChanging(value);
     3416          this.SendPropertyChanging();
     3417          this._HbInterval = value;
     3418          this.SendPropertyChanged("HbInterval");
     3419          this.OnHbIntervalChanged();
     3420        }
     3421      }
     3422    }
     3423   
     3424    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_IsDisposable", DbType="Bit")]
     3425    public System.Nullable<bool> IsDisposable
     3426    {
     3427      get
     3428      {
     3429        return this._IsDisposable;
     3430      }
     3431      set
     3432      {
     3433        if ((this._IsDisposable != value))
     3434        {
     3435          this.OnIsDisposableChanging(value);
     3436          this.SendPropertyChanging();
     3437          this._IsDisposable = value;
     3438          this.SendPropertyChanged("IsDisposable");
     3439          this.OnIsDisposableChanged();
     3440        }
     3441      }
     3442    }
     3443   
     3444    [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_OwnerUserId", DbType="UniqueIdentifier")]
     3445    public System.Nullable<System.Guid> OwnerUserId
     3446    {
     3447      get
     3448      {
     3449        return this._OwnerUserId;
     3450      }
     3451      set
     3452      {
     3453        if ((this._OwnerUserId != value))
     3454        {
     3455          this.OnOwnerUserIdChanging(value);
     3456          this.SendPropertyChanging();
     3457          this._OwnerUserId = value;
     3458          this.SendPropertyChanged("OwnerUserId");
     3459          this.OnOwnerUserIdChanged();
     3460        }
     3461      }
     3462    }
     3463   
     3464    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_AssignedProjectResource", Storage="_AssignedProjectResources", ThisKey="ResourceId", OtherKey="ResourceId")]
     3465    public EntitySet<AssignedProjectResource> AssignedProjectResources
     3466    {
     3467      get
     3468      {
     3469        return this._AssignedProjectResources;
     3470      }
     3471      set
     3472      {
     3473        this._AssignedProjectResources.Assign(value);
     3474      }
     3475    }
     3476   
     3477    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_Downtime", Storage="_Downtimes", ThisKey="ResourceId", OtherKey="ResourceId")]
     3478    public EntitySet<Downtime> Downtimes
     3479    {
     3480      get
     3481      {
     3482        return this._Downtimes;
     3483      }
     3484      set
     3485      {
     3486        this._Downtimes.Assign(value);
     3487      }
     3488    }
     3489   
     3490    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_Resource", Storage="_Resources", ThisKey="ResourceId", OtherKey="ParentResourceId")]
     3491    public EntitySet<Resource> Resources
     3492    {
     3493      get
     3494      {
     3495        return this._Resources;
     3496      }
     3497      set
     3498      {
     3499        this._Resources.Assign(value);
     3500      }
     3501    }
     3502   
     3503    [global::System.Data.Linq.Mapping.AssociationAttribute(Name="Resource_StateLog", Storage="_StateLogs", ThisKey="ResourceId", OtherKey="SlaveId")]
     3504    public EntitySet<StateLog> StateLogs
     3505    {
     3506      get
     3507      {
     3508        return this._StateLogs;