Aggiunta proxy iniziale:

- FTP
- Gomba
- Icoel
- MultiCcn
- OSAI
- SqlDB
This commit is contained in:
Samuele Locatelli
2024-12-23 09:01:29 +01:00
parent 76bd58d3ca
commit a2171e643d
727 changed files with 158866 additions and 0 deletions
+55
View File
@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<appSettings>
<add key="testFile" value="conf/testSetup.json" />
<add key="server" value="ftp.steamware.net" />
<add key="userName" value="testftpuser" />
<add key="passwd" value="we4reFromB3rghem!" />
<add key="rawCert" value="" />
<add key="skipCert" value="true" />
<add key="ClientSettingsProvider.ServiceUri" value="" />
</appSettings>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.CompilerServices.Unsafe" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.0" newVersion="4.0.5.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Memory" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.1.1" newVersion="4.0.1.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Buffers" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Text.Encodings.Web" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.5.1" newVersion="4.0.5.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.ValueTuple" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.3.0" newVersion="4.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
<providers>
<add name="ClientAuthenticationMembershipProvider" type="System.Web.ClientServices.Providers.ClientFormsAuthenticationMembershipProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" />
</providers>
</membership>
<roleManager defaultProvider="ClientRoleProvider" enabled="true">
<providers>
<add name="ClientRoleProvider" type="System.Web.ClientServices.Providers.ClientRoleProvider, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" serviceUri="" cacheTimeout="86400" />
</providers>
</roleManager>
</system.web>
</configuration>
@@ -0,0 +1,90 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A655A6AC-5997-46F9-9752-8C621B80516C}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>EgwProxy.Ftp.Test</RootNamespace>
<AssemblyName>EgwProxy.Ftp.Test</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</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|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="FluentFTP, Version=51.1.0.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">
<HintPath>..\packages\FluentFTP.51.1.0\lib\net462\FluentFTP.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<HintPath>..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Web.Extensions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TestSetup.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="conf\testSetup-ftp.steamware.net.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="conf\testSetup.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="conf\.placeholder" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Content Include="test\FileProva.txt">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Folder Include="temp\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EgwProxy.Ftp\EgwProxy.Ftp.csproj">
<Project>{35d95ed8-e48a-434d-a305-a83e48c8fc6f}</Project>
<Name>EgwProxy.Ftp</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+513
View File
@@ -0,0 +1,513 @@
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using static System.Net.Mime.MediaTypeNames;
namespace EgwProxy.Ftp.Test
{
internal class Program
{
#region Protected Methods
/// <summary>
/// legge conf in formato stringa
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
protected static string ReadSetting(string key)
{
string answ = "";
try
{
answ = $"{ConfigurationManager.AppSettings[key]}" ?? "";
}
catch (Exception exc)
{
Console.Write("Eccezione in ReadSettings");
Console.Write(exc.Message);
}
return answ;
}
#endregion Protected Methods
#region Private Fields
/// <summary>
/// Helper separatore dash
/// </summary>
private const string separator = "------------------------";
private static Stopwatch sw = new Stopwatch();
#endregion Private Fields
#region Private Methods
/// <summary>
/// Programma principale
/// </summary>
/// <param name="args"></param>
private static void Main(string[] args)
{
Console.WriteLine(separator);
Console.WriteLine("Test FTP Client");
Console.WriteLine(separator);
Console.WriteLine();
string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string BaseDirectory = System.IO.Path.GetDirectoryName(exePath);
string testFile = Path.Combine(BaseDirectory, ReadSetting("testFile"));
Manager ftpClient = new Manager("", "", "", "", false);
if (!string.IsNullOrEmpty(testFile))
{
Console.WriteLine(separator);
Console.WriteLine($"Mode json ({testFile})");
Console.WriteLine(separator);
Console.WriteLine();
if (File.Exists(testFile))
{
var rawData = File.ReadAllText(testFile);
if (!string.IsNullOrEmpty(rawData))
{
TestSetup testConf = new TestSetup();
try
{
testConf = JsonConvert.DeserializeObject<TestSetup>(rawData);
}
catch
{ }
// setup server
ftpClient = new Manager(testConf.server, testConf.user, testConf.password, testConf.rawCert, testConf.skipCert);
serverTest(ftpClient);
bool doRepeat = true;
while (doRepeat)
{
// eseguo per ogni step
foreach (var item in testConf.steps)
{
Console.WriteLine($"------ Step {item.id} | {item.description} ------");
string esitoStep = "";
switch (item.action)
{
case stepType.checkDir:
if (item.paramList != null && item.paramList.Count > 0)
{
string dir2check = item.paramList[0];
var dirCheckExists = ftpClient.DirExists(dir2check);
esitoStep = dirCheckExists ? $"Directory {dir2check} found!" : $"Directory {dir2check} NOT found!";
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.checkFile:
if (item.paramList != null && item.paramList.Count > 0)
{
string file2check = item.paramList[0];
var dirCheckExists = ftpClient.FileExists(file2check);
esitoStep = dirCheckExists ? $"File {file2check} found!" : $"File {file2check} NOT found!";
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.createDir:
if (item.paramList != null && item.paramList.Count > 0)
{
string dir2check = item.paramList[0];
var preTest = ftpClient.DirExists(dir2check);
if (preTest)
{
esitoStep = "Error: Folder already exists!";
}
else
{
var dirCreate = ftpClient.CreateDir(dir2check);
esitoStep = dirCreate ? $"Directory {dir2check} created!" : $"Error: {dir2check} NOT created!";
}
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.delDir:
if (item.paramList != null && item.paramList.Count > 0)
{
string dir2check = item.paramList[0];
var preTest = ftpClient.DirExists(dir2check);
if (preTest)
{
var dirDelete = ftpClient.DeleteDir(dir2check);
esitoStep = dirDelete ? $"Directory {dir2check} deleted!" : $"Error: {dir2check} NOT deleted!";
}
else
{
esitoStep = "Error: Folder doesn't exists, delete not possible!";
}
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.delFile:
if (item.paramList != null && item.paramList.Count > 0)
{
string file2check = item.paramList[0];
var preTest = ftpClient.FileExists(file2check);
if (preTest)
{
var dirDelete = ftpClient.DeleteFile(file2check);
esitoStep = dirDelete ? $"File {file2check} deleted!" : $"Error: {file2check} NOT deleted!";
}
else
{
esitoStep = "Error: File doesn't exists, delete not possible!";
}
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.downloadDir:
if (item.paramList != null && item.paramList.Count > 1)
{
string dir2check = item.paramList[0];
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
var preTest = ftpClient.DirExists(dir2check);
if (preTest)
{
var dirDelete = ftpClient.GetDir(localDir, dir2check);
esitoStep = dirDelete ? $"Directory {dir2check} downloaded!" : $"Error: {dir2check} NOT downloaded!";
}
else
{
esitoStep = "Error: Folder doesn't exists, download not possible!";
}
}
else
{
esitoStep = "Error: missing parameters!";
}
break;
case stepType.downloadFile:
if (item.paramList != null && item.paramList.Count > 1)
{
string dir2check = item.paramList[0];
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
var preTest = ftpClient.DirExists(dir2check);
if (preTest)
{
var dirDelete = ftpClient.GetDir(localDir, dir2check);
esitoStep = dirDelete ? $"Directory {dir2check} downloaded!" : $"Error: {dir2check} NOT downloaded!";
}
else
{
esitoStep = "Error: Folder doesn't exists, download not possible!";
}
}
else
{
esitoStep = "Error: missing parameters!";
}
break;
case stepType.uploadDir:
if (item.paramList != null && item.paramList.Count > 1)
{
string remoteDir = item.paramList[0];
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
var dirUploaded = ftpClient.SendDir(localDir, remoteDir);
esitoStep = dirUploaded ? $"Directory {remoteDir} uploaded!" : $"Error: {remoteDir} NOT uploaded!";
}
else
{
esitoStep = "Error: missing parameters!";
}
break;
case stepType.uploadFile:
if (item.paramList != null && item.paramList.Count > 1)
{
string remotePath = item.paramList[0];
string localPath = Path.Combine(BaseDirectory, item.paramList[1]);
var fileUploaded = ftpClient.SendFile(localPath, remotePath);
esitoStep = fileUploaded ? $"File {remotePath} uploaded!" : $"Error: {remotePath} NOT uploaded!";
}
else
{
esitoStep = "Error: missing parameters!";
}
break;
case stepType.listContent:
if (item.paramList != null && item.paramList.Count > 0)
{
string remoteDir = item.paramList[0];
var preTest = ftpClient.DirExists(remoteDir);
if (preTest)
{
var listResult = ftpClient.ListDir(remoteDir, false);
Console.WriteLine($"Content of dir {remoteDir}:");
foreach (var itemList in listResult)
{
Console.WriteLine(itemList);
}
}
else
{
esitoStep = "Error: Folder doesn't exists, list not possible!";
}
}
else
{
esitoStep = "Error: missing parameter!";
}
break;
case stepType.genRandomDir:
if (item.paramList != null && item.paramList.Count > 0)
{
sw.Restart();
// crea una struttura ricorsiva di 3 livelli con 20 file
// con contenuto random ogni livello
string localDir = Path.Combine(BaseDirectory, item.paramList[0]);
if (!Directory.Exists(localDir))
{
Directory.CreateDirectory(localDir);
}
// ora vado a creare 3 livelli di folder
int numDepth = 3;
int numFile = 20;
int numRows = 1000;
string baseDir = localDir;
for (int iDir = 0; iDir < numDepth; iDir++)
{
DateTime adesso = DateTime.Now;
string newSub = $"{adesso:HHmmss_fff}";
// sposto puntamento folder...
baseDir = Path.Combine(baseDir, newSub);
if (!Directory.Exists(baseDir))
{
Directory.CreateDirectory(baseDir);
}
for (int iFile = 0; iFile < numFile; iFile++)
{
string filePath = Path.Combine(baseDir, $"File_{iFile:000}.txt");
using (StreamWriter writer = new StreamWriter(filePath))
{
StringBuilder sb = new StringBuilder();
// compongo un testo di numRow righe da GUID...
for (int i = 0; i < numRows; i++)
{
var newId = Guid.NewGuid();
sb.AppendLine($"{DateTime.Now:HH:mm:ss.ffffff} | {newId} | {newId}");
}
writer.WriteLine(sb.ToString());
}
}
}
sw.Stop();
esitoStep = $"Completata generazione test data: {sw.ElapsedMilliseconds:N1} ms";
}
break;
case stepType.mirrorDirL2R:
if (item.paramList != null && item.paramList.Count > 1)
{
sw.Restart();
string localDir = Path.Combine(BaseDirectory, item.paramList[0]);
string remoteDir = item.paramList[1];
var preTest = ftpClient.DirExists(remoteDir);
if (!preTest)
{
ftpClient.CreateDir(remoteDir);
}
var mirrorDone = ftpClient.SendDir(localDir, remoteDir, FluentFTP.FtpFolderSyncMode.Mirror);
esitoStep = mirrorDone ? $"Directory {localDir} mirrored L2R!" : $"Error: {remoteDir} NOT mirrored!";
}
else
{
esitoStep = "Error: missing parameters!";
}
sw.Stop();
esitoStep = $"Completato mirror L2R: {sw.ElapsedMilliseconds:N1} ms";
break;
case stepType.mirrorDirR2L:
if (item.paramList != null && item.paramList.Count > 1)
{
sw.Restart();
string remoteDir = item.paramList[0];
string localDir = Path.Combine(BaseDirectory, item.paramList[1]);
var preTest = ftpClient.DirExists(remoteDir);
if (preTest)
{
var mirrorDone = ftpClient.GetDir(localDir, remoteDir, FluentFTP.FtpFolderSyncMode.Mirror);
esitoStep = mirrorDone ? $"Directory {remoteDir} mirrored R2L!" : $"Error: {remoteDir} NOT mirrored!";
}
else
{
esitoStep = "Dir remota non trovata!";
}
}
else
{
esitoStep = "Error: missing parameters!";
}
sw.Stop();
esitoStep = $"Completato mirror R2L: {sw.ElapsedMilliseconds:N1} ms";
break;
case stepType.delFileList:
if (item.paramList != null && item.paramList.Count > 1)
{
sw.Restart();
string remoteDir = item.paramList[0];
string fileSearch= item.paramList[1];
List<FluentFTP.FtpListItem> resList = ftpClient.GetRemoteList(remoteDir, true);
// cerco solo i file di tipo fileSearch
List<FluentFTP.FtpListItem> resListFilt = new List<FluentFTP.FtpListItem>();
foreach (var flItem in resList)
{
if(flItem.Type == FluentFTP.FtpObjectType.File && flItem.Name.EndsWith(fileSearch))
{
resListFilt.Add(flItem);
}
}
// elimino quelli trovati
if (resListFilt.Count>0)
{
var fList = resListFilt.Select(x => x.FullName).ToList();
var numDel = ftpClient.DeleteFileList(fList);
// indico esito eliminazione
esitoStep = $"Eliminati {numDel}/{resListFilt.Count} file";
}
else
{
esitoStep = "File non trovati!";
}
}
else
{
esitoStep = "Error: missing parameters!";
}
sw.Stop();
esitoStep += $"{Environment.NewLine}Completato GetRemotList : {sw.ElapsedMilliseconds:N1} ms";
break;
default:
break;
}
Console.WriteLine(esitoStep);
Console.WriteLine($"------ Done Step {item.id} ------");
Console.WriteLine();
Console.WriteLine("Press a key to continue...");
Console.ReadKey();
}
Console.WriteLine();
Console.WriteLine("Do you want to repeat from the beginnning? esc to close");
ConsoleKeyInfo answ = Console.ReadKey();
doRepeat = answ.Key != ConsoleKey.Escape;
}
}
}
}
// test base su server steamware
else
{
Console.WriteLine(separator);
Console.WriteLine("Mode: base");
Console.WriteLine(separator);
Console.WriteLine();
string sSkipCert = ReadSetting("skipCert");
bool skipCert = false;
bool.TryParse(sSkipCert, out skipCert);
ftpClient = new Manager(ReadSetting("server"), ReadSetting("userName"), ReadSetting("passwd"), ReadSetting("rawCert"), skipCert);
serverTest(ftpClient);
Console.WriteLine("--- Folder ---");
var testExists = ftpClient.DirExists($"data/test_folder");
if (testExists)
{
Console.WriteLine("Folder already exists!");
}
else
{
Console.WriteLine("--- Create folder ---");
var testCreate = ftpClient.CreateDir($"data/test_folder");
Console.WriteLine();
}
Console.WriteLine("Contenuto folder remota: ");
var folderContent = ftpClient.ListDir("data/", true);
foreach (var item in folderContent)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
Console.WriteLine("--- Upload file ---");
ftpClient.SendFile("test/FileProva.txt", "data/test_folder/FileProva.txt");
Console.WriteLine("Contenuto folder remota: ");
folderContent = ftpClient.ListDir("data/", true);
foreach (var item in folderContent)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
Console.WriteLine("--- Download File ---");
ftpClient.GetFile("test/FileProva_02.txt", "data/test_folder/FileProva.txt");
Console.WriteLine("Contenuto folder remota: ");
folderContent = ftpClient.ListDir("data/", true);
foreach (var item in folderContent)
{
Console.WriteLine(item);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
}
}
private static void serverTest(Manager ftpClient)
{
Console.WriteLine(separator);
var testServer = ftpClient.ServerOk();
Console.WriteLine($"Test connessione: esito {testServer}");
var srvType = ftpClient.ServerType();
Console.WriteLine($"Server: {srvType}");
Console.WriteLine(separator);
Console.WriteLine();
}
#endregion Private Methods
}
}
@@ -0,0 +1,36 @@
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("EgwProxy.Ftp.Test")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Ftp.Test")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[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("a655a6ac-5997-46f9-9752-8c621b80516c")]
// 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")]
+46
View File
@@ -0,0 +1,46 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.Ftp.Test
{
public class TestSetup
{
public string server { get; set; } = "";
public string user { get; set; } = "";
public string password { get; set; } = "";
public string rawCert { get; set; } = "";
public bool skipCert { get; set; } = false;
public List<singleStep> steps { get; set; }
}
public class singleStep
{
public string id { get; set; } = "00";
public string description { get; set; } = "00";
public stepType action { get; set; } = stepType.checkDir;
public List<string> paramList { get; set; } = new List<string>();
}
public enum stepType
{
checkDir,
checkFile,
createDir,
delDir,
delFile,
delFileList,
downloadDir,
downloadFile,
genRandomDir,
listContent,
mirrorDirL2R,
mirrorDirR2L,
uploadDir,
uploadFile
}
}
+1
View File
@@ -0,0 +1 @@

@@ -0,0 +1,76 @@
{
"server": "ftp.steamware.net",
"user": "testftpuser",
"password": "we4reFromB3rghem!",
"rawCert": "",
"skipCert": true,
"steps": [
{
"id": "01",
"description": "Test base directory",
"action": "checkDir",
"paramList": [
"data/"
]
},
{
"id": "02",
"description": "Create directory",
"action": "createDir",
"paramList": [
"data/test_directory"
]
},
{
"id": "03",
"description": "Upload File",
"action": "uploadFile",
"paramList": [
"data/test_directory/FileProva.txt",
"test/FileProva.txt"
]
},
{
"id": "04",
"description": "Browse Directory",
"action": "listContent",
"paramList": [
"data/test_directory/"
]
},
{
"id": "05",
"description": "Upload File",
"action": "uploadFile",
"paramList": [
"data/test_directory/FileProva_02.txt",
"test/FileProva.txt"
]
},
{
"id": "06",
"description": "Browse Directory",
"action": "listContent",
"paramList": [
"data/test_directory/"
]
},
{
"id": "07",
"description": "Download Directory",
"action": "downloadDir",
"paramList": [
"data/test_directory/",
"temp/mirror"
]
},
{
"id": "08",
"description": "Delete Remote Directory",
"action": "delDir",
"paramList": [
"data/test_directory/"
]
}
]
}
+44
View File
@@ -0,0 +1,44 @@
{
"server": "egw-tscale-04",
"user": "testftpuser",
"password": "we4reFromB3rghem!",
"rawCert": "",
"skipCert": true,
"steps": [
{
"id": "01",
"description": "Generate Local Folder Data",
"action": "delFileList",
"paramList": [
"ftpdata/syncfolder/",
"File_000.txt"
]
},
//{
// "id": "02",
// "description": "Mirror Local 2 Remote Directory",
// "action": "mirrorDirL2R",
// "paramList": [
// "temp\\localsource",
// "ftpdata/syncfolder"
// ]
//},
{
"id": "03",
"description": "Mirror Remote 2 Local Directory",
"action": "mirrorDirR2L",
"paramList": [
"ftpdata/syncfolder",
"temp\\localdest"
]
},
//{
// "id": "04",
// "description": "Delete Remote Directory",
// "action": "delDir",
// "paramList": [
// "ftpdata/syncfolder"
// ]
//}
]
}
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FluentFTP" version="51.1.0" targetFramework="net462" />
<package id="Microsoft.Extensions.Logging.Abstractions" version="3.1.32" targetFramework="net462" />
<package id="Newtonsoft.Json" version="13.0.1" targetFramework="net462" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
</packages>
+1
View File
@@ -0,0 +1 @@
File di prova
+66
View File
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{35D95ED8-E48A-434D-A305-A83E48C8FC6F}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>EgwProxy.Ftp</RootNamespace>
<AssemblyName>EgwProxy.Ftp</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<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|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="FluentFTP, Version=51.1.0.0, Culture=neutral, PublicKeyToken=f4af092b1d8df44f, processorArchitecture=MSIL">
<HintPath>..\packages\FluentFTP.51.1.0\lib\net462\FluentFTP.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Extensions.Logging.Abstractions, Version=3.1.32.0, Culture=neutral, PublicKeyToken=adb9793829ddae60, processorArchitecture=MSIL">
<HintPath>..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.32\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.3.1\lib\net46\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Manager.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+530
View File
@@ -0,0 +1,530 @@
using FluentFTP;
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Security;
namespace EgwProxy.Ftp
{
/// <summary>
/// Client per operazioni FTP, basato su FluentFTP: https://github.com/robinrodricks/FluentFTP https://github.com/robinrodricks/FluentFTP/wiki/Quick-Start-Example
/// </summary>
public class Manager
{
#region Public Constructors
/// <summary>
/// Inizializzazione di oggetto per comunicazione FTP
/// </summary>
/// <param name="server"></param>
/// <param name="userName"></param>
/// <param name="passwd"></param>
/// <param name="rawCert"></param>
/// <param name="skipCert"></param>
public Manager(string server, string userName, string passwd, string rawCert, bool skipCert)
{
_server = server;
_userName = userName;
_passwd = passwd;
_skipCert = skipCert;
_rawCert = rawCert;
if (!string.IsNullOrEmpty(server))
{
// se ho user/pwd è autenticato...
if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(passwd))
{
client = new FtpClient(server, userName, passwd);
}
//.. altrimenti anonimo...
else
{
client = new FtpClient(server);
}
client.Config.RetryAttempts = 3;
IsConfigured = true;
}
}
#endregion Public Constructors
#region Public Properties
public bool IsConfigured { get; set; } = false;
#endregion Public Properties
#region Public Methods
/// <summary>
/// Creazione directory remota
/// </summary>
/// <param name="remoteDir">Nome directory remota da creare (ad es: @"/public_html/videos")</param>
public bool CreateDir(string remoteDir)
{
bool answ = false;
try
{
tryConnect();
// upload della folder + files, cancellazione extra files = mirroring
answ = client.CreateDirectory(remoteDir);
}
catch (Exception exc)
{
Log.Error($"Eccezione in CreateDir{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Eliminazionedirectory remota
/// </summary>
/// <param name="remoteDir">Nome directory remota da eliminare</param>
public bool DeleteDir(string remoteDir)
{
bool answ = false;
try
{
tryConnect();
// Elimina folder
client.DeleteDirectory(remoteDir);
answ = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione in DeleteDir{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Eliminazione file remoto
/// </summary>
/// <param name="remoteFile">Nome file remoto da eliminare</param>
public bool DeleteFile(string remoteFile)
{
bool answ = false;
tryConnect();
try
{
// Elimina folder
client.DeleteFile(remoteFile);
answ = true;
}
catch (Exception exc)
{
Log.Error($"Eccezione in DeleteFile{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Eliminazione lista di files remoti
/// </summary>
/// <param name="remFileList">Lista file remoti da eliminare</param>
public int DeleteFileList(List<string> remFileList)
{
int numDone = 0;
tryConnect();
try
{
foreach (var remoteFile in remFileList)
{
// Elimina folder
client.DeleteFile(remoteFile);
// verifico se sia presente...
bool fExist = client.FileExists(remoteFile);
if (!fExist)
{
numDone++;
}
}
}
catch (Exception exc)
{
Log.Error($"Eccezione in DeleteFileList{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return numDone;
}
/// <summary>
/// Verifica esistenza directory su server FTP remoto
/// </summary>
/// <param name="remotePath">Percorso remoto da testare (ad es "/htdocs/extras/")</param>
/// <returns></returns>
public bool DirExists(string remotePath)
{
bool answ = false;
try
{
tryConnect();
answ = client.DirectoryExists(remotePath);
}
catch (Exception exc)
{
Log.Error($"Eccezione in DirExists{Environment.NewLine}{exc}");
}
// c chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Verifica esistenza file su server FTP remoto
/// </summary>
/// <param name="remotePath">Percorso remoto da testare (ad es "/htdocs/big2.txt")</param>
/// <returns></returns>
public bool FileExists(string remotePath)
{
bool answ = false;
try
{
tryConnect();
answ = client.FileExists(remotePath);
}
catch (Exception exc)
{
Log.Error($"Eccezione in FileExists{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Scaricamento intera directory, modalità MIRROR
/// </summary>
/// <param name="localDir">Path directory da inviare (ad es:@"C:\website\videos\")</param>
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
/// <param name="syncMode">Modalità di sync (default = mirror)</param>
public bool GetDir(string localDir, string remoteDir, FtpFolderSyncMode syncMode = FtpFolderSyncMode.Mirror)
{
bool answ = false;
try
{
tryConnect();
// download della folder secondo modalità sync
var result = client.DownloadDirectory(localDir, remoteDir, syncMode);
//answ = (result != null && result.Count > 0);
answ = result != null && result.Where(x => !x.IsSuccess).Count() == 0;
}
catch (Exception exc)
{
Log.Error($"Eccezione in GetDir{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Download singolo file
/// </summary>
/// <param name="fileName">Path locale del file da inviare (ad es: @"C:\MyVideo.mp4")</param>
/// <param name="remoteName">NOme remoto file per caricamento (ad es: "/htdocs/MyVideo.mp4")</param>
public bool GetFile(string fileName, string remoteName)
{
bool answ = false;
try
{
tryConnect();
// effettuo caricamento puntuale
var result = client.DownloadFile(fileName, remoteName);
answ = result == FtpStatus.Success;
}
catch (Exception exc)
{
Log.Error($"Eccezione in GetFile{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Mostra contenuto directory remota
/// </summary>
/// <param name="remoteDir">Nome directory remota da leggere con (ad es: @"/public_html/videos")</param>
/// <param name="recurse">Indica se fare search ricorsivo</param>
public List<FtpListItem> GetRemoteList(string remoteDir, bool recurse)
{
List<FtpListItem> answ = new List<FtpListItem>();
try
{
tryConnect();
// recupero listing remoto directory
FtpListItem[] dirContent;
if (recurse)
{
dirContent = client.GetListing(remoteDir, FtpListOption.Recursive);
}
else
{
dirContent = client.GetListing(remoteDir);
}
answ = dirContent.ToList();
}
catch (Exception exc)
{
Log.Error($"Eccezione in GetRemoteList{Environment.NewLine}{exc}");
}
client.Disconnect();
// chiudo!
return answ;
}
/// <summary>
/// Mostra contenuto directory remota
/// </summary>
/// <param name="remoteDir">Nome directory remota da leggere (ad es: @"/public_html/videos")</param>
/// <param name="recurse">Indica se fare search ricorsivo</param>
public List<string> ListDir(string remoteDir, bool recurse)
{
List<string> answ = new List<string>();
try
{
tryConnect();
// upload della folder + files, cancellazione extra files = mirroring
FtpListItem[] dirContent;
if (recurse)
{
dirContent = client.GetListing(remoteDir, FtpListOption.Recursive);
}
else
{
dirContent = client.GetListing(remoteDir);
}
answ = dirContent.Select(x => $"{x.Type} - {x.Name}").ToList();
}
catch (Exception exc)
{
Log.Error($"Eccezione in ListDir{Environment.NewLine}{exc}");
}
client.Disconnect();
// chiudo!
return answ;
}
/// <summary>
/// Caricamento intera directory, modalità MIRROR
/// </summary>
/// <param name="localDir">Path directory da inviare (ad es:@"C:\website\videos\")</param>
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
/// <param name="syncMode">Modalità di sync (default = mirror)</param>
public List<FtpResult> MirrorLocalDir(string localDir, string remoteDir, FtpFolderSyncMode syncMode = FtpFolderSyncMode.Mirror)
{
List<FtpResult> jobResult = new List<FtpResult>();
try
{
tryConnect();
jobResult = client.UploadDirectory(localDir, remoteDir, syncMode);
//answ = (result != null && result.Count > 0);
}
catch (Exception exc)
{
Log.Error($"Eccezione in MirrorLocalDir{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return jobResult;
}
/// <summary>
/// Scaricamento intera directory, modalità MIRROR, con restituzione elenco esiti
/// </summary>
/// <param name="localDir">Path directory da inviare (ad es:@"C:\website\videos\")</param>
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
/// <param name="syncMode">Modalità di sync (default = mirror)</param>
public List<FtpResult> MirrorRemoteDir(string localDir, string remoteDir, FtpFolderSyncMode syncMode = FtpFolderSyncMode.Mirror)
{
List<FtpResult> jobResult = new List<FtpResult>();
try
{
tryConnect();
jobResult = client.DownloadDirectory(localDir, remoteDir, syncMode);
}
catch (Exception exc)
{
Log.Error($"Eccezione in mirrorRemoteDir{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return jobResult;
}
/// <summary>
/// Caricamento intera directory, modalità MIRROR
/// </summary>
/// <param name="localDir">Path directory da inviare (ad es:@"C:\website\videos\")</param>
/// <param name="remoteDir">Nome remoto file per caricamento (ad es: @"/public_html/videos")</param>
/// <param name="syncMode">Modalità di sync (default = mirror)</param>
public bool SendDir(string localDir, string remoteDir, FtpFolderSyncMode syncMode = FtpFolderSyncMode.Mirror)
{
bool answ = false;
try
{
tryConnect();
//var result = client.UploadDirectory(localDir, remoteDir, FtpFolderSyncMode.Mirror, FtpRemoteExists.OverwriteInPlace, FtpVerify.Retry);
// upload della folder + files, cancellazione extra files = mirroring
var result = client.UploadDirectory(localDir, remoteDir, syncMode);
//answ = (result != null && result.Count > 0);
answ = result != null && result.Where(x => !x.IsSuccess).Count() == 0;
}
catch (Exception exc)
{
Log.Error($"Eccezione in SendDir{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Caricamento singolo file
/// </summary>
/// <param name="fileName">Path locale del file da inviare (ad es: @"C:\MyVideo.mp4")</param>
/// <param name="remoteName">NOme remoto file per caricamento (ad es: "/htdocs/MyVideo.mp4")</param>
public bool SendFile(string fileName, string remoteName)
{
bool answ = false;
try
{
tryConnect();
tryConnect();
// effettuo caricamento puntuale
var result = client.UploadFile(fileName, remoteName);
answ = result == FtpStatus.Success;
// se insuccesso --> controllo se ci sia file...
if (!answ)
{
answ = FileExists(remoteName);
}
}
catch (Exception exc)
{
Log.Error($"Eccezione in SendFile{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Verifica connessione con server FTP remoto
/// </summary>
/// <returns></returns>
public bool ServerOk()
{
bool answ = false;
try
{
tryConnect();
answ = client.IsConnected;
}
catch (Exception exc)
{
Log.Error($"Eccezione in ServerOk{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
/// <summary>
/// Restituisce tipo server remoto
/// </summary>
/// <returns></returns>
public string ServerType()
{
string answ = "";
try
{
tryConnect();
FtpServer srvType = client.ServerType;
answ = $"{srvType}";
}
catch (Exception exc)
{
Log.Error($"Eccezione in ServerType{Environment.NewLine}{exc}");
}
// chiudo!
client.Disconnect();
return answ;
}
#endregion Public Methods
#region Protected Fields
protected bool _skipCert = false;
#endregion Protected Fields
#region Protected Properties
protected string _passwd { get; set; } = "";
protected string _rawCert { get; set; } = "";
protected string _server { get; set; } = "";
protected string _userName { get; set; } = "";
#endregion Protected Properties
#region Private Fields
private static Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
#region Private Properties
private FtpClient client { get; set; } = new FtpClient();
#endregion Private Properties
#region Private Methods
private void Client_ValidateCertificate(FluentFTP.Client.BaseClient.BaseFtpClient control, FtpSslValidationEventArgs e)
{
if (e.PolicyErrors == SslPolicyErrors.None || _skipCert || e.Certificate.GetRawCertDataString() == _rawCert)
{
e.Accept = true;
}
else
{
Log.Error($"{e.PolicyErrors}");
Log.Error($"Cert:{Environment.NewLine}{e.Certificate}");
Log.Error($"RawString:{Environment.NewLine}{e.Certificate.GetRawCertDataString()}");
throw new Exception($"{e.PolicyErrors}{Environment.NewLine}{e.Certificate.GetRawCertDataString()}");
}
}
private void tryConnect()
{
// connect to the server and automatically detect working FTP settings
if (!client.IsConnected)
{
var profiles = client.AutoDetect(true, true);
#if false
// if any profiles are found, print the code to the console
if (profiles.Count > 0)
{
var code = profiles[0].ToCode();
Console.WriteLine(code);
}
#endif
client.ValidateCertificate += Client_ValidateCertificate;
client.AutoConnect();
}
}
#endregion Private Methods
}
}
+36
View File
@@ -0,0 +1,36 @@
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("EgwProxy.Ftp")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Ftp")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[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("35d95ed8-e48a-434d-a305-a83e48c8fc6f")]
// 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")]
+11
View File
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Extensions.Logging.Abstractions" publicKeyToken="adb9793829ddae60" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.1.32.0" newVersion="3.1.32.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
+69
View File
@@ -0,0 +1,69 @@
{
"metadata": [
{
"src": [
{
"files": [
"*.csproj",
"*.vbproj"
],
"cwd": ".",
"exclude": [
"**/obj/**",
"**/bin/**",
"_site/**"
]
}
],
"dest": "obj/api"
}
],
"build": {
"content": [
{
"files": [
"api/**.yml"
],
"cwd": "obj"
},
{
"files": [
"api/*.md",
"articles/**.md",
"toc.yml",
"*.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"resource": [
{
"files": [
"images/**"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"overwrite": [
{
"files": [
"apidoc/**.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"dest": "_site",
"template": [
"default"
]
}
}
+17
View File
@@ -0,0 +1,17 @@
# EgwProxy.Ftp Library
Documentazione relativa alla libreria di interfaccia via FTP con server generici.
Disponibile in forma di pacchetto nuget sul repo aziendale nexus.steamware.net: i pacchetti sono disponibili all'indirizzo
https://nexus.steamware.net/#browse/browse:nuget-hosted
Vedere la sezione Articles per maggiori informazioni sulle definizioni, l'impiego ed esempi.
## Articles
Per maggiori dettagli, definizioni e demo funzionamento si rimanda alla sezione Articles
## Api
Per ogni dettaglio e riferimento alla libreria si rimanda alla sezione Api Documentation
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="FluentFTP" version="51.1.0" targetFramework="net462" />
<package id="Microsoft.Extensions.Logging.Abstractions" version="3.1.32" targetFramework="net462" />
<package id="NLog" version="5.3.1" targetFramework="net462" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
</packages>
+6
View File
@@ -0,0 +1,6 @@
- name: Articles
href: articles/
- name: API Documentation
href: obj/api/
homepage: api/index.md
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="lwpServicePortBinding">
<security mode="Transport" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://308gomba:8000/ws" binding="basicHttpBinding"
bindingConfiguration="lwpServicePortBinding" contract="GombaServ.lwpService"
name="lwpServicePort" />
</client>
</system.serviceModel>
</configuration>
@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{2B7F1536-61D1-4F05-AF8D-62A52D114479}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>EgwProxy.Gomba.Test</RootNamespace>
<AssemblyName>EgwProxy.Gomba.Test</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</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|AnyCPU' ">
<PlatformTarget>AnyCPU</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.ServiceModel" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EgwProxy.Gomba\EgwProxy.Gomba.csproj">
<Project>{cc377124-1b94-40c1-b552-d6d42eb2bf27}</Project>
<Name>EgwProxy.Gomba</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+107
View File
@@ -0,0 +1,107 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.Gomba.Test
{
internal class Program
{
static void Main(string[] args)
{
// gestire da conf se saltare certificato
ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };
string linea = "-----------------------------";
Console.WriteLine(linea);
Console.WriteLine("Test comunicazione Gomba");
Console.WriteLine(linea);
Console.WriteLine();
string escimi = "N";
GombaServ.lwpServiceClient gombaConn;
// init proxy SOAP
if (false)
{
//gombaConn = new GombaServ.lwpServiceClient();
}
else
{
//gombaConn = new GombaServ.lwpServiceClient("lwpServicePort", new System.ServiceModel.EndpointAddress("https://172.28.31.56:8000/ws"));
gombaConn = new GombaServ.lwpServiceClient("lwpServicePort", new System.ServiceModel.EndpointAddress("https://308gomba:8000/ws"));
}
Console.WriteLine("Premere un tasto per iniziare test.");
escimi = Console.ReadLine().ToUpper();
int idxReq = 10;
// lettura
while (escimi != "E")
{
string pesata = "";
Console.WriteLine($"{linea} {DateTime.Now:HH:mm:ss.fff} {linea}");
try
{
string dataFrom = "01/01/2023";
string dataTo = DateTime.Today.AddDays(1).ToString("dd/MM/yyyy");
var results = gombaConn.reqWeightList("ALL", dataFrom, dataTo);
foreach (var item in results)
{
pesata = $"rm: {item.rm} | DI: {item.dateIn} | DO: {item.dateOut} | BI: {item.balanceIn} | BO: {item.balanceOut} | WI: {item.weightIn} | WO: {item.weightOut} | Feed: {item.feedback} | note: {item.notes}";
//pesata = $"rm: {item.rm} | DI: {item.dateIn} | DO: {item.dateOut} | BI: {item.balanceIn} | BO: {item.balanceOut} | WI: {item.weightIn} | WO: {item.weightOut} | net: {item.net} | MI: {item.idMemIn} | MO: {item.idMemOut} | Feed: {item.feedback} | note: {item.notes}";
Console.WriteLine(pesata);
}
}
catch (Exception exc)
{
Console.WriteLine($"Errore:{Environment.NewLine}{exc}");
}
Console.WriteLine($"{linea} {DateTime.Now:HH:mm:ss.fff} {linea}");
Console.WriteLine();
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Cosa vuoi fare ora? I = pesata IN, O= pesata OUT, E = uscita, altrimenti rilettura");
escimi = Console.ReadLine().ToUpper();
DateTime adesso = DateTime.Now;
// invio pesata
if (escimi == "I")
{
try
{
var answ = gombaConn.memWeight("IN", $"ODL000000{idxReq}", "TEST", "INGRESSO", "15000", "PROVA IN", $"{adesso:yyyy/MM/dd}", $"{adesso:HH:mm:ss}");
bool pesoOk = answ.feedback == "C";
pesata = $"rm: {answ.rm} | DI: {answ.dateIn} | DO: {answ.dateOut} | BI: {answ.balanceIn} | BO: {answ.balanceOut} | WI: {answ.weightIn} | WO: {answ.weightOut} | Feed: {answ.feedback} | note: {answ.notes}";
Console.WriteLine(pesata);
Console.WriteLine();
}
catch (Exception exc)
{
Console.WriteLine($"Errore:{Environment.NewLine}{exc}");
}
}
else if (escimi == "O")
{
try
{
var answ = gombaConn.memWeight("OUT", $"ODL000000{idxReq}", "TEST", "USCITA", "15000", "PROVA OUT", $"{adesso:yyyy/MM/dd}", $"{adesso:HH:mm:ss}");
bool pesoOk = answ.feedback == "C";
pesata = $"rm: {answ.rm} | DI: {answ.dateIn} | DO: {answ.dateOut} | BI: {answ.balanceIn} | BO: {answ.balanceOut} | WI: {answ.weightIn} | WO: {answ.weightOut} | Feed: {answ.feedback} | note: {answ.notes}";
Console.WriteLine(pesata);
Console.WriteLine();
if (pesoOk)
{
idxReq++;
}
}
catch (Exception exc)
{
Console.WriteLine($"Errore:{Environment.NewLine}{exc}");
}
}
}
}
}
}
@@ -0,0 +1,36 @@
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("EgwProxy.Gomba.Test")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Gomba.Test")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[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("2b7f1536-61d1-4f05-af8d-62a52d114479")]
// 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")]
+29
View File
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Runtime.Serialization.Primitives" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="lwpServicePortBinding">
<security mode="Transport" />
</binding>
<binding name="lwpServicePortBinding1" />
</basicHttpBinding>
</bindings>
<client>
<endpoint address="https://308gomba:8000/ws" binding="basicHttpBinding"
bindingConfiguration="lwpServicePortBinding" contract="GombaServ.lwpService"
name="lwpServicePort" />
</client>
</system.serviceModel>
</configuration>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="gestWeightOut" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Gomba.GombaServ.gestWeightOut, Connected Services.GombaServ.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="memWeightResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Gomba.GombaServ.memWeightResponse, Connected Services.GombaServ.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="reqWeightListResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Gomba.GombaServ.reqWeightListResponse, Connected Services.GombaServ.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="reqWeightResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Gomba.GombaServ.reqWeightResponse, Connected Services.GombaServ.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,611 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace EgwProxy.Gomba.GombaServ {
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", ConfigurationName="GombaServ.lwpService")]
public interface lwpService {
// CODEGEN: Parameter 'return' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'.
[System.ServiceModel.OperationContractAttribute(Action="http://servicesImpl.webServices.gomba.com/lwpService/memWeightRequest", ReplyAction="http://servicesImpl.webServices.gomba.com/lwpService/memWeightResponse")]
[System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
[return: System.ServiceModel.MessageParameterAttribute(Name="return")]
EgwProxy.Gomba.GombaServ.memWeightResponse memWeight(EgwProxy.Gomba.GombaServ.memWeightRequest request);
[System.ServiceModel.OperationContractAttribute(Action="http://servicesImpl.webServices.gomba.com/lwpService/memWeightRequest", ReplyAction="http://servicesImpl.webServices.gomba.com/lwpService/memWeightResponse")]
System.Threading.Tasks.Task<EgwProxy.Gomba.GombaServ.memWeightResponse> memWeightAsync(EgwProxy.Gomba.GombaServ.memWeightRequest request);
// CODEGEN: Parameter 'return' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'.
[System.ServiceModel.OperationContractAttribute(Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightListRequest", ReplyAction="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightListResponse")]
[System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
[return: System.ServiceModel.MessageParameterAttribute(Name="return")]
EgwProxy.Gomba.GombaServ.reqWeightListResponse reqWeightList(EgwProxy.Gomba.GombaServ.reqWeightListRequest request);
[System.ServiceModel.OperationContractAttribute(Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightListRequest", ReplyAction="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightListResponse")]
System.Threading.Tasks.Task<EgwProxy.Gomba.GombaServ.reqWeightListResponse> reqWeightListAsync(EgwProxy.Gomba.GombaServ.reqWeightListRequest request);
// CODEGEN: Parameter 'return' requires additional schema information that cannot be captured using the parameter mode. The specific attribute is 'System.Xml.Serialization.XmlElementAttribute'.
[System.ServiceModel.OperationContractAttribute(Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightRequest", ReplyAction="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightResponse")]
[System.ServiceModel.XmlSerializerFormatAttribute(SupportFaults=true)]
[return: System.ServiceModel.MessageParameterAttribute(Name="return")]
EgwProxy.Gomba.GombaServ.reqWeightResponse reqWeight(EgwProxy.Gomba.GombaServ.reqWeightRequest request);
[System.ServiceModel.OperationContractAttribute(Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightRequest", ReplyAction="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightResponse")]
System.Threading.Tasks.Task<EgwProxy.Gomba.GombaServ.reqWeightResponse> reqWeightAsync(EgwProxy.Gomba.GombaServ.reqWeightRequest request);
}
/// <remarks/>
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.8.3761.0")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://servicesImpl.webServices.gomba.com/")]
public partial class gestWeightOut : object, System.ComponentModel.INotifyPropertyChanged {
private string balanceInField;
private string balanceOutField;
private string cod1Field;
private string cod2Field;
private string cod3Field;
private string cod4Field;
private string cod5Field;
private string cod6Field;
private System.DateTime dateInField;
private bool dateInFieldSpecified;
private System.DateTime dateOutField;
private bool dateOutFieldSpecified;
private string feedbackField;
private string idMemInField;
private string idMemOutField;
private string netField;
private string notesField;
private string rmField;
private string weightInField;
private string weightOutField;
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=0)]
public string balanceIn {
get {
return this.balanceInField;
}
set {
this.balanceInField = value;
this.RaisePropertyChanged("balanceIn");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=1)]
public string balanceOut {
get {
return this.balanceOutField;
}
set {
this.balanceOutField = value;
this.RaisePropertyChanged("balanceOut");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=2)]
public string cod1 {
get {
return this.cod1Field;
}
set {
this.cod1Field = value;
this.RaisePropertyChanged("cod1");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=3)]
public string cod2 {
get {
return this.cod2Field;
}
set {
this.cod2Field = value;
this.RaisePropertyChanged("cod2");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=4)]
public string cod3 {
get {
return this.cod3Field;
}
set {
this.cod3Field = value;
this.RaisePropertyChanged("cod3");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=5)]
public string cod4 {
get {
return this.cod4Field;
}
set {
this.cod4Field = value;
this.RaisePropertyChanged("cod4");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=6)]
public string cod5 {
get {
return this.cod5Field;
}
set {
this.cod5Field = value;
this.RaisePropertyChanged("cod5");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=7)]
public string cod6 {
get {
return this.cod6Field;
}
set {
this.cod6Field = value;
this.RaisePropertyChanged("cod6");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=8)]
public System.DateTime dateIn {
get {
return this.dateInField;
}
set {
this.dateInField = value;
this.RaisePropertyChanged("dateIn");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool dateInSpecified {
get {
return this.dateInFieldSpecified;
}
set {
this.dateInFieldSpecified = value;
this.RaisePropertyChanged("dateInSpecified");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=9)]
public System.DateTime dateOut {
get {
return this.dateOutField;
}
set {
this.dateOutField = value;
this.RaisePropertyChanged("dateOut");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlIgnoreAttribute()]
public bool dateOutSpecified {
get {
return this.dateOutFieldSpecified;
}
set {
this.dateOutFieldSpecified = value;
this.RaisePropertyChanged("dateOutSpecified");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=10)]
public string feedback {
get {
return this.feedbackField;
}
set {
this.feedbackField = value;
this.RaisePropertyChanged("feedback");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=11)]
public string idMemIn {
get {
return this.idMemInField;
}
set {
this.idMemInField = value;
this.RaisePropertyChanged("idMemIn");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=12)]
public string idMemOut {
get {
return this.idMemOutField;
}
set {
this.idMemOutField = value;
this.RaisePropertyChanged("idMemOut");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=13)]
public string net {
get {
return this.netField;
}
set {
this.netField = value;
this.RaisePropertyChanged("net");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=14)]
public string notes {
get {
return this.notesField;
}
set {
this.notesField = value;
this.RaisePropertyChanged("notes");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=15)]
public string rm {
get {
return this.rmField;
}
set {
this.rmField = value;
this.RaisePropertyChanged("rm");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=16)]
public string weightIn {
get {
return this.weightInField;
}
set {
this.weightInField = value;
this.RaisePropertyChanged("weightIn");
}
}
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, Order=17)]
public string weightOut {
get {
return this.weightOutField;
}
set {
this.weightOutField = value;
this.RaisePropertyChanged("weightOut");
}
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string propertyName) {
System.ComponentModel.PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if ((propertyChanged != null)) {
propertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="memWeight", WrapperNamespace="http://servicesImpl.webServices.gomba.com/", IsWrapped=true)]
public partial class memWeightRequest {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=0)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string type;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=1)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string rm;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=2)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string cod1;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=3)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string cod2;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=4)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string cod3;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=5)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string cod4;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=6)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string cod5;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=7)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string cod6;
public memWeightRequest() {
}
public memWeightRequest(string type, string rm, string cod1, string cod2, string cod3, string cod4, string cod5, string cod6) {
this.type = type;
this.rm = rm;
this.cod1 = cod1;
this.cod2 = cod2;
this.cod3 = cod3;
this.cod4 = cod4;
this.cod5 = cod5;
this.cod6 = cod6;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="memWeightResponse", WrapperNamespace="http://servicesImpl.webServices.gomba.com/", IsWrapped=true)]
public partial class memWeightResponse {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=0)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public EgwProxy.Gomba.GombaServ.gestWeightOut @return;
public memWeightResponse() {
}
public memWeightResponse(EgwProxy.Gomba.GombaServ.gestWeightOut @return) {
this.@return = @return;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="reqWeightList", WrapperNamespace="http://servicesImpl.webServices.gomba.com/", IsWrapped=true)]
public partial class reqWeightListRequest {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=0)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string type;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=1)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string dateStart;
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=2)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string dateEnd;
public reqWeightListRequest() {
}
public reqWeightListRequest(string type, string dateStart, string dateEnd) {
this.type = type;
this.dateStart = dateStart;
this.dateEnd = dateEnd;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="reqWeightListResponse", WrapperNamespace="http://servicesImpl.webServices.gomba.com/", IsWrapped=true)]
public partial class reqWeightListResponse {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=0)]
[System.Xml.Serialization.XmlElementAttribute("return", Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public EgwProxy.Gomba.GombaServ.gestWeightOut[] @return;
public reqWeightListResponse() {
}
public reqWeightListResponse(EgwProxy.Gomba.GombaServ.gestWeightOut[] @return) {
this.@return = @return;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="reqWeight", WrapperNamespace="http://servicesImpl.webServices.gomba.com/", IsWrapped=true)]
public partial class reqWeightRequest {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=0)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public string rm;
public reqWeightRequest() {
}
public reqWeightRequest(string rm) {
this.rm = rm;
}
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
[System.ServiceModel.MessageContractAttribute(WrapperName="reqWeightResponse", WrapperNamespace="http://servicesImpl.webServices.gomba.com/", IsWrapped=true)]
public partial class reqWeightResponse {
[System.ServiceModel.MessageBodyMemberAttribute(Namespace="http://servicesImpl.webServices.gomba.com/", Order=0)]
[System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
public EgwProxy.Gomba.GombaServ.gestWeightOut @return;
public reqWeightResponse() {
}
public reqWeightResponse(EgwProxy.Gomba.GombaServ.gestWeightOut @return) {
this.@return = @return;
}
}
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public interface lwpServiceChannel : EgwProxy.Gomba.GombaServ.lwpService, System.ServiceModel.IClientChannel {
}
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "4.0.0.0")]
public partial class lwpServiceClient : System.ServiceModel.ClientBase<EgwProxy.Gomba.GombaServ.lwpService>, EgwProxy.Gomba.GombaServ.lwpService {
public lwpServiceClient() {
}
public lwpServiceClient(string endpointConfigurationName) :
base(endpointConfigurationName) {
}
public lwpServiceClient(string endpointConfigurationName, string remoteAddress) :
base(endpointConfigurationName, remoteAddress) {
}
public lwpServiceClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) :
base(endpointConfigurationName, remoteAddress) {
}
public lwpServiceClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) :
base(binding, remoteAddress) {
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
EgwProxy.Gomba.GombaServ.memWeightResponse EgwProxy.Gomba.GombaServ.lwpService.memWeight(EgwProxy.Gomba.GombaServ.memWeightRequest request) {
return base.Channel.memWeight(request);
}
public EgwProxy.Gomba.GombaServ.gestWeightOut memWeight(string type, string rm, string cod1, string cod2, string cod3, string cod4, string cod5, string cod6) {
EgwProxy.Gomba.GombaServ.memWeightRequest inValue = new EgwProxy.Gomba.GombaServ.memWeightRequest();
inValue.type = type;
inValue.rm = rm;
inValue.cod1 = cod1;
inValue.cod2 = cod2;
inValue.cod3 = cod3;
inValue.cod4 = cod4;
inValue.cod5 = cod5;
inValue.cod6 = cod6;
EgwProxy.Gomba.GombaServ.memWeightResponse retVal = ((EgwProxy.Gomba.GombaServ.lwpService)(this)).memWeight(inValue);
return retVal.@return;
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
System.Threading.Tasks.Task<EgwProxy.Gomba.GombaServ.memWeightResponse> EgwProxy.Gomba.GombaServ.lwpService.memWeightAsync(EgwProxy.Gomba.GombaServ.memWeightRequest request) {
return base.Channel.memWeightAsync(request);
}
public System.Threading.Tasks.Task<EgwProxy.Gomba.GombaServ.memWeightResponse> memWeightAsync(string type, string rm, string cod1, string cod2, string cod3, string cod4, string cod5, string cod6) {
EgwProxy.Gomba.GombaServ.memWeightRequest inValue = new EgwProxy.Gomba.GombaServ.memWeightRequest();
inValue.type = type;
inValue.rm = rm;
inValue.cod1 = cod1;
inValue.cod2 = cod2;
inValue.cod3 = cod3;
inValue.cod4 = cod4;
inValue.cod5 = cod5;
inValue.cod6 = cod6;
return ((EgwProxy.Gomba.GombaServ.lwpService)(this)).memWeightAsync(inValue);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
EgwProxy.Gomba.GombaServ.reqWeightListResponse EgwProxy.Gomba.GombaServ.lwpService.reqWeightList(EgwProxy.Gomba.GombaServ.reqWeightListRequest request) {
return base.Channel.reqWeightList(request);
}
public EgwProxy.Gomba.GombaServ.gestWeightOut[] reqWeightList(string type, string dateStart, string dateEnd) {
EgwProxy.Gomba.GombaServ.reqWeightListRequest inValue = new EgwProxy.Gomba.GombaServ.reqWeightListRequest();
inValue.type = type;
inValue.dateStart = dateStart;
inValue.dateEnd = dateEnd;
EgwProxy.Gomba.GombaServ.reqWeightListResponse retVal = ((EgwProxy.Gomba.GombaServ.lwpService)(this)).reqWeightList(inValue);
return retVal.@return;
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
System.Threading.Tasks.Task<EgwProxy.Gomba.GombaServ.reqWeightListResponse> EgwProxy.Gomba.GombaServ.lwpService.reqWeightListAsync(EgwProxy.Gomba.GombaServ.reqWeightListRequest request) {
return base.Channel.reqWeightListAsync(request);
}
public System.Threading.Tasks.Task<EgwProxy.Gomba.GombaServ.reqWeightListResponse> reqWeightListAsync(string type, string dateStart, string dateEnd) {
EgwProxy.Gomba.GombaServ.reqWeightListRequest inValue = new EgwProxy.Gomba.GombaServ.reqWeightListRequest();
inValue.type = type;
inValue.dateStart = dateStart;
inValue.dateEnd = dateEnd;
return ((EgwProxy.Gomba.GombaServ.lwpService)(this)).reqWeightListAsync(inValue);
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
EgwProxy.Gomba.GombaServ.reqWeightResponse EgwProxy.Gomba.GombaServ.lwpService.reqWeight(EgwProxy.Gomba.GombaServ.reqWeightRequest request) {
return base.Channel.reqWeight(request);
}
public EgwProxy.Gomba.GombaServ.gestWeightOut reqWeight(string rm) {
EgwProxy.Gomba.GombaServ.reqWeightRequest inValue = new EgwProxy.Gomba.GombaServ.reqWeightRequest();
inValue.rm = rm;
EgwProxy.Gomba.GombaServ.reqWeightResponse retVal = ((EgwProxy.Gomba.GombaServ.lwpService)(this)).reqWeight(inValue);
return retVal.@return;
}
[System.ComponentModel.EditorBrowsableAttribute(System.ComponentModel.EditorBrowsableState.Advanced)]
System.Threading.Tasks.Task<EgwProxy.Gomba.GombaServ.reqWeightResponse> EgwProxy.Gomba.GombaServ.lwpService.reqWeightAsync(EgwProxy.Gomba.GombaServ.reqWeightRequest request) {
return base.Channel.reqWeightAsync(request);
}
public System.Threading.Tasks.Task<EgwProxy.Gomba.GombaServ.reqWeightResponse> reqWeightAsync(string rm) {
EgwProxy.Gomba.GombaServ.reqWeightRequest inValue = new EgwProxy.Gomba.GombaServ.reqWeightRequest();
inValue.rm = rm;
return ((EgwProxy.Gomba.GombaServ.lwpService)(this)).reqWeightAsync(inValue);
}
}
}
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<ReferenceGroup xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="79647293-8e4c-48a5-a0d7-4baf3f694853" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
<ClientOptions>
<GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
<GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod>
<EnableDataBinding>true</EnableDataBinding>
<ExcludedTypes />
<ImportXmlTypes>false</ImportXmlTypes>
<GenerateInternalTypes>false</GenerateInternalTypes>
<GenerateMessageContracts>false</GenerateMessageContracts>
<NamespaceMappings />
<CollectionMappings />
<GenerateSerializableTypes>true</GenerateSerializableTypes>
<Serializer>Auto</Serializer>
<UseSerializerForFaults>true</UseSerializerForFaults>
<ReferenceAllAssemblies>true</ReferenceAllAssemblies>
<ReferencedAssemblies />
<ReferencedDataContractTypes />
<ServiceContractMappings />
</ClientOptions>
<MetadataSources>
<MetadataSource Address="https://308gomba:8000/ws?wsdl" Protocol="http" SourceId="1" />
</MetadataSources>
<Metadata>
<MetadataFile FileName="ws.xsd" MetadataType="Schema" ID="b430ce0c-e01d-46be-b5cc-fe061743f059" SourceId="1" SourceUrl="https://308gomba:8000/ws?xsd=1" />
<MetadataFile FileName="lwpService.wsdl" MetadataType="Wsdl" ID="975f05ee-1558-4bb6-9861-2455f688e911" SourceId="1" SourceUrl="https://308gomba:8000/ws?wsdl" />
</Metadata>
<Extensions>
<ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
<ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
</Extensions>
</ReferenceGroup>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<configurationSnapshot xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
<behaviors />
<bindings>
<binding digest="System.ServiceModel.Configuration.BasicHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data name=&quot;lwpServicePortBinding&quot;&gt;&lt;security mode=&quot;Transport&quot; /&gt;&lt;/Data&gt;" bindingType="basicHttpBinding" name="lwpServicePortBinding" />
<binding digest="System.ServiceModel.Configuration.BasicHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data name=&quot;lwpServicePortBinding1&quot; /&gt;" bindingType="basicHttpBinding" name="lwpServicePortBinding1" />
</bindings>
<endpoints>
<endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;https://308gomba:8000/ws&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;lwpServicePortBinding&quot; contract=&quot;GombaServ.lwpService&quot; name=&quot;lwpServicePort&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;https://308gomba:8000/ws&quot; binding=&quot;basicHttpBinding&quot; bindingConfiguration=&quot;lwpServicePortBinding&quot; contract=&quot;GombaServ.lwpService&quot; name=&quot;lwpServicePort&quot; /&gt;" contractName="GombaServ.lwpService" name="lwpServicePort" />
</endpoints>
</configurationSnapshot>
@@ -0,0 +1,310 @@
<?xml version="1.0" encoding="utf-8"?>
<SavedWcfConfigurationInformation xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Version="9.1" CheckSum="ETLHBUyFwK/hFPj9qQChVPXHjqFMxS4Tjq7vx1WkBI8=">
<bindingConfigurations>
<bindingConfiguration bindingType="basicHttpBinding" name="lwpServicePortBinding">
<properties>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>lwpServicePortBinding</serializedValue>
</property>
<property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/allowCookies" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/bypassProxyOnLocal" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>StrongWildcard</serializedValue>
</property>
<property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>65536</serializedValue>
</property>
<property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/proxyAddress" isComplexType="false" isExplicitlyDefined="false" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
</property>
<property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/textEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.Text.Encoding, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Text.UTF8Encoding</serializedValue>
</property>
<property path="/transferMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Buffered</serializedValue>
</property>
<property path="/useDefaultWebProxy" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/messageEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.WSMessageEncoding, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Text</serializedValue>
</property>
<property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpSecurityElement</serializedValue>
</property>
<property path="/security/mode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.BasicHttpSecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Transport</serializedValue>
</property>
<property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.HttpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.HttpTransportSecurityElement</serializedValue>
</property>
<property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/proxyCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpProxyCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Never</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>TransportSelected</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>(Collection)</serializedValue>
</property>
<property path="/security/transport/realm" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpMessageSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpMessageSecurityElement</serializedValue>
</property>
<property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpMessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>UserName</serializedValue>
</property>
<property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Default</serializedValue>
</property>
</properties>
</bindingConfiguration>
<bindingConfiguration bindingType="basicHttpBinding" name="lwpServicePortBinding1">
<properties>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>lwpServicePortBinding1</serializedValue>
</property>
<property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/allowCookies" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/bypassProxyOnLocal" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>StrongWildcard</serializedValue>
</property>
<property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>65536</serializedValue>
</property>
<property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/proxyAddress" isComplexType="false" isExplicitlyDefined="false" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
</property>
<property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/textEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.Text.Encoding, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Text.UTF8Encoding</serializedValue>
</property>
<property path="/transferMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Buffered</serializedValue>
</property>
<property path="/useDefaultWebProxy" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/messageEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.WSMessageEncoding, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Text</serializedValue>
</property>
<property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpSecurityElement</serializedValue>
</property>
<property path="/security/mode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpSecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.HttpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.HttpTransportSecurityElement</serializedValue>
</property>
<property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/proxyCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpProxyCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Never</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>TransportSelected</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>(Collection)</serializedValue>
</property>
<property path="/security/transport/realm" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.BasicHttpMessageSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.BasicHttpMessageSecurityElement</serializedValue>
</property>
<property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.BasicHttpMessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>UserName</serializedValue>
</property>
<property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Default</serializedValue>
</property>
</properties>
</bindingConfiguration>
</bindingConfigurations>
<endpoints>
<endpoint name="lwpServicePort" contract="GombaServ.lwpService" bindingType="basicHttpBinding" address="https://308gomba:8000/ws" bindingConfiguration="lwpServicePortBinding">
<properties>
<property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>https://308gomba:8000/ws</serializedValue>
</property>
<property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>basicHttpBinding</serializedValue>
</property>
<property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>lwpServicePortBinding</serializedValue>
</property>
<property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>GombaServ.lwpService</serializedValue>
</property>
<property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
</property>
<property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>&lt;Header /&gt;</serializedValue>
</property>
<property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
</property>
<property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
</property>
<property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
</property>
<property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
</property>
<property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
</property>
<property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
</property>
<property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
</property>
<property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>My</serializedValue>
</property>
<property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>LocalMachine</serializedValue>
</property>
<property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>FindBySubjectDistinguishedName</serializedValue>
</property>
<property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>False</serializedValue>
</property>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>lwpServicePort</serializedValue>
</property>
<property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
</properties>
</endpoint>
</endpoints>
</SavedWcfConfigurationInformation>
@@ -0,0 +1,75 @@
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://servicesImpl.webServices.gomba.com/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="lwpService" targetNamespace="http://servicesImpl.webServices.gomba.com/" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<xsd:schema>
<xsd:import schemaLocation="https://308gomba:8000/ws?xsd=1" namespace="http://servicesImpl.webServices.gomba.com/" />
</xsd:schema>
</types>
<message name="memWeight">
<part name="parameters" element="tns:memWeight" />
</message>
<message name="memWeightResponse">
<part name="parameters" element="tns:memWeightResponse" />
</message>
<message name="reqWeightList">
<part name="parameters" element="tns:reqWeightList" />
</message>
<message name="reqWeightListResponse">
<part name="parameters" element="tns:reqWeightListResponse" />
</message>
<message name="reqWeight">
<part name="parameters" element="tns:reqWeight" />
</message>
<message name="reqWeightResponse">
<part name="parameters" element="tns:reqWeightResponse" />
</message>
<portType name="lwpService">
<operation name="memWeight">
<input wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/memWeightRequest" message="tns:memWeight" />
<output wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/memWeightResponse" message="tns:memWeightResponse" />
</operation>
<operation name="reqWeightList">
<input wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightListRequest" message="tns:reqWeightList" />
<output wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightListResponse" message="tns:reqWeightListResponse" />
</operation>
<operation name="reqWeight">
<input wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightRequest" message="tns:reqWeight" />
<output wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightResponse" message="tns:reqWeightResponse" />
</operation>
</portType>
<binding name="lwpServicePortBinding" type="tns:lwpService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<operation name="memWeight">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="reqWeightList">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
<operation name="reqWeight">
<soap:operation soapAction="" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="lwpService">
<port name="lwpServicePort" binding="tns:lwpServicePortBinding">
<soap:address location="https://308gomba:8000/ws" />
</port>
</service>
</definitions>
@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://servicesImpl.webServices.gomba.com/" targetNamespace="http://servicesImpl.webServices.gomba.com/" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="memWeight" type="tns:memWeight" />
<xs:element name="memWeightResponse" type="tns:memWeightResponse" />
<xs:element name="reqWeight" type="tns:reqWeight" />
<xs:element name="reqWeightList" type="tns:reqWeightList" />
<xs:element name="reqWeightListResponse" type="tns:reqWeightListResponse" />
<xs:element name="reqWeightResponse" type="tns:reqWeightResponse" />
<xs:complexType name="memWeight">
<xs:sequence>
<xs:element name="type" type="xs:string" />
<xs:element name="rm" type="xs:string" />
<xs:element minOccurs="0" name="cod1" type="xs:string" />
<xs:element minOccurs="0" name="cod2" type="xs:string" />
<xs:element minOccurs="0" name="cod3" type="xs:string" />
<xs:element minOccurs="0" name="cod4" type="xs:string" />
<xs:element minOccurs="0" name="cod5" type="xs:string" />
<xs:element minOccurs="0" name="cod6" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="memWeightResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:gestWeightOut" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="gestWeightOut">
<xs:sequence>
<xs:element minOccurs="0" name="balanceIn" type="xs:string" />
<xs:element minOccurs="0" name="balanceOut" type="xs:string" />
<xs:element minOccurs="0" name="cod1" type="xs:string" />
<xs:element minOccurs="0" name="cod2" type="xs:string" />
<xs:element minOccurs="0" name="cod3" type="xs:string" />
<xs:element minOccurs="0" name="cod4" type="xs:string" />
<xs:element minOccurs="0" name="cod5" type="xs:string" />
<xs:element minOccurs="0" name="cod6" type="xs:string" />
<xs:element minOccurs="0" name="dateIn" type="xs:dateTime" />
<xs:element minOccurs="0" name="dateOut" type="xs:dateTime" />
<xs:element minOccurs="0" name="feedback" type="xs:string" />
<xs:element minOccurs="0" name="idMemIn" type="xs:string" />
<xs:element minOccurs="0" name="idMemOut" type="xs:string" />
<xs:element minOccurs="0" name="net" type="xs:string" />
<xs:element minOccurs="0" name="notes" type="xs:string" />
<xs:element name="rm" type="xs:string" />
<xs:element minOccurs="0" name="weightIn" type="xs:string" />
<xs:element minOccurs="0" name="weightOut" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="reqWeight">
<xs:sequence>
<xs:element name="rm" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="reqWeightResponse">
<xs:sequence>
<xs:element minOccurs="0" name="return" type="tns:gestWeightOut" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="reqWeightList">
<xs:sequence>
<xs:element name="type" type="xs:string" />
<xs:element name="dateStart" type="xs:string" />
<xs:element name="dateEnd" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="reqWeightListResponse">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="return" type="tns:gestWeightOut" />
</xs:sequence>
</xs:complexType>
</xs:schema>
+116
View File
@@ -0,0 +1,116 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{CC377124-1B94-40C1-B552-D6D42EB2BF27}</ProjectGuid>
<OutputType>Library</OutputType>
<RootNamespace>EgwProxy.Gomba</RootNamespace>
<AssemblyName>EgwProxy.Gomba</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</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|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<StartupObject />
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.IdentityModel" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Runtime.Serialization.Primitives, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.Serialization.Primitives.4.3.0\lib\net46\System.Runtime.Serialization.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization.Xml, Version=4.1.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.Serialization.Xml.4.3.0\lib\net46\System.Runtime.Serialization.Xml.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceModel.Http, Version=4.6.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.ServiceModel.Http.4.6.0\lib\net461\System.ServiceModel.Http.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.NetTcp, Version=4.6.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.ServiceModel.NetTcp.4.6.0\lib\net461\System.ServiceModel.NetTcp.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.Primitives, Version=4.6.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.ServiceModel.Primitives.4.6.0\lib\net461\System.ServiceModel.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel.Security, Version=4.6.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.ServiceModel.Security.4.6.0\lib\net461\System.ServiceModel.Security.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Connected Services\GombaServ\Reference.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Reference.svcmap</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="Connected Services\GombaServ\EgwProxy.Gomba.GombaServ.gestWeightOut.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<None Include="Connected Services\GombaServ\EgwProxy.Gomba.GombaServ.memWeightResponse.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<None Include="Connected Services\GombaServ\EgwProxy.Gomba.GombaServ.reqWeightListResponse.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<None Include="Connected Services\GombaServ\EgwProxy.Gomba.GombaServ.reqWeightResponse.datasource">
<DependentUpon>Reference.svcmap</DependentUpon>
</None>
<None Include="Connected Services\GombaServ\lwpService.wsdl" />
<None Include="Connected Services\GombaServ\ws.xsd">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<WCFMetadata Include="Connected Services\" />
</ItemGroup>
<ItemGroup>
<WCFMetadataStorage Include="Connected Services\GombaServ\" />
</ItemGroup>
<ItemGroup>
<None Include="Connected Services\GombaServ\configuration91.svcinfo" />
</ItemGroup>
<ItemGroup>
<None Include="Connected Services\GombaServ\configuration.svcinfo" />
</ItemGroup>
<ItemGroup>
<None Include="Connected Services\GombaServ\Reference.svcmap">
<Generator>WCF Proxy Generator</Generator>
<LastGenOutput>Reference.cs</LastGenOutput>
</None>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+76
View File
@@ -0,0 +1,76 @@
<!-- Published by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. -->
<!-- Generated by JAX-WS RI (http://jax-ws.java.net). RI's version is JAX-WS RI 2.2.9-b130926.1035 svn-revision#5f6196f2b90e9460065a4c2f4e30e065b245e51e. -->
<definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://servicesImpl.webServices.gomba.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://servicesImpl.webServices.gomba.com/" name="lwpService">
<types>
<xsd:schema>
<xsd:import namespace="http://servicesImpl.webServices.gomba.com/" schemaLocation="https://308gomba:8000/ws?xsd=1"/>
</xsd:schema>
</types>
<message name="reqWeightList">
<part name="parameters" element="tns:reqWeightList"/>
</message>
<message name="reqWeightListResponse">
<part name="parameters" element="tns:reqWeightListResponse"/>
</message>
<message name="memWeight">
<part name="parameters" element="tns:memWeight"/>
</message>
<message name="memWeightResponse">
<part name="parameters" element="tns:memWeightResponse"/>
</message>
<message name="reqWeight">
<part name="parameters" element="tns:reqWeight"/>
</message>
<message name="reqWeightResponse">
<part name="parameters" element="tns:reqWeightResponse"/>
</message>
<portType name="lwpService">
<operation name="reqWeightList">
<input wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightListRequest" message="tns:reqWeightList"/>
<output wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightListResponse" message="tns:reqWeightListResponse"/>
</operation>
<operation name="memWeight">
<input wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/memWeightRequest" message="tns:memWeight"/>
<output wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/memWeightResponse" message="tns:memWeightResponse"/>
</operation>
<operation name="reqWeight">
<input wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightRequest" message="tns:reqWeight"/>
<output wsam:Action="http://servicesImpl.webServices.gomba.com/lwpService/reqWeightResponse" message="tns:reqWeightResponse"/>
</operation>
</portType>
<binding name="lwpServicePortBinding" type="tns:lwpService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="reqWeightList">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="memWeight">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="reqWeight">
<soap:operation soapAction=""/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="lwpService">
<port name="lwpServicePort" binding="tns:lwpServicePortBinding">
<soap:address location="https://308gomba:8000/ws"/>
</port>
</service>
</definitions>
+36
View File
@@ -0,0 +1,36 @@
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("EgwProxy.Gomba")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Gomba")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[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("cc377124-1b94-40c1-b552-d6d42eb2bf27")]
// 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")]
+69
View File
@@ -0,0 +1,69 @@
{
"metadata": [
{
"src": [
{
"files": [
"*.csproj",
"*.vbproj"
],
"cwd": ".",
"exclude": [
"**/obj/**",
"**/bin/**",
"_site/**"
]
}
],
"dest": "obj/api"
}
],
"build": {
"content": [
{
"files": [
"api/**.yml"
],
"cwd": "obj"
},
{
"files": [
"api/*.md",
"articles/**.md",
"toc.yml",
"*.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"resource": [
{
"files": [
"images/**"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"overwrite": [
{
"files": [
"apidoc/**.md"
],
"exclude": [
"obj/**",
"_site/**"
]
}
],
"dest": "_site",
"template": [
"default"
]
}
}
+17
View File
@@ -0,0 +1,17 @@
# EgwProxy.Gomba Library
Documentazione relativa alla libreria di interfaccia via webservice SOAP/XML con le bilance GOMBA (ex IMI Remosa).
Disponibile in forma di pacchetto nuget sul repo aziendale nexus.steamware.net: i pacchetti sono disponibili all'indirizzo
https://nexus.steamware.net/#browse/browse:nuget-hosted
Vedere la sezione Articles per maggiori informazioni sulle definizioni, l'impiego ed esempi.
## Articles
Per maggiori dettagli, definizioni e demo funzionamento si rimanda alla sezione Articles
## Api
Per ogni dettaglio e riferimento alla libreria si rimanda alla sezione Api Documentation
Binary file not shown.
+9
View File
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.Runtime.Serialization.Primitives" version="4.3.0" targetFramework="net462" />
<package id="System.Runtime.Serialization.Xml" version="4.3.0" targetFramework="net462" />
<package id="System.ServiceModel.Http" version="4.6.0" targetFramework="net462" />
<package id="System.ServiceModel.NetTcp" version="4.6.0" targetFramework="net462" />
<package id="System.ServiceModel.Primitives" version="4.6.0" targetFramework="net462" />
<package id="System.ServiceModel.Security" version="4.6.0" targetFramework="net462" />
</packages>
+6
View File
@@ -0,0 +1,6 @@
- name: Articles
href: articles/
- name: API Documentation
href: obj/api/
homepage: api/index.md
+20
View File
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="EntrataFrontiera" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
<add name="ExportIcoel" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=IcoelExport;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
<add name="TrackerLotti" connectionString="data source=192.168.250.250\sqlexpress;initial catalog=TrackerLotti3;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
<add name="SyncState" connectionString="data source=localhost\sqlexpress;initial catalog=MoonPro_ISF;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
<runtime>
</runtime>
</configuration>
@@ -0,0 +1,132 @@
using NLog;
using System;
using System.Collections.Generic;
using System.Linq;
/*------------------------------------------------
* Aggiunto fix come da link seguente:
*
* https://stackoverflow.com/questions/14033193/entity-framework-provider-type-could-not-be-loaded
*
* I solved this by adding an using stament on top of my DBContext class, like so:
* using SqlProviderServices= System.Data.Entity.SqlServer.SqlProviderServices;
*
*/
namespace EgwProxy.Icoel.DataLayer.Controllers
{
/// <summary>
/// Controller accesso dati DB vari x ICOEL
/// </summary>
public class DbController : IDisposable
{
#if false
private static EntrataDbContext dbEntrataCtx;
private static ExportDbContext dbExportCtx;
private static TrackerDbContext dbTrackerCtx;
#endif
#region Public Constructors
/// <summary>
/// Avvio dell'oggetto gestione DB con stringa di connessione specifica
/// </summary>
/// <param name="connSyncState">Connessione DB locale di SYNC</param>
public DbController(string connSyncState)
{
dbSyncStateCtx = new SyncStateDbContext(connSyncState);
Log.Info("Avviata classe dbSyncStateCtx");
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Recupera la tab di CurrData corrente
/// </summary>
/// <returns></returns>
public List<DatabaseModels.CurrDataModel> CurrDataGetAll()
{
List<DatabaseModels.CurrDataModel> dbResult = new List<DatabaseModels.CurrDataModel>();
dbResult = dbSyncStateCtx
.DbSetCurrData
.ToList();
return dbResult;
}
/// <summary>
/// Dispose classe
/// </summary>
public void Dispose()
{
// Clear database context
#if false
dbEntrataCtx.Dispose();
dbExportCtx.Dispose();
dbTrackerCtx.Dispose();
#endif
dbSyncStateCtx.Dispose();
}
/// <summary>
/// Esegue una volta la stored di ImportAll (x recupero dati da DB esterni) e poi
/// restitusice in output la tab di SyncState x verificare lo stato
/// </summary>
/// <returns></returns>
public List<DatabaseModels.SyncStateModel> SyncStateDoExportAll()
{
List<DatabaseModels.SyncStateModel> dbResult = new List<DatabaseModels.SyncStateModel>();
dbResult = dbSyncStateCtx
.Database
.SqlQuery<DatabaseModels.SyncStateModel>("EXEC stp_ExportAll")
.ToList();
return dbResult;
}
/// <summary>
/// Esegue una volta la stored di ImportAll (x recupero dati da DB esterni) e poi
/// restitusice in output la tab di SyncState x verificare lo stato
/// </summary>
/// <returns></returns>
public List<DatabaseModels.SyncStateModel> SyncStateDoImportAll()
{
List<DatabaseModels.SyncStateModel> dbResult = new List<DatabaseModels.SyncStateModel>();
dbResult = dbSyncStateCtx
.Database
.SqlQuery<DatabaseModels.SyncStateModel>("EXEC stp_ImportAll")
.ToList();
return dbResult;
}
/// <summary>
/// recupera la tab di SyncState corrente
/// </summary>
/// <returns></returns>
public List<DatabaseModels.SyncStateModel> SyncStateGetAll()
{
List<DatabaseModels.SyncStateModel> dbResult = new List<DatabaseModels.SyncStateModel>();
dbResult = dbSyncStateCtx
.DbSetSyncState
.ToList();
return dbResult;
}
#endregion Public Methods
#region Private Fields
private static SyncStateDbContext dbSyncStateCtx;
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
}
}
@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("CurrData")]
public partial class CurrDataModel
{
[Key]
[StringLength(50)]
public string Topic { get; set; }
public decimal CurrVal { get; set; } = 0;
}
}
@@ -0,0 +1,55 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("DettagliConferimentoMES")]
public partial class DettConferimentoModel
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long PackId { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long FillingId { get; set; }
[Key]
[Column(Order = 2)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int FilligRow { get; set; }
[Key]
[Column(Order = 3)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long ScaricoId { get; set; }
public string CODBARRE { get; set; }
public string CODICE_FORNITORE { get; set; }
public string NOME_FORNITORE { get; set; }
public string CODICE_PRODOTTO { get; set; }
public string DESCRIZIONE_PRODOTTO { get; set; }
public string CODICE_PRODOTTO_GREZZO { get; set; }
public string DESCRIZIONE_PRODOTTO_GREZZO { get; set; }
public string SIGLA_LOTTO { get; set; }
public string NUMERO_LOTTO { get; set; }
public string DATA_ENTRATA { get; set; }
public string QUANTITA_ENTRATA { get; set; }
}
}
@@ -0,0 +1,69 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("DettagliConfezioniMES")]
public partial class DettConfezioniModel
{
[Key]
[Column("Pack Id", Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long Pack_Id { get; set; }
[StringLength(50)]
public string EAN { get; set; }
[Key]
[Column("Batch Id", Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long Batch_Id { get; set; }
public string BatchName { get; set; }
[Key]
[Column(Order = 2)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Lane1SizerBatchId { get; set; }
[Key]
[Column(Order = 3)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Lane2SizerBatchId { get; set; }
[Key]
[Column("End Time", Order = 4, TypeName = "datetime2")]
public DateTime End_Time { get; set; }
[Key]
[Column(Order = 5)]
public Guid SizerProductGUID { get; set; }
[Column("Product Name")]
public string Product_Name { get; set; }
[Key]
[Column(Order = 6)]
public Guid SizerPackGUID { get; set; }
[Column("Pack Name")]
[StringLength(50)]
public string Pack_Name { get; set; }
[Key]
[Column(Order = 7)]
public decimal PesoDecigram { get; set; }
[StringLength(10)]
public string FillingMode { get; set; }
[Key]
[Column(Order = 8)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Quantity { get; set; }
}
}
@@ -0,0 +1,66 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("ENTRATACILIEGIE")]
public partial class EntrataModel
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public long ID_CHIAVE { get; set; }
[StringLength(20)]
public string CODBARRE { get; set; }
public double? CODICE_FORNITORE { get; set; }
[StringLength(5)]
public string CODICE_LUOGO_PRODUZIONE { get; set; }
[StringLength(50)]
public string NOME_FORNITORE { get; set; }
[StringLength(50)]
public string INDIRIZZO_FORNITORE { get; set; }
[StringLength(50)]
public string COMUNE_FORNITORE { get; set; }
[StringLength(50)]
public string NOME_LUOGO_PRODUZIONE { get; set; }
[StringLength(50)]
public string INDIRIZZO_LUOGO_PRODUZIONE { get; set; }
[StringLength(50)]
public string COMUNE_LUOGO_PRODUZIONE { get; set; }
[StringLength(10)]
public string CODICE_PRODOTTO { get; set; }
[StringLength(50)]
public string DESCRIZIONE_PRODOTTO { get; set; }
[StringLength(10)]
public string CODICE_PRODOTTO_GREZZO { get; set; }
[StringLength(50)]
public string DESCRIZIONE_PRODOTTO_GREZZO { get; set; }
[StringLength(50)]
public string SIGLA_LOTTO { get; set; }
[StringLength(10)]
public string NUMERO_LOTTO { get; set; }
[Column(TypeName = "datetime2")]
public DateTime? DATA_ENTRATA { get; set; }
public double? QUANTITA_ENTRATA { get; set; }
}
}
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("ProductsTotals")]
public partial class ProductsTotalsModel
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int SizerBatchId { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Index { get; set; }
public string Nome { get; set; }
public string Qualities { get; set; }
public string Grado { get; set; }
public string Calibro { get; set; }
public int NumeroFrutti { get; set; }
public string Decigrammi { get; set; }
}
}
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.Spatial;
namespace EgwProxy.Icoel.DataLayer.DatabaseModels
{
[Table("SyncState")]
public partial class SyncStateModel
{
[Key]
[StringLength(50)]
public string TableName { get; set; }
public long LastIdx { get; set; }
public long LastIdxIn { get; set; }
public long LastIdxOut { get; set; }
public long NumRec { get; set; }
public long NumRecIn { get; set; }
public long NumRecOut { get; set; }
public DateTime LastUpdate { get; set; } = DateTime.Today;
}
}
+71
View File
@@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.Icoel.DataLayer
{
public static class DbConfig
{
#region Public Fields
public static string DATABASE_NAME = "EgtBwDb";
public static int DATABASE_PROCESS_TIMEOUT = 5;
public static string DATABASE_PWD = "viacremasca";
// Database config
public static string DATABASE_SERV = "127.0.0.1";
public static string DATABASE_USER = "EgtUser";
#endregion Public Fields
#region Public Properties
/// <summary>
/// DB Connection string per azioni amministrative
/// </summary>
public static string ADMIN_CONNECTION_STRING { get; set; } = "";
/// <summary>
/// DB Connection string
/// </summary>
public static string CONNECTION_STRING { get; set; } = "";
#endregion Public Properties
#region Public Methods
/// <summary>
/// Metodo di init standard per DB in rete con Master_Key
/// </summary>
/// <param name="server">Indirizzo del server (tipicamente indirizzo di rete)</param>
/// <param name="nKey">Numero chiave</param>
/// <param name="sKey">Codice/pwd associato a chaive</param>
/// <param name="masterKey">Numero di chiave master con cui è creato il DB</param>
public static void InitDb(string server, string nKey, string sKey, string masterKey = "")
{
// se nulla metto amster come nKey...
masterKey = string.IsNullOrEmpty(masterKey) ? nKey : masterKey;
DATABASE_SERV = server;
DATABASE_NAME = $"EgtBwDb_{masterKey}";
DATABASE_USER = $"user_{nKey}";
DATABASE_PWD = $"pwd_{sKey}";
CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database={DATABASE_NAME};uid={DATABASE_USER};pwd={DATABASE_PWD};sslmode=None";
// stringa admin con utente root egalware...
ADMIN_CONNECTION_STRING = $"server={DATABASE_SERV};port=3306;database=mysql;uid=root;pwd=Egalware_24068!;sslmode=None;CHARSET=utf8";
}
#if false
public static bool CheckUser(string nKey, string sKey, bool isNetwork)
{
// esecuzione script di install locale
return Controllers.DbController.man.checkCreateUser(DATABASE_USER, DATABASE_PWD, isNetwork);
}
#endif
#endregion Public Methods
}
}
@@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.props" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.props')" />
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{E36544CB-D699-48D8-9F81-C2758E7C7D19}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>EgwProxy.Icoel.DataLayer</RootNamespace>
<AssemblyName>EgwProxy.Icoel.DataLayer</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<TargetFrameworkProfile />
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<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|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
</PropertyGroup>
<ItemGroup>
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=5.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.5.2.3\lib\net46\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Buffers, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll</HintPath>
</Reference>
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Data.OracleClient" />
<Reference Include="System.Drawing" />
<Reference Include="System.IdentityModel" />
<Reference Include="System.IO, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.4.3.0\lib\net462\System.IO.dll</HintPath>
</Reference>
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
<Private>True</Private>
<Private>True</Private>
</Reference>
<Reference Include="System.Memory, Version=4.0.1.2, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll</HintPath>
</Reference>
<Reference Include="System.Net" />
<Reference Include="System.Numerics" />
<Reference Include="System.Numerics.Vectors, Version=4.1.4.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.CompilerServices.Unsafe, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.InteropServices.RuntimeInformation, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.Security" />
<Reference Include="System.Security.AccessControl, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Algorithms, Version=4.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Algorithms.4.3.1\lib\net461\System.Security.Cryptography.Algorithms.dll</HintPath>
</Reference>
<Reference Include="System.Security.Cryptography.Primitives, Version=4.0.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll</HintPath>
</Reference>
<Reference Include="System.Security.Principal.Windows, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll</HintPath>
</Reference>
<Reference Include="System.ServiceModel" />
<Reference Include="System.ServiceProcess" />
<Reference Include="System.Transactions" />
<Reference Include="System.ValueTuple, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51, processorArchitecture=MSIL">
<HintPath>..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll</HintPath>
</Reference>
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Controllers\DbController.cs" />
<Compile Include="DatabaseModels\EntrataModel.cs" />
<Compile Include="DatabaseModels\DettConferimentoModel.cs" />
<Compile Include="DatabaseModels\DettConfezioniModel.cs" />
<Compile Include="DatabaseModels\CurrDataModel.cs" />
<Compile Include="EntrataDbContext.cs" />
<Compile Include="ExportDbContext.cs" />
<Compile Include="DatabaseModels\ProductsTotalsModel.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="DatabaseModels\SyncStateModel.cs" />
<Compile Include="SyncStateDbContext.cs" />
<Compile Include="TrackerDbContext.cs" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\EntityFramework.6.4.4\build\EntityFramework.targets" Condition="Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\packages\EntityFramework.6.4.4\build\EntityFramework.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\EntityFramework.6.4.4\build\EntityFramework.targets'))" />
</Target>
</Project>
@@ -0,0 +1,46 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using NLog;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
namespace EgwProxy.Icoel.DataLayer
{
/// <summary>
/// Classe per accesso dati accettazione merce Agrimatica (via ICOEL)
/// </summary>
public partial class EntrataDbContext : DbContext
{
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
/// <summary>
/// Costruttore implicito
/// </summary>
public EntrataDbContext() : base("name=EntrataFrontiera")
{
Log.Info("Init 01 EntrataDbContext - DONE");
}
/// <summary>
/// Costruttore da connectionString
/// </summary>
/// <param name="connectionString"></param>
public EntrataDbContext(string connectionString) : base(connectionString)
{
Log.Info("Init 02 EntrataDbContext - DONE");
}
/// <summary>
/// DbSet record entrata merce
/// </summary>
public virtual DbSet<EntrataModel> DbSetEntrataMerce { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<EntrataModel>()
.Property(e => e.DATA_ENTRATA)
.HasPrecision(0);
}
}
}
@@ -0,0 +1,44 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using NLog;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
namespace EgwProxy.Icoel.DataLayer
{
/// <summary>
/// Classe per accesso dati Tacker ICOEL
/// </summary>
public partial class ExportDbContext : DbContext
{
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
/// <summary>
/// Costruttore implicito
/// </summary>
public ExportDbContext() : base("name=ExportIcoel")
{
Log.Info("Init 01 ExportDbContext - DONE");
}
/// <summary>
/// Costruttore da connectionString
/// </summary>
/// <param name="connectionString"></param>
public ExportDbContext(string connectionString) : base(connectionString)
{
Log.Info("Init 02 ExportDbContext - DONE");
}
/// <summary>
/// DbSet dati prodotti
/// </summary>
public virtual DbSet<ProductsTotalsModel> DbSetProductsTotals { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
}
+87
View File
@@ -0,0 +1,87 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.Icoel.DataLayer
{
public class MainDbContext : DbContext
{
#region Private Fields
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
#endregion Private Fields
#region Public Constructors
// Il contesto è stato configurato per utilizzare una stringa di connessione 'BBMModel' dal file di configurazione
// dell'applicazione (App.config o Web.config). Per impostazione predefinita, la stringa di connessione è destinata al
// database 'BBMModel' nell'istanza di LocalDb.
//
// Per destinarla a un database o un provider di database differente, modificare la stringa di connessione 'BBMModel'
// nel file di configurazione dell'applicazione.
[Obsolete("This constructor should never be used directly, and is only needed to generate entityframework stuff. Connection string can be adapted as pleased.")]
//public DatabaseContext() : base("BBMModel")
public MainDbContext() : base("Data Source=SQLSTEAM;Initial Catalog=SHERPA.BBM;User ID=sa;Password=keyhammer;integrated security=False;MultipleActiveResultSets=True;App=EntityFramework")
{
}
public MainDbContext(string connectionString) : base(connectionString)
{
Log.Info($"init MainDbContext - start");
try
{
Database.CreateIfNotExists();
Log.Error("CreateIfNotExists - DONE");
//Database.SetInitializer(new MigrateDatabaseToLatestVersion<StratonLocalizerDatabase, Migrations.Configuration>());
Database.SetInitializer<MainDbContext>(null);
Database.Initialize(false);
}
catch (Exception exc)
{
Log.Error($"Eccezione in fase init MainDbContext, connectionString: {connectionString}{Environment.NewLine}{exc}");
}
Log.Error("init MainDbContext - DONE");
}
#endregion Public Constructors
// Aggiungere DbSet per ogni tipo di entità che si desidera includere nel modello. Per ulteriori informazioni
// sulla configurazione e sull'utilizzo di un modello Code, vedere http://go.microsoft.com/fwlink/?LinkId=390109.
#region Public Properties
public virtual DbSet<DatabaseModels.BasketsModel> DbSetBaskets { get; set; }
public virtual DbSet<DatabaseModels.CompanyModel> DbSetCompanies { get; set; }
public virtual DbSet<DatabaseModels.FluxCountersModel> DbSetCounters { get; set; }
public virtual DbSet<DatabaseModels.CustomersModel> DbSetCustomers { get; set; }
public virtual DbSet<DatabaseModels.DocsModel> DbSetDocs { get; set; }
public virtual DbSet<DatabaseModels.Fatt2DocModel> DbSetFatt2Doc { get; set; }
public virtual DbSet<DatabaseModels.ItemsModel> DbSetItems { get; set; }
public virtual DbSet<DatabaseModels.NegotiationsModel> DbSetNegotiations { get; set; }
public virtual DbSet<DatabaseModels.ResourcesModel> DbSetResources { get; set; }
#endregion Public Properties
#region Protected Methods
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
// Precision attribute for decimals
Precision.ConfigureModelBuilder(modelBuilder);
}
#endregion Protected Methods
}
}
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
[assembly: AssemblyTitle("EgwProxy.Icoel.DataLayer")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Icoel.DataLayer")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili
// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da
// COM, impostare su true l'attributo ComVisible per tale tipo.
[assembly: ComVisible(false)]
// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi
[assembly: Guid("e36544cb-d699-48d8-9f81-c2758e7c7d19")]
// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
//
// Versione principale
// Versione secondaria
// Numero di build
// Revisione
//
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// usando l'asterisco '*' come illustrato di seguito:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
@@ -0,0 +1,48 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using NLog;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
namespace EgwProxy.Icoel.DataLayer
{
/// <summary>
/// Classe per accesso dati SyncState del DB
/// </summary>
public partial class SyncStateDbContext : DbContext
{
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
/// <summary>
/// Costruttore implicito
/// </summary>
public SyncStateDbContext() : base("name=SyncState")
{
Log.Info("Init 01 SyncStateDbContext - DONE");
}
/// <summary>
/// Costruttore da connectionString
/// </summary>
/// <param name="connectionString"></param>
public SyncStateDbContext(string connectionString) : base(connectionString)
{
Log.Info("Init 02 SyncStateDbContext - DONE");
}
/// <summary>
/// DbSet dei dati stato sync DB esterni <--> locale
/// </summary>
public virtual DbSet<SyncStateModel> DbSetSyncState { get; set; }
/// <summary>
/// DbSet CurrData
/// </summary>
public virtual DbSet<CurrDataModel> DbSetCurrData { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
}
@@ -0,0 +1,49 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using NLog;
using System;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Linq;
using SqlProviderServices = System.Data.Entity.SqlServer.SqlProviderServices;
namespace EgwProxy.Icoel.DataLayer
{
/// <summary>
/// Classe per accesso dati Tacker ICOEL
/// </summary>
public partial class TrackerDbContext : DbContext
{
private static NLog.Logger Log = LogManager.GetCurrentClassLogger();
/// <summary>
/// Costruttore implicito
/// </summary>
public TrackerDbContext() : base("name=TrackerLotti")
{
Log.Info("Init 01 TrackerDbContext - DONE");
}
/// <summary>
/// Costruttore da connectionString
/// </summary>
/// <param name="connectionString"></param>
public TrackerDbContext(string connectionString) : base(connectionString)
{
Log.Info("Init 02 TrackerDbContext - DONE");
}
/// <summary>
/// DbSet dai dati conferimento <--> pack di uscita
/// </summary>
public virtual DbSet<DettConferimentoModel> DbSetConferimento { get; set; }
/// <summary>
/// DbSet dai dati conferimento <--> confezioni
/// </summary>
public virtual DbSet<DettConfezioniModel> DbSetConfezioni { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
}
}
}
+17
View File
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="EntityFramework" version="6.4.4" targetFramework="net462" />
<package id="NLog" version="5.2.3" targetFramework="net462" />
<package id="System.Buffers" version="4.5.1" targetFramework="net462" />
<package id="System.IO" version="4.3.0" targetFramework="net462" />
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
<package id="System.Memory" version="4.5.5" targetFramework="net462" />
<package id="System.Numerics.Vectors" version="4.5.0" targetFramework="net462" />
<package id="System.Runtime.CompilerServices.Unsafe" version="6.0.0" targetFramework="net462" />
<package id="System.Runtime.InteropServices.RuntimeInformation" version="4.3.0" targetFramework="net462" />
<package id="System.Security.AccessControl" version="6.0.0" targetFramework="net462" />
<package id="System.Security.Cryptography.Algorithms" version="4.3.1" targetFramework="net462" />
<package id="System.Security.Cryptography.Primitives" version="4.3.0" targetFramework="net462" />
<package id="System.Security.Principal.Windows" version="5.0.0" targetFramework="net462" />
<package id="System.ValueTuple" version="4.5.0" targetFramework="net462" />
</packages>
+51
View File
@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<appSettings>
<add key="IndirizzoIpSizer" value="192.168.137.50" />
<add key="SizerTcpPort" value="8001" />
<add key="EntrataFrontiera" value="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
<add key="ExportIcoel" value="data source=192.168.137.10\sqlexpress;initial catalog=IcoelExport;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
<add key="TrackerLotti" value="data source=192.168.250.250\sqlexpress;initial catalog=TrackerLotti3;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
<add key="SyncState" value="data source=localhost\sqlexpress;initial catalog=MoonPro_ISF;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" />
</appSettings>
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding name="NetNamedPipeBinding_ISizerService">
<security mode="None" />
</binding>
</netNamedPipeBinding>
<wsHttpBinding>
<binding name="WSHttpBinding_ISizerService" maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8001/SizerService/" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISizerService" contract="SizerService.ISizerService" name="WSHttpBinding_ISizerService" />
<endpoint address="net.pipe://localhost/Compac/8001/SizerService" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ISizerService" contract="SizerService.ISizerService" name="NetNamedPipeBinding_ISizerService" />
</client>
</system.serviceModel>
<!--
<connectionStrings>
<add name="EntrataFrontiera" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
<add name="ExportIcoel" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=IcoelExport;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
<add name="TrackerLotti" connectionString="data source=192.168.250.250\sqlexpress;initial catalog=TrackerLotti3;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
<add name="SyncState" connectionString="data source=localhost\sqlexpress;initial catalog=MoonPro_ISF;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=IOB-WIN-NEXT" providerName="System.Data.SqlClient" />
</connectionStrings>
-->
<runtime>
</runtime>
</configuration>
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A655A6AC-5997-46F9-9752-8C621B80516C}</ProjectGuid>
<OutputType>Exe</OutputType>
<RootNamespace>EgwProxy.Icoel.Test</RootNamespace>
<AssemblyName>EgwProxy.Icoel.Test</AssemblyName>
<TargetFrameworkVersion>v4.6.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</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|AnyCPU' ">
<PlatformTarget>AnyCPU</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.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll</HintPath>
</Reference>
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="batch.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="conf.ini">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<Folder Include="INI\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\EgwProxy.Icoel.DataLayer\EgwProxy.Icoel.DataLayer.csproj">
<Project>{e36544cb-d699-48d8-9f81-c2758e7c7d19}</Project>
<Name>EgwProxy.Icoel.DataLayer</Name>
</ProjectReference>
<ProjectReference Include="..\EgwProxy.Icoel\EgwProxy.Icoel.csproj">
<Project>{c45f5e6e-866b-4a34-a598-29aab2d178ad}</Project>
<Name>EgwProxy.Icoel</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
+62
View File
@@ -0,0 +1,62 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace EgwProxy.Icoel.INI
{
class BatchDetails
{
private const string NameFile = "batch.ini";
private readonly IniFile _sett;
public BatchDetails()
{
_sett = new IniFile();
}
public string GrowerCode
{
get { return _sett.GetKeyValue("Batch", "GrowerCode"); }
set { _sett.SetKeyValue("Batch", "GrowerCode", value); }
}
public string GrowerName
{
get { return _sett.GetKeyValue("Batch", "GrowerName"); }
set { _sett.SetKeyValue("Batch", "GrowerName", value); }
}
public string Comment1
{
get { return _sett.GetKeyValue("Batch", "Comment1"); }
set { _sett.SetKeyValue("Batch", "Comment1", value); }
}
public string Comment2
{
get { return _sett.GetKeyValue("Batch", "Comment2"); }
set { _sett.SetKeyValue("Batch", "Comment2", value); }
}
public string Comment3
{
get { return _sett.GetKeyValue("Batch", "Comment3"); }
set { _sett.SetKeyValue("Batch", "Comment3", value); }
}
public void Load()
{
if (!File.Exists(NameFile))
{
var fs = File.Create(NameFile);
fs.Close();
}
_sett.Load(NameFile, false);
}
public void Save()
{
_sett.Save(NameFile);
}
}
}
+479
View File
@@ -0,0 +1,479 @@
/*
Date: 08\23\2010 - Ludvik Jerabek - Initial Release
Version: 1.0
Comment: Allow INI manipulation in .NET
License: CPOL
Revisions:
08\23\2010 - Ludvik Jerabek - Initial Release
11\12\2010 - Ludvik Jerabek - Fixed section regex matching on key values with brackets
06\20\2015 - Ludvik Jerabek - Fixed key parsing regex to account for keys with spaces in names
**DISCLAIMER**
THIS MATERIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
EITHER EXPRESS OR IMPLIED, INCLUDING, BUT Not LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, OR NON-INFRINGEMENT. SOME JURISDICTIONS DO NOT ALLOW THE
EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT
APPLY TO YOU. IN NO EVENT WILL I BE LIABLE TO ANY PARTY FOR ANY
DIRECT, INDIRECT, SPECIAL OR OTHER CONSEQUENTIAL DAMAGES FOR ANY
USE OF THIS MATERIAL INCLUDING, WITHOUT LIMITATION, ANY LOST
PROFITS, BUSINESS INTERRUPTION, LOSS OF PROGRAMS OR OTHER DATA ON
YOUR INFORMATION HANDLING SYSTEM OR OTHERWISE, EVEN If WE ARE
EXPRESSLY ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
*/
using System.IO;
using System.Text.RegularExpressions;
using System.Collections;
using System.Diagnostics;
using System;
// IniFile class used to read and write ini files by loading the file into memory
public class IniFile
{
// List of IniSection objects keeps track of all the sections in the INI file
private Hashtable m_sections;
// Public constructor
public IniFile()
{
m_sections = new Hashtable(StringComparer.InvariantCultureIgnoreCase);
}
// Loads the Reads the data in the ini file into the IniFile object
public void Load(string sFileName )
{
Load(sFileName, false);
}
// Loads the Reads the data in the ini file into the IniFile object
public void Load(string sFileName, bool bMerge )
{
if (!bMerge)
{
RemoveAllSections();
}
// Clear the object...
IniSection tempsection = null;
StreamReader oReader = new StreamReader(sFileName);
Regex regexcomment = new Regex("^([\\s]*#.*)", (RegexOptions.Singleline | RegexOptions.IgnoreCase));
Regex regexsection = new Regex("^[\\s]*\\[[\\s]*([^\\[\\s].*[^\\s\\]])[\\s]*\\][\\s]*$", (RegexOptions.Singleline | RegexOptions.IgnoreCase));
Regex regexkey = new Regex("^\\s*([^=]*[^\\s=])\\s*=(.*)", (RegexOptions.Singleline | RegexOptions.IgnoreCase));
while (!oReader.EndOfStream)
{
string line = oReader.ReadLine();
if (line != string.Empty)
{
Match m = null;
if (regexcomment.Match(line).Success)
{
m = regexcomment.Match(line);
Trace.WriteLine(string.Format("Skipping Comment: {0}", m.Groups[0].Value));
}
else if (regexsection.Match(line).Success)
{
m = regexsection.Match(line);
Trace.WriteLine(string.Format("Adding section [{0}]", m.Groups[1].Value));
tempsection = AddSection(m.Groups[1].Value);
}
else if ( regexkey.Match(line).Success && tempsection != null)
{
m = regexkey.Match(line);
Trace.WriteLine(string.Format("Adding Key [{0}]=[{1}]", m.Groups[1].Value, m.Groups[2].Value));
tempsection.AddKey(m.Groups[1].Value).Value = m.Groups[2].Value;
}
else if ( tempsection != null )
{
// Handle Key without Value
Trace.WriteLine(string.Format("Adding Key [{0}]", line));
tempsection.AddKey(line);
}
else
{
// This should not occur unless the tempsection is not created yet...
Trace.WriteLine(string.Format("Skipping unknown type of data: {0}", line));
}
}
}
oReader.Close();
}
// Used to save the data back to the file or your choice
public void Save(string sFileName)
{
StreamWriter oWriter = new StreamWriter(sFileName, false);
foreach (IniSection s in Sections)
{
Trace.WriteLine(string.Format("Writing Section: [{0}]", s.Name));
oWriter.WriteLine(string.Format("[{0}]", s.Name));
foreach (IniSection.IniKey k in s.Keys)
{
if (k.Value != string.Empty)
{
Trace.WriteLine(string.Format("Writing Key: {0}={1}", k.Name, k.Value));
oWriter.WriteLine(string.Format("{0}={1}", k.Name, k.Value));
}
else
{
Trace.WriteLine(string.Format("Writing Key: {0}", k.Name));
oWriter.WriteLine(string.Format("{0}", k.Name));
}
}
}
oWriter.Close();
}
// Gets all the sections names
public System.Collections.ICollection Sections
{
get
{
return m_sections.Values;
}
}
// Adds a section to the IniFile object, returns a IniSection object to the new or existing object
public IniSection AddSection(string sSection )
{
IniSection s = null;
sSection = sSection.Trim();
// Trim spaces
if (m_sections.ContainsKey(sSection))
{
s = (IniSection)m_sections[sSection];
}
else
{
s = new IniSection(this, sSection);
m_sections[sSection] = s;
}
return s;
}
// Removes a section by its name sSection, returns trus on success
public bool RemoveSection(string sSection)
{
sSection = sSection.Trim();
return RemoveSection(GetSection(sSection));
}
// Removes section by object, returns trus on success
public bool RemoveSection(IniSection Section)
{
if (Section != null)
{
try
{
m_sections.Remove(Section.Name);
return true;
}
catch( Exception ex )
{
Trace.WriteLine(ex.Message);
}
}
return false;
}
// Removes all existing sections, returns trus on success
public bool RemoveAllSections()
{
m_sections.Clear();
return (m_sections.Count == 0);
}
// Returns an IniSection to the section by name, NULL if it was not found
public IniSection GetSection(string sSection)
{
sSection = sSection.Trim();
// Trim spaces
if (m_sections.ContainsKey(sSection))
{
return (IniSection)m_sections[sSection];
}
return null;
}
// Returns a KeyValue in a certain section
public string GetKeyValue(string sSection, string sKey)
{
IniSection s = GetSection(sSection);
if (s != null)
{
IniSection.IniKey k = s.GetKey(sKey);
if (k != null)
{
return k.Value;
}
}
return string.Empty;
}
// Sets a KeyValuePair in a certain section
public bool SetKeyValue(string sSection, string sKey, string sValue)
{
IniSection s = AddSection(sSection);
if (s != null)
{
IniSection.IniKey k = s.AddKey(sKey);
if (k != null)
{
k.Value = sValue;
return true;
}
}
return false;
}
// Renames an existing section returns true on success, false if the section didn't exist or there was another section with the same sNewSection
public bool RenameSection(string sSection, string sNewSection)
{
// Note string trims are done in lower calls.
bool bRval = false;
IniSection s = GetSection(sSection);
if (s != null)
{
bRval = s.SetName(sNewSection);
}
return bRval;
}
// Renames an existing key returns true on success, false if the key didn't exist or there was another section with the same sNewKey
public bool RenameKey(string sSection, string sKey, string sNewKey)
{
// Note string trims are done in lower calls.
IniSection s = GetSection(sSection);
if (s != null)
{
IniSection.IniKey k = s.GetKey(sKey);
if (k != null)
{
return k.SetName(sNewKey);
}
}
return false;
}
// IniSection class
public class IniSection
{
// IniFile IniFile object instance
private IniFile m_pIniFile;
// Name of the section
private string m_sSection;
// List of IniKeys in the section
private Hashtable m_keys;
// Constuctor so objects are internally managed
protected internal IniSection(IniFile parent, string sSection)
{
m_pIniFile = parent;
m_sSection = sSection;
m_keys = new Hashtable(StringComparer.InvariantCultureIgnoreCase);
}
// Returns and hashtable of keys associated with the section
public System.Collections.ICollection Keys
{
get
{
return m_keys.Values;
}
}
// Returns the section name
public string Name
{
get
{
return m_sSection;
}
}
// Adds a key to the IniSection object, returns a IniKey object to the new or existing object
public IniKey AddKey(string sKey)
{
sKey = sKey.Trim();
IniSection.IniKey k = null;
if (sKey.Length != 0)
{
if (m_keys.ContainsKey(sKey))
{
k = (IniKey)m_keys[sKey];
}
else
{
k = new IniSection.IniKey(this, sKey);
m_keys[sKey] = k;
}
}
return k;
}
// Removes a single key by string
public bool RemoveKey(string sKey)
{
return RemoveKey(GetKey(sKey));
}
// Removes a single key by IniKey object
public bool RemoveKey(IniKey Key)
{
if (Key != null)
{
try
{
m_keys.Remove(Key.Name);
return true;
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
return false;
}
// Removes all the keys in the section
public bool RemoveAllKeys()
{
m_keys.Clear();
return (m_keys.Count == 0);
}
// Returns a IniKey object to the key by name, NULL if it was not found
public IniKey GetKey(string sKey)
{
sKey = sKey.Trim();
if (m_keys.ContainsKey(sKey))
{
return (IniKey)m_keys[sKey];
}
return null;
}
// Sets the section name, returns true on success, fails if the section
// name sSection already exists
public bool SetName(string sSection)
{
sSection = sSection.Trim();
if (sSection.Length != 0)
{
// Get existing section if it even exists...
IniSection s = m_pIniFile.GetSection(sSection);
if (s != this && s != null) return false;
try
{
// Remove the current section
m_pIniFile.m_sections.Remove(m_sSection);
// Set the new section name to this object
m_pIniFile.m_sections[sSection] = this;
// Set the new section name
m_sSection = sSection;
return true;
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
return false;
}
// Returns the section name
public string GetName()
{
return m_sSection;
}
// IniKey class
public class IniKey
{
// Name of the Key
private string m_sKey;
// Value associated
private string m_sValue;
// Pointer to the parent CIniSection
private IniSection m_section;
// Constuctor so objects are internally managed
protected internal IniKey(IniSection parent, string sKey)
{
m_section = parent;
m_sKey = sKey;
}
// Returns the name of the Key
public string Name
{
get
{
return m_sKey;
}
}
// Sets or Gets the Value of the key
public string Value
{
get
{
return m_sValue;
}
set
{
m_sValue = value;
}
}
// Sets the Value of the key
public void SetValue(string sValue)
{
m_sValue = sValue;
}
// Returns the Value of the Key
public string GetValue()
{
return m_sValue;
}
// Sets the key name
// Returns true on success, fails if the section name sKey already exists
public bool SetName(string sKey)
{
sKey = sKey.Trim();
if (sKey.Length != 0)
{
IniKey k = m_section.GetKey(sKey);
if (k != this && k != null) return false;
try
{
// Remove the current key
m_section.m_keys.Remove(m_sKey);
// Set the new key name to this object
m_section.m_keys[sKey] = this;
// Set the new key name
m_sKey = sKey;
return true;
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
return false;
}
// Returns the name of the Key
public string GetName()
{
return m_sKey;
}
} // End of IniKey class
} // End of IniSection class
} // End of IniFile class
+70
View File
@@ -0,0 +1,70 @@
using System.IO;
namespace EgwProxy.Icoel.Test.INI
{
public class Settaggi
{
#region Public Constructors
public Settaggi()
{
_sett = new IniFile();
}
#endregion Public Constructors
#region Public Properties
public string IndirizzoIpSizer
{
get { return _sett.GetKeyValue("Sizer", "IndirizzoIp"); }
set { _sett.SetKeyValue("Sizer", "IndirizzoIp", value); }
}
public string IndirizzoIpSizerClient
{
get { return _sett.GetKeyValue("Sizer", "IndirizzoIpTracciabilità"); }
set { _sett.SetKeyValue("Sizer", "IndirizzoIpTracciabilità", value); }
}
public string SizerTcpPort
{
get { return _sett.GetKeyValue("Sizer", "TcpPort"); }
set { _sett.SetKeyValue("Sizer", "TcpPort", value); }
}
public string TcpPortSizerClient
{
get { return _sett.GetKeyValue("Sizer", "TcpPortTracciabilità"); }
set { _sett.SetKeyValue("Sizer", "TcpPortTracciabilità", value); }
}
#endregion Public Properties
#region Public Methods
public void Load()
{
if (!File.Exists(NameFile))
{
var fs = File.Create(NameFile);
fs.Close();
}
_sett.Load(NameFile, false);
}
public void Save()
{
_sett.Save(NameFile);
}
#endregion Public Methods
#region Private Fields
private const string NameFile = "conf.ini";
private readonly IniFile _sett;
#endregion Private Fields
}
}
+385
View File
@@ -0,0 +1,385 @@
using EgwProxy.Icoel.DataLayer.DatabaseModels;
using EgwProxy.Icoel.SizerService;
//using EgwProxy.Icoel.Test.INI;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Diagnostics;
namespace EgwProxy.Icoel.Test
{
internal class Program
{
#region Internal Methods
/// <summary>
/// Mostra tutte le metriche di performance ricevute
/// </summary>
/// <param name="perfMeter"></param>
internal static void DisplayPerfMeter(Dictionary<string, double> perfMeter)
{
// mostra tutti i parametri rilevati...
foreach (var item in perfMeter)
{
Console.WriteLine($"{item.Key} | {item.Value:N2}");
}
}
/// <summary>
/// Mostra tutte le metriche di performance ricevute
/// </summary>
/// <param name="currData"></param>
internal static void DisplayCurrBatch(Dictionary<string, string> currData)
{
// mostra tutti i parametri rilevati...
foreach (var item in currData)
{
Console.WriteLine($"{item.Key} | {item.Value}");
}
}
/// <summary>
/// Generazione di una list di info sui dati variety
/// </summary>
/// <param name="varietiesList"></param>
/// <returns></returns>
internal static void DisplayVariety(Variety[] varietyData)
{
foreach (var item in varietyData)
{
Console.WriteLine("--------------------------");
Console.WriteLine($"Variety Id: {item.Id} | Variety Name: {item.Name}");
Console.WriteLine(" - Qualities");
foreach (var quality in item.Qualities)
{
Console.WriteLine($" Name: {quality.Name}");
}
Console.WriteLine(" - Grades");
foreach (var grade in item.Grades)
{
Console.WriteLine($" Name: {grade.Name}");
}
Console.WriteLine(" - Sizes");
foreach (var size in item.SizingMaps)
{
Console.WriteLine($" Name: {size.Name}");
}
}
}
/// <summary>
/// Generazione di una list di info sui dati variety
/// </summary>
/// <param name="varietiesList"></param>
/// <returns></returns>
internal static void DisplayVarietyLayout(Dictionary<Variety, Layout[]> varietyData)
{
foreach (var item in varietyData)
{
Console.WriteLine("--------------------------");
Console.WriteLine($"Variety Id: {item.Key.Id} | Variety Name: {item.Key.Name}");
Console.WriteLine(" - Qualities");
foreach (var quality in item.Key.Qualities)
{
Console.WriteLine($" Name: {quality.Name}");
}
Console.WriteLine(" - Grades");
foreach (var grade in item.Key.Grades)
{
Console.WriteLine($" Name: {grade.Name}");
}
Console.WriteLine(" - Sizes");
foreach (var size in item.Key.SizingMaps)
{
Console.WriteLine($" Name: {size.Name}");
}
Console.WriteLine(" - LAYOUTS");
foreach (var layout in item.Value)
{
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
Console.WriteLine(" - Products");
foreach (var product in layout.Products)
{
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
}
}
}
}
/// <summary>
/// Mostra elenco variety e quanod utente seleziona restituisce varGuid
/// </summary>
/// <returns></returns>
internal static Guid selLayout(Connector IcoelSizer, Guid varGuid)
{
int idxLay = -1;
Guid layGuid = Guid.NewGuid();
// recupero layout della varietà
var layoutList = IcoelSizer.GetLayoutForVariety(varGuid);
Console.WriteLine("--------------------");
Console.WriteLine("Layout disponibili:");
Console.WriteLine("--------------------");
DisplayLayout(layoutList);
// recupero layout x varietà
while (idxLay <= 0)
{
Console.WriteLine("");
Console.WriteLine("indicare layout");
var rawData = Console.ReadLine();
if (!string.IsNullOrEmpty(rawData))
{
int.TryParse(rawData, out idxLay);
// verifico sia valida..
if (layoutList.Length >= idxLay && idxLay > 0)
{
layGuid = layoutList[idxLay - 1].Id;
}
else
{
idxLay = -1;
}
}
}
return layGuid;
}
/// <summary>
/// Mostra elenco variety e quanod utente seleziona restituisce varGuid
/// </summary>
/// <returns></returns>
internal static Guid selVariety(Connector IcoelSizer)
{
int idxVar = -1;
Guid varGuid = Guid.NewGuid();
var varList = IcoelSizer.GetVarietyList(true);
Console.WriteLine("--------------------");
Console.WriteLine("Varietà disponibili:");
Console.WriteLine("--------------------");
DisplayVariety(varList);
// chiedo di selezionare
while (idxVar <= 0)
{
Console.WriteLine("");
Console.WriteLine("indicare varietà richiesta (#)");
var rawData = Console.ReadLine();
if (!string.IsNullOrEmpty(rawData))
{
int.TryParse(rawData, out idxVar);
// verifico sia valida..
if (varList.Length >= idxVar && idxVar > 0)
{
varGuid = varList[idxVar - 1].Id;
}
else
{
idxVar = -1;
}
}
}
return varGuid;
}
#endregion Internal Methods
#region Private Methods
/// <summary>
/// Generazione di una list di layout dato elenco
/// </summary>
/// <param name="layoutList"></param>
/// <exception cref="NotImplementedException"></exception>
internal static void DisplayLayout(Layout[] layoutList)
{
foreach (var layout in layoutList)
{
Console.WriteLine($" Id: {layout.Id} | Name: {layout.Name}");
Console.WriteLine(" - Products");
foreach (var product in layout.Products)
{
Console.WriteLine($" Id: {product.Id} | Name: {product.Name} | DisplayName: {product.DisplayName} | Pack: {product.Pack}");
}
}
}
/// <summary>
/// legge conf in formato stringa
/// </summary>
/// <param name="key"></param>
/// <returns></returns>
protected static string ReadSetting(string key)
{
string answ = "";
try
{
answ = $"{ConfigurationManager.AppSettings[key]}" ?? "";
}
catch (Exception exc)
{
Console.Write("Eccezione in ReadSettings");
Console.Write(exc.Message);
}
return answ;
}
/// <summary>
/// Programma principale
/// </summary>
/// <param name="args"></param>
private static void Main(string[] args)
{
// leggo conf da file ini (ip/port)
Console.WriteLine("Loading Files...");
string userInput = "";
Console.WriteLine("------------ Test DB ------------");
EgwProxy.Icoel.DbProxy dbProxy = new DbProxy(ReadSetting("SyncState"));
Console.WriteLine();
Console.WriteLine("--- SyncState ---");
bool needRedo = true;
int numTry = 1;
//int numTry = 3;
var elencoSyncState = dbProxy.DataController.SyncStateGetAll();
while (needRedo && numTry >= 0)
{
Console.WriteLine(" --- PRE --- ");
if (elencoSyncState != null)
{
foreach (var item in elencoSyncState)
{
Console.WriteLine($"TAB: {item.TableName} | IdxIN / IdxLocal {item.LastIdxIn} / {item.LastIdx} | NumIn / NumLocal {item.NumRecIn} / {item.NumRec}");
// verifico se serva redo..
}
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
Stopwatch sw = new Stopwatch();
sw.Start();
elencoSyncState = dbProxy.DataController.SyncStateDoImportAll();
sw.Stop();
Console.WriteLine($" process time: {sw.ElapsedMilliseconds} ms ");
Console.WriteLine(" --- POST --- ");
if (elencoSyncState != null)
{
foreach (var item in elencoSyncState)
{
Console.WriteLine($"TAB: {item.TableName} | IdxIN / IdxLocal {item.LastIdxIn} / {item.LastIdx} | NumIn / NumLocal {item.NumRecIn} / {item.NumRec}");
// verifico se serva redo..
}
}
// processo
needRedo = testNeedRedo(elencoSyncState);
numTry--;
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
Console.ReadKey();
// oggetto x connessione al sizer icoel
Connector IcoelSizer = new Connector(ReadSetting("IndirizzoIpSizer"), ReadSetting("SizerTcpPort"));
//Connector IcoelSizer = new Connector(setup.IndirizzoIpSizer, setup.SizerTcpPort);
Console.WriteLine("------------ Parametri CurrBatch rilevati ------------");
var cBatch = IcoelSizer.GetCurrBatchData();
if (cBatch != null)
{
DisplayCurrBatch(cBatch);
}
// ora effettua un pò di letture/scritture
try
{
Console.WriteLine("------------ TUTTE variety ------------");
var varList = IcoelSizer.GetVarietyList(false);
var varietyData = IcoelSizer.GetLayoutForVarietyList(varList);
if (varietyData != null)
{
DisplayVarietyLayout(varietyData);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
userInput = Console.ReadLine();
Console.WriteLine("------------ Parametri velocità rilevati ------------");
var perfMeter = IcoelSizer.GetPerfMeters();
if (perfMeter != null)
{
DisplayPerfMeter(perfMeter);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
userInput = Console.ReadLine();
// solo attive
Console.WriteLine("------------ solo attive ------------");
varList = IcoelSizer.GetVarietyList();
varietyData = IcoelSizer.GetLayoutForVarietyList(varList);
if (varietyData != null)
{
DisplayVarietyLayout(varietyData);
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
userInput = Console.ReadLine();
Console.WriteLine("------------ BATCH correnti ------------");
var currBatch = IcoelSizer.GetCurrentBatch();
foreach (var item in currBatch)
{
string lato = item.Key == 1 ? "SX" : "DX";
Console.WriteLine($"[{item.Key}-{lato}] Grower code: {item.Value.GrowerCode} | Layout Name: {item.Value.LayoutName} | Totalling: [{item.Value.TotallingVarietyCode}] {item.Value.TotallingVariety} | Sizing: {item.Value.SizingProfileName} | Start {item.Value.StartTime} | End {item.Value.EndTime}");
}
Console.WriteLine();
Console.WriteLine("Premere un tasto x continuare...");
userInput = Console.ReadLine();
Console.WriteLine("------------ Prova invio BATCH ------------");
// recupero GUID x variety e layout
var varGuid = selVariety(IcoelSizer);
var layGuid = selLayout(IcoelSizer, varGuid);
GrowerInfo GrowerData = new GrowerInfo();
IcoelSizer.EnqueueBatch(GrowerData, varGuid, layGuid);
currBatch = IcoelSizer.GetCurrentBatch();
foreach (var item in currBatch)
{
string lato = item.Key == 1 ? "SX" : "DX";
Console.WriteLine($"[{item.Key}-{lato}] Grower code: {item.Value.GrowerCode} | Layout Name: {item.Value.LayoutName} | Totalling: [{item.Value.TotallingVarietyCode}] {item.Value.TotallingVariety} | Sizing: {item.Value.SizingProfileName} | Start {item.Value.StartTime} | End {item.Value.EndTime}");
}
Console.WriteLine("Test completato");
Console.WriteLine("Premere un tasto x chiudere");
Console.ReadKey();
}
catch (Exception ex)
{
Console.WriteLine("ECCEZIONE" + ex.Message + ex.StackTrace);
Console.ReadKey();
}
}
/// <summary>
/// Verifico necessità di rifare sync
/// </summary>
/// <param name="elencoSyncState"></param>
/// <returns></returns>
/// <exception cref="NotImplementedException"></exception>
private static bool testNeedRedo(List<SyncStateModel> elencoSyncState)
{
bool answ = false;
foreach (var item in elencoSyncState)
{
answ = answ || (item.NumRecIn > item.NumRec || item.LastIdxIn > item.LastIdx);
}
return answ;
}
#endregion Private Methods
}
}
@@ -0,0 +1,36 @@
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("EgwProxy.Icoel.Test")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EgwProxy.Icoel.Test")]
[assembly: AssemblyCopyright("Copyright © 2022")]
[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("a655a6ac-5997-46f9-9752-8c621b80516c")]
// 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")]
+6
View File
@@ -0,0 +1,6 @@
[Batch]
GrowerCode=02
GrowerName=Egalware
Comment1=Prova Invio
Comment2=Console app
Comment3=Selezionato Variety e layout
+3
View File
@@ -0,0 +1,3 @@
[Sizer]
IndirizzoIp=192.168.137.50
TcpPort=8001
+4
View File
@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="System.IO.Compression" version="4.3.0" targetFramework="net462" />
</packages>
+37
View File
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.2" />
</startup>
<system.serviceModel>
<bindings>
<netNamedPipeBinding>
<binding name="NetNamedPipeBinding_ISizerService">
<security mode="None" />
</binding>
</netNamedPipeBinding>
<wsHttpBinding>
<binding name="WSHttpBinding_ISizerService" maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:8001/SizerService/" binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_ISizerService" contract="SizerService.ISizerService" name="WSHttpBinding_ISizerService" />
<endpoint address="net.pipe://localhost/Compac/8001/SizerService" binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_ISizerService" contract="SizerService.ISizerService" name="NetNamedPipeBinding_ISizerService" />
</client>
</system.serviceModel>
<entityFramework>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<connectionStrings>
<add name="EntrataFrontiera" connectionString="data source=192.168.137.10\sqlexpress;initial catalog=frontiera;persist security info=True;user id=egalware;password=egalware2022;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />
</connectionStrings>
<runtime>
</runtime>
</configuration>
+107
View File
@@ -0,0 +1,107 @@
# Appunti impiego connesisoni ICOEL
## Icoel SOAP
Oltre ai metodi legati al batch, ci sono questi metodi x recuperare informazioni specifiche di produttività
| Metodo | Descrizione |
| ---------- | ---------- |
| GetMachineTonnesPH() | valore tonnellate/ora di velocità impianto |
| GetMachineTotalFPM() | valore frutti per minuto |
| GetMachineRodsPM() | velocità catena (carrellini / minuto) |
| GetMachineCupfill() | percentuale riempimento carrellini (100% = 1 frutto x ogni carrellino) |
## Icoel DB
Appunti sulla gestione tabelle di frontiera
### Products total
/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP (1000) [SizerBatchId]
,[Index]
,[Nome]
,[Qualities]
,[Grado]
,[Calibro]
,[NumeroFrutti]
,[Decigrammi]
FROM [IcoelExport].[dbo].[ProductsTotals]
### Entrata Ciliegie
SELECT *
FROM [frontiera].[dbo].[ENTRATACILIEGIE]
-- utilizzare codice e descrizione prodotto...
### Fine lavorazione
select top 100 *
from ProductsTotals
/*
SizerBatch id = id del batch da WS SOAP
Index = indice di prodotto FINITO, di cui ho il NOME
- prodotti da matrice: colonne = gradi, righe = taglie(sizes)
- grado a colore rosso
- do il nome prodotto rosse 26- (che sono da 22 a 26 in grado A)
- colonna qualities = è la "somma dei qualities" ovvero le colonne che passano nelcontrollo prodotto
- codice in 3 parametri, che sono a,b,c
- a = qualità interna (SEMPRE NULL x le ciliegie)
- b grado = qualità esterna del frutto, es rosse, nere, con stelo... ricircolo = scarto per cattiva disposizione
- c : calibri che mi definiscono la dimensione, tipicamente 22..32
si scrive tutto quando è chiuso il lotto
inizialmente 1 solo lotto x entrambe le linee
*/
### Conferimento MES
<code>
SELECT *
FROM DettagliConferimentoMES
where FillingId = 31729
order by PackId
</code>
/*
Numero lotto = sigla giorno
sigla lotto: incrementale giornaliero
in particoalre x il prodotto grosso --> seleziono da + fornitori (es fornitori grossi)
PackId = id univoco scatoletta
FillingId / FillingRow NON USATI: li posso ignorare, si applicano al caso "travaso" da bins ingresso / bins uscita "tipizzati" --> serve x precalibrare
scaricoId = operazione di scannerizzazione ( è il barcode letto)
codice a barre è letto x ogni etichetta di conferimento
codice e nome fornitore = grower
codice e descrizione prodotto : sono il GREZZO specifico
cdice prodotto grezzo è il "ceppo" / famiglia
sigla e numero lotto: colonna di entrata ciliegie (frontiera)
idem x data e qta entrata
*/
### Confezioni Mes
<code>
SELECT *
FROM DettagliConfezioniMES
</code>
pack id = singola cassetta/scatoal/cartone
ean = barcode in uscita
batch id / batch name = dati tracciabilità, legato ai lotti in entrata sul sizer
lane [1/2]sizerBatchId = lotti del sizer
pesoDecigram = peso netto confezionato (tolleranza +/-10g...20gr)
tabella scritta dal momento in cui arriva il cartone/cassetta per iniziare riempimento
dati live li vediamo dal sizer
*/
+253
View File
@@ -0,0 +1,253 @@
using EgwProxy.Icoel.SizerService;
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using System.ServiceModel;
namespace EgwProxy.Icoel.Compac
{
/// <summary>
/// Classe di comunicazione x
/// </summary>
public class ComClient : IDisposable
{
#region Public Constructors
/// <summary>
/// Oggetto client comunicazione con sizer ICOEL per invio/recupero informazioni di
/// produzione (batch)
/// </summary>
/// <param name="sizerIp">Indirizzo IP del server SIZER</param>
/// <param name="port">Porta di connessione del sizer (def: 8001)</param>
public ComClient(string sizerIp, string port)
{
// Salvo IP e porta
ipAddress = sizerIp;
tcpPort = port;
// inizializzazione servizio comunicazione
var url = "http://" + sizerIp + ":" + port + "/SizerService/";
EndpointAddress epa = new EndpointAddress(new Uri(url));
SSClient = new SizerServiceClient("WSHttpBinding_ISizerService", epa);
}
#endregion Public Constructors
#region Public Properties
/// <summary>
/// Status di connessione del client
/// </summary>
public bool connected
{
get
{
bool answ = false;
if (SSClient != null)
{
answ = SSClient.State == CommunicationState.Opened;
}
return answ;
}
}
#endregion Public Properties
#region Public Methods
/// <summary>
/// Dispose dell'oggetto
/// </summary>
public void Dispose()
{
Close();
}
#endregion Public Methods
#region Internal Properties
/// <summary>
/// Inidirizzo IP
/// </summary>
internal string ipAddress { get; set; } = "127.0.0.1";
/// <summary>
/// Porta del webservice (SOAP)
/// </summary>
internal string tcpPort { get; set; } = "8001";
#endregion Internal Properties
#region Internal Methods
/// <summary>
/// Verifica del grower da codice/nome con eventuale creazione se mancante
/// </summary>
/// <param name="growerCode">Codice del produttore</param>
/// <param name="growerName">Denominazione del produttore</param>
internal void CheckGrower(string growerCode, string growerName)
{
var grower = SSClient.GetGrower(growerCode);
if (grower == null)
{
var nuovo = new Grower() { Code = growerCode, Name = growerName };
SSClient.AddGrower(nuovo);
}
}
/// <summary>
/// Effettua chiusura del proxy di comunicazione
/// </summary>
internal void Close()
{
if (SSClient.State != CommunicationState.Closed)
{
SSClient.Close();
}
}
/// <summary>
/// Elenco dei layout attivi della varietà
/// </summary>
/// <param name="VarietyId">Guid della varietà</param>
/// <returns>Oggetto Lyout attivo</returns>
internal Layout GetActiveLayout(Guid VarietyId)
{
return SSClient.GetActiveLayout(VarietyId);
}
/// <summary>
/// Elenco varietà attive
/// </summary>
/// <returns>Array Variety attive</returns>
internal Variety[] GetActiveVarieties()
{
return SSClient.GetActiveVarieties();
}
/// <summary>
/// Elenco varietà (tutte)
/// </summary>
/// <returns></returns>
internal Variety[] GetAllVarieties()
{
return SSClient.GetAllVarieties();
}
/// <summary>
/// Recupera il batch corrente (se monolinea)
/// </summary>
/// <returns>Batch corrente (singolo)</returns>
internal Batch GetCurrentBatch()
{
return SSClient.GetCurrentBatch();
}
/// <summary>
/// Recupera il batch corrente data la linea
/// </summary>
/// <param name="lineNum">Numero della linea 1=sx/2=dx</param>
/// <returns>Batch della linea selezionata</returns>
internal Batch GetCurrentBatchByLane(int lineNum)
{
return SSClient.GetCurrentBatchByLane(lineNum);
}
/// <summary>
/// Elenco dei layout della varietà
/// </summary>
/// <param name="VarietyId">Guid della varietà</param>
/// <returns>Layout della Variety</returns>
internal Layout[] GetLayouts(Guid VarietyId)
{
return SSClient.GetLayouts(VarietyId);
}
/// <summary>
/// Effettua chiamata per mettere in coda il lotto richiesto
/// </summary>
/// <param name="batch">Oggetto Batch completamente popolato da accodare in richiesta</param>
internal void MettiLottoInCoda(Batch batch)
{
SSClient.AddBatch(batch);
}
/// <summary>
/// Recupera elenco parametri performance impianto
/// </summary>
/// <returns>Dizionario delle variabili di performance dell'impianto in formato Dictionary<string,double></returns>
internal Dictionary<string, double> GetPerfMeters()
{
Dictionary<string, double> answ = new Dictionary<string, double>();
// velocità processo indicata in tonnellate /oOra
double velTonnOra = SSClient.GetMachineTonnesPH();
// velocità espressa in frutti/minuto
double velFruttiMinuto = SSClient.GetMachineTotalFPM();
// percentuale riempimento carrellini
double percRiemp = SSClient.GetMachineCupfill();
// Numero confezioni/ora
double numPackOra = SSClient.GetMachinePacksPH();
// accodo i valori ricavati
answ.Add("NumPacksOra", numPackOra);
answ.Add("PercRiemp", percRiemp);
answ.Add("VelFruttiMinuto", velFruttiMinuto);
answ.Add("VelTonnOra", velTonnOra);
return answ;
}
#endregion Internal Methods
#region Private Properties
/// <summary>
/// Client che inoltra le richieste al Sizer
/// </summary>
private SizerServiceClient SSClient { get; set; }
#endregion Private Properties
}
[Serializable]
internal class IcoelSizerException : Exception
{
#region Public Constructors
public IcoelSizerException()
{
}
public IcoelSizerException(Exception ex)
{
this.ex = ex;
}
public IcoelSizerException(string message) : base(message)
{
}
public IcoelSizerException(string message, Exception innerException) : base(message, innerException)
{
}
#endregion Public Constructors
#region Protected Constructors
protected IcoelSizerException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
#endregion Protected Constructors
#region Private Fields
private Exception ex;
#endregion Private Fields
}
}
@@ -0,0 +1,107 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/Arrays" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="uri:Compac.Services.Sizer.Service" />
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xs:complexType name="ArrayOfint">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="int" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfint" nillable="true" type="tns:ArrayOfint" />
<xs:complexType name="ArrayOfdouble">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="double" type="xs:double" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfdouble" nillable="true" type="tns:ArrayOfdouble" />
<xs:complexType name="ArrayOfstring">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfstring" nillable="true" type="tns:ArrayOfstring" />
<xs:complexType name="ArrayOfKeyValueOfstringint">
<xs:annotation>
<xs:appinfo>
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfstringint">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" nillable="true" type="xs:string" />
<xs:element name="Value" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfKeyValueOfstringint" nillable="true" type="tns:ArrayOfKeyValueOfstringint" />
<xs:complexType name="ArrayOfArrayOfKeyValueOfstringint">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="ArrayOfKeyValueOfstringint" nillable="true" type="tns:ArrayOfKeyValueOfstringint" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfArrayOfKeyValueOfstringint" nillable="true" type="tns:ArrayOfArrayOfKeyValueOfstringint" />
<xs:complexType name="ArrayOfKeyValueOfOutletProductZE8EwetR">
<xs:annotation>
<xs:appinfo>
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfOutletProductZE8EwetR">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q1="uri:Compac.Services.Sizer.Service" name="Key" nillable="true" type="q1:Outlet" />
<xs:element xmlns:q2="uri:Compac.Services.Sizer.Service" name="Value" nillable="true" type="q2:Product" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfKeyValueOfOutletProductZE8EwetR" nillable="true" type="tns:ArrayOfKeyValueOfOutletProductZE8EwetR" />
<xs:complexType name="ArrayOfKeyValueOfstringstring">
<xs:annotation>
<xs:appinfo>
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfstringstring">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" nillable="true" type="xs:string" />
<xs:element name="Value" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfKeyValueOfstringstring" nillable="true" type="tns:ArrayOfKeyValueOfstringstring" />
<xs:complexType name="ArrayOfguid">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="guid" type="ser:guid" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfguid" nillable="true" type="tns:ArrayOfguid" />
<xs:complexType name="ArrayOfKeyValueOfintint">
<xs:annotation>
<xs:appinfo>
<IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="KeyValueOfintint">
<xs:complexType>
<xs:sequence>
<xs:element name="Key" type="xs:int" />
<xs:element name="Value" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfKeyValueOfintint" nillable="true" type="tns:ArrayOfKeyValueOfintint" />
</xs:schema>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="urn:clr:Compac.Services.Core" elementFormDefault="qualified" targetNamespace="urn:clr:Compac.Services.Core" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.datacontract.org/2004/07/Compac.Services.Core" />
<xs:element name="GetVersion">
<xs:complexType>
<xs:sequence />
</xs:complexType>
</xs:element>
<xs:element name="GetVersionResponse">
<xs:complexType>
<xs:sequence>
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/Compac.Services.Core" minOccurs="0" name="GetVersionResult" nillable="true" type="q1:ServiceVersion" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/Compac.Services.Core" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Compac.Services.Core" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.datacontract.org/2004/07/System" />
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xs:complexType name="ServiceVersion">
<xs:sequence>
<xs:element xmlns:q1="http://schemas.datacontract.org/2004/07/System" minOccurs="0" name="InterfaceVersion" nillable="true" type="q1:Version" />
<xs:element minOccurs="0" name="ProviderName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="ProviderVersion" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="ServiceVersion" nillable="true" type="tns:ServiceVersion" />
<xs:complexType name="ServiceEvent">
<xs:sequence>
<xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="EventArgs" nillable="true" type="q2:ArrayOfKeyValueOfstringstring" />
<xs:element minOccurs="0" name="EventName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="EventTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="Id" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="ServiceEvent" nillable="true" type="tns:ServiceEvent" />
</xs:schema>
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://Compac.Services.Core" elementFormDefault="qualified" targetNamespace="http://Compac.Services.Core" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="ArgumentFault">
<xs:sequence>
<xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Value" nillable="true" type="xs:anyType" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArgumentFault" nillable="true" type="tns:ArgumentFault" />
</xs:schema>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,373 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:ser="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:tns="uri:Compac.Services.Sizer.Service" elementFormDefault="qualified" targetNamespace="uri:Compac.Services.Sizer.Service" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
<xs:complexType name="ArrayOfBatch">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Batch" nillable="true" type="tns:Batch" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfBatch" nillable="true" type="tns:ArrayOfBatch" />
<xs:complexType name="Batch">
<xs:sequence>
<xs:element minOccurs="0" name="AvoidLayoutChange" type="xs:boolean" />
<xs:element minOccurs="0" name="AvoidSavingOldLayouts" type="xs:boolean" />
<xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Comments" nillable="true" type="q1:ArrayOfstring" />
<xs:element minOccurs="0" name="EndTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="GrowerCode" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Id" type="xs:int" />
<xs:element minOccurs="0" name="IsFinalized" type="xs:boolean" />
<xs:element minOccurs="0" name="LaneGroups" nillable="true" type="tns:ArrayOfLaneGroup" />
<xs:element minOccurs="0" name="LayoutId" type="ser:guid" />
<xs:element minOccurs="0" name="LayoutName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="OverrideLayoutConflicts" type="xs:boolean" />
<xs:element minOccurs="0" name="SampleName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="SizingProfileName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="StartTime" type="xs:dateTime" />
<xs:element minOccurs="0" name="TotallingVariety" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TotallingVarietyCode" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="VarietyId" type="ser:guid" />
<xs:element minOccurs="0" name="VarietyName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="VisionMap" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="Batch" nillable="true" type="tns:Batch" />
<xs:complexType name="ArrayOfLaneGroup">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="LaneGroup" nillable="true" type="tns:LaneGroup" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfLaneGroup" nillable="true" type="tns:ArrayOfLaneGroup" />
<xs:complexType name="LaneGroup">
<xs:sequence>
<xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Lanes" nillable="true" type="q2:ArrayOfint" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="LaneGroup" nillable="true" type="tns:LaneGroup" />
<xs:complexType name="ArrayOfLayout">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Layout" nillable="true" type="tns:Layout" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfLayout" nillable="true" type="tns:ArrayOfLayout" />
<xs:complexType name="Layout">
<xs:sequence>
<xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Assignments" nillable="true" type="q3:ArrayOfKeyValueOfOutletProductZE8EwetR" />
<xs:element minOccurs="0" name="Id" type="ser:guid" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Products" nillable="true" type="tns:ArrayOfProduct" />
</xs:sequence>
</xs:complexType>
<xs:element name="Layout" nillable="true" type="tns:Layout" />
<xs:complexType name="Outlet">
<xs:sequence>
<xs:element minOccurs="0" name="CurrentProductId" type="ser:guid" />
<xs:element minOccurs="0" name="DeliveredFruitPerMinute" type="xs:double" />
<xs:element minOccurs="0" name="Id" type="xs:int" />
<xs:element minOccurs="0" name="LastDeliveredBatchId" type="xs:int" />
<xs:element minOccurs="0" name="MaxRateSquareCMPerMinute" type="xs:int" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="PendingProductId" nillable="true" type="ser:guid" />
<xs:element minOccurs="0" name="Status" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Outlet" nillable="true" type="tns:Outlet" />
<xs:complexType name="Product">
<xs:sequence>
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Elements" nillable="true" type="tns:ArrayOfElement" />
<xs:element minOccurs="0" name="Id" type="ser:guid" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Pack" nillable="true" type="tns:Pack" />
<xs:element minOccurs="0" name="SpecialInstructions" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TargetFill" nillable="true" type="tns:PackTargetFill" />
</xs:sequence>
</xs:complexType>
<xs:element name="Product" nillable="true" type="tns:Product" />
<xs:complexType name="ArrayOfElement">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Element" nillable="true" type="tns:Element" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfElement" nillable="true" type="tns:ArrayOfElement" />
<xs:complexType name="Element">
<xs:sequence>
<xs:element minOccurs="0" name="Grade" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Label" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Quality" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Size" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Element" nillable="true" type="tns:Element" />
<xs:complexType name="Pack">
<xs:sequence>
<xs:element minOccurs="0" name="BoxType" nillable="true" type="tns:PackBoxType" />
<xs:element minOccurs="0" name="Id" type="ser:guid" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="PackControl" nillable="true" type="tns:PackControl" />
<xs:element minOccurs="0" name="Style" nillable="true" type="tns:PackingStyle" />
<xs:element minOccurs="0" name="TargetFill" nillable="true" type="tns:PackTargetFill" />
<xs:element minOccurs="0" name="UserCode" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="Pack" nillable="true" type="tns:Pack" />
<xs:complexType name="PackBoxType">
<xs:sequence>
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Type" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="PackBoxType" nillable="true" type="tns:PackBoxType" />
<xs:complexType name="PackControl">
<xs:sequence>
<xs:element minOccurs="0" name="NumberOfSteps" type="xs:int" />
<xs:element minOccurs="0" name="PackChangeTime" type="xs:int" />
<xs:element minOccurs="0" name="PackLength" type="xs:int" />
<xs:element minOccurs="0" name="StepDelay" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="PackControl" nillable="true" type="tns:PackControl" />
<xs:complexType name="PackingStyle">
<xs:sequence>
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="PackingStyle" nillable="true" type="tns:PackingStyle" />
<xs:complexType name="PackTargetFill">
<xs:sequence>
<xs:element minOccurs="0" name="FillMode" type="tns:PackFillMode" />
<xs:element minOccurs="0" name="Quantity" type="xs:int" />
<xs:element minOccurs="0" name="WeightDecigram" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
<xs:element name="PackTargetFill" nillable="true" type="tns:PackTargetFill" />
<xs:simpleType name="PackFillMode">
<xs:restriction base="xs:string">
<xs:enumeration value="Weight" />
<xs:enumeration value="Quantity" />
<xs:enumeration value="WeightAndQuantity" />
</xs:restriction>
</xs:simpleType>
<xs:element name="PackFillMode" nillable="true" type="tns:PackFillMode" />
<xs:complexType name="ArrayOfProduct">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Product" nillable="true" type="tns:Product" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfProduct" nillable="true" type="tns:ArrayOfProduct" />
<xs:complexType name="Variety">
<xs:sequence>
<xs:element minOccurs="0" name="Grades" nillable="true" type="tns:ArrayOfGrade" />
<xs:element minOccurs="0" name="Id" type="ser:guid" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Qualities" nillable="true" type="tns:ArrayOfQuality" />
<xs:element minOccurs="0" name="SizingMaps" nillable="true" type="tns:ArrayOfSizingMap" />
</xs:sequence>
</xs:complexType>
<xs:element name="Variety" nillable="true" type="tns:Variety" />
<xs:complexType name="ArrayOfGrade">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Grade" nillable="true" type="tns:Grade" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfGrade" nillable="true" type="tns:ArrayOfGrade" />
<xs:complexType name="Grade">
<xs:sequence>
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Grade" nillable="true" type="tns:Grade" />
<xs:complexType name="ArrayOfQuality">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Quality" nillable="true" type="tns:Quality" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfQuality" nillable="true" type="tns:ArrayOfQuality" />
<xs:complexType name="Quality">
<xs:sequence>
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Quality" nillable="true" type="tns:Quality" />
<xs:complexType name="ArrayOfSizingMap">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SizingMap" nillable="true" type="tns:SizingMap" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfSizingMap" nillable="true" type="tns:ArrayOfSizingMap" />
<xs:complexType name="SizingMap">
<xs:sequence>
<xs:element minOccurs="0" name="CoveredQualityGrades" nillable="true" type="tns:ArrayOfQualityGradePair" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Sizes" nillable="true" type="tns:ArrayOfSize" />
</xs:sequence>
</xs:complexType>
<xs:element name="SizingMap" nillable="true" type="tns:SizingMap" />
<xs:complexType name="ArrayOfQualityGradePair">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="QualityGradePair" nillable="true" type="tns:QualityGradePair" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfQualityGradePair" nillable="true" type="tns:ArrayOfQualityGradePair" />
<xs:complexType name="QualityGradePair">
<xs:sequence>
<xs:element minOccurs="0" name="Grade" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Quality" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="QualityGradePair" nillable="true" type="tns:QualityGradePair" />
<xs:complexType name="ArrayOfSize">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Size" nillable="true" type="tns:Size" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfSize" nillable="true" type="tns:ArrayOfSize" />
<xs:complexType name="Size">
<xs:sequence>
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element xmlns:q4="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Settings" nillable="true" type="q4:ArrayOfKeyValueOfstringstring" />
</xs:sequence>
</xs:complexType>
<xs:element name="Size" nillable="true" type="tns:Size" />
<xs:complexType name="ArrayOfVariety">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Variety" nillable="true" type="tns:Variety" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfVariety" nillable="true" type="tns:ArrayOfVariety" />
<xs:complexType name="ArrayOfPack">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Pack" nillable="true" type="tns:Pack" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfPack" nillable="true" type="tns:ArrayOfPack" />
<xs:complexType name="ArrayOfLabel">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Label" nillable="true" type="tns:Label" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfLabel" nillable="true" type="tns:ArrayOfLabel" />
<xs:complexType name="Label">
<xs:sequence>
<xs:element minOccurs="0" name="DisplayName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Label" nillable="true" type="tns:Label" />
<xs:complexType name="ArrayOfOutlet">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Outlet" nillable="true" type="tns:Outlet" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfOutlet" nillable="true" type="tns:ArrayOfOutlet" />
<xs:simpleType name="AlarmPriority">
<xs:restriction base="xs:string">
<xs:enumeration value="Low" />
<xs:enumeration value="Medium" />
<xs:enumeration value="High" />
<xs:enumeration value="Critical" />
</xs:restriction>
</xs:simpleType>
<xs:element name="AlarmPriority" nillable="true" type="tns:AlarmPriority" />
<xs:complexType name="Grower">
<xs:sequence>
<xs:element minOccurs="0" name="Address1" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Address2" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Code" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="ContactName" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Country" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="EmailAddress" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Fax" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Mobile" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="Phone" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="State" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TownCity" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TraceabilityId" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="ZipCode" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="Grower" nillable="true" type="tns:Grower" />
<xs:complexType name="ArrayOfGrower">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="Grower" nillable="true" type="tns:Grower" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfGrower" nillable="true" type="tns:ArrayOfGrower" />
<xs:complexType name="AbstractSamplingConfiguration">
<xs:sequence />
</xs:complexType>
<xs:element name="AbstractSamplingConfiguration" nillable="true" type="tns:AbstractSamplingConfiguration" />
<xs:complexType name="ElementSamplingConfiguration">
<xs:complexContent mixed="false">
<xs:extension base="tns:AbstractSamplingConfiguration">
<xs:sequence>
<xs:element minOccurs="0" name="BatchId" type="xs:int" />
<xs:element minOccurs="0" name="Elements" nillable="true" type="tns:ArrayOfElement" />
<xs:element minOccurs="0" name="Limit" nillable="true" type="xs:decimal" />
<xs:element minOccurs="0" name="LimitUnit" type="tns:SamplingMeasurementUnit" />
<xs:element minOccurs="0" name="Ratio" nillable="true" type="tns:Ratio" />
<xs:element minOccurs="0" name="RatioRightUnit" type="tns:RatioMeasurementUnit" />
<xs:element xmlns:q5="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="LaneNumbers" nillable="true" type="q5:ArrayOfint" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ElementSamplingConfiguration" nillable="true" type="tns:ElementSamplingConfiguration" />
<xs:simpleType name="SamplingMeasurementUnit">
<xs:restriction base="xs:string">
<xs:enumeration value="Pieces" />
<xs:enumeration value="Decigrams" />
</xs:restriction>
</xs:simpleType>
<xs:element name="SamplingMeasurementUnit" nillable="true" type="tns:SamplingMeasurementUnit" />
<xs:complexType name="Ratio">
<xs:sequence>
<xs:element minOccurs="0" name="Numerator" type="xs:int" />
<xs:element minOccurs="0" name="Denominator" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="Ratio" nillable="true" type="tns:Ratio" />
<xs:simpleType name="RatioMeasurementUnit">
<xs:restriction base="xs:string">
<xs:enumeration value="Pieces" />
<xs:enumeration value="CartonEquivalents" />
</xs:restriction>
</xs:simpleType>
<xs:element name="RatioMeasurementUnit" nillable="true" type="tns:RatioMeasurementUnit" />
<xs:complexType name="ProductSamplingConfiguration">
<xs:complexContent mixed="false">
<xs:extension base="tns:AbstractSamplingConfiguration">
<xs:sequence>
<xs:element minOccurs="0" name="BatchId" type="xs:int" />
<xs:element xmlns:q6="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="LaneNumbers" nillable="true" type="q6:ArrayOfint" />
<xs:element minOccurs="0" name="Limit" nillable="true" type="xs:decimal" />
<xs:element minOccurs="0" name="LimitUnit" type="tns:SamplingMeasurementUnit" />
<xs:element minOccurs="0" name="ProductId" type="ser:guid" />
<xs:element minOccurs="0" name="Ratio" nillable="true" type="tns:Ratio" />
<xs:element minOccurs="0" name="RatioRightUnit" type="tns:RatioMeasurementUnit" />
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ProductSamplingConfiguration" nillable="true" type="tns:ProductSamplingConfiguration" />
<xs:complexType name="ArrayOfSamplingProgress">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="SamplingProgress" nillable="true" type="tns:SamplingProgress" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfSamplingProgress" nillable="true" type="tns:ArrayOfSamplingProgress" />
<xs:complexType name="SamplingProgress">
<xs:sequence>
<xs:element minOccurs="0" name="CurrentCount" type="xs:decimal" />
<xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
<xs:element minOccurs="0" name="TargetCount" nillable="true" type="xs:decimal" />
<xs:element minOccurs="0" name="Unit" type="tns:SamplingMeasurementUnit" />
</xs:sequence>
</xs:complexType>
<xs:element name="SamplingProgress" nillable="true" type="tns:SamplingProgress" />
</xs:schema>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="AbstractSamplingConfiguration" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.AbstractSamplingConfiguration, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Batch" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Batch, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="GetVersionResponse" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.GetVersionResponse, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Grower" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Grower, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Label" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Label, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="LaneGroup" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.LaneGroup, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Layout" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Layout, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Outlet" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Outlet, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Pack" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Pack, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Product" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Product, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="SamplingProgress" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.SamplingProgress, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="ServiceVersion" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.ServiceVersion, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Variety" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>EgwProxy.Icoel.SizerService.Variety, Connected Services.SizerService.Reference.cs.dll, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<ReferenceGroup xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ID="62553bb0-41e7-4b60-bd08-3bf2eba190f9" xmlns="urn:schemas-microsoft-com:xml-wcfservicemap">
<ClientOptions>
<GenerateAsynchronousMethods>false</GenerateAsynchronousMethods>
<GenerateTaskBasedAsynchronousMethod>true</GenerateTaskBasedAsynchronousMethod>
<EnableDataBinding>true</EnableDataBinding>
<ExcludedTypes />
<ImportXmlTypes>false</ImportXmlTypes>
<GenerateInternalTypes>false</GenerateInternalTypes>
<GenerateMessageContracts>false</GenerateMessageContracts>
<NamespaceMappings />
<CollectionMappings />
<GenerateSerializableTypes>true</GenerateSerializableTypes>
<Serializer>Auto</Serializer>
<UseSerializerForFaults>true</UseSerializerForFaults>
<ReferenceAllAssemblies>true</ReferenceAllAssemblies>
<ReferencedAssemblies />
<ReferencedDataContractTypes />
<ServiceContractMappings />
</ClientOptions>
<MetadataSources>
<MetadataSource Address="http://localhost:8001/SizerService/mex" Protocol="mex" SourceId="1" />
</MetadataSources>
<Metadata>
<MetadataFile FileName="Compac.Services.Sizer.Service.wsdl" MetadataType="Wsdl" ID="3667249a-8d59-41c2-a438-5c1c92312908" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
<MetadataFile FileName="service.wsdl" MetadataType="Wsdl" ID="91527b2c-5da6-4603-b28f-ba48102ef3a9" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
<MetadataFile FileName="Compac.Services.Core.xsd" MetadataType="Schema" ID="6bbfd191-b8e4-4a76-9ce3-5b0892f5730b" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
<MetadataFile FileName="service.xsd" MetadataType="Schema" ID="3af535ae-0375-4d5b-b79f-a3a1d6aa76a3" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
<MetadataFile FileName="Compac.Services.Core1.xsd" MetadataType="Schema" ID="a92642dc-97ba-4344-beb6-b5bc1ba73ae9" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
<MetadataFile FileName="System.xsd" MetadataType="Schema" ID="c30865d3-0e95-4c86-84b0-b80cb97822e4" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
<MetadataFile FileName="Compac.Services.Sizer.Service.xsd" MetadataType="Schema" ID="b7e04aac-960c-4819-a3d2-0be3d374197c" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
<MetadataFile FileName="Arrays.xsd" MetadataType="Schema" ID="c7458cc7-ad94-4588-b36f-d4d5c5e0c214" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
<MetadataFile FileName="Compac.Services.Sizer.Service1.xsd" MetadataType="Schema" ID="b99eb748-f69a-4b1d-b1fe-32680a887b8f" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
<MetadataFile FileName="Compac.Services.Core2.xsd" MetadataType="Schema" ID="34c4c65d-a186-4eb5-8250-c027142d0d02" SourceId="1" SourceUrl="http://localhost:8001/SizerService/mex" />
</Metadata>
<Extensions>
<ExtensionFile FileName="configuration91.svcinfo" Name="configuration91.svcinfo" />
<ExtensionFile FileName="configuration.svcinfo" Name="configuration.svcinfo" />
</Extensions>
</ReferenceGroup>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.datacontract.org/2004/07/System" elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/System" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Version">
<xs:sequence>
<xs:element name="_Build" type="xs:int" />
<xs:element name="_Major" type="xs:int" />
<xs:element name="_Minor" type="xs:int" />
<xs:element name="_Revision" type="xs:int" />
</xs:sequence>
</xs:complexType>
<xs:element name="Version" nillable="true" type="tns:Version" />
</xs:schema>
@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<configurationSnapshot xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:schemas-microsoft-com:xml-wcfconfigurationsnapshot">
<behaviors />
<bindings>
<binding digest="System.ServiceModel.Configuration.NetNamedPipeBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data name=&quot;NetNamedPipeBinding_ISizerService&quot;&gt;&lt;security mode=&quot;None&quot; /&gt;&lt;/Data&gt;" bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_ISizerService" />
<binding digest="System.ServiceModel.Configuration.WSHttpBindingElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data name=&quot;WSHttpBinding_ISizerService&quot;&gt;&lt;security mode=&quot;None&quot; /&gt;&lt;/Data&gt;" bindingType="wsHttpBinding" name="WSHttpBinding_ISizerService" />
</bindings>
<endpoints>
<endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:8001/SizerService/&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_ISizerService&quot; contract=&quot;SizerService.ISizerService&quot; name=&quot;WSHttpBinding_ISizerService&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;http://localhost:8001/SizerService/&quot; binding=&quot;wsHttpBinding&quot; bindingConfiguration=&quot;WSHttpBinding_ISizerService&quot; contract=&quot;SizerService.ISizerService&quot; name=&quot;WSHttpBinding_ISizerService&quot; /&gt;" contractName="SizerService.ISizerService" name="WSHttpBinding_ISizerService" />
<endpoint normalizedDigest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.pipe://localhost/Compac/8001/SizerService&quot; binding=&quot;netNamedPipeBinding&quot; bindingConfiguration=&quot;NetNamedPipeBinding_ISizerService&quot; contract=&quot;SizerService.ISizerService&quot; name=&quot;NetNamedPipeBinding_ISizerService&quot; /&gt;" digest="&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-16&quot;?&gt;&lt;Data address=&quot;net.pipe://localhost/Compac/8001/SizerService&quot; binding=&quot;netNamedPipeBinding&quot; bindingConfiguration=&quot;NetNamedPipeBinding_ISizerService&quot; contract=&quot;SizerService.ISizerService&quot; name=&quot;NetNamedPipeBinding_ISizerService&quot; /&gt;" contractName="SizerService.ISizerService" name="NetNamedPipeBinding_ISizerService" />
</endpoints>
</configurationSnapshot>
@@ -0,0 +1,374 @@
<?xml version="1.0" encoding="utf-8"?>
<SavedWcfConfigurationInformation xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="9.1" CheckSum="ue1GM2YbFtgGxkL1UM24zSjEnd9Ovrw4eae6ahtbv3w=">
<bindingConfigurations>
<bindingConfiguration bindingType="netNamedPipeBinding" name="NetNamedPipeBinding_ISizerService">
<properties>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>NetNamedPipeBinding_ISizerService</serializedValue>
</property>
<property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/transactionFlow" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>False</serializedValue>
</property>
<property path="/transferMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.TransferMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Buffered</serializedValue>
</property>
<property path="/transactionProtocol" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.TransactionProtocol, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>OleTransactions</serializedValue>
</property>
<property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>StrongWildcard</serializedValue>
</property>
<property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/maxBufferSize" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>65536</serializedValue>
</property>
<property path="/maxConnections" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
</property>
<property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.NetNamedPipeSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.NetNamedPipeSecurityElement</serializedValue>
</property>
<property path="/security/mode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.NetNamedPipeSecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.NamedPipeTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.NamedPipeTransportSecurityElement</serializedValue>
</property>
<property path="/security/transport/protectionLevel" isComplexType="false" isExplicitlyDefined="false" clrType="System.Net.Security.ProtectionLevel, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>EncryptAndSign</serializedValue>
</property>
</properties>
</bindingConfiguration>
<bindingConfiguration bindingType="wsHttpBinding" name="WSHttpBinding_ISizerService">
<properties>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WSHttpBinding_ISizerService</serializedValue>
</property>
<property path="/closeTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/openTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/receiveTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/sendTimeout" isComplexType="false" isExplicitlyDefined="true" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/bypassProxyOnLocal" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/transactionFlow" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>False</serializedValue>
</property>
<property path="/hostNameComparisonMode" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HostNameComparisonMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>StrongWildcard</serializedValue>
</property>
<property path="/maxBufferPoolSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/maxReceivedMessageSize" isComplexType="false" isExplicitlyDefined="true" clrType="System.Int64, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/messageEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.WSMessageEncoding, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Text</serializedValue>
</property>
<property path="/proxyAddress" isComplexType="false" isExplicitlyDefined="false" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/readerQuotas" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.XmlDictionaryReaderQuotasElement</serializedValue>
</property>
<property path="/readerQuotas/maxDepth" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxStringContentLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxArrayLength" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxBytesPerRead" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/readerQuotas/maxNameTableCharCount" isComplexType="false" isExplicitlyDefined="false" clrType="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>0</serializedValue>
</property>
<property path="/reliableSession" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.StandardBindingOptionalReliableSessionElement</serializedValue>
</property>
<property path="/reliableSession/ordered" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>True</serializedValue>
</property>
<property path="/reliableSession/inactivityTimeout" isComplexType="false" isExplicitlyDefined="false" clrType="System.TimeSpan, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>00:10:00</serializedValue>
</property>
<property path="/reliableSession/enabled" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>False</serializedValue>
</property>
<property path="/textEncoding" isComplexType="false" isExplicitlyDefined="false" clrType="System.Text.Encoding, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Text.UTF8Encoding</serializedValue>
</property>
<property path="/useDefaultWebProxy" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/allowCookies" isComplexType="false" isExplicitlyDefined="true" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/security" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.WSHttpSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.WSHttpSecurityElement</serializedValue>
</property>
<property path="/security/mode" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.SecurityMode, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.WSHttpTransportSecurityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.WSHttpTransportSecurityElement</serializedValue>
</property>
<property path="/security/transport/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpClientCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Windows</serializedValue>
</property>
<property path="/security/transport/proxyCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.HttpProxyCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>None</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.Security.Authentication.ExtendedProtection.Configuration.ExtendedProtectionPolicyElement</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/policyEnforcement" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.PolicyEnforcement, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Never</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/protectionScenario" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.ProtectionScenario, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>TransportSelected</serializedValue>
</property>
<property path="/security/transport/extendedProtectionPolicy/customServiceNames" isComplexType="true" isExplicitlyDefined="false" clrType="System.Security.Authentication.ExtendedProtection.Configuration.ServiceNameElementCollection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>(Raccolta)</serializedValue>
</property>
<property path="/security/transport/realm" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/security/message" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.NonDualMessageSecurityOverHttpElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.NonDualMessageSecurityOverHttpElement</serializedValue>
</property>
<property path="/security/message/clientCredentialType" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.MessageCredentialType, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Windows</serializedValue>
</property>
<property path="/security/message/negotiateServiceCredential" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>True</serializedValue>
</property>
<property path="/security/message/algorithmSuite" isComplexType="false" isExplicitlyDefined="false" clrType="System.ServiceModel.Security.SecurityAlgorithmSuite, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>Default</serializedValue>
</property>
<property path="/security/message/establishSecurityContext" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>True</serializedValue>
</property>
</properties>
</bindingConfiguration>
</bindingConfigurations>
<endpoints>
<endpoint name="WSHttpBinding_ISizerService" contract="SizerService.ISizerService" bindingType="wsHttpBinding" address="http://localhost:8001/SizerService/" bindingConfiguration="WSHttpBinding_ISizerService">
<properties>
<property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>http://localhost:8001/SizerService/</serializedValue>
</property>
<property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>wsHttpBinding</serializedValue>
</property>
<property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WSHttpBinding_ISizerService</serializedValue>
</property>
<property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>SizerService.ISizerService</serializedValue>
</property>
<property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
</property>
<property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>&lt;Header /&gt;</serializedValue>
</property>
<property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
</property>
<property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
</property>
<property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
</property>
<property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
</property>
<property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
</property>
<property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
</property>
<property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
</property>
<property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>My</serializedValue>
</property>
<property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>LocalMachine</serializedValue>
</property>
<property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>FindBySubjectDistinguishedName</serializedValue>
</property>
<property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>False</serializedValue>
</property>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>WSHttpBinding_ISizerService</serializedValue>
</property>
<property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
</properties>
</endpoint>
<endpoint name="NetNamedPipeBinding_ISizerService" contract="SizerService.ISizerService" bindingType="netNamedPipeBinding" address="net.pipe://localhost/Compac/8001/SizerService" bindingConfiguration="NetNamedPipeBinding_ISizerService">
<properties>
<property path="/address" isComplexType="false" isExplicitlyDefined="true" clrType="System.Uri, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>net.pipe://localhost/Compac/8001/SizerService</serializedValue>
</property>
<property path="/behaviorConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/binding" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>netNamedPipeBinding</serializedValue>
</property>
<property path="/bindingConfiguration" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>NetNamedPipeBinding_ISizerService</serializedValue>
</property>
<property path="/contract" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>SizerService.ISizerService</serializedValue>
</property>
<property path="/headers" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.AddressHeaderCollectionElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.AddressHeaderCollectionElement</serializedValue>
</property>
<property path="/headers/headers" isComplexType="false" isExplicitlyDefined="true" clrType="System.ServiceModel.Channels.AddressHeaderCollection, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>&lt;Header /&gt;</serializedValue>
</property>
<property path="/identity" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.IdentityElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.IdentityElement</serializedValue>
</property>
<property path="/identity/userPrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.UserPrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.UserPrincipalNameElement</serializedValue>
</property>
<property path="/identity/userPrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/servicePrincipalName" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.ServicePrincipalNameElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.ServicePrincipalNameElement</serializedValue>
</property>
<property path="/identity/servicePrincipalName/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/dns" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.DnsElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.DnsElement</serializedValue>
</property>
<property path="/identity/dns/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/rsa" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.RsaElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.RsaElement</serializedValue>
</property>
<property path="/identity/rsa/value" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificate" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateElement</serializedValue>
</property>
<property path="/identity/certificate/encodedValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference" isComplexType="true" isExplicitlyDefined="false" clrType="System.ServiceModel.Configuration.CertificateReferenceElement, System.ServiceModel, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>System.ServiceModel.Configuration.CertificateReferenceElement</serializedValue>
</property>
<property path="/identity/certificateReference/storeName" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreName, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>My</serializedValue>
</property>
<property path="/identity/certificateReference/storeLocation" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.StoreLocation, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>LocalMachine</serializedValue>
</property>
<property path="/identity/certificateReference/x509FindType" isComplexType="false" isExplicitlyDefined="false" clrType="System.Security.Cryptography.X509Certificates.X509FindType, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>FindBySubjectDistinguishedName</serializedValue>
</property>
<property path="/identity/certificateReference/findValue" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/identity/certificateReference/isChainIncluded" isComplexType="false" isExplicitlyDefined="false" clrType="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>False</serializedValue>
</property>
<property path="/name" isComplexType="false" isExplicitlyDefined="true" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue>NetNamedPipeBinding_ISizerService</serializedValue>
</property>
<property path="/kind" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
<property path="/endpointConfiguration" isComplexType="false" isExplicitlyDefined="false" clrType="System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<serializedValue />
</property>
</properties>
</endpoint>
</endpoints>
</SavedWcfConfigurationInformation>
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://schemas.microsoft.com/2003/10/Serialization/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://schemas.microsoft.com/2003/10/Serialization/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="anyType" nillable="true" type="xs:anyType" />
<xs:element name="anyURI" nillable="true" type="xs:anyURI" />
<xs:element name="base64Binary" nillable="true" type="xs:base64Binary" />
<xs:element name="boolean" nillable="true" type="xs:boolean" />
<xs:element name="byte" nillable="true" type="xs:byte" />
<xs:element name="dateTime" nillable="true" type="xs:dateTime" />
<xs:element name="decimal" nillable="true" type="xs:decimal" />
<xs:element name="double" nillable="true" type="xs:double" />
<xs:element name="float" nillable="true" type="xs:float" />
<xs:element name="int" nillable="true" type="xs:int" />
<xs:element name="long" nillable="true" type="xs:long" />
<xs:element name="QName" nillable="true" type="xs:QName" />
<xs:element name="short" nillable="true" type="xs:short" />
<xs:element name="string" nillable="true" type="xs:string" />
<xs:element name="unsignedByte" nillable="true" type="xs:unsignedByte" />
<xs:element name="unsignedInt" nillable="true" type="xs:unsignedInt" />
<xs:element name="unsignedLong" nillable="true" type="xs:unsignedLong" />
<xs:element name="unsignedShort" nillable="true" type="xs:unsignedShort" />
<xs:element name="char" nillable="true" type="tns:char" />
<xs:simpleType name="char">
<xs:restriction base="xs:int" />
</xs:simpleType>
<xs:element name="duration" nillable="true" type="tns:duration" />
<xs:simpleType name="duration">
<xs:restriction base="xs:duration">
<xs:pattern value="\-?P(\d*D)?(T(\d*H)?(\d*M)?(\d*(\.\d*)?S)?)?" />
<xs:minInclusive value="-P10675199DT2H48M5.4775808S" />
<xs:maxInclusive value="P10675199DT2H48M5.4775807S" />
</xs:restriction>
</xs:simpleType>
<xs:element name="guid" nillable="true" type="tns:guid" />
<xs:simpleType name="guid">
<xs:restriction base="xs:string">
<xs:pattern value="[\da-fA-F]{8}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{4}-[\da-fA-F]{12}" />
</xs:restriction>
</xs:simpleType>
<xs:attribute name="FactoryType" type="xs:QName" />
<xs:attribute name="Id" type="xs:ID" />
<xs:attribute name="Ref" type="xs:IDREF" />
</xs:schema>
+238
View File
@@ -0,0 +1,238 @@
using EgwProxy.Icoel.Compac;
using EgwProxy.Icoel.SizerService;
using System;
using System.Collections.Generic;
namespace EgwProxy.Icoel
{
/// <summary>
/// Connettore proxy x servizi rest di Icoel
/// </summary>
public class Connector
{
#region Public Constructors
/// <summary>
/// Inizializazzione classe con salvataggio ip/porta del webservice del sizer
/// </summary>
/// <param name="ipAddress">Indirizzo IP del sizer</param>
/// <param name="tcpPort">POrta del sizer (default 8001)</param>
public Connector(string ipAddress, string tcpPort)
{
this.ipAddress = ipAddress;
this.tcpPort = tcpPort;
}
#endregion Public Constructors
#region Public Methods
/// <summary>
/// Verifica il fornitore e se non ci fosse crea
/// </summary>
/// <param name="GrowerData">Struttura GrowerInfo del fornitore</param>
public void CheckGrower(GrowerInfo GrowerData)
{
using (var Client = new ComClient(ipAddress, tcpPort))
{
Client.CheckGrower(GrowerData.GrowerCode, GrowerData.GrowerName);
}
}
/// <summary>
/// Recupera array varie velocità rilevate
/// </summary>
/// <returns>Dictionary<string, double> delle velocità rilevate sul sizer</returns>
public Dictionary<string, double> GetPerfMeters()
{
Dictionary<string, double> answ = new Dictionary<string, double>();
using (var Client = new ComClient(ipAddress, tcpPort))
{
answ = Client.GetPerfMeters();
}
return answ;
}
/// <summary>
/// Recupera array dei batch sulle 2 linee: ID batch + layout + varietà x ogni linea...
/// </summary>
/// <returns>Dictionary<string, string> dei dati correnti x linea (batch, layout, variety) rilevate sul sizer</returns>
public Dictionary<string, string> GetCurrBatchData()
{
Dictionary<string, string> answ = new Dictionary<string, string>();
var batchData = GetCurrentBatch();
foreach (var item in batchData)
{
answ.Add($"L{item.Key}_Batch", $"{item.Value.Id} | {item.Value.Name} | {item.Value.StartTime}");
answ.Add($"L{item.Key}_Grower", $"{item.Value.GrowerCode}");
answ.Add($"L{item.Key}_Layout", $"{item.Value.LayoutId} | {item.Value.LayoutName}");
answ.Add($"L{item.Key}_Variety", $"{item.Value.VarietyId} | {item.Value.VarietyName}");
}
return answ;
}
/// <summary>
/// Invia un lotto in coda produzione sul sizer
/// </summary>
/// <param name="newBatch">Batch da accodare</param>
public void EnqueueBatch(GrowerInfo GrowerData, Guid varGuid, Guid layGuid)
{
using (var Client = new ComClient(ipAddress, tcpPort))
{
// va bene anche se vuoto! come lo torna ora...
string sizingProfile = Client.GetCurrentBatch().SizingProfileName;
//var rawData = Client.GetCurrentBatchByLane(1);
//var rawData2 = Client.GetCurrentBatchByLane(2);
Batch newBatch = CreateBatch(GrowerData, varGuid, layGuid, sizingProfile);
Client.MettiLottoInCoda(newBatch);
}
}
/// <summary>
/// Recupera elenco dei Batch correnti
/// </summary>
/// <returns>Dizionario dei batch sulle due linee (1=SX, 2=DX)</returns>
public Dictionary<int, Batch> GetCurrentBatch()
{
Dictionary<int, Batch> outVal = new Dictionary<int, Batch>();
using (var Client = new ComClient(ipAddress, tcpPort))
{
//Client.GetCurrentBatch();
for (int i = 1; i <= 2; i++)
{
var batch = Client.GetCurrentBatchByLane(i);
outVal.Add(i, batch);
}
}
return outVal;
}
/// <summary>
/// Restituisce un dictionary di varietà e relativi layout
/// </summary>
/// <returns>Dizionario: key=Variety, value=Layout[] associati</returns>
public Dictionary<Variety, Layout[]> GetLayoutAndVariety()
{
Dictionary<Variety, Layout[]> outVal = new Dictionary<Variety, Layout[]>();
using (var Client = new ComClient(ipAddress, tcpPort))
{
Variety[] varietiesList = Client.GetActiveVarieties();
foreach (var item in varietiesList)
{
// recupero layout della varietà
var layoutList = Client.GetLayouts(item.Id);
outVal.Add(item, layoutList);
}
}
// restituisco dati
return outVal;
}
/// <summary>
/// Restituisce un array di Layout validi data Guid della Variety
/// </summary>
/// <param name="varietiesList"></param>
/// <returns>Array di Layout della varietà dato suo Guid</returns>
public Layout[] GetLayoutForVariety(Guid varGuid)
{
Layout[] outVal = new Layout[1];
using (var Client = new ComClient(ipAddress, tcpPort))
{
// recupero layout della varietà
var layoutList = Client.GetLayouts(varGuid);
outVal = layoutList;
}
// restituisco dati
return outVal;
}
/// <summary>
/// Restituisce un dictionary di layout validi x un array di varietà fornito
/// </summary>
/// <param name="varietiesList">Array varietà di cui ottenere i layout</param>
/// <returns>Dizionario: key=Variety, value=Layout[] associati</returns>
public Dictionary<Variety, Layout[]> GetLayoutForVarietyList(Variety[] varietiesList)
{
Dictionary<Variety, Layout[]> outVal = new Dictionary<Variety, Layout[]>();
using (var Client = new ComClient(ipAddress, tcpPort))
{
foreach (var item in varietiesList)
{
// recupero layout della varietà
var layoutList = Client.GetLayouts(item.Id);
outVal.Add(item, layoutList);
}
}
// restituisco dati
return outVal;
}
/// <summary>
/// Restituisce elenco delle Variety
/// </summary>
/// <param name="onlyActive">Solo attive (true) o tutte (false)</param>
/// <returns>Elenco delel Variety trovate</returns>
public Variety[] GetVarietyList(bool onlyActive = true)
{
Variety[] varietiesList;
using (var cClient = new ComClient(ipAddress, tcpPort))
{
if (onlyActive)
{
varietiesList = cClient.GetActiveVarieties();
}
else
{
varietiesList = cClient.GetAllVarieties();
}
}
return varietiesList;
}
#endregion Public Methods
#region Private Properties
/// <summary>
/// Inidirizzo IP
/// </summary>
private string ipAddress { get; set; } = "127.0.0.1";
/// <summary>
/// Porta del webservice (SOAP)
/// </summary>
private string tcpPort { get; set; } = "8001";
#endregion Private Properties
#region Private Methods
/// <summary>
/// Genera un obj batch dati i parametri necessari
/// </summary>
/// <param name="GrowerData"></param>
/// <param name="VarietyId"></param>
/// <param name="LayoutId"></param>
/// <param name="SizingProfileName"></param>
/// <returns>Oggetto Batch creato</returns>
private Batch CreateBatch(GrowerInfo GrowerData, Guid VarietyId, Guid LayoutId, string SizingProfileName)
{
var batch = new Batch();
batch.AvoidLayoutChange = true;
batch.AvoidSavingOldLayouts = true;
batch.GrowerCode = GrowerData.GrowerCode;
batch.Comments = new string[GrowerData.Comments.Count];
batch.Comments = GrowerData.Comments.ToArray();
batch.VarietyId = VarietyId;
batch.LayoutId = LayoutId;
batch.SizingProfileName = SizingProfileName;
return batch;
}
#endregion Private Methods
}
}

Some files were not shown because too many files have changed in this diff Show More