Contracts hinzugefügt

This commit is contained in:
Husky
2021-08-15 12:04:09 +02:00
parent 5c9770bf45
commit 538ec3d00b
36 changed files with 201 additions and 97 deletions

10
.gitignore vendored
View File

@@ -1,11 +1,7 @@
/XMLParser/bin/* */bin/*
/XMLParser/obj/* */obj/*
/XMLParserTest/bin/Debug/*
/XMLParserTest/obj/Debug/*
/XMLParserTest/obj/*
/XMLProgramm/bin/*
/XMLProgramm/obj/*
data.csv data.csv
.vs/XMLParser/DesignTimeBuild/.dtbcache.v2 .vs/XMLParser/DesignTimeBuild/.dtbcache.v2
.vs/XMLParser/v16/.suo .vs/XMLParser/v16/.suo
.vs/XMLParser/v16/TestStore/* .vs/XMLParser/v16/TestStore/*
*/obj/*

View File

@@ -0,0 +1,10 @@
using System.Collections.Generic;
using XMLParser.Model;
namespace XMLParser.Contract
{
public interface ICSVWriter
{
void WriteEntry(Dictionary<ECalculatedResult, decimal> calculated, List<KanalObjekt> inspektionenAmTag);
}
}

View File

@@ -0,0 +1,9 @@
using System;
namespace XMLParser.Contract
{
public interface ICalculate
{
}
}

View File

@@ -0,0 +1,10 @@
using System.Collections.Generic;
using XMLParser.Model;
namespace XMLParser.Contract
{
public interface IUmsatzCalculator
{
void Calculate(ICSVWriter csvWriter,List<KanalObjekt> objekte);
}
}

View File

@@ -0,0 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="..\XMLParser.Model\XMLParser.Model.csproj" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
</Project>

View File

@@ -4,12 +4,13 @@ using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using System.Text; using System.Text;
using XMLParser; using XMLParser.Contract;
using XMLParser.Model;
namespace XMLProgramm namespace XMLProgramm
{ {
[DebuggerDisplay("{" + nameof(GetDebuggerDisplay) + "(),nq}")] [DebuggerDisplay("{" + nameof(GetDebuggerDisplay) + "(),nq}")]
class CSVWriter public class CSVWriter : ICSVWriter
{ {
FileStream handle = null; FileStream handle = null;
void writeToFile(string content) void writeToFile(string content)
@@ -31,7 +32,13 @@ namespace XMLProgramm
handle.Close(); handle.Close();
} }
internal void WriteDay(Dictionary<ECalculatedResult, decimal> calculated, List<KanalObjekt> inspektionenAmTag) private string GetDebuggerDisplay()
{
return ToString();
}
public void WriteEntry(Dictionary<ECalculatedResult, decimal> calculated, List<KanalObjekt> inspektionenAmTag)
{ {
int anzahlStraßenablaufe = (int)calculated[ECalculatedResult.STRASSENABLAUFANZAHL]; int anzahlStraßenablaufe = (int)calculated[ECalculatedResult.STRASSENABLAUFANZAHL];
int sonstigeLeitungen = (int)calculated[ECalculatedResult.SONSTIGEANZAHL]; int sonstigeLeitungen = (int)calculated[ECalculatedResult.SONSTIGEANZAHL];
@@ -45,9 +52,5 @@ namespace XMLProgramm
writeToFile(entry); writeToFile(entry);
} }
private string GetDebuggerDisplay()
{
return ToString();
}
} }
} }

View File

@@ -2,8 +2,9 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.Linq; using System.Linq;
using XMLParser.Model;
namespace XMLParser namespace XMLParser.Functions
{ {
public static class Calculate public static class Calculate
{ {

View File

@@ -0,0 +1,16 @@
using System.Collections.Generic;
using XMLParser.Contract;
using XMLParser.Model;
namespace XMLParser.Functions.UmsatzCalculator
{
public class StrassenUmsatz : IUmsatzCalculator
{
public void Calculate(ICSVWriter csvWriter, List<KanalObjekt> objekte)
{
XMLParse ser = new XMLParse("2021-07-29_KR_H_L_Oldenburg_Eichenstraße.xml");
objekte.AddRange(ser.KanalObjekte);
Dictionary<ECalculatedResult,decimal> d = XMLParser.Functions.Calculate.CalculateStreet(objekte);
}
}
}

View File

@@ -0,0 +1,38 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using XMLParser.Contract;
using XMLParser.Model;
namespace XMLParser.Functions.UmsatzCalculator
{
public class TagesUmsatz : IUmsatzCalculator
{
public void Calculate(ICSVWriter csvWriter, List<KanalObjekt> objekte)
{
DirectoryInfo info = new DirectoryInfo("./");
FileInfo[] daten = info.GetFiles("*.xml");
foreach(FileInfo aktuell in daten) {
XMLParse ser = new XMLParse(aktuell.FullName);
objekte.AddRange(ser.KanalObjekte);
}
IEnumerable<string> datums = objekte.OrderBy(d => d.Inspektionsdaten.OptischeInspektion.Inspektionstime).Select(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum).Distinct();
decimal gesamt = 0.0m;
//Dictionary<string,decimal> s = CalculateDay(objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals("05.08.2021")));
foreach(string datum in datums) {
List<KanalObjekt> InspektionenAmTag = objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(datum));
Dictionary<ECalculatedResult,decimal> s = XMLParser.Functions.Calculate.CalculateDay(InspektionenAmTag);
csvWriter.WriteEntry(s,InspektionenAmTag);
Console.WriteLine("Umsatz am : "+datum + " " + s[ECalculatedResult.GESAMTUMSATZ]);
gesamt +=s[ECalculatedResult.GESAMTUMSATZ];
//if(datum.Equals("05.08.2021")) Debugger.Break();
}
int anzahlTage = datums.Count();
decimal Durchschnitt = gesamt / anzahlTage;
int prognosedays = 63;
Console.WriteLine(string.Format("Tage : {0} \nGesamt umsatz: {1}\nDurchschnitt : {2}\nPrognose für {3} tage {4}",anzahlTage,gesamt,Durchschnitt,prognosedays,prognosedays*Durchschnitt));
}
}
}

View File

@@ -6,6 +6,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Xml; using System.Xml;
using System.IO; using System.IO;
using XMLParser.Model;
namespace XMLParser namespace XMLParser
{ {

View File

@@ -0,0 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="..\XMLParser.Model\XMLParser.Model.csproj" />
<ProjectReference Include="..\XMLParser.Contract\XMLParser.Contract.csproj" />
</ItemGroup>
<PropertyGroup>
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
</Project>

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class AbwassertechnischeAnlage public class AbwassertechnischeAnlage
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class Anschlussdaten public class Anschlussdaten
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class Anschlusspunkt public class Anschlusspunkt
{ {

View File

@@ -4,7 +4,7 @@ using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
namespace XMLParser namespace XMLParser.Model
{ {
public enum EAnlagetyp public enum EAnlagetyp
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class Geometrie public class Geometrie
{ {

View File

@@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace XMLParser namespace XMLParser.Model
{ {
public class Geometriedaten public class Geometriedaten
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public sealed class InspizierteAbwassertechnischeAnlage public sealed class InspizierteAbwassertechnischeAnlage
{ {

View File

@@ -1,10 +1,10 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class KanalObjekt public class KanalObjekt
{ {
public string XmlFileName {get;set;} public string XmlFileName {get;set;}
public AbwassertechnischeAnlage Stammdaten { get; internal set; } public AbwassertechnischeAnlage Stammdaten { get; set; }
public InspizierteAbwassertechnischeAnlage Inspektionsdaten { get; internal set; } public InspizierteAbwassertechnischeAnlage Inspektionsdaten { get; set; }
public override string ToString() public override string ToString()
{ {
return string.Format("{0} ({1})",Stammdaten.Objektbezeichnung,Inspektionsdaten.OptischeInspektion.Rohrleitung.Grunddaten.Profilbreite); return string.Format("{0} ({1})",Stammdaten.Objektbezeichnung,Inspektionsdaten.OptischeInspektion.Rohrleitung.Grunddaten.Profilbreite);

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class Kante public class Kante
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class Knoten public class Knoten
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class Lage public class Lage
{ {

View File

@@ -1,6 +1,6 @@
using System; using System;
namespace XMLParser namespace XMLParser.Model
{ {
public class OptischeInspektion public class OptischeInspektion
{ {

View File

@@ -1,5 +1,5 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace XMLParser namespace XMLParser.Model
{ {
public class PolyKante public class PolyKante
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class Profil public class Profil
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class RGrunddaten public class RGrunddaten
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public struct Quantifizierung public struct Quantifizierung
{ {

View File

@@ -1,6 +1,6 @@
using System.Collections.Generic; using System.Collections.Generic;
namespace XMLParser namespace XMLParser.Model
{ {
public class Rohrleitung public class Rohrleitung
{ {

View File

@@ -1,4 +1,4 @@
namespace XMLParser namespace XMLParser.Model
{ {
public class Schacht public class Schacht
{ {

View File

@@ -3,12 +3,14 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16 # Visual Studio Version 16
VisualStudioVersion = 16.6.30114.105 VisualStudioVersion = 16.6.30114.105
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLParser", "XMLParser\XMLParser.csproj", "{55DEEE0A-8AED-403B-B2C7-F8EEAA45ED1F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLParserTest", "XMLParserTest\XMLParserTest.csproj", "{089D18AE-F5F0-4371-BC0A-AEF00FBBFB55}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLParserTest", "XMLParserTest\XMLParserTest.csproj", "{089D18AE-F5F0-4371-BC0A-AEF00FBBFB55}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLProgramm", "XMLProgramm\XMLProgramm.csproj", "{641D9B83-D358-4015-9873-E5787DFC70D1}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLProgramm", "XMLProgramm\XMLProgramm.csproj", "{641D9B83-D358-4015-9873-E5787DFC70D1}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLParser.Contract", "XMLParser.Contract\XMLParser.Contract.csproj", "{E32C7894-5512-46A4-A868-49A834291056}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLParser.Model", "XMLParser.Model\XMLParser.Model.csproj", "{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU Debug|Any CPU = Debug|Any CPU
@@ -58,5 +60,29 @@ Global
{641D9B83-D358-4015-9873-E5787DFC70D1}.Release|x64.Build.0 = Release|Any CPU {641D9B83-D358-4015-9873-E5787DFC70D1}.Release|x64.Build.0 = Release|Any CPU
{641D9B83-D358-4015-9873-E5787DFC70D1}.Release|x86.ActiveCfg = Release|Any CPU {641D9B83-D358-4015-9873-E5787DFC70D1}.Release|x86.ActiveCfg = Release|Any CPU
{641D9B83-D358-4015-9873-E5787DFC70D1}.Release|x86.Build.0 = Release|Any CPU {641D9B83-D358-4015-9873-E5787DFC70D1}.Release|x86.Build.0 = Release|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Debug|Any CPU.Build.0 = Debug|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Debug|x64.ActiveCfg = Debug|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Debug|x64.Build.0 = Debug|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Debug|x86.ActiveCfg = Debug|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Debug|x86.Build.0 = Debug|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Release|Any CPU.ActiveCfg = Release|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Release|Any CPU.Build.0 = Release|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Release|x64.ActiveCfg = Release|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Release|x64.Build.0 = Release|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Release|x86.ActiveCfg = Release|Any CPU
{E32C7894-5512-46A4-A868-49A834291056}.Release|x86.Build.0 = Release|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Debug|x64.ActiveCfg = Debug|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Debug|x64.Build.0 = Debug|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Debug|x86.ActiveCfg = Debug|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Debug|x86.Build.0 = Debug|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Release|Any CPU.Build.0 = Release|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Release|x64.ActiveCfg = Release|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Release|x64.Build.0 = Release|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Release|x86.ActiveCfg = Release|Any CPU
{4EC6DA2E-EF68-4E9E-8471-B0B59BBD96AD}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
EndGlobal EndGlobal

View File

@@ -2,7 +2,7 @@ using System.Diagnostics;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
using XMLParser; //using XMLParser;
namespace XMLParserTest namespace XMLParserTest
{ {
@@ -12,7 +12,7 @@ namespace XMLParserTest
[TestMethod] [TestMethod]
public void TestCalculate() public void TestCalculate()
{ {
/*
List<KanalObjekt> kanalObjekts = new XMLParse("input.xml").KanalObjekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals("20.07.2021")); List<KanalObjekt> kanalObjekts = new XMLParse("input.xml").KanalObjekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals("20.07.2021"));
Assert.AreEqual(35,kanalObjekts.Count); Assert.AreEqual(35,kanalObjekts.Count);
@@ -22,6 +22,7 @@ namespace XMLParserTest
Assert.AreEqual(102.00m,umsatz[ECalculatedResult.STRASSENABLAUFUMSATZ]); Assert.AreEqual(102.00m,umsatz[ECalculatedResult.STRASSENABLAUFUMSATZ]);
Assert.AreEqual(1305.00m,umsatz[ECalculatedResult.SONSTIGEUMSATZ]); Assert.AreEqual(1305.00m,umsatz[ECalculatedResult.SONSTIGEUMSATZ]);
Assert.AreEqual(27.50m,umsatz[ECalculatedResult.LAENGEZULAGEUMSATZ]); Assert.AreEqual(27.50m,umsatz[ECalculatedResult.LAENGEZULAGEUMSATZ]);
*/
} }
} }
} }

View File

@@ -11,12 +11,13 @@ namespace XMLParserTest
[TestMethod] [TestMethod]
public void TestMethod1() public void TestMethod1()
{ {
XMLParser.XMLParse xml = new XMLParser.XMLParse("input.xml"); /*XMLParser.XMLParse xml = new XMLParser.XMLParse("input.xml");
IEnumerable<string> datumsDistinct = xml.KanalObjekte.Select(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum).Distinct(); IEnumerable<string> datumsDistinct = xml.KanalObjekte.Select(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum).Distinct();
foreach(string aktuellDatum in datumsDistinct) { foreach(string aktuellDatum in datumsDistinct) {
var m = xml.KanalObjekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(aktuellDatum)); var m = xml.KanalObjekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(aktuellDatum));
Debugger.Break(); Debugger.Break();
} }
*/
} }
} }
} }

View File

@@ -13,8 +13,4 @@
<PackageReference Include="coverlet.collector" Version="1.3.0" /> <PackageReference Include="coverlet.collector" Version="1.3.0" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\XMLParser\XMLParser.csproj" />
</ItemGroup>
</Project> </Project>

View File

@@ -3,7 +3,8 @@ using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
using System.IO; using System.IO;
using System.Linq; using System.Linq;
using XMLParser; using XMLParser.Contract;
using XMLParser.Model;
namespace XMLProgramm namespace XMLProgramm
{ {
@@ -11,46 +12,16 @@ namespace XMLProgramm
{ {
static void Main(string[] args) static void Main(string[] args)
{ {
CSVWriter csvWriter = new CSVWriter();
ICSVWriter csvWriter = new CSVWriter();
//CSVWriter csvWriter = new CSVWriter();
List<KanalObjekt> objekte = new List<KanalObjekt>(); List<KanalObjekt> objekte = new List<KanalObjekt>();
IUmsatzCalculator calculator = new XMLParser.Functions.UmsatzCalculator.TagesUmsatz();
calculator.Calculate(csvWriter,objekte);
StrassenUmsatz(csvWriter,objekte); //StrassenUmsatz(csvWriter,objekte);
//TagesUmsatz(csvWriter,objekte); //TagesUmsatz(csvWriter,objekte);
}
private static void StrassenUmsatz(CSVWriter csvWriter, List<KanalObjekt> objekte)
{
// KS_Oldenburg_Lönsweg.xml
XMLParse ser = new XMLParse("2021-07-29_KR_H_L_Oldenburg_Eichenstraße.xml");
objekte.AddRange(ser.KanalObjekte);
Dictionary<ECalculatedResult,decimal> d = Calculate.CalculateStreet(objekte);
}
static void TagesUmsatz(CSVWriter csvWriter, List<KanalObjekt> objekte)
{
DirectoryInfo info = new DirectoryInfo("./");
FileInfo[] daten = info.GetFiles("*.xml");
foreach(FileInfo aktuell in daten) {
XMLParse ser = new XMLParse(aktuell.FullName);
objekte.AddRange(ser.KanalObjekte);
}
IEnumerable<string> datums = objekte.OrderBy(d => d.Inspektionsdaten.OptischeInspektion.Inspektionstime).Select(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum).Distinct();
decimal gesamt = 0.0m;
//Dictionary<string,decimal> s = CalculateDay(objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals("05.08.2021")));
foreach(string datum in datums) {
List<KanalObjekt> InspektionenAmTag = objekte.FindAll(x => x.Inspektionsdaten.OptischeInspektion.Inspektionsdatum.Equals(datum));
Dictionary<ECalculatedResult,decimal> s = Calculate.CalculateDay(InspektionenAmTag);
csvWriter.WriteDay(s,InspektionenAmTag);
Console.WriteLine("Umsatz am : "+datum + " " + s[ECalculatedResult.GESAMTUMSATZ]);
gesamt +=s[ECalculatedResult.GESAMTUMSATZ];
//if(datum.Equals("05.08.2021")) Debugger.Break();
}
int anzahlTage = datums.Count();
decimal Durchschnitt = gesamt / anzahlTage;
int prognosedays = 63;
Console.WriteLine(string.Format("Tage : {0} \nGesamt umsatz: {1}\nDurchschnitt : {2}\nPrognose für {3} tage {4}",anzahlTage,gesamt,Durchschnitt,prognosedays,prognosedays*Durchschnitt));
} }
} }
} }

View File

@@ -1,15 +1,17 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<ItemGroup>
<ProjectReference Include="..\XMLParser\XMLParser.csproj" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Content Update="input.xml"> <Content Update="input.xml">
<CopyToOutputDirectory>Always</CopyToOutputDirectory> <CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content> </Content>
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\XMLParser.Contract\XMLParser.Contract.csproj" />
<ProjectReference Include="..\XMLParser.Model\XMLParser.Model.csproj" />
<ProjectReference Include="..\XMLParser.Functions\XMLParser.Functions.csproj" />
</ItemGroup>
<PropertyGroup> <PropertyGroup>
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net5.0</TargetFramework>