Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/07/17 10:21:08 (7 years ago)
Author:
jkarder
Message:

#2839: worked on database model

Location:
branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3
Files:
1 added
5 edited

Legend:

Unmodified
Added
Removed
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/Converter.cs

    r15399 r15411  
    389389    #endregion
    390390
     391    #region AssignedProjectResource
     392    public static DT.AssignedProjectResource ToDto(this DA.AssignedProjectResource source) {
     393      if (source == null) return null;
     394      return new DT.AssignedProjectResource {
     395        ProjectId = source.ProjectId,
     396        ResourceId = source.ResourceId
     397      };
     398    }
     399    public static DA.AssignedProjectResource ToEntity(this DT.AssignedProjectResource source) {
     400      if (source == null) return null;
     401      var result = new DA.AssignedProjectResource();
     402      source.CopyToEntity(result);
     403      return result;
     404    }
     405    public static void CopyToEntity(this DT.AssignedProjectResource source, DA.AssignedProjectResource target) {
     406      if ((source == null) || (target == null)) return;
     407      target.ProjectId = source.ProjectId;
     408      target.ResourceId = source.ResourceId;
     409    }
     410    #endregion
     411
    391412    #region SlaveGroup
    392413    public static DT.SlaveGroup ToDto(this DA.SlaveGroup source) {
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HeuristicLab.Services.Hive-3.3.csproj

    r15379 r15411  
    119119  <ItemGroup>
    120120    <Compile Include="Converter.cs" />
     121    <Compile Include="DataTransfer\AssignedProjectResource.cs" />
    121122    <Compile Include="DataTransfer\Command.cs" />
    122123    <Compile Include="DataTransfer\Project.cs" />
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/HiveService.cs

    r15380 r15411  
    7575        newTask.JobData = taskData.ToEntity();
    7676        newTask.JobData.LastUpdate = DateTime.Now;
    77         newTask.AssignedResources.AddRange(resourceIds.Select(
    78           x => new DA.AssignedResource {
     77        newTask.AssignedTaskResources.AddRange(resourceIds.Select(
     78          x => new DA.AssignedTaskResource {
    7979            ResourceId = x
    8080          }));
     
    102102      var pm = PersistenceManager;
    103103      using (new PerformanceLogger("AddChildTask")) {
    104         var assignedResourceDao = pm.AssignedResourceDao;
     104        var assignedTaskResourceDao = pm.AssignedTaskResourceDao;
    105105        resourceIds = pm.UseTransaction(() => {
    106           return assignedResourceDao.GetByTaskId(parentTaskId)
     106          return assignedTaskResourceDao.GetByTaskId(parentTaskId)
    107107            .Select(x => x.ResourceId)
    108108            .ToList();
     
    729729    #endregion
    730730
     731    #region AssignedProjectResource Methods
     732    public void AssignProjectResources(Guid projectId, Guid[] resourceIds) {
     733      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
     734      AuthorizationManager.AuthorizeForProjectAdministration(projectId);
     735      var pm = PersistenceManager;
     736      using (new PerformanceLogger("AssignProjectResources")) {
     737        pm.UseTransaction(() => {
     738          var project = AuthorizeForProject(pm, projectId);
     739          var assignedProjectResources = project.AssignedProjectResources.ToList();
     740          foreach (var id in resourceIds) {
     741            if (assignedProjectResources.All(x => x.ResourceId != id)) {
     742              project.AssignedProjectResources.Add(new DA.AssignedProjectResource {
     743                ResourceId = id
     744              });
     745            }
     746          }
     747          pm.SubmitChanges();
     748        });
     749      }
     750    }
     751
     752    public void UnassignProjectResources(Guid projectId, Guid[] resourceIds) {
     753      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
     754      AuthorizationManager.AuthorizeForProjectAdministration(projectId);
     755      var pm = PersistenceManager;
     756      using (new PerformanceLogger("UnassignProjectResources")) {
     757        var assignedProjectResourceDao = pm.AssignedProjectResourceDao;
     758        pm.UseTransaction(() => {
     759          assignedProjectResourceDao.DeleteByProjectAndGrantedUserId(projectId, resourceIds);
     760          pm.SubmitChanges();
     761        });
     762      }
     763    }
     764
     765    public IEnumerable<AssignedProjectResource> GetAssignedResourcesForProject(Guid projectId) {
     766      RoleVerifier.AuthenticateForAnyRole(HiveRoles.Administrator, HiveRoles.Client);
     767      var pm = PersistenceManager;
     768      using (new PerformanceLogger("GetAssignedResourcesForProject")) {
     769        var assignedProjectResourceDao = pm.AssignedProjectResourceDao;
     770        return pm.UseTransaction(() => assignedProjectResourceDao.GetByProjectId(projectId)
     771          .Select(x => x.ToDto())
     772          .ToList()
     773        );
     774      }
     775    }
     776    #endregion
     777
    731778    #region Slave Methods
    732779    public Guid AddSlave(DT.Slave slaveDto) {
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/Manager/HeartbeatManager.cs

    r14185 r15411  
    142142    private IEnumerable<MessageContainer> UpdateTasks(IPersistenceManager pm, Heartbeat heartbeat, bool isAllowedToCalculate) {
    143143      var taskDao = pm.TaskDao;
    144       var assignedResourceDao = pm.AssignedResourceDao;
     144      var assignedResourceDao = pm.AssignedTaskResourceDao;
    145145      var actions = new List<MessageContainer>();
    146146      if (heartbeat.JobProgress == null || !heartbeat.JobProgress.Any())
  • branches/HiveProjectManagement/HeuristicLab.Services.Hive/3.3/ServiceContracts/IHiveService.cs

    r15380 r15411  
    160160    #endregion
    161161
     162    #region AssignedProjectResource Methods
     163    [OperationContract]
     164    void AssignProjectResources(Guid projectId, Guid[] resourceIds);
     165
     166    [OperationContract]
     167    void UnassignProjectResources(Guid projectId, Guid[] resourceIds);
     168
     169    [OperationContract]
     170    IEnumerable<AssignedProjectResource> GetAssignedResourcesForProject(Guid projectId);
     171    #endregion
     172
    162173    #region Slave Methods
    163174    [OperationContract]
Note: See TracChangeset for help on using the changeset viewer.