Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ApplicationConstants.cs
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ApplicationConstants.cs	(revision 4263)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/ApplicationConstants.cs	(revision 4264)
@@ -35,83 +35,8 @@
     /// </summary>
     public static System.Transactions.IsolationLevel ISOLATION_LEVEL_SCOPE = System.Transactions.IsolationLevel.ReadUncommitted;
+
     public static int HEARTBEAT_MAX_DIF = 120; // value in seconds
+    
     public static int JOB_TIME_TO_LIVE = 5;
-
-    //public static string RESPONSE_SERVERCONSOLE_LOGIN_SUCCESS = "Logged in";
-    //public static string RESPONSE_SERVERCONSOLE_LOGIN_FAILED = "Login failed";
-
-    //public static string RESPONSE_USERROLE_GET_ALL_USERS = "UserRole.GetAllUsers";
-    //public static string RESPONSE_USERROLE_USER_EXISTS_ALLREADY = "UserRole.UserExistsAllready";
-    //public static string RESPONSE_USERROLE_USER_SUCCESSFULLY_ADDED = "UserRole.UserSuccessfullyAdded";
-    //public static string RESPONSE_USERROLE_USER_DOESNT_EXIST = "UserRole.UserDoesntExist";
-    //public static string RESPONSE_USERROLE_USER_REMOVED = "UserRole.UserRemoved";
-    //public static string RESPONSE_USERROLE_USERGROUP_EXISTS_ALLREADY = "UserRole.UsergroupExistsAllready";
-    //public static string RESPONSE_USERROLE_USERGROUP_ADDED = "UserRole.UserGroupAdded";
-    //public static string RESPONSE_USERROLE_USERGROUP_DOESNT_EXIST = "UserRole.UserGroupDoesntExist";
-    //public static string RESPONSE_USERROLE_PERMISSIONOWNER_DOESNT_EXIST = "UserRole.PermissionOwnerDoesntExist";
-    //public static string RESPONSE_USERROLE_PERMISSIONOWNER_REMOVED = "UserRole.PermissionOwnerRemoved";
-    //public static string RESPONSE_USERROLE_PERMISSIONOWNER_ADDED = "UserRole.PermissionOwnerAdded";
-    //public static string RESPONSE_USERROLE_GET_ALL_USERGROUPS = "UserRole.AllUserGroupsReturned";
-    //public static string RESPONSE_USERROLE_ID_MUST_NOT_BE_SET = "UserRole.IdMustNotBeSet";
-    //public static string RESPONSE_USERROLE_USERGROUP_ADDED_TO_USERGROUP = "UserRole.UserGroupAddedToUserGroup";
-    //public static string RESPONSE_USERROLE_USERNAME_EXISTS_ALLREADY = "UserRole.UsernameExistsAllready";
-
-    //public static string RESPONSE_CLIENT_GET_ALL_CLIENTS = "Client.GetAllClients";
-    //public static string RESPONSE_CLIENT_GET_ALL_CLIENTGROUPS = "Client.GetAllClientGroups";
-    //public static string RESPONSE_CLIENT_ID_MUST_NOT_BE_SET = "Client.IdMustNotBeSet";
-    //public static string RESPONSE_CLIENT_CLIENTGROUP_ADDED = "Client.ClientGroupAdded";
-    //public static string RESPONSE_CLIENT_CLIENTGROUP_DOESNT_EXIST = "Client.ClientGroupDoesntExist";
-    //public static string RESPONSE_CLIENT_CLIENTGROUP_DELETED = "Client group sucessfully deleted"; 
-    //public static string RESPONSE_CLIENT_RESOURCE_ADDED_TO_GROUP = "Client.ResourceAddedToGroup";
-    //public static string RESPONSE_CLIENT_RESOURCE_REMOVED = "Client.ResourceRemoved";
-    //public static string RESPONSE_CLIENT_RESOURCE_NOT_FOUND = "Client.ResourceNotFound";
-    //public static string RESPONSE_CLIENT_PERMISSIONOWNER_DOESNT_EXIST = "Client.PermissionOwnerDoesntExist";
-    //public static string RESPONSE_CLIENT_GET_GROUPS_OF_CLIENT = "Get all groups of a client";
-
-    //public static string RESPONSE_COMMUNICATOR_HEARTBEAT_RECEIVED = "Communicator.HeardbeatReceived";
-    //public static string RESPONSE_COMMUNICATOR_JOB_PULLED = "Communicator.JobPulled";
-    //public static string RESPONSE_COMMUNICATOR_JOBRESULT_RECEIVED = "Communicator.JobResultReceived";
-    //public static string RESPONSE_COMMUNICATOR_LOGIN_USER_ALLREADY_ONLINE = "Communicator.LoginUserAllreadyOnline";
-    //public static string RESPONSE_COMMUNICATOR_LOGIN_SUCCESS = "Communicator.LoginSuccess";
-    //public static string RESPONSE_COMMUNICATOR_LOGOUT_CLIENT_NOT_REGISTERED = "Communicator.LogoutClientNotRegistered";
-    //public static string RESPONSE_COMMUNICATOR_LOGOUT_SUCCESS = "Communicator.LogoutSuccess";
-    //public static string RESPONSE_COMMUNICATOR_NO_JOBS_LEFT = "Communicator.NoJobsLeft";
-    //public static string RESPONSE_COMMUNICATOR_ID_MUST_NOT_BE_SET = "Communicator.IdMustNotBeSet";
-    //public static string RESPONSE_COMMUNICATOR_NO_JOB_WITH_THIS_ID = "Communicator.NoJobWithThisId";
-    //public static string RESPONSE_COMMUNICATOR_WRONG_JOB_STATE = "Communicator.WrongJobState";
-    //public static string RESPONSE_COMMUNICATOR_USER_NOT_LOGGED_IN = "Communicator.UserNotLoggedIn";
-    //public static string RESPONSE_COMMUNICATOR_JOB_IS_NOT_BEEING_CALCULATED = "Communicator.JobIsNotBeenigCalculated";
-    //public static string RESPONSE_COMMUNICATOR_WRONG_CLIENT_FOR_JOB = "Communicator.WrongClientForJob";
-    //public static string RESPONSE_COMMUNICATOR_JOB_ALLREADY_FINISHED = "Job allready finished. Not needed anymore";
-    //public static string RESPONSE_COMMUNICATOR_JOB_DOESNT_EXIST = "No job exists with this id";
-    //public static string RESPONSE_COMMUNICATOR_SEND_JOBRESULT = "Please send the Jobresult to the server";
-    //public static string RESPONSE_COMMUNICATOR_PLUGINS_SENT = "Communicator.PluginsSent";
-    //public static string RESPONSE_COMMUNICATOR_PLUGINS_NOT_AVAIL = "Communicator.PluginsNotAvail";
-    //public static string RESPONSE_COMMUNICATOR_JOB_WAS_ABORTED = "Job was aborted";
-
-    //public static string RESPONSE_COMMUNICATOR_FETCH_OR_FORCEFETCH_CALENDAR = "new Calendar must be fetched / force fetched";
-
-    //public static string RESPONSE_JOB_ALL_JOBS = "Job.AllJobs";
-    //public static string RESPONSE_JOB_GET_JOB_BY_ID = "Job.GetJobById";
-    //public static string RESPONSE_JOB_ID_MUST_NOT_BE_SET = "Job.IdMustNotBeSet";
-    //public static string RESPONSE_JOB_JOB_ADDED = "Job.JobAdded";
-    //public static string RESPONSE_JOB_JOB_NULL = "Job.JobNull";
-    //public static string RESPONSE_JOB_JOB_DOESNT_EXIST = "JobDoesntExist";
-    //public static string RESPONSE_JOB_JOB_REMOVED = "Job.JobRemoved";
-    //public static string RESPONSE_JOB_JOBSTATE_MUST_BE_OFFLINE = "Job.JobStateMustBeOffline";
-    //public static string RESPONSE_JOB_IS_NOT_BEEING_CALCULATED = "Job.IsNotBeeingCalculated";
-    //public static string RESPONSE_JOB_JOB_RESULT_SENT = "Job.JobResultSent";
-    //public static string RESPONSE_JOB_REQUEST_ALLREADY_SET = "Job.RequestAllreadySet";
-    //public static string RESPONSE_JOB_ABORT_REQUEST_ALLREADY_SET = "Job.AbortRequestAllreadySet";
-    //public static string RESPONSE_JOB_REQUEST_SET = "Job.RequestSet";
-    //public static string RESPONSE_JOB_ABORT_REQUEST_SET = "Job.AbortRequestSet";
-    //public static string RESPONSE_JOB_RESULT_NOT_YET_HERE = "Requested job result is not yet finished";
-    //public static string RESPONSE_JOB_PROJECT_NAME_EMPTY = "Please specifiy a project name";
-    //public static string RESPONSE_JOB_PROJECT_ADDED = "Project successfully added";
-    //public static string RESPONSE_JOB_PROJECT_DOESNT_EXIST = "The specified project doesn't exist";
-    //public static string RESPONSE_JOB_PROJECT_DELETED = "The project was sucessfully deleted";
-
-    //public static string RESPONSE_UPTIMECALENDAR_NO_CALENDAR_FOUND = "No Calendar could be found anywhere in the tree";
-    //public static string RESPONSE_UPTIMECALENDAR_STATUS_UPDATED = "Calendar status has been updated";
   }
 }
Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/CalendarState.cs
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/CalendarState.cs	(revision 4264)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/CalendarState.cs	(revision 4264)
@@ -0,0 +1,14 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Hive.Contracts.BusinessObjects {
+  public enum CalendarState {
+    Fetch,
+    ForceFetch,
+    Fetching,
+    Fetched,
+    NotAllowedToFetch
+  };
+}
Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/ClientDto.cs
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/ClientDto.cs	(revision 4263)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/ClientDto.cs	(revision 4264)
@@ -29,8 +29,4 @@
 
 namespace HeuristicLab.Hive.Contracts.BusinessObjects {
-
-  public enum State { NullState, Idle, Calculating, Offline, Finished, Abort, RequestSnapshot, RequestSnapshotSent, Pending, Failed };
-  public enum CalendarState { Fetch, ForceFetch, Fetching, Fetched, NotAllowedToFetch };
-
   [StorableClass]
   [DataContract]
@@ -57,5 +53,5 @@
     [Storable]
     [DataMember]
-    public State State { get; set; }
+    public SlaveState State { get; set; }
     [Storable]
     [DataMember]
Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/HeartBeatData.cs
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/HeartBeatData.cs	(revision 4263)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/HeartBeatData.cs	(revision 4264)
@@ -38,4 +38,6 @@
     [DataMember]
     public Dictionary<Guid, double> JobProgress { get; set; } // TODO: define Type 
+    [DataMember]
+    public bool IsAllowedToCalculate { get; set; } // this is true if slave is allowed to work according to calendar
 
     public override string ToString() {
Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobDto.cs
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobDto.cs	(revision 4263)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobDto.cs	(revision 4264)
@@ -38,5 +38,5 @@
     [Storable]
     [DataMember]
-    public State State { get; set; }
+    public JobState State { get; set; }
     [Storable]
     [DataMember]
Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobResult.cs
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobResult.cs	(revision 4263)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobResult.cs	(revision 4264)
@@ -44,5 +44,5 @@
     [Storable]
     [DataMember]
-    public State State { get; set; }
+    public JobState State { get; set; }
     [Storable]
     [DataMember]
Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobState.cs
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobState.cs	(revision 4264)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/JobState.cs	(revision 4264)
@@ -0,0 +1,17 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Hive.Contracts.BusinessObjects {
+  public enum JobState {
+    Calculating,
+    Offline,
+    Finished,
+    Aborted,
+    SnapshotRequested,
+    SnapshotSent,
+    Pending,
+    Failed
+  };
+}
Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/SlaveState.cs
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/SlaveState.cs	(revision 4264)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/BusinessObjects/SlaveState.cs	(revision 4264)
@@ -0,0 +1,13 @@
+﻿using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace HeuristicLab.Hive.Contracts.BusinessObjects {
+  public enum SlaveState {
+    NullState,
+    Idle,
+    Calculating,
+    Offline
+  };
+}
Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/HeuristicLab.Hive.Contracts-3.3.csproj
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/HeuristicLab.Hive.Contracts-3.3.csproj	(revision 4263)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/HeuristicLab.Hive.Contracts-3.3.csproj	(revision 4264)
@@ -118,7 +118,9 @@
     <Compile Include="BusinessObjects\AppointmentDto.cs" />
     <Compile Include="BusinessObjects\CachedHivePluginInfoDto.cs" />
+    <Compile Include="BusinessObjects\CalendarState.cs" />
     <Compile Include="BusinessObjects\ClientGroupDto.cs" />
     <Compile Include="BusinessObjects\HivePluginFile.cs" />
     <Compile Include="BusinessObjects\JobResultList.cs" />
+    <Compile Include="BusinessObjects\JobState.cs" />
     <Compile Include="BusinessObjects\ResourceDto.cs" />
     <Compile Include="BusinessObjects\SerializedJob.cs" />
@@ -129,4 +131,5 @@
     <Compile Include="BusinessObjects\JobResult.cs" />
     <Compile Include="BusinessObjects\SerializedJobResult.cs" />
+    <Compile Include="BusinessObjects\SlaveState.cs" />
     <Compile Include="BusinessObjects\UpTimeStatisticsDto.cs" />
     <Compile Include="BusinessObjects\ClientDto.cs" />
Index: branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IJobManager.cs
===================================================================
--- branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IJobManager.cs	(revision 4263)
+++ branches/3.3-HiveMigration/sources/HeuristicLab.Hive/HeuristicLab.Hive.Contracts/3.3/Interfaces/IJobManager.cs	(revision 4264)
@@ -36,5 +36,5 @@
 
     [OperationContract]
-    ResponseList<JobDto> GetAllJobsWithFilter(State jobState, int offset, int count);
+    ResponseList<JobDto> GetAllJobsWithFilter(JobState jobState, int offset, int count);
 
     [OperationContract]
