using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Tango.BL;
using Tango.BL.Entities;
using Tango.Integration.Operation;
using Tango.PPC.Common.Models;
namespace Tango.PPC.Common.Printing
{
///
/// Represents a printing manager capable of executing jobs, changing job statuses according to completion stage and generating sample and fine tuning jobs.
///
public interface IPrintingManager
{
///
/// Gets or sets a value indicating whether prevent printing by remote desktop.
///
bool PreventPrintingByRemoteDesktop { get; set; }
///
/// Prints the specified job.
/// When the job is complete the job status will change according to the completion stage.
///
/// The job.
/// The context.
///
Task Print(Job job, ObservablesContext context, PrintingConfiguration config = null);
///
/// Creates a sample dye job from the specified job and prints it.
/// When the sample dye job is complete, the job sample dye status will change.
///
/// The job.
/// The context.
///
Task PrintSample(Job job, ObservablesContext context);
///
/// Creates a fine tuning job from the specified job and fine tune items.
/// When the fine tuning job is complete, the job fine tuning status will change.
///
/// The job.
/// The context.
/// The fine tune items.
///
Task PrintFineTuning(Job job, ObservablesContext context, IEnumerable fineTuneItems);
}
}