using ITnet2.Server.BusinessLogic.Core.Documents;
using ITnet2.Server.BusinessLogic.Core.Documents.DataLayer;
using ITnet2.Server.Data;
using ITnet2.Server.Runtime.Methods;
using System.Collections.Generic;
using ITnet2.Server.Session;
using ITnet2.Common.Tools;
using System.Xml.Serialization;
public class RrtMethodLogic : UserRequestMethodBusinessLogic
private const string KOBJDB = "1";
private const int ORG2 = 1;
private const string kdmt = "TMSAPP";
public override void Call()
private static string importDirectory = @"C:\Users\boev\Downloads\";
private static string importFileName = "Z-0000680748.xml";
public static void ImportXmlFiles()
XmlDocument doc = new XmlDocument();
var file = OSDialogs.OpenFile(new OpenFileOptions
Filter = new DialogFilterCollection("XML") { AllFilesFilter = false },
Title = "Файл шаблону імпорту даних"
var tempServerDir = Path.Combine(Settings.Environment.VfpServerDir, Text.GetRandomString() + ".xml");
var tempklient = file.ClientPath;
FileManager.LoadFile(tempklient, tempServerDir);
var mappedModel = MapXmlToModel(tempServerDir);
var errorStringFull = new StringBuilder();
errorStringFull.AppendLine(string.Format("Error: {0}", ex.Message));
errorStringFull.AppendLine(string.Format("Where?: {0}", ex.StackTrace.ToString()));
if (ex.InnerException != null)
errorStringFull.AppendLine(string.Format("Detailed: {0}", ex.InnerException.Message));
errorStringFull.AppendLine(string.Format("Detailed stack trace: {0}", ex.InnerException.StackTrace));
InfoManager.MessageBox("Error msg {0}", errorStringFull);
public static OrderHeadUpload MapXmlToModel(string tempServerDir)
XmlDocument doc = new XmlDocument();
XmlSerializer deserializer = new XmlSerializer(typeof(OrderHeadUpload));
TextReader textReader = new StreamReader(tempServerDir);
var mappedResult = (OrderHeadUpload)deserializer.Deserialize(textReader);
InfoManager.MessageBox("MapXmlToModel Номер документа заявка в 1С-CRM:{0}", mappedResult.Number_1C);
throw new Exception("Issues with mapping xml to model");
private static int FindDepartTransit(int arg)
var mappedModel = new OrderHeadUpload();
return SqlClient.Main.CreateCommand("select OKPO from ORG where OLDORG = @id", new SqlParam("id", mappedModel.Client_id)).ExecScalar<int>();
public void CreateDocs(OrderHeadUpload item)
var headerRepository = new HeadersRepository();
var mappedModel = new OrderHeadUpload();
Date = mappedModel.Order_date,
SelfSideContractorCode=ORG2
InfoManager.MessageBox("CreateDocs doc.Date:{0}", doc.Date);
InfoManager.MessageBox("CreateDocs doc.ObjectCode:{0}", doc.ObjectCode);
doc.Number = mappedModel.Number_1C;
doc.AdditionalNumber = mappedModel.Number_confirm_1C;
doc.Comment = mappedModel.Doc_name;
doc.Comment2 = mappedModel.Comment;
doc.ExtractDate = mappedModel.Upload_date;
doc.DepartRecipient = FindDepartTransit(mappedModel.Transit_wrh_id);
var idParamUndoc = new SqlParam("id", string.Format("K_{0}", mappedModel.Dog_id));
headerRepository.Add(doc);
InfoManager.MessageBox("CreateDocs doc.DocumentConfig.Code:{0}", doc.DocumentConfig.Code);
headerRepository.Add(doc);
InfoManager.MessageBox("CreateDocs doc.Date:{0}", doc.Date);
InfoManager.MessageBox("CreateDocs doc.ObjectCode:{0}", doc.ObjectCode);
#region Модель сущности считываемой с XML
[XmlRoot(ElementName = "OrderHeadUpload", Namespace = "http://www.sample-package.org")]
public class OrderHeadUpload
[XmlElement(ElementName = "Client_id", Namespace = "http://www.sample-package.org")]
public string Client_id { get; set; }
[XmlElement(ElementName = "Comment", Namespace = "http://www.sample-package.org")]
public string Comment { get; set; }
[XmlElement(ElementName = "Delivery_date", Namespace = "http://www.sample-package.org")]
public string Delivery_date { get; set; }
[XmlElement(ElementName = "Delivery_type", Namespace = "http://www.sample-package.org")]
public string Delivery_type { get; set; }
[XmlElement(ElementName = "Doc_name", Namespace = "http://www.sample-package.org")]
public string Doc_name { get; set; }
[XmlElement(ElementName = "Dog_id", Namespace = "http://www.sample-package.org")]
public int Dog_id { get; set; }
[XmlElement(ElementName = "Number_1C", Namespace = "http://www.sample-package.org")]
public string Number_1C { get; set; }
[XmlElement(ElementName = "Number_confirm_1C", Namespace = "http://www.sample-package.org")]
public string Number_confirm_1C { get; set; }
[XmlElement(ElementName = "Number_order_client", Namespace = "http://www.sample-package.org")]
public int Number_order_client { get; set; }
[XmlElement(ElementName = "Order_date", Namespace = "http://www.sample-package.org")]
public DateTime Order_date { get; set; }
[XmlElement(ElementName = "Point_GLN", Namespace = "http://www.sample-package.org")]
public string Point_GLN { get; set; }
[XmlElement(ElementName = "Point_id", Namespace = "http://www.sample-package.org")]
public int Point_id { get; set; }
[XmlElement(ElementName = "Point_no", Namespace = "http://www.sample-package.org")]
public string Point_no { get; set; }
[XmlElement(ElementName = "Positions", Namespace = "http://www.sample-package.org")]
public List<Positions> Positions { get; set; }
[XmlElement(ElementName = "Route_id", Namespace = "http://www.sample-package.org")]
public int Route_id { get; set; }
[XmlElement(ElementName = "Shipment_date", Namespace = "http://www.sample-package.org")]
public DateTime Shipment_date { get; set; }
[XmlElement(ElementName = "Transit_wrh_id", Namespace = "http://www.sample-package.org")]
public int Transit_wrh_id { get; set; }
[XmlElement(ElementName = "Upload_date", Namespace = "http://www.sample-package.org")]
public DateTime Upload_date { get; set; }
[XmlElement(ElementName = "Wrh_id", Namespace = "http://www.sample-package.org")]
public int Wrh_id { get; set; }
[XmlAttribute(AttributeName = "xmlns")]
public string Xmlns { get; set; }
[XmlAttribute(AttributeName = "xs", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Xs { get; set; }
[XmlAttribute(AttributeName = "xsi", Namespace = "http://www.w3.org/2000/xmlns/")]
public string Xsi { get; set; }
[XmlRoot(ElementName = "Positions", Namespace = "http://www.sample-package.org")]
[XmlElement(ElementName = "Barcode_id", Namespace = "http://www.sample-package.org")]
public string Barcode_id { get; set; }
[XmlElement(ElementName = "Count", Namespace = "http://www.sample-package.org")]
public string Count { get; set; }
[XmlElement(ElementName = "Count_pack", Namespace = "http://www.sample-package.org")]
public string Count_pack { get; set; }
[XmlElement(ElementName = "Count_pce", Namespace = "http://www.sample-package.org")]
public string Count_pce { get; set; }
[XmlElement(ElementName = "Number_in_order", Namespace = "http://www.sample-package.org")]
public string Number_in_order { get; set; }
[XmlElement(ElementName = "Product_art", Namespace = "http://www.sample-package.org")]
public string Product_art { get; set; }
[XmlElement(ElementName = "Product_date", Namespace = "http://www.sample-package.org")]
public string Product_date { get; set; }
[XmlElement(ElementName = "Product_id", Namespace = "http://www.sample-package.org")]
public string Product_id { get; set; }
[XmlElement(ElementName = "Tare_id", Namespace = "http://www.sample-package.org")]
public string Tare_id { get; set; }
[XmlElement(ElementName = "Tare_type", Namespace = "http://www.sample-package.org")]
public string Tare_type { get; set; }