Advertisement
Guest User

Untitled

a guest
Oct 27th, 2010
336
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.48 KB | None | 0 0
  1.   public interface ITaskService
  2.     {
  3.         void SaveChanges();
  4.         bool DeleteTask(Task task);
  5.         bool CreateTask(Task task);
  6.         bool UpdateTask(Task task);
  7.         Task GetTask(int id);
  8.         IEnumerable<Task> GetTasksByDepartment(Department department);
  9.        
  10.         IEnumerable<Task> GetTasksInProgressWhereIamExecutor(Account account);
  11.         IEnumerable<Task> GetTasksInProgressWhereIamParticipant(Account account);
  12.         IEnumerable<Task> GetTasksInProgressWhereIamOwner(Account account);
  13.        
  14.         IEnumerable<Task> GetTasksByDepartment(string webpath);
  15.         IEnumerable<Task> GetTasksByDepartmentForOtherRole(Account account, Department department);
  16.        
  17.         IEnumerable<Task> GetArchiveTasksInOwnDepartment(Account account, Department department);
  18.         IEnumerable<Task> GetArchiveTasksInDepartmentForOther(Account account, Department department);
  19.        
  20.     }
  21.  
  22.     public class TaskService :  ITaskService
  23.     {
  24.         private readonly IUnitOfWork _uow;
  25.         private readonly IRepository<Task> _repository;
  26.      //   private ISpecification<Task> specification;
  27.  
  28.         public TaskService(IUnitOfWork uow)
  29.         {
  30.             _uow = uow;
  31.             _repository = _uow.Repository<Task>();
  32.         }
  33.  
  34.         #region ITaskService Members
  35.  
  36.         public virtual void SaveChanges()
  37.         {
  38.             _uow.Commit();
  39.         }
  40.  
  41.         public virtual bool CreateTask(Task task)
  42.         {
  43.             return _repository.Add(task);
  44.         }
  45.         public virtual bool DeleteTask(Task task)
  46.         {
  47.             return _repository.Delete(task);
  48.         }
  49.  
  50.         public virtual IEnumerable<Task> GetTasksByDepartment(string webpath)
  51.         {
  52.             return _repository.FilterBy(x => x.Department.WebPath == webpath);
  53.         }
  54.  
  55.         public virtual Task GetTask(int id)
  56.         {
  57.             return _repository.FindBy(x => x.UID == id);
  58.         }
  59.  
  60.         public virtual IEnumerable<Task> GetArchiveTasksInOwnDepartment(Account account, Department department)
  61.         {
  62.            //var closedTask = new Specification<Task>(x => x.Status == TaskStatus.Closed);
  63.            // var myDepartment = new Specification<Task>(x => x.Department.UID == department.UID);
  64.            // return _repository.FilterBy(closedTask.SatisfyingEntitiesFrom(myDepartment));
  65.             return _repository.FilterBy(x => x.Status == TaskStatus.Closed).
  66.                 Where(x => x.Department.UID == department.UID);
  67.         }
  68.         public virtual IEnumerable<Task> GetArchiveTasksInDepartmentForOther(Account account, Department department)
  69.         {
  70.             return _repository.FilterBy(x => x.Status == TaskStatus.Closed)
  71.                 .Where(x => x.Department.UID == department.UID)
  72.             .Where(x => x.Owner == account || x.ParticipantEntityList.Any(p => p.Login == account));
  73.         }
  74.         public virtual IEnumerable<Task> GetTasksByDepartmentForOtherRole(Account account,
  75.                                                                   Department department)
  76.         {
  77.             return _repository.FilterBy(x => x.Status == TaskStatus.InProgress)
  78.                 .Where(x => x.Department.WebPath == department.WebPath)
  79.             .Where(x => x.Owner == account || x.ParticipantEntityList.Any(p => p.Login == account));
  80.         }
  81.  
  82.         public virtual IEnumerable<Task> GetTasksByDepartment(Department department)
  83.         {
  84.             return _repository.FilterBy(x => x.Department.UID == department.UID);
  85.         }
  86.  
  87.         public virtual IEnumerable<Task> GetTasksInProgressWhereIamExecutor(Account account)
  88.         {
  89.             return _repository.FilterBy(x => x.Status == TaskStatus.InProgress)
  90.                 .Where(x => x.Executor == account).OrderBy(x => x.Department);
  91.         }
  92.  
  93.         public virtual IEnumerable<Task> GetTasksInProgressWhereIamParticipant(Account account)
  94.         {
  95.             return _repository.FilterBy(x => x.ParticipantEntityList.Any(z=>z.Login == account))
  96.                .Where(x => x.Status == TaskStatus.InProgress).OrderBy(x => x.Department);
  97.         }
  98.  
  99.         public virtual IEnumerable<Task> GetTasksInProgressWhereIamOwner(Account account)
  100.         {
  101.             return _repository.FilterBy(x => x.Status == TaskStatus.InProgress)
  102.                 .Where(x => x.Owner == account).OrderBy(x => x.Department);
  103.         }
  104.  
  105.  
  106.         public bool UpdateTask(Task task)
  107.         {
  108.             return _repository.Update(task);
  109.         }
  110.  
  111.         #endregion
  112.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement