using System;
using System.Collections.Generic;
using HaaSMiddleware.BusinessLogicTier.Factory;
using HaaSMiddleware.DataAccessTier.Factory.UnitOfWork;
using HaaSMiddleware.DataAccessTier.UnitOfWork;
using HaaSMiddleware.DomainObjects.FileTransfer;
using HaaSMiddleware.ServiceTier.FileTransfer;

namespace HaaSMiddleware.BackgroundThread.Tasks {
	internal class SynchronizeJobFileContents : AbstractTask {
		public SynchronizeJobFileContents(TimeSpan interval) : base(interval) {}

		protected override void RunTask() {
			using (IUnitOfWork unitOfWork = UnitOfWorkFactory.GetUnitOfWorkFactory().CreateUnitOfWork()) {
				IList<SynchronizedJobFiles> jobFileContents = LogicFactory.GetLogicFactory().CreateFileTransferLogic(unitOfWork).SynchronizeAllUnfinishedJobFiles();
				new FileTransferService().SendSynchronizedJobFilesToClient(jobFileContents);
			}
		}
	}
}