using DocuWareImport.Models;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Configuration;
namespace DocuWareImportFromCSV
static void Main(string[] args)
var inputFilename = @ConfigurationManager.AppSettings["inputFilename"];
var outputDirectory = @ConfigurationManager.AppSettings["outputDirectory"];
string[] csvFile = File.ReadAllLines(inputFilename);
foreach (string sourceLines in csvFile)
Console.WriteLine(sourceLines);
string[] sourceFields = sourceLines.Split(delimiter);
foreach (var sourceField in sourceFields)
var filecabinet = ConfigurationManager.AppSettings["fileCabinet"] as String;
var lastName = Convert.ToString(sourceFields[0]);
var surName = Convert.ToString(sourceFields[1]);
var birthday = Convert.ToString(sourceFields[2]);
var yearsInAction = Convert.ToString(sourceFields[3]);
var eMail = Convert.ToString(sourceFields[4]);
var salary = Convert.ToString(sourceFields[5]);
var docNumber = Convert.ToString(sourceFields[6]);
var docFilename = Convert.ToString(sourceFields[7]);
var clientID = Convert.ToString(sourceFields[8]);
var area = Convert.ToString(sourceFields[9]);
var directory = Convert.ToString(sourceFields[10]);
var register = Convert.ToString(sourceFields[11]);
Console.WriteLine(lastName, surName, birthday, yearsInAction, eMail, salary, docNumber, docFilename, clientID, area, directory, register);
WriteXml(outputDirectory, lastName, surName, birthday, yearsInAction, eMail, salary, docNumber, docFilename, clientID, area, directory, register);
private static void WriteXml(string outputDirectory, string lastName, string surName, string birthday, string yearsInAction, string eMail, string salary, string docNumber, string docFilename, string clientID, string area, string directory, string register)
var controlStatement = new ControlStatements();
controlStatement.Page = new Page();
controlStatement.Page.FileCabinet = new FileCabinet();
controlStatement.Page.Fields = new List<Field>();
controlStatement.Page.SelectConfiguration = new SelectConfiguration();
controlStatement.Page.FileCabinet.Name = ConfigurationManager.AppSettings["fileCabinet"];
controlStatement.Page.SelectConfiguration.Name = ConfigurationManager.AppSettings["fileCabinet"];
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
DbName = "DOCUMENT_NUMBER",
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
controlStatement.Page.Fields.Add(field);
string docFilenameWithoutExtension = Path.GetFileNameWithoutExtension(docFilename);
string outputFilename = Path.Combine(outputDirectory, $"{docFilenameWithoutExtension}.dwcontrol");
if (File.Exists(outputFilename))
File.Delete(outputFilename);
using (var fs = new FileStream(outputFilename, FileMode.CreateNew, FileAccess.ReadWrite))
using (var xmlWriter = XmlWriter.Create(fs, new XmlWriterSettings() { OmitXmlDeclaration = true, Indent = true }))
var xmlSerializer = new XmlSerializer(typeof(ControlStatements));
xmlSerializer.Serialize(xmlWriter, controlStatement);