private IEnumerable <CloudPrintJob> UpdateCloudPrintJobs(CloudPrinter printer) { List <CloudPrintJob> jobs; dynamic fetchdata = HTTPHelper.PostCloudPrintUrlEncodedRequest(OAuthTicket, "fetch", new { printerid = printer.PrinterID }); if (fetchdata.success) { jobs = ((IEnumerable <dynamic>)fetchdata.jobs).Select(j => new CloudPrintJobImpl(this, printer, j)).OfType <CloudPrintJob>().ToList(); } else { jobs = new List <CloudPrintJob>(); } foreach (CloudPrintJob job in jobs) { if (!_PrintJobs.ContainsKey(job.JobID)) { _PrintJobs[job.JobID] = job; PrintJobProcessor.AddJob(job); //Logger.Log(LogLevel.Info, "Received new print job {0} [{1}] owned by {2} for printer [{3}]", job.JobID, job.JobTitle, job.Username, job.Printer.Name); } } return(jobs); }
public void DrawCloud_TestData_CorrectBitmap() { var imageSize = new Size(1920, 1080); var cloudPrinter = new CloudPrinter(new[] { new TxtFileReader() }); var bitmap = cloudPrinter.DrawCloud("test.txt", new RectangleLayouter(new Point(imageSize / 2)), imageSize, FontFamily.Families.First(x => x.Name == "Arial"), new SingleColorSelector(Color.Black)); var correctResult = (Bitmap)Image.FromFile("test.png"); Comparison(bitmap, correctResult).Should().BeTrue(); }
public Form1(CloudPrinter cloudPrinter, IEnumerable <IColorSelectorFabric> colorSelectors, IEnumerable <IBaseCloudLayouterFabric> layouters) { InitializeComponent(); fontSelector.Items.AddRange(FontFamily.Families.Select(x => x.Name).ToArray()); this.colorSelectors = colorSelectors.ToList(); this.layouters = layouters.ToList(); layouterSelector.Items.AddRange(this.layouters.Select(x => x.Name).ToArray()); colorSelectorSelector.Items.AddRange(this.colorSelectors.Select(x => x.Name).ToArray()); this.cloudPrinter = cloudPrinter; }
private void cboPrinters_SelectedIndexChanged(object sender, EventArgs e) { lblNameFromList.Text = string.Empty; CloudPrinter printerInfo = (CloudPrinter)cboPrinters.SelectedItem; if (cboPrinters.SelectedItem != null) { lblNameFromList.Text = printerInfo.defaultDisplayName; lblPrinterID.Text = printerInfo.id; lblPrinterNameFromList.Text = printerInfo.defaultDisplayName; } }
public Form1(CloudPrinter cloudPrinter, IEnumerable <IColorSelectorFabric> colorSelectors, IEnumerable <IBaseCloudLayouterFabric> layouters) { Result.OfAction(InitializeComponent).Then(_ => fontSelector.Items.AddRange(FontFamily.Families.Select(x => x.Name).ToArray())) .Then(_ => this.colorSelectors = colorSelectors.ToList()) .Then(_ => this.layouters = layouters.ToList()) .Then(_ => layouterSelector.Items.AddRange(this.layouters.Select(x => x.Name).ToArray())) .Then(_ => colorSelectorSelector.Items.AddRange(this.colorSelectors.Select(x => x.Name).ToArray())) .Then(_ => this.cloudPrinter = cloudPrinter) .OnFail(x => MessageBox.Show(x)); }
public IEnumerable <CloudPrintJob> UpdateCloudPrintJobs(string printerid) { CloudPrinter printer = GetCloudPrinterById(printerid); if (printer != null) { return(UpdateCloudPrintJobs(printer)); } else { return(new CloudPrintJob[0]); } }
public CloudPrintJobImpl(CloudPrintProxy proxy, CloudPrinter printer, dynamic job) { this._Proxy = proxy; this._Printer = printer; this._JobAttributes = job; string jobdirname = Path.Combine(Config.DataDirName, "PrintJobs", this.Username); this._PrintDataBasename = Path.Combine(jobdirname, job.id); this._PrintDataFileName = _PrintDataBasename + ".pdf"; Directory.CreateDirectory(jobdirname); WriteJobData(); WriteJobTicket(); WriteJobXml(); WriteJobJson(); _PrintJobs[this.JobID] = this; }
private void UpdateCloudPrinter(CloudPrinter printer) { var reqdata = new { printproxydummyparameter = "", printerid = printer.PrinterID, printer = printer.Name, proxy = Config.CloudPrintProxyID, description = printer.Description, capsHash = printer.CapsHash, status = printer.Status, capabilities = printer.Capabilities, defaults = printer.Defaults }; string printersdir = Path.Combine(Config.DataDirName, "Printers"); Directory.CreateDirectory(printersdir); File.WriteAllBytes(Path.Combine(printersdir, printer.PrinterID + ".capabilities.xml"), Encoding.UTF8.GetBytes(printer.Capabilities)); File.WriteAllBytes(Path.Combine(printersdir, printer.PrinterID + ".defaults.xml"), Encoding.UTF8.GetBytes(printer.Defaults)); var response = HTTPHelper.PostCloudPrintMultiPartRequest(OAuthTicket, "update", reqdata); }
private string RegisterCloudPrinter(CloudPrinter printer) { Logger.Log(LogLevel.Debug, "Registering cloud printer [{0}]", printer.Name); var reqdata = new { printproxydummyparameter = "", printer = printer.Name, proxy = Config.CloudPrintProxyID, description = printer.Description, capsHash = printer.CapsHash, status = printer.Status, capabilities = printer.Capabilities, defaults = printer.Defaults }; var response = HTTPHelper.PostCloudPrintMultiPartRequest(OAuthTicket, "register", reqdata); if (response.success == true) { printer.SetPrinterID(response.printers[0].id); Logger.Log(LogLevel.Debug, "Printer [{0}] has ID {1}", printer.Name, printer.PrinterID); if (Config.OAuthRefreshToken == null && OAuthCodePollURL == null) { OAuthCodePollURL = response.polling_url; return(response.complete_invite_url); } return(null); } else { throw new PrintProxyException(response.message); } }
private IEnumerable<CloudPrintJob> UpdateCloudPrintJobs(CloudPrinter printer) { List<CloudPrintJob> jobs; dynamic fetchdata = HTTPHelper.PostCloudPrintUrlEncodedRequest(OAuthTicket, "fetch", new { printerid = printer.PrinterID }); if (fetchdata.success) { jobs = ((IEnumerable<dynamic>)fetchdata.jobs).Select(j => new CloudPrintJobImpl(this, printer, j)).OfType<CloudPrintJob>().ToList(); } else { jobs = new List<CloudPrintJob>(); } foreach (CloudPrintJob job in jobs) { if (!_PrintJobs.ContainsKey(job.JobID)) { _PrintJobs[job.JobID] = job; PrintJobProcessor.AddJob(job); //Logger.Log(LogLevel.Info, "Received new print job {0} [{1}] owned by {2} for printer [{3}]", job.JobID, job.JobTitle, job.Username, job.Printer.Name); } } return jobs; }
private void UpdateCloudPrinter(CloudPrinter printer) { var reqdata = new { printproxydummyparameter = "", printerid = printer.PrinterID, printer = printer.Name, proxy = Config.CloudPrintProxyID, description = printer.Description, capsHash = printer.CapsHash, status = printer.Status, capabilities = printer.Capabilities, defaults = printer.Defaults }; string printersdir = Path.Combine(Config.DataDirName, "Printers"); Directory.CreateDirectory(printersdir); File.WriteAllBytes(Path.Combine(printersdir, printer.Name + ".capabilities.xml"), Encoding.UTF8.GetBytes(printer.Capabilities)); File.WriteAllBytes(Path.Combine(printersdir, printer.Name + ".defaults.xml"), Encoding.UTF8.GetBytes(printer.Defaults)); var response = HTTPHelper.PostCloudPrintMultiPartRequest(OAuthTicket, "update", reqdata); }
private string RegisterCloudPrinter(CloudPrinter printer) { Logger.Log(LogLevel.Debug, "Registering cloud printer [{0}]", printer.Name); var reqdata = new { printproxydummyparameter = "", printer = printer.Name, proxy = Config.CloudPrintProxyID, description = printer.Description, capsHash = printer.CapsHash, status = printer.Status, capabilities = printer.Capabilities, defaults = printer.Defaults }; var response = HTTPHelper.PostCloudPrintMultiPartRequest(OAuthTicket, "register", reqdata); if (response.success == true) { printer.SetPrinterID(response.printers[0].id); Logger.Log(LogLevel.Debug, "Printer [{0}] has ID {1}", printer.Name, printer.PrinterID); if (Config.OAuthRefreshToken == null && OAuthCodePollURL == null) { OAuthCodePollURL = response.polling_url; return response.complete_invite_url; } return null; } else { throw new PrintProxyException(response.message); } }