Commit e759bc90 by Liv Haapala

added projects

0 parents
Showing with 2677 additions and 0 deletions

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CardDisplay", "CardDisplay\CardDisplay.csproj", "{9CE1A44D-28CF-4277-BAC7-D73A8C2D8059}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{9CE1A44D-28CF-4277-BAC7-D73A8C2D8059}.Debug|x86.ActiveCfg = Debug|x86
{9CE1A44D-28CF-4277-BAC7-D73A8C2D8059}.Debug|x86.Build.0 = Debug|x86
{9CE1A44D-28CF-4277-BAC7-D73A8C2D8059}.Release|x86.ActiveCfg = Release|x86
{9CE1A44D-28CF-4277-BAC7-D73A8C2D8059}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
No preview for this file type
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{9CE1A44D-28CF-4277-BAC7-D73A8C2D8059}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>CardDisplay</RootNamespace>
<AssemblyName>CardDisplay</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>Client</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RestClient.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
\ No newline at end of file
namespace CardDisplay
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.pictureBox1 = new System.Windows.Forms.PictureBox();
this.pictureBox2 = new System.Windows.Forms.PictureBox();
this.pictureBox3 = new System.Windows.Forms.PictureBox();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.comboBox2 = new System.Windows.Forms.ComboBox();
this.comboBox3 = new System.Windows.Forms.ComboBox();
this.apiUrlTextBox = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.apiKeyTextBox = new System.Windows.Forms.TextBox();
this.timer1 = new System.Windows.Forms.Timer(this.components);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).BeginInit();
this.SuspendLayout();
//
// pictureBox1
//
this.pictureBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox1.Location = new System.Drawing.Point(12, 59);
this.pictureBox1.Name = "pictureBox1";
this.pictureBox1.Size = new System.Drawing.Size(159, 252);
this.pictureBox1.TabIndex = 0;
this.pictureBox1.TabStop = false;
//
// pictureBox2
//
this.pictureBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox2.Location = new System.Drawing.Point(177, 59);
this.pictureBox2.Name = "pictureBox2";
this.pictureBox2.Size = new System.Drawing.Size(159, 252);
this.pictureBox2.TabIndex = 1;
this.pictureBox2.TabStop = false;
//
// pictureBox3
//
this.pictureBox3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pictureBox3.Location = new System.Drawing.Point(342, 59);
this.pictureBox3.Name = "pictureBox3";
this.pictureBox3.Size = new System.Drawing.Size(159, 252);
this.pictureBox3.TabIndex = 2;
this.pictureBox3.TabStop = false;
//
// comboBox1
//
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(12, 32);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(159, 21);
this.comboBox1.TabIndex = 3;
//
// comboBox2
//
this.comboBox2.FormattingEnabled = true;
this.comboBox2.Location = new System.Drawing.Point(177, 32);
this.comboBox2.Name = "comboBox2";
this.comboBox2.Size = new System.Drawing.Size(159, 21);
this.comboBox2.TabIndex = 4;
//
// comboBox3
//
this.comboBox3.FormattingEnabled = true;
this.comboBox3.Location = new System.Drawing.Point(342, 32);
this.comboBox3.Name = "comboBox3";
this.comboBox3.Size = new System.Drawing.Size(159, 21);
this.comboBox3.TabIndex = 5;
//
// apiUrlTextBox
//
this.apiUrlTextBox.Location = new System.Drawing.Point(59, 6);
this.apiUrlTextBox.Name = "apiUrlTextBox";
this.apiUrlTextBox.Size = new System.Drawing.Size(159, 20);
this.apiUrlTextBox.TabIndex = 6;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(12, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(41, 13);
this.label1.TabIndex = 7;
this.label1.Text = "Api Url:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(224, 9);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(45, 13);
this.label2.TabIndex = 9;
this.label2.Text = "Api key:";
//
// apiKeyTextBox
//
this.apiKeyTextBox.Location = new System.Drawing.Point(275, 6);
this.apiKeyTextBox.Name = "apiKeyTextBox";
this.apiKeyTextBox.Size = new System.Drawing.Size(124, 20);
this.apiKeyTextBox.TabIndex = 8;
//
// timer1
//
this.timer1.Interval = 1000;
this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(508, 345);
this.Controls.Add(this.label2);
this.Controls.Add(this.apiKeyTextBox);
this.Controls.Add(this.label1);
this.Controls.Add(this.apiUrlTextBox);
this.Controls.Add(this.comboBox3);
this.Controls.Add(this.comboBox2);
this.Controls.Add(this.comboBox1);
this.Controls.Add(this.pictureBox3);
this.Controls.Add(this.pictureBox2);
this.Controls.Add(this.pictureBox1);
this.Name = "Form1";
this.Text = "CardDisplay";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.Load += new System.EventHandler(this.Form1_Load);
this.Resize += new System.EventHandler(this.Form1_Resize);
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.pictureBox3)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.PictureBox pictureBox1;
private System.Windows.Forms.PictureBox pictureBox2;
private System.Windows.Forms.PictureBox pictureBox3;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.ComboBox comboBox2;
private System.Windows.Forms.ComboBox comboBox3;
private System.Windows.Forms.TextBox apiUrlTextBox;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox apiKeyTextBox;
private System.Windows.Forms.Timer timer1;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace CardDisplay
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
}
private void Form1_Load(object sender, EventArgs e)
{
apiKeyTextBox.Text = Properties.Settings.Default.ApiKey;
apiUrlTextBox.Text = Properties.Settings.Default.ApiURL;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
Properties.Settings.Default.ApiKey = apiKeyTextBox.Text;
Properties.Settings.Default.ApiURL = apiUrlTextBox.Text;
Properties.Settings.Default.Save();
}
private void Form1_Resize(object sender, EventArgs e)
{
//82
//159; 252 = 524; 384
//double factor = 3.29;
double Xfactor = 3;
double ratio = 1.58;
int spaces = 47;
int newWidth = Convert.ToInt32(Convert.ToDouble(this.Width - spaces) / Xfactor);
pictureBox1.Size = new System.Drawing.Size(newWidth, Convert.ToInt32(newWidth * ratio));
comboBox1.Size = new System.Drawing.Size(newWidth, 21);
pictureBox2.Size = new System.Drawing.Size(newWidth, Convert.ToInt32(newWidth * ratio));
pictureBox2.Location = new Point(pictureBox1.Size.Width + 18, 59);
comboBox2.Size = new System.Drawing.Size(newWidth, 21);
comboBox2.Location = new Point(pictureBox2.Location.X, comboBox2.Location.Y);
pictureBox3.Size = new System.Drawing.Size(newWidth, Convert.ToInt32(newWidth * ratio));
pictureBox3.Location = new Point(pictureBox1.Size.Width * 2 + 25, 59);
comboBox3.Size = new System.Drawing.Size(newWidth, 21);
comboBox3.Location = new Point(pictureBox3.Location.X, comboBox3.Location.Y);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace CardDisplay
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("CardDisplay")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CardDisplay")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("733980a9-fe75-4d9b-a678-3aacc5f5b042")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace CardDisplay.Properties
{
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources
{
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager
{
get
{
if ((resourceMan == null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CardDisplay.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace CardDisplay.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string ApiKey {
get {
return ((string)(this["ApiKey"]));
}
set {
this["ApiKey"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string ApiURL {
get {
return ((string)(this["ApiURL"]));
}
set {
this["ApiURL"] = value;
}
}
}
}
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="CardDisplay.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="ApiKey" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="ApiURL" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings>
</SettingsFile>
\ No newline at end of file
using System;
using System.IO;
using System.Net;
using System.Text;
public enum HttpVerb
{
GET,
POST,
PUT,
DELETE
}
namespace HttpUtils
{
public class RestClient
{
public string EndPoint { get; set; }
public HttpVerb Method { get; set; }
public string ContentType { get; set; }
public string PostData { get; set; }
public RestClient()
{
EndPoint = "";
Method = HttpVerb.GET;
ContentType = "application/json";
PostData = "";
}
public RestClient(string endpoint)
{
EndPoint = endpoint;
Method = HttpVerb.GET;
ContentType = "application/json";
PostData = "";
}
public RestClient(string endpoint, HttpVerb method)
{
EndPoint = endpoint;
Method = method;
ContentType = "application/json";
PostData = "";
}
public RestClient(string endpoint, HttpVerb method, string postData)
{
EndPoint = endpoint;
Method = method;
ContentType = "application/json";
PostData = postData;
}
public string MakeRequest()
{
return MakeRequest("");
}
public string MakeRequest(string parameters)
{
var request = (HttpWebRequest)WebRequest.Create(EndPoint + parameters);
request.Method = Method.ToString();
request.ContentLength = 0;
request.ContentType = ContentType;
if (!string.IsNullOrEmpty(PostData) && Method == HttpVerb.POST)
{
var encoding = new UTF8Encoding();
var bytes = Encoding.GetEncoding("iso-8859-1").GetBytes(PostData);
request.ContentLength = bytes.Length;
using (var writeStream = request.GetRequestStream())
{
writeStream.Write(bytes, 0, bytes.Length);
}
}
using (var response = (HttpWebResponse)request.GetResponse())
{
var responseValue = string.Empty;
if (response.StatusCode != HttpStatusCode.OK)
{
var message = String.Format("Request failed. Received HTTP {0}", response.StatusCode);
throw new ApplicationException(message);
}
// grab the response
using (var responseStream = response.GetResponseStream())
{
if (responseStream != null)
using (var reader = new StreamReader(responseStream))
{
responseValue = reader.ReadToEnd();
}
}
return responseValue;
}
}
} // class
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CardDisplay.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<CardDisplay.Properties.Settings>
<setting name="ApiKey" serializeAs="String">
<value />
</setting>
<setting name="ApiURL" serializeAs="String">
<value />
</setting>
</CardDisplay.Properties.Settings>
</userSettings>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CardDisplay.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<CardDisplay.Properties.Settings>
<setting name="ApiKey" serializeAs="String">
<value />
</setting>
<setting name="ApiURL" serializeAs="String">
<value />
</setting>
</CardDisplay.Properties.Settings>
</userSettings>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CardDisplay.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<CardDisplay.Properties.Settings>
<setting name="ApiKey" serializeAs="String">
<value />
</setting>
<setting name="ApiURL" serializeAs="String">
<value />
</setting>
</CardDisplay.Properties.Settings>
</userSettings>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
C:\devel\proj\moya\CardDisplay\CardDisplay\CardDisplay\bin\Debug\CardDisplay.exe.config
C:\devel\proj\moya\CardDisplay\CardDisplay\CardDisplay\bin\Debug\CardDisplay.exe
C:\devel\proj\moya\CardDisplay\CardDisplay\CardDisplay\bin\Debug\CardDisplay.pdb
C:\devel\proj\moya\CardDisplay\CardDisplay\CardDisplay\obj\x86\Debug\CardDisplay.Form1.resources
C:\devel\proj\moya\CardDisplay\CardDisplay\CardDisplay\obj\x86\Debug\CardDisplay.Properties.Resources.resources
C:\devel\proj\moya\CardDisplay\CardDisplay\CardDisplay\obj\x86\Debug\CardDisplay.csproj.GenerateResource.Cache
C:\devel\proj\moya\CardDisplay\CardDisplay\CardDisplay\obj\x86\Debug\CardDisplay.exe
C:\devel\proj\moya\CardDisplay\CardDisplay\CardDisplay\obj\x86\Debug\CardDisplay.pdb

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "moyaPrintServer", "moyaPrintServer\moyaPrintServer.csproj", "{B920D90D-D83F-4666-8F55-ECB4E6E36231}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B920D90D-D83F-4666-8F55-ECB4E6E36231}.Debug|x86.ActiveCfg = Debug|x86
{B920D90D-D83F-4666-8F55-ECB4E6E36231}.Debug|x86.Build.0 = Debug|x86
{B920D90D-D83F-4666-8F55-ECB4E6E36231}.Release|x86.ActiveCfg = Release|x86
{B920D90D-D83F-4666-8F55-ECB4E6E36231}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace moyaPrintServer
{
public class MD5Hash
{
public static string CalculateMD5Hash(string input)
{
// step 1, calculate MD5 hash from input
System.Security.Cryptography.MD5 md5 = System.Security.Cryptography.MD5.Create();
byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
byte[] hash = md5.ComputeHash(inputBytes);
// step 2, convert byte array to hex string
StringBuilder sb = new StringBuilder();
for (int i = 0; i < hash.Length; i++)
{
sb.Append(hash[i].ToString("X2"));
}
return sb.ToString();
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace moyaPrintServer
{
public class Card
{
public int cardId;
public string cardTemplate;
public string username;
public string wholeName;
public string state;
}
}
namespace moyaPrintServer
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1));
this.apiUrlTextBox = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.apiKeyTextBox = new System.Windows.Forms.TextBox();
this.autoPrintCheckBox = new System.Windows.Forms.CheckBox();
this.listView = new System.Windows.Forms.ListView();
this.columnHeader1 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader2 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.columnHeader3 = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.label3 = new System.Windows.Forms.Label();
this.printButton = new System.Windows.Forms.Button();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel();
this.PrintersComboBox = new System.Windows.Forms.ComboBox();
this.label4 = new System.Windows.Forms.Label();
this.refreshButton = new System.Windows.Forms.Button();
this.printTimer = new System.Windows.Forms.Timer(this.components);
this.statusStrip1.SuspendLayout();
this.SuspendLayout();
//
// apiUrlTextBox
//
this.apiUrlTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.apiUrlTextBox.Location = new System.Drawing.Point(12, 30);
this.apiUrlTextBox.Name = "apiUrlTextBox";
this.apiUrlTextBox.Size = new System.Drawing.Size(368, 20);
this.apiUrlTextBox.TabIndex = 0;
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(9, 9);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(52, 13);
this.label1.TabIndex = 1;
this.label1.Text = "API URL:";
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(9, 53);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(48, 13);
this.label2.TabIndex = 3;
this.label2.Text = "API Key:";
//
// apiKeyTextBox
//
this.apiKeyTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.apiKeyTextBox.Location = new System.Drawing.Point(13, 69);
this.apiKeyTextBox.Name = "apiKeyTextBox";
this.apiKeyTextBox.Size = new System.Drawing.Size(366, 20);
this.apiKeyTextBox.TabIndex = 2;
//
// autoPrintCheckBox
//
this.autoPrintCheckBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.autoPrintCheckBox.AutoSize = true;
this.autoPrintCheckBox.Location = new System.Drawing.Point(12, 276);
this.autoPrintCheckBox.Name = "autoPrintCheckBox";
this.autoPrintCheckBox.Size = new System.Drawing.Size(69, 17);
this.autoPrintCheckBox.TabIndex = 4;
this.autoPrintCheckBox.Text = "AutoPrint";
this.autoPrintCheckBox.UseVisualStyleBackColor = true;
this.autoPrintCheckBox.CheckedChanged += new System.EventHandler(this.autoPrintCheckBox_CheckedChanged);
//
// listView
//
this.listView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.listView.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
this.columnHeader1,
this.columnHeader2,
this.columnHeader3});
this.listView.FullRowSelect = true;
this.listView.Location = new System.Drawing.Point(12, 148);
this.listView.Name = "listView";
this.listView.Size = new System.Drawing.Size(368, 122);
this.listView.TabIndex = 5;
this.listView.UseCompatibleStateImageBehavior = false;
this.listView.View = System.Windows.Forms.View.Details;
//
// columnHeader1
//
this.columnHeader1.Text = "ID";
this.columnHeader1.Width = 57;
//
// columnHeader2
//
this.columnHeader2.Text = "Nick";
this.columnHeader2.Width = 106;
//
// columnHeader3
//
this.columnHeader3.Text = "Name";
this.columnHeader3.Width = 192;
//
// label3
//
this.label3.AutoSize = true;
this.label3.Location = new System.Drawing.Point(9, 132);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(39, 13);
this.label3.TabIndex = 6;
this.label3.Text = "Queue";
//
// printButton
//
this.printButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.printButton.Location = new System.Drawing.Point(319, 276);
this.printButton.Name = "printButton";
this.printButton.Size = new System.Drawing.Size(60, 23);
this.printButton.TabIndex = 7;
this.printButton.Text = "Print";
this.printButton.UseVisualStyleBackColor = true;
this.printButton.Click += new System.EventHandler(this.printButton_Click);
//
// statusStrip1
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripStatusLabel1});
this.statusStrip1.Location = new System.Drawing.Point(0, 306);
this.statusStrip1.Name = "statusStrip1";
this.statusStrip1.Size = new System.Drawing.Size(391, 22);
this.statusStrip1.TabIndex = 8;
this.statusStrip1.Text = "statusStrip1";
//
// toolStripStatusLabel1
//
this.toolStripStatusLabel1.Name = "toolStripStatusLabel1";
this.toolStripStatusLabel1.Size = new System.Drawing.Size(85, 17);
this.toolStripStatusLabel1.Text = "NotConnected";
//
// PrintersComboBox
//
this.PrintersComboBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.PrintersComboBox.FormattingEnabled = true;
this.PrintersComboBox.Location = new System.Drawing.Point(12, 108);
this.PrintersComboBox.Name = "PrintersComboBox";
this.PrintersComboBox.Size = new System.Drawing.Size(368, 21);
this.PrintersComboBox.TabIndex = 10;
this.PrintersComboBox.SelectedIndexChanged += new System.EventHandler(this.PrintersComboBox_SelectedIndexChanged);
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(9, 92);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(40, 13);
this.label4.TabIndex = 11;
this.label4.Text = "Printer:";
//
// refreshButton
//
this.refreshButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.refreshButton.Location = new System.Drawing.Point(252, 276);
this.refreshButton.Name = "refreshButton";
this.refreshButton.Size = new System.Drawing.Size(61, 23);
this.refreshButton.TabIndex = 12;
this.refreshButton.Text = "refresh";
this.refreshButton.UseVisualStyleBackColor = true;
this.refreshButton.Click += new System.EventHandler(this.refreshButton_Click);
//
// printTimer
//
this.printTimer.Interval = 1000;
this.printTimer.Tick += new System.EventHandler(this.printTimer_Tick);
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(391, 328);
this.Controls.Add(this.refreshButton);
this.Controls.Add(this.label4);
this.Controls.Add(this.PrintersComboBox);
this.Controls.Add(this.statusStrip1);
this.Controls.Add(this.printButton);
this.Controls.Add(this.label3);
this.Controls.Add(this.listView);
this.Controls.Add(this.autoPrintCheckBox);
this.Controls.Add(this.label2);
this.Controls.Add(this.apiKeyTextBox);
this.Controls.Add(this.label1);
this.Controls.Add(this.apiUrlTextBox);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Form1";
this.Text = "Moya Print server";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form1_FormClosing);
this.Load += new System.EventHandler(this.Form1_Load);
this.statusStrip1.ResumeLayout(false);
this.statusStrip1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox apiUrlTextBox;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox apiKeyTextBox;
private System.Windows.Forms.CheckBox autoPrintCheckBox;
private System.Windows.Forms.ListView listView;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.Button printButton;
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1;
private System.Windows.Forms.ComboBox PrintersComboBox;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.Button refreshButton;
private System.Windows.Forms.Timer printTimer;
private System.Windows.Forms.ColumnHeader columnHeader1;
private System.Windows.Forms.ColumnHeader columnHeader2;
private System.Windows.Forms.ColumnHeader columnHeader3;
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Net;
using System.Text;
using System.IO;
using HttpUtils;
using System.Drawing.Printing;
using System.Web.Script.Serialization;
using System.Printing;
namespace moyaPrintServer
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
foreach (string printer in System.Drawing.Printing.PrinterSettings.InstalledPrinters)
{
PrintersComboBox.Items.Add(printer);
}
autoPrintCheckBox.Checked = Properties.Settings.Default.AutoPrint;
PrintersComboBox.SelectedItem = Properties.Settings.Default.Printer;
apiKeyTextBox.Text = Properties.Settings.Default.ApiKey;
apiUrlTextBox.Text = Properties.Settings.Default.ApiURL;
}
private void PrintersComboBox_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (PrintersComboBox.SelectedItem != null)
{
Properties.Settings.Default.Printer = PrintersComboBox.SelectedItem.ToString();
}
Properties.Settings.Default.AutoPrint = autoPrintCheckBox.Checked;
Properties.Settings.Default.ApiKey = apiKeyTextBox.Text;
Properties.Settings.Default.ApiURL = apiUrlTextBox.Text;
Properties.Settings.Default.Save();
}
private void refreshButton_Click(object sender, EventArgs e)
{
refreshList();
}
private void printButton_Click(object sender, EventArgs e)
{
if (listView.SelectedItems.Count > 0)
{
autoPrintCheckBox.Checked = false;
ListView.SelectedListViewItemCollection items = listView.SelectedItems;
foreach (ListViewItem lvi in items)
{
PrintCard((Card)lvi.Tag);
listView.Items.Remove(lvi);
}
}
}
private void PrintCard(Card card)
{
currentUserId = card.cardId;
RestClient client = new RestClient();
string api = Properties.Settings.Default.ApiURL + "/card/GetImage/" + currentUserId;
WebRequest request = WebRequest.Create(api + "?key=" + MD5Hash.CalculateMD5Hash(api));
try
{
using (WebResponse response = request.GetResponse())
{
using (Stream stream = response.GetResponseStream())
{
currentImage = Bitmap.FromStream(stream);
}
}
}
catch (Exception e)
{
toolStripStatusLabel1.Text = e.Message;
return;
}
PrintDocument pd = new PrintDocument();
pd.DocumentName = "Card "+ card.cardId + " " + card.username;
pd.DefaultPageSettings.PaperSize = new System.Drawing.Printing.PaperSize("Card " + this.Name, 216, 339);
pd.PrinterSettings.PrinterName = PrintersComboBox.SelectedItem.ToString();
pd.DefaultPageSettings.Landscape = false;
pd.PrintPage += new PrintPageEventHandler(PrintPage);
pd.Print();
}
int currentUserId = 0;
System.Drawing.Image currentImage;
private void PrintPage(object o, System.Drawing.Printing.PrintPageEventArgs ev)
{
ev.Graphics.DrawImage(currentImage, 0f, 0f, new Rectangle(0, 0, currentImage.Width, currentImage.Height), GraphicsUnit.Pixel);
// Meillä ei ole kuin yks sivu
try
{
RestClient client = new RestClient(Properties.Settings.Default.ApiURL + "/card/Printed/" + currentUserId);
client.MakeRequest("?key=" + MD5Hash.CalculateMD5Hash(client.EndPoint));
}
catch (Exception e)
{
toolStripStatusLabel1.Text = e.Message;
}
ev.HasMorePages = false;
}
private void autoPrintCheckBox_CheckedChanged(object sender, EventArgs e)
{
printTimer.Enabled = autoPrintCheckBox.Checked;
}
private void printTimer_Tick(object sender, EventArgs e)
{
if (listView.Items.Count == 0)
{
refreshList();
}
if (listView.Items.Count > 0 && GetNumberOfPrintJobs() < 1)
{
Card card = (Card)listView.Items[0].Tag;
try
{
RestClient client = new RestClient(Properties.Settings.Default.ApiURL + "/card/Reserve/" + card.cardId);
client.MakeRequest("?key=" + MD5Hash.CalculateMD5Hash(client.EndPoint));
}
catch (Exception ex)
{
//varattu kortti. Skipataan
listView.Items.Remove(listView.Items[0]);
return;
}
PrintCard(card);
listView.Items.Remove(listView.Items[0]);
}
}
private void refreshList()
{
try
{
string url = Properties.Settings.Default.ApiURL + "/card/ListUnprinted";
RestClient client = new RestClient(url);
string json = client.MakeRequest("?key=" + MD5Hash.CalculateMD5Hash(client.EndPoint));
var ser = new JavaScriptSerializer();
PrintQueueList queuelist = ser.Deserialize<PrintQueueList>(json);
if (queuelist == null)
{
toolStripStatusLabel1.Text = "No new cards";
return;
}
listView.BeginUpdate();
listView.Items.Clear();
foreach (Card card in queuelist.cards)
{
if (card.state == "VALIDATED")
{
ListViewItem lvi = listView.Items.Add(card.cardId.ToString());
lvi.SubItems.Add(card.username);
lvi.SubItems.Add(card.wholeName);
lvi.Tag = card;
}
}
listView.EndUpdate();
}
catch (Exception ex)
{
toolStripStatusLabel1.Text = ex.Message;
}
}
private int GetNumberOfPrintJobs()
{
LocalPrintServer server = new LocalPrintServer();
PrintQueueCollection queueCollection = server.GetPrintQueues();
PrintQueue printQueue = null;
foreach (PrintQueue pq in queueCollection)
{
if (pq.FullName == PrintersComboBox.SelectedItem.ToString())
printQueue = pq;
}
int numberOfJobs = 0;
if (printQueue != null)
numberOfJobs = printQueue.NumberOfJobs;
return numberOfJobs;
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="printTimer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>133, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAgAICAQAAAAAADoAgAAhgAAABAQEAAAAAAAKAEAAG4DAAAwMAAAAQAIAKgOAACWBAAAICAAAAEA
CACoCAAAPhMAABAQAAABAAgAaAUAAOYbAAAwMAAAAQAgAKglAABOIQAAICAAAAEAIACoEAAA9kYAABAQ
AAABACAAaAQAAJ5XAAAoAAAAIAAAAEAAAAABAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwACAgIAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////ABER
ERERERERERERERERERERERERERERERERERERERERERERERERAAERERERERERERERERERAHiAARERERER
ERERERERAHd4iIABERERERERERERAHd3gAiIgAERERERERERAHd3iHiACIiAARERERERAHd3iHh4iIAI
iIABEREREHd3iHd4eIiIgAiIgAERERh3iHd3eHiIiIiACIiAEREYiHd3d3h4iIiIiIAIgBERiHh3d3d4
eIiIiIiIgAAREY94d3d3ePiIiIiIiIiAARGPeHd3d/iHeIiIiIiIiAARj3h3d/93eId4iIiIiIgIAY94
d/93d3d4h3iIiIiIB4CPeP93eZd4h3iHeIiIiAeIj/iHeqd4h3d3CId4iIgIEYj3eId4h3d3APcIh3iI
ARERiPd4iId3AP//B3iHeAERERGI93iIAP/8z3CHeIEREREREYj3eI/8z//wiIERERERERERiPd4///M
9wERERERERERERGI+P/M//9wEREREREREREREYiP//zP9wERERERERERERERj/zP//9wERERERERERER
ERj///zP9wARERERERERERERj/zP//+IERERERERERERERj///+IERERERERERERERERj/+IERERERER
ERERERERERiIERERERERERERERERERERERERERER////////////8f///8B///8AH//8AAf/8AAB/8AA
AH+AAAAfgAAAD4AAAA8AAAAPAAAABwAAAAMAAAABAAAAAAAAAAAAAAADAAAAB8AAAAfwAAAf/AAAf/8A
Af//wAD///AAf//8AD///gAP//8AD///gD///8D////j//////8oAAAAEAAAACAAAAABAAQAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAICAAIAAAACAAIAAgIAAAMDAwACAgIAAAAD/AAD/
AAAA//8A/wAAAP8A/wD//wAA////ABEREQABEREREREAeIABERERAHeACIABERB3iHiACIABGIh3eIiA
CAGId3d4iIiAAY93d/iIiIiAj3f/d3iIiICP/3eZd3iIgI93qnd4gHiAGI93eI/wcAERGI+P//8BERER
GI////ARERERGP///wARERERj/+IEREREREYiBER/H93iPAfeIjABwiIgAEREYABiHcAAXiIAACACAAA
EREAAHd3AAB4iIABiIDgBxER+AN3d/4AeIj/A4iI/48RESgAAAAwAAAAYAAAAAEACAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAmWZmAJZmZgCXaGgAn29vAJRnZwCPaWkAkWtrAI1oaADMmZkAuYyMAL+S
kgCTcHAAw5aWALGIiACmgIAAs4yMAJBxcQCXd3cAkXR0AJZ5eQChg4MAmX19AGxZWQCmiooAmX9/AJyC
ggCVfHwAZlZWAH9sbACIdXUAkn9/AJ+MjADSu7sAp5WVAK+iogC0qKgAtqqqAP/y8gC5s7MA//n5AJt0
cwCsgoEAzLKxAKZ3dACmeHYAond1ALOLiQCmdXEAxpuXAObY1wDfzMoA7OLhAP+mmQD/vLMA/8e/AP/p
5gDy6+oA/6yfAP/TzACzgngAuY2EAL+XjwDGopoA2cG7AOzg3QC5iXsA0rSsAObTzAD/tpkA/7eaAP+7
nwD/ybMA0q6fAP+8nQDSn4kAzJ+LAP/XxgD/4dIA+PTyAP/AnwD/xKIA7NfMAP/v5gDs1ccA5r2hAObE
rgD/yaAA/8ulAPLYxQD/+/gA/8aZAP/InQD/zaYA/8+nAP/RqgD51rYA/9euAP/XsAD/2LIA/9q1AP/d
uwD/4MEA/+jSAP/r1wD/7t0A//HjAP/58wD/48YA/+bMAP/06AD/9+4AZv+ZAFaibwBIb1UAUnheAGV4
awBZzIAAa3VvAP///wD9/f0A+vr6APf39wD19fUA8vLyAPHx8QDv7+8A7e3tAOrq6gDp6ekA5+fnAOXl
5QDj4+MA4ODgAN7e3gDd3d0A2traANnZ2QDX19cA1NTUANLS0gDR0dEAz8/PAMzMzADKysoAycnJAMbG
xgDFxcUAwsLCAMDAwAC/v78Avb29ALu7uwC5ubkAt7e3ALS0tACysrIAsLCwAK6urgCsrKwAq6urAKmp
qQCnp6cApaWlAKKiogCgoKAAnp6eAJycnACbm5sAmZmZAJeXlwCUlJQAk5OTAJGRkQCPj48AjY2NAIqK
igCJiYkAhoaGAIWFhQCDg4MAgICAAH9/fwB8fHwAenp6AHl5eQB3d3cAdXV1AHNzcwBwcHAAb29vAGxs
bABqamoAaWlpAGZmZgBkZGQAY2NjAGFhYQBeXl4AXFxcAFtbWwBZWVkAV1dXAFRUVABTU1MAUVFRAE5O
TgBMTEwASkpKAEhISABGRkYARUVFAENDQwBBQUEAPj4+AD09PQA7OzsAOTk5ADc3NwA0NDQAMzMzAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAADN29i7AAAAAAAAwdrawQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwNrV
u9fa2s4AALbYFwp/qc7KAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALXW1KuCjaCzytra2xwKCQ13
d3ebws6nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz9m1h3x+jp2cm6O6DwkLH7iwlX13d4m1zrUAAAAA
AAAAAAAAAAAAAAAAAAAAAMfYwJF7fH5/j56dnJubDh3Iw724tK6giHl3fKLLwQAAAAAAAAAAAAAAAAAA
AAC51cubent8fn+AkZ+enZybx9PNyMO9uLSuqaCPfXd3j7vFAAAAAAAAAAAAAAAAANHQpnl6e3x+f4CC
kqGfnp2cxNfTzcjDvbi0rqmjnZSEeHeCqbMAAAAAAAAAAADJ1bF9eXp7fH5/gIKDk6Khn56dnKO0yM3I
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
0ADPz88Azs7OAM3NzQDMzMwAy8vLAMrKygDIyMgAx8fHAMbGxgDFxcUAw8PDAMHBwQDAwMAAv7+/AL6+
vgC9vb0AvLy8ALu7uwC6uroAubm5ALi4uAC3t7cAtra2ALW1tQC0tLQAs7OzALKysgCxsbEAsLCwAK+v
rwCurq4Ara2tAKysrACrq6sAqqqqAKmpqQCoqKgAp6enAKampgClpaUApKSkAKOjowCioqIAoaGhAKCg
oACfn58Anp6eAJ2dnQCcnJwAm5ubAJqamgCZmZkAl5eXAJaWlgCUlJQAkpKSAJCQkACPj48Ajo6OAI2N
jQCMjIwAi4uLAIqKigCJiYkAiIiIAIeHhwCFhYUAhISEAIODgwCCgoIAgYGBAICAgAB/f38Afn5+AH19
fQB8fHwAenp6AHl5eQB4eHgAd3d3AHZ2dgB1dXUAdHR0AHNzcwBxcXEAcHBwAG9vbwBubm4AbW1tAGtr
awBnZ2cAZmZmAGVlZQBjY2MAYGBgAF9fXwBeXl4AXFxcAFpaWgBZWVkAV1dXAFVVVQBSUlIAUVFRAFBQ
UABPT08ATk5OAE1NTQBMTEwAS0tLAEpKSgBJSUkASEhIAEdHRwBFRUUAREREAEFBQQA9PT0APDw8ADo6
OgA1NTUAMzMzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACqqqoAAACqqqoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr9razKm8vMPb08EAAAAAAAAAAAAAAAAAAAAA
AAAAvNjYzuXk4NoUBRLH49fHAAAAAAAAAAAAAAAAAAAAAMzfolB5lsQVBQEDF0dZs97dzQAAAAAAAAAA
AAAAALzhslZQU3yJhhECDsO2nmpPUJPU4NCyAAAAAAAAALzbxWZNUFNWf4yJjuLVzMO2p5x2Vkdwvd+q
AAAAAAC9z3dJTVBTVlmDj4yJqsXRzMO2p5yKdVlKxqoAAAAAnphISU1QU1ZZXI6Sj4yJhoOgsL62p5yS
qMHcqgAAAACdbElNUFNWWYW+yLmql4yJhoOAgpel1+aAu9yqAAAAAJtuTVBTXZK9pHeMprPEwKaShoOA
fXp3mHOs2qoAAAAAnHFQWpC9o25iZoabl5WfscC/rZKAfXpFRrzZqgAAAAC0gqDElGJgYmZpVV1ugZGS
j5Wmv8KqjURDydiqAAAAALu8gVlcYGJma2BTXFVWV2J0hIyJi6G0ysm61qoAAAAAuWVZXGBiZmtoUXqA
hoFrW1hZXW13g4OFmMDVqgAAAAC3WVxgYmZrbVJrdlJTV2p8h35uXltdZG93rNKqAAAAAKpjYGJma2xS
aX5QUVJTVFVWX3KDiHttXmCtwwAAAAAAAKhiZmtmX4mfa05QUVJTVFVWV1hZYXuObMsAAAAAAAAAALWi
oY+eiYqjq6KWfGdTVFVWV1hZhHO6AAAAAAAAAAAAAACaVlZWg46HgHqMmqecmHhcYIN2uAAAAAAAAAAA
AAAAAJ9MS0pidHiHgHp1b2lpl46Il64AAAAAAAAAAAAAAAAAohYgHR0fIiUnVl5naWeZxJAAAAAAAAAA
AAAAAAAAAAAAITM3NTIvLiwrLTAqE68AAAAAAAAAAAAAAAAAAAAAAAAHNjo6Ojo6Ojo5ODMKAAAAAAAA
AAAAAAAAAAAAAAAAABo7Ozs7Ozs7Ozs7KA8AAAAAAAAAAAAAAAAAAAAAAAAAIUBAQEBAQEBAQEAjtwAA
AAAAAAAAAAAAAAAAAAAAACEpPDw8PDw8PDw8PBsAAAAAAAAAAAAAAAAAAAAAAAAABDQ9PT09PT09PT00
CAAAAAAAAAAAAAAAAAAAAAAAAAAZQUFBQUFBQUFBQSYQAAAAAAAAAAAAAAAAAAAAAAAAISRCQkJCQkJC
QkJCHAAAAAAAAAAAAAAAAAAAAAAAAAAYPj4+Pj4+Pj4+PjELAAAAAAAAAAAAAAAAAAAAAAAABh4/Pz8/
Pz8/Pz8/CQAAAAAAAAAAAAAAAAAAAAAAAAAMDAwMDAwMDAwMDA0AAAAAAAAAAAAAAAAAAAAA//HH///g
A///gAD//wAAP/wAAAfwAAAD4AAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAA8AAAAPAAAADwAAAB+AA
AA/wAAAf/AAAP/wAAH/8AAH//gAH//4AD//+AA///gAP//wAH//8AB///AAf//gAP//4AD//8AB///AA
//8oAAAAEAAAACAAAAABAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKaGhgCei4sAc2dnAFVP
TwDEu7sAgXt7ALazswDOurkAemNhAObY1wD/0scA+9fOANW/uQCwoZ0Ay6uhAP/UxQDv3NUA38O3ANvB
tQDl4d8A/9azAP/UrwD53cQA/9y4AP/lywD/7dwA//fuAHqqigBnhHEA+vr6APLy8gDx8fEA8PDwAO7u
7gDt7e0A7OzsAOrq6gDp6ekA6OjoAOfn5wDl5eUA4eHhAODg4ADZ2dkA2NjYANXV1QDU1NQA0tLSAM/P
zwDOzs4AzMzMAMnJyQDCwsIAwMDAAL+/vwC+vr4Avb29ALy8vAC6uroAtra2ALW1tQC0tLQAs7OzALKy
sgCxsbEArq6uAKysrACrq6sAqqqqAKampgClpaUAoKCgAJ+fnwCenp4AnZ2dAJubmwCXl5cAlZWVAJSU
lACTk5MAkpKSAI6OjgCNjY0AjIyMAImJiQCIiIgAhoaGAIWFhQCDg4MAgoKCAICAgAB+fn4AfHx8AHp6
egB2dnYAc3NzAHFxcQBtbW0AZGRkAGBgYABfX18AWFhYAFdXVwBVVVUAUFBQAE5OTgBFRUUAQ0NDAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAfKioqoTs7O/hUVFT/s7Oz//f3
9//19fX/8vLy/+/v7//t7e3/6urq/8nJyf+srKz/rq6u/7CwsP+ysrL/tLS0/1xcXP9FRUX/UVFR/1tb
W/9kZGT/cHBw/3p6ev+Dg4P/j4+P/5mZmf+qqqr/zc3N//Hx8f///////////8zMzP9ycnL5JycnvBYW
FksAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFiMjI3Q7OzvwSkpK/52d
nf/6+vr/9/f3//X19f/y8vL/7+/v/+3t7f/q6ur/5+fn/8bGxv+pqan/rKys/66urv+wsLD/srKy/2Nj
Y/88PDz/RUVF/1FRUf9bW1v/ZGRk/3BwcP96enr/g4OD/4+Pj/+ZmZn/paWl/7CwsP/Dw8P/4+Pj//z8
/P//////5ubm/5mZmf8jIyONAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcbGxtNNjY200FB
Qf+IiIj/8fHx//r6+v/39/f/9fX1//Ly8v/v7+//7e3t/+rq6v/n5+f/5eXl/8XFxf+np6f/qamp/6ys
rP+urq7/sLCw/7Kysv+kpKT/g4OD/1tbW/9RUVH/W1tb/2RkZP9wcHD/enp6/4ODg/+Pj4//mZmZ/6Wl
pf+wsLD/u7u7/8TExP/g4OD/9PT0//////8mJiauAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABCQk
JFdCQkL/cXFx/9zc3P/9/f3/+vr6//f39//19fX/8vLy/+/v7//t7e3/6urq/+fn5//l5eX/4+Pj/8LC
wv+lpaX/p6en/6mpqf+srKz/rq6u/7CwsP+ysrL/tLS0/7W1tf+rq6v/jIyM/29vb/9kZGT/cHBw/3p6
ev+Dg4P/j4+P/5mZmf+lpaX/sLCw/7u7u/+zs7P/lZWV/2xsbP8mJiaqAAAADAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAABikpKWtERET///////39/f/6+vr/9/f3//X19f/y8vL/7+/v/+3t7f/q6ur/5+fn/+Xl
5f/j4+P/0dHR/5OTk/+YmJj/paWl/6enp/+pqan/rKys/66urv+wsLD/srKy/7S0tP+1tbX/t7e3/7m5
uf+wsLD/mJiY/39/f/96enr/g4OD/4+Pj/+BgYH/ZmZm/2dnZ/9KSkr/Pj4+/z4+PvkAAAAiAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAABikpKW1GRkb//f39//r6+v/39/f/9fX1//Ly8v/v7+//7e3t/+rq
6v/n5+f/5eXl/8zMzP+UlJT/ZmZm/2ZmZv9mZmb/bm5u/4KCgv+Tk5P/qamp/6ysrP+urq7/sLCw/7Ky
sv+0tLT/tbW1/7e3t/+5ubn/u7u7/729vf+2trb/n5+f/2VlZf8zMzP/MzMz/6SkpP/Ly8v/gICA/0ZG
Rv8AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABioqKm1ISEj/+vr6//f39//19fX/8vLy/+/v
7//t7e3/6urq/+fn5//FxcX/hoaG/2ZmZv+EhIT/tbW1/7u7u/+YmJj/iIiI/3Fxcf9mZmb/ampq/4CA
gP+Wlpb/rq6u/7CwsP+ysrL/tLS0/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv+7u7v/jo6O/7W1
tf/Jycn/iYmJ/0hISP8AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiwsLG1KSkr/9/f3//X1
9f/y8vL/7+/v/+3t7f/q6ur/t7e3/4aGhv9mZmb/lJSU/7+/v//a2tr/19fX/7i4uP+enp7/oKCg/6Ki
ov+goKD/jY2N/3p6ev9mZmb/ampq/319ff+UlJT/ra2t/7S0tP+1tbX/t7e3/7m5uf+7u7v/vb29/8DA
wP/CwsL/u7u7/6Ghof+1tbX/iYmJ/0pKSv8AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABi0t
LW1MTEz/9fX1//Ly8v/v7+//7e3t/7m5uf92dnb/ZmZm/5SUlP/R0dH/3d3d/9ra2v/X19f/1NTU/7a2
tv+cnJz/np6e/6CgoP+ioqL/pKSk/6Wlpf+jo6P/lJSU/4CAgP9qamr/ZmZm/35+fv+Xl5f/sLCw/7e3
t/+5ubn/u7u7/729vf/AwMD/a3Vv/1nMgP9Wom//d3d3/0xMTP8AAAAYAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAABiwsLHFOTk7/8vLy/+fn5/+ysrL/d3d3/25ubv+lpaX/29vb/+Dg4P/d3d3/2tra/9fX
1//U1NT/0tLS/+Li4v/i4uL/yMjI/7a2tv+kpKT/oqKi/6SkpP+lpaX/p6en/6mpqf+srKz/l5eX/4aG
hv9vb2//ZmZm/3V1df+UlJT/r6+v/7u7u/+9vb3/ZXhr/2b/mf9ZzID/ZWVl/05OTv8AAAAYAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAADDs7O61vb2//q6ur/29vb/92dnb/tra2/93d3f/j4+P/4ODg/93d
3f/a2tr/19fX/9TU1P/S0tL/1tbW/+7u7v/t7e3/6+vr/+rq6v/q6ur/19fX/8HBwf+wsLD/paWl/6en
p/+pqan/rKys/66urv+wsLD/o6Oj/42Njf91dXX/ZmZm/3Z2dv+RkZH/k5OT/0hvVf9SeF7/d3d3/09P
T/8AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDs7O7BcXFz/f39//7i4uP/n5+f/5eXl/+Pj
4//g4OD/3d3d/9ra2v/X19f/1NTU/9LS0v/Pz8//5+fn/+7u7v/u7u7/7e3t/+vr6//q6ur/6urq/+np
6f/n5+f/3t7e/87Ozv+/v7//ra2t/6ysrP+urq7/sLCw/7Kysv+0tLT/q6ur/5SUlP97e3v/ZmZm/3Fx
cf+Ojo7/fn5+/1FRUf8AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDw8PLB5eXn/6urq/+fn
5//l5eX/4+Pj/+Dg4P/d3d3/2tra/9fX1//U1NT/0tLS/8/Pz//d3d3/8fHx/+/v7/+urq7/qamp/7i4
uP/MzMz/4ODg/+rq6v/p6en/5+fn/+fn5//m5ub/5eXl/9ra2v/IyMj/uLi4/7CwsP+ysrL/tLS0/7W1
tf+3t7f/tLS0/5ubm/+BgYH/XV1d/1NTU/8AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADD4+
PrB6enr/5+fn/+Xl5f/j4+P/4ODg/93d3f/a2tr/19fX/9TU1P/S0tL/z8/P/9TU1P/w8PD/8fHx/8rK
yv+5ubn/7u7u/97e3v/IyMj/rq6u/6Ojo/+3t7f/0NDQ/+Li4v/n5+f/5ubm/+Xl5f/k5OT/5OTk/9/f
3//S0tL/xMTE/7m5uf+1tbX/t7e3/7m5uf+7u7v/iYmJ/1VVVf8AAAAYAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAADD8/P7B6enr/5eXl/+Pj4//g4OD/3d3d/9ra2v/X19f/1NTU/9LS0v/Pz8//z8/P/+3t
7f/z8/P/0dHR/6qqqv/r6+v/7+/v/+7u7v/u7u7/7e3t/+vr6//W1tb/wsLC/62trf+oqKj/u7u7/87O
zv/g4OD/5OTk/+Tk5P/i4uL/4eHh/+Hh4f/Y2Nj/zMzM/8HBwf+5ubn/iYmJ/1dXV/8AAAAYAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAADEFBQa17e3v/4+Pj/+Dg4P/d3d3/2tra/9fX1//U1NT/0tLS/8/P
z//Pz8//7u7u//X19f/S0tL/qqqq/+3t7f/x8fH/8fHx/+/v7//u7u7/7u7u/+3t7f/r6+v/6urq/+rq
6v/k5OT/z8/P/7u7u/+np6f/p6en/7+/v//R0dH/4uLi/+Hh4f/h4eH/4ODg/97e3v/d3d3/lpaW/1hY
WP8AAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzo6On1jY2P/19fX/93d3f/a2tr/19fX/9TU
1P/S0tL/z8/P/8/Pz//v7+//9/f3/83Nzf+wsLD/7+/v//Pz8//y8vL/8fHx//Hx8f/v7+//7u7u/+7u
7v/t7e3/6+vr/+rq6v/q6ur/6enp/+fn5//n5+f/4eHh/83Nzf+1tbX/oqKi/6urq/+9vb3/09PT/+Dg
4P/e3t7/a2tr/0pKStMAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtTU1PnjY2N/9ra
2v/X19f/1NTU/9LS0v/Pz8//1dXV//Hx8f/h4eH/tra2/5KSkv/b29v/9fX1//T09P/z8/P/8vLy//Hx
8f/x8fH/7+/v/+7u7v/u7u7/7e3t/+vr6//q6ur/6urq/+np6f/n5+f/5+fn/+bm5v/l5eX/5OTk/9vb
2//Hx8f/mZmZ/9zc3P+vr6//WVlZ+CYmJk0AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAMnJydNV1dX8ISEhP+3t7f/zc3N/8vLy//S0tL/ysrK/66urv+SkpL/e3t7/5WVlf98fHz/a2tr/4qK
iv+kpKT/vr6+/+Hh4f/x8fH/8fHx/+/v7//u7u7/7u7u/+3t7f/r6+v/6urq/+rq6v/p6en/5+fn/+fn
5//m5ub/5eXl/+Tk5P++vr7/vb29/9nZ2f9mZmb/QUFBoQAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAEHR0dNUlJSbtdXV34Z2dn/2pqav+FhYX/pKSk/6SkpP/CwsL/39/f/8PD
w/+srKz/sLCw/6qqqv+enp7/kZGR/3x8fP9vb2//iYmJ/6urq//ExMT/3d3d/+7u7v/t7e3/6+vr/+rq
6v/q6ur/6enp/+fn5//n5+f/5ubm/8nJyf+srKz/29vb/3l5ef9NTU3HAAAAGQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA0AAAAYGxsbOk5OTs65ubn/6urq/+rq
6v/q6ur/6urq/8bGxv+mpqb/rKys/7CwsP+0tLT/uLi4/729vf/AwMD/s7Oz/6SkpP+Tk5P/enp6/3d3
d/+QkJD/qamp/8rKyv/i4uL/6urq/+np6f/j4+P/u7u7/7a2tv/Y2Nj/enp6/05OTscAAAAeAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEFBQ
UMvPz8//8/Pz//Pz8//z8/P/8/Pz/7S0tP+hoaH/pqam/6ysrP+wsLD/tLS0/7i4uP+9vb3/wMDA/8XF
xf/Kysr/zs7O/9PT0/+7u7v/qKio/5OTk/9tbW3/xMTE/8bGxv+tra3/z8/P/62trf9oaGj4REREoQAA
ABkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAEldXV9/f39//+/v7//z8/P/+/v7///n5///y8v/z8/P/6Ojo/9PT0//Gxsb/v7+//7S0
tP+4uLj/vb29/8DAwP/FxcX/ysrK/87Ozv/T09P/19fX/9zc3P98fHz/np6e/62trf+goKD/ampq+VBQ
UMgrKytLAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEmRkZNufn5//ubOz/8abl///rJ///6aZ//+mmf//ppn//7yz///H
v///08z//+nm///5+f/t7e3/5eXl/9ra2v/R0dH/ycnJ/8rKyv/Ozs7/09PT/9fX1/9mZmb/UFBQzEtL
S69BQUF+ISEhMgAAABAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY1NTVdZEtLw7mJe///z6f//82m///E
ov//wJ///7yd//+3mv//tpn//7aZ//+2mf//u5///8mz///Xxv//4dL//+/m//j08v/y8vL/6Ojo/8zM
zP9XV1fgAAAAIQAAAAwAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASc0xMv8yf
i///17D//9ew///XsP//17D//9ew///XsP//17D//9Gq///Op///y6X//8mg///Inf//xpn//8aZ///G
mf/Sn4n/n4yM/3R0dOBNTU2qAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAASgldX4Oa9of//2rX//9q1///atf//2rX//9q1///atf//2rX//9q1///atf//2rX//9q1///a
tf//2rX//9iy///Xrv+zgnj/UjY2eAAAABgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAemWZm//nWtv//3bv//927///du///3bv//927///du///3bv//927///d
u///3bv//927///du///3bv//927///du/+mdXH/Ry8vRQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZaPDxtpnVx///gwf//4MH//+DB///gwf//4MH//+DB///g
wf//4MH//+DB///gwf//4MH//+DB///gwf//4MH//+DB///gwf+TYmL5AAAAGQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxvSkqwuY2E///jxv//48b//+PG///j
xv//48b//+PG///jxv//48b//+PG///jxv//48b//+PG///jxv//48b//+PG/+bErv+CV1fgAAAAEgAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOCV1fg0q6f///m
zP//5sz//+bM///mzP//5sz//+bM///mzP//5sz//+bM///mzP//5sz//+bM///mzP//5sz//+bM/9Ku
n/9vSkqwAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAS4f
HzWZZmb/8tjF///o0v//6NL//+jS///o0v//6NL//+jS///o0v//6NL//+jS///o0v//6NL//+jS///o
0v//6NL//+jS/7+Xj/9aPDxtAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAACWVERJGmd3T//+vX///r1///69f//+vX///r1///69f//+vX///r1///69f//+vX///r
1///69f//+vX///r1///69f//+vX/6Z3dP8AAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAEn5UVNXGopr//+7d///u3f//7t3//+7d///u3f//7t3//+7d///u
3f//7t3//+7d///u3f//7t3//+7d///u3f//7t3/7NXH/35UVNUAAAAQAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABLB4eN5lmZv/s18z///Hj///x4///8eP///Hj///x
4///8eP///Hj///x4///8eP///Hj///x4///8eP///Hj///x4///8eP/0rSs/2VERJEAAAAJAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMcEtLr6Z4dv//9Oj///To///0
6P//9Oj///To///06P//9Oj///To///06P//9Oj///To///06P//9Oj///To///06P//9Oj/oHRy+TAg
IDMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhjl5e8dnB
u///9+7///fu///37v//9+7///fu///37v//9+7///fu///37v//9+7///fu///37v//9+7///fu///3
7v/m08z/elFRyAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
ABBvSkqwrIKB///58///+fP///nz///58///+fP///nz///58///+fP///nz///58///+fP///nz///5
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
rf+wsLD/q6ur/z09Pf9QUFD/X19f/29vb/9+fn7/jo6O/52dnf/FxcX/6urq///////MzMz/bW1t7xAQ
EMYAAAB0AAAAEgAAAAAAAAAAAAAAACcnJxsxMTGqVlZW+cPDw//7+/v/9vb2//Ly8v/u7u7/6urq/+bm
5v+2trb/qqqq/62trf+wsLD/i4uL/21tbf9XV1f/X19f/29vb/9+fn7/jo6O/52dnf+vr6//xsbG/+bm
5v/6+vr/YGBg7QAAAHEAAAAPAAAAAAAAAAAAAAAAQEBAhqGhof/+/v7/+/v7//b29v/y8vL/7u7u/+rq
6v/m5ub/4uLi/6urq/+np6f/qqqq/62trf+wsLD/s7Oz/7a2tv+ZmZn/hISE/3V1df9+fn7/jo6O/52d
nf+np6f/jY2N/3Fxcf8yMjLiAAAAYwAAAAwAAAAAAAAAAAAAAABDQ0OG0NDQ//v7+//29vb/8vLy/+7u
7v/q6ur/5ubm/7S0tP91dXX/ZmZm/3p6ev+Li4v/oqKi/62trf+wsLD/s7Oz/7a2tv+5ubn/t7e3/6Ki
ov+QkJD/Tk5O/zMzM/+5ubn/eHh4/ykpKdkAAABgAAAADAAAAAAAAAAAAAAAAEZGRobOzs7/9vb2//Ly
8v/u7u7/4eHh/6enp/92dnb/kpKS/8PDw/+tra3/j4+P/4GBgf9ubm7/c3Nz/4+Pj/+np6f/s7Oz/7a2
tv+5ubn/vLy8/7+/v//Dw8P/oaGh/8jIyP+JiYn/Kysr2QAAAGAAAAAMAAAAAAAAAAAAAAAASEhIiMvL
y//y8vL/5eXl/6mpqf92dnb/lJSU/87Ozv/a2tr/1tbW/7Ozs/+enp7/oqKi/6SkpP+ampr/g4OD/3Nz
c/90dHT/iIiI/6enp/+5ubn/vLy8/7+/v/9woID/Wa92/3d3d/8tLS3ZAAAAYAAAAAwAAAAAAAAAAAAA
AABMTEy1t7e3/5mZmf9ubm7/paWl/9ra2v/e3t7/2tra/9bW1v/T09P/6+vr/+Hh4f/Ozs7/uLi4/6io
qP+np6f/qqqq/6SkpP+Pj4//dHR0/3BwcP+Li4v/rKys/26efv9Wv3n/ZWVl/y4uLtkAAABgAAAADAAA
AAAAAAAAAAAAAE9PT8R3d3f/uLi4/+bm5v/i4uL/3t7e/9ra2v/W1tb/0dHR/97e3v/u7u7/4uLi/+vr
6//q6ur/6Ojo/9ra2v/Hx8f/tbW1/62trf+wsLD/rq6u/5eXl/+AgID/Y2Nj/2VlZf95eXn/MDAw2QAA
AGAAAAAMAAAAAAAAAAAAAAAAUlJSxNfX1//m5ub/4uLi/97e3v/a2tr/1tbW/9HR0f/U1NT/8fHx/7+/
v/+5ubn/s7Oz/7i4uP/R0dH/4+Pj/+fn5//m5ub/4eHh/8/Pz//Dw8P/tra2/7a2tv+0tLT/oaGh/3Nz
c/8xMTHZAAAAXQAAAAwAAAAAAAAAAAAAAABVVVXD5ubm/+Li4v/e3t7/2tra/9bW1v/R0dH/z8/P/+/v
7//R0dH/xcXF/+/v7//u7u7/6Ojo/9LS0v+9vb3/srKy/7u7u//Ozs7/4ODg/+Pj4//h4eH/2NjY/83N
zf/Dw8P/iYmJ/zQ0NNYAAABIAAAACQAAAAAAAAAAAAAAAFhYWLHZ2dn/3t7e/9ra2v/W1tb/0dHR/9DQ
0P/v7+//09PT/7u7u//y8vL/8fHx/+/v7//u7u7/7e3t/+vr6//q6ur/39/f/8rKyv+2trb/sbGx/76+
vv/Pz8//4ODg/97e3v+IiIj/MDAwsQAAABwAAAAAAAAAAAAAAAAAAAAAXFxcQI2Njf/a2tr/1tbW/9HR
0f/W1tb/39/f/7CwsP+ampr/0dHR//T09P/y8vL/8fHx/+/v7//u7u7/7e3t/+vr6//q6ur/6Ojo/+fn
5//m5ub/29vb/76+vv+rq6v/0NDQ/1JSUuoAAAA8AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fYHd3
d/CWlpb/l5eX/6qqqv+bm5v/sLCw/6+vr/+UlJT/ioqK/5aWlv+jo6P/vb29/9XV1f/u7u7/7e3t/+vr
6//q6ur/6Ojo/+fn5//m5ub/tbW1/8jIyP91dXX4Li4uYwAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAYWFhEF9fX0GLi4vU6urq/+rq6v/q6ur/tra2/6urq/+ysrL/ubm5/7+/v/+tra3/n5+f/46O
jv+dnZ3/oaGh/8HBwf/i4uL/3t7e/7a2tv/FxcX/eHh49zQ0NFoAAAAHAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAI2NjeL39/f/+Pj4//r6+v/a2tr/x8fH/8HBwf+ysrL/ubm5/7+/
v//Gxsb/zc3N/9PT0//T09P/oqKi/6urq/+xsbH/oqKi/2hoaMtAQEAyAAAAAwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh4eH37mzs//mtq3//7Om//+zpv//xbn//9bM///m
3//x497/6urq/+Dg4P/V1dX/09PT/9XV1f+goKD/Q0NDxFdXV4NQUFApAAAAAwAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkGBgiOa6m///1q3//9Cq///M
qP//yKX//8Wi///Cn///vJn//8qs///Tuf/y1Mb/1szM/39/f/QAAAAeAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSYmK3+dSy///b
t///27f//9u3///bt///27f//9u3///bt///2rX//9ew/+a6m/8+KSnGAAAAMQAAAAQAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6N0
cOX/377//9++///fvv//377//9++///fvv//377//9++///fvv//377/zKKS/ykbG7MAAAAcAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAB3UFApv5WL///kyP//5Mj//+TI///kyP//5Mj//+TI///kyP//5Mj//+TI///kyP+/lYr/AAAAggAA
ABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAIxeXnrZt6j//+fP///nz///58///+fP///nz///58///+fP///nz///58///+fP/4lj
YOwAAABYAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAABjl9fvPLbyv//7Nn//+zZ///s2f//7Nn//+zZ///s2f//7Nn//+zZ///s
2f/y28r/Uzg4zgAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAFg6OhysgH3///Dg///w4P//8OD///Dg///w4P//8OD///Dg///w
4P//8OD///Dg/9m8sv8vHx+dAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABg1dXltm/uP//9er///Xq///16v//9er///Xq///1
6v//9er///Xq///16v//9er/n3977wAAAE8AAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgwMCKjd3b1//jx///48f//+PH///jx///4
8f//+PH///jx///48f//+PH///jx//Lm3/9UODivAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADk2Jituzh3////fv///37///9
+////fv///37///9+////fv///37///9+////fv/pYWE5wAAAC0AAAABAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlmZiCWZGRilGNjhJJi
YobDq6uGuJeXwraVlcS/oaHE1cHB0syzs//Ms7P/zLOz/7udndRIMDAiAAAAAQAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/8AA//+AAD/+AAAP+AAAA+AA
AAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAA8AAAAPgAAAH8AAAD/wA
AB/8AAB//gAD//4AA//8AAf//AAH//wAB//4AAf/+AAP//AAD//wAB//4AAf/+AAP/8oAAAAEAAAACAA
AAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAA0AAAAdAAA
AHkAAABYAAAAbAAAAHwAAABGAAAAGwAAAAkAAAAAAAAAAAAAAAAAAAAAAAAABwAAACEQEBByQ0ND2C4u
LuMVFRXNNS4u13RtbecgICDKAAAAqgAAAIwAAABRAAAAHwAAAAAAAAAAAAAABwAAAEU2NjbFpKSk+vHx
8f+ysrL/nouL/6aGhv+2s7P/5eXl/7Kysvc2NjbVAAAArwAAAIUAAAAWAAAAADk5OVyUlJTv7u7u//Hx
8f/o6Oj/rKys/5OTk/9fX1//bW1t/4yMjP+8vLz/6enp/7CwsPsAAACOAAAAEwAAAAC8vLzE+vr6//Ly
8v/Y2Nj/lZWV/35+fv+Xl5f/srKy/6ampv+UlJT/jo6O/4mJif9cXFzyAAAAhQAAABIAAAAArKys4tjY
2P+goKD/m5ub/8nJyf+rq6v/jY2N/4CAgP+Dg4P/n5+f/7+/v/96qor/S0tL7QAAAIMAAAASAAAAAHZ2
dv+mpqb/2dnZ/9jY2P/Y2Nj/2NjY/+Dg4P/Pz8//vr6+/52dnf+JiYn/Z4Rx/0pKSu0AAAB9AAAAEgAA
AACenp7/4eHh/9jY2P/S0tL/ycnJ/9XV1f/Ozs7/wsLC/8DAwP/MzMz/1NTU/8zMzP9kZGTqAAAAWgAA
AAwAAAAAk5OTv9XV1f/CwsL/qqqq/6Wlpf/Pz8//8PDw/+3t7f/q6ur/2dnZ/7+/v/++vr7/WFhYtQAA
ABsAAAAAAAAAAGFhYRBqamphycnJ/+zs7P+ysrL/urq6/66urv+2trb/vb29/729vf+zs7P/hoaGuQAA
ABYAAAAAAAAAAAAAAAAAAAAAAAAAALyysuH/1MX//9LH//vXzv/v3NX/5eHf/+fn5/9kZGTIY2NjZwAA
AAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACyiX2K/9y4///cuP//3Lj//9az///Ur/9kSUfbFhYWSQAA
AAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwZuQ1//ly///5cv//+XL///ly//53cT/NyUlsgAA
ABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWDo6HN/Dt///7dz//+3c///t3P//7dz/2sC0+gAA
AG0AAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaWAfov/9+7///fu///37v//9+7///fu/6CO
idQAAAAxAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJlmZhDHq6qv8+7t0ubY1//m2Nf/5tjX/+ne
3fFgQEAzAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPADAADAAQAAgABDhoAA0P+AAPv/gAD2/4AA
8v+AAO7/gAHq/4AD5v/gB7T/4A91/8AfZv/AH3r/gB+L/4A/ov8=
</value>
</data>
</root>
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace moyaPrintServer
{
public class PrintQueueList
{
public List<Card> cards = new List<Card>();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace moyaPrintServer
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}
}
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("moyaPrintServer")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("moyaPrintServer")]
[assembly: AssemblyCopyright("Copyright © 2013")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
[assembly: Guid("7dc05add-b9e9-4cf4-b993-a7e89d829d16")]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace moyaPrintServer.Properties {
using System;
/// <summary>
/// A strongly-typed resource class, for looking up localized strings, etc.
/// </summary>
// This class was auto-generated by the StronglyTypedResourceBuilder
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("moyaPrintServer.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>
\ No newline at end of file
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.17929
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace moyaPrintServer.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string Printer {
get {
return ((string)(this["Printer"]));
}
set {
this["Printer"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool AutoPrint {
get {
return ((bool)(this["AutoPrint"]));
}
set {
this["AutoPrint"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string ApiURL {
get {
return ((string)(this["ApiURL"]));
}
set {
this["ApiURL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string ApiKey {
get {
return ((string)(this["ApiKey"]));
}
set {
this["ApiKey"] = value;
}
}
}
}
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="moyaPrintServer.Properties" GeneratedClassName="Settings">
<Profiles />
<Settings>
<Setting Name="Printer" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="AutoPrint" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ApiURL" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="ApiKey" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
</Settings>
</SettingsFile>
\ No newline at end of file
using System;
using System.IO;
using System.Net;
using System.Text;
public enum HttpVerb
{
GET,
POST,
PUT,
DELETE
}
namespace HttpUtils
{
public class RestClient
{
public string EndPoint { get; set; }
public HttpVerb Method { get; set; }
public string ContentType { get; set; }
public string PostData { get; set; }
public RestClient()
{
EndPoint = "";
Method = HttpVerb.GET;
ContentType = "application/json";
PostData = "";
}
public RestClient(string endpoint)
{
EndPoint = endpoint;
Method = HttpVerb.GET;
ContentType = "application/json";
PostData = "";
}
public RestClient(string endpoint, HttpVerb method)
{
EndPoint = endpoint;
Method = method;
ContentType = "application/json";
PostData = "";
}
public RestClient(string endpoint, HttpVerb method, string postData)
{
EndPoint = endpoint;
Method = method;
ContentType = "application/json";
PostData = postData;
}
public string MakeRequest()
{
return MakeRequest("");
}
public string MakeRequest(string parameters)
{
var request = (HttpWebRequest)WebRequest.Create(EndPoint + parameters);
request.Method = Method.ToString();
request.ContentLength = 0;
request.ContentType = ContentType;
if (!string.IsNullOrEmpty(PostData) && Method == HttpVerb.POST)
{
var encoding = new UTF8Encoding();
var bytes = Encoding.GetEncoding("iso-8859-1").GetBytes(PostData);
request.ContentLength = bytes.Length;
using (var writeStream = request.GetRequestStream())
{
writeStream.Write(bytes, 0, bytes.Length);
}
}
using (var response = (HttpWebResponse)request.GetResponse())
{
var responseValue = string.Empty;
if (response.StatusCode != HttpStatusCode.OK)
{
var message = String.Format("Request failed. Received HTTP {0}", response.StatusCode);
throw new ApplicationException(message);
}
// grab the response
using (var responseStream = response.GetResponseStream())
{
if (responseStream != null)
using (var reader = new StreamReader(responseStream))
{
responseValue = reader.ReadToEnd();
}
}
return responseValue;
}
}
} // class
}
\ No newline at end of file
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="moyaPrintServer.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<userSettings>
<moyaPrintServer.Properties.Settings>
<setting name="Printer" serializeAs="String">
<value/>
</setting>
<setting name="AutoPrint" serializeAs="String">
<value>False</value>
</setting>
<setting name="ApiURL" serializeAs="String">
<value/>
</setting>
<setting name="ApiKey" serializeAs="String">
<value/>
</setting>
</moyaPrintServer.Properties.Settings>
</userSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="moyaPrintServer.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<userSettings>
<moyaPrintServer.Properties.Settings>
<setting name="Printer" serializeAs="String">
<value/>
</setting>
<setting name="AutoPrint" serializeAs="String">
<value>False</value>
</setting>
<setting name="ApiURL" serializeAs="String">
<value/>
</setting>
<setting name="ApiKey" serializeAs="String">
<value/>
</setting>
</moyaPrintServer.Properties.Settings>
</userSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="moyaPrintServer.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
</configSections>
<userSettings>
<moyaPrintServer.Properties.Settings>
<setting name="Printer" serializeAs="String">
<value/>
</setting>
<setting name="AutoPrint" serializeAs="String">
<value>False</value>
</setting>
<setting name="ApiURL" serializeAs="String">
<value/>
</setting>
<setting name="ApiKey" serializeAs="String">
<value/>
</setting>
</moyaPrintServer.Properties.Settings>
</userSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>8.0.30703</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{B920D90D-D83F-4666-8F55-ECB4E6E36231}</ProjectGuid>
<OutputType>WinExe</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>moyaPrintServer</RootNamespace>
<AssemblyName>moyaPrintServer</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile>
</TargetFrameworkProfile>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<PlatformTarget>x86</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Printing" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Web" />
<Reference Include="System.Web.ApplicationServices" />
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Web.Services" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="CalculateMD5Hash.cs" />
<Compile Include="Card.cs" />
<Compile Include="Form1.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Form1.Designer.cs">
<DependentUpon>Form1.cs</DependentUpon>
</Compile>
<Compile Include="PrintQueueList.cs" />
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="RestClient.cs" />
<EmbeddedResource Include="Form1.resx">
<DependentUpon>Form1.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
<SubType>Designer</SubType>
</EmbeddedResource>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<None Include="app.config" />
<None Include="Properties\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
</None>
<Compile Include="Properties\Settings.Designer.cs">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
\ No newline at end of file
C:\devel\proj\PrintServer\moyaPrintServer\moyaPrintServer\bin\Debug\moyaPrintServer.exe
C:\devel\proj\PrintServer\moyaPrintServer\moyaPrintServer\bin\Debug\moyaPrintServer.pdb
C:\devel\proj\PrintServer\moyaPrintServer\moyaPrintServer\obj\x86\Debug\moyaPrintServer.Form1.resources
C:\devel\proj\PrintServer\moyaPrintServer\moyaPrintServer\obj\x86\Debug\moyaPrintServer.Properties.Resources.resources
C:\devel\proj\PrintServer\moyaPrintServer\moyaPrintServer\obj\x86\Debug\moyaPrintServer.csproj.GenerateResource.Cache
C:\devel\proj\PrintServer\moyaPrintServer\moyaPrintServer\obj\x86\Debug\moyaPrintServer.exe
C:\devel\proj\PrintServer\moyaPrintServer\moyaPrintServer\obj\x86\Debug\moyaPrintServer.pdb
C:\devel\proj\PrintServer\moyaPrintServer\moyaPrintServer\bin\Debug\moyaPrintServer.exe.config
C:\devel\proj\moya\PrintServer\moyaPrintServer\moyaPrintServer\bin\Debug\moyaPrintServer.exe.config
C:\devel\proj\moya\PrintServer\moyaPrintServer\moyaPrintServer\obj\x86\Debug\moyaPrintServer.exe
C:\devel\proj\moya\PrintServer\moyaPrintServer\moyaPrintServer\obj\x86\Debug\moyaPrintServer.pdb
No preview for this file type
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!