using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Linq.Expressions; namespace HeuristicLab.Services.Hive.DataAccess { using DT = HeuristicLab.Services.Hive.Common.DataTransfer; public interface IHiveDao { #region Job Methods DT.Job GetJob(Guid id); IEnumerable GetJobs(Expression> predicate); Guid AddJob(DT.Job dto); void UpdateJob(DT.Job dto); void DeleteJob(Guid id); IEnumerable GetWaitingJobs(DT.Slave slave); #endregion #region JobData Methods DT.JobData GetJobData(Guid id); IEnumerable GetJobDatas(Expression> predicate); Guid AddJobData(DT.JobData dto); void UpdateJobData(DT.JobData dto); void DeleteJobData(Guid id); #endregion #region HiveExperiment Methods DT.HiveExperiment GetHiveExperiment(Guid id); IEnumerable GetHiveExperiments(Expression> predicate); Guid AddHiveExperiment(DT.HiveExperiment dto); void UpdateHiveExperiment(DT.HiveExperiment dto); void DeleteHiveExperiment(Guid id); #endregion #region Plugin Methods DT.Plugin GetPlugin(Guid id); IEnumerable GetPlugins(Expression> predicate); Guid AddPlugin(DT.Plugin dto); void UpdatePlugin(DT.Plugin dto); void DeletePlugin(Guid id); #endregion #region PluginData Methods DT.PluginData GetPluginData(Guid id); IEnumerable GetPluginDatas(Expression> predicate); Guid AddPluginData(DT.PluginData dto); void UpdatePluginData(DT.PluginData dto); void DeletePluginData(Guid id); #endregion #region Calendar Methods #endregion #region Slave Methods DT.Slave GetSlave(Guid id); IEnumerable GetSlaves(Expression> predicate); Guid AddSlave(DT.Slave dto); void UpdateSlave(DT.Slave dto); void DeleteSlave(Guid id); #endregion #region SlaveGroup Methods DT.SlaveGroup GetSlaveGroup(Guid id); IEnumerable GetSlaveGroups(Expression> predicate); Guid AddSlaveGroup(DT.SlaveGroup dto); void UpdateSlaveGroup(DT.SlaveGroup dto); void DeleteSlaveGroup(Guid id); #endregion #region Resource Methods DT.Resource GetResource(Guid id); IEnumerable GetResources(Expression> predicate); Guid AddResource(DT.Resource dto); void UpdateResource(DT.Resource dto); void DeleteResource(Guid id); void AssignJobToResource(Guid jobId, Guid resourceId); IEnumerable GetAssignedResources(Guid jobId); #endregion #region Authorization Methods bool IsUserAuthorizedForJobs(Guid userId, params Guid[] jobIds); #endregion } }