Skip to content

Commit

Permalink
added Soap Service, added Unittest
Browse files Browse the repository at this point in the history
  • Loading branch information
MasterLindi committed Dec 3, 2012
1 parent fa9b518 commit b21b3b2
Show file tree
Hide file tree
Showing 19 changed files with 588 additions and 19 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,5 @@ obj/
[Bb]in
[Dd]ebug*/
[Rr]elease*/
Ankh.NoLoad
Ankh.NoLoad
log.txt
3 changes: 2 additions & 1 deletion BLInterfaces/IEngineerBL.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ namespace Heli.Scada.BLInterfaces
{
public interface IEngineerBL
{
void createCustomer(CustomerModel customer, InstallationModel installation);
void createCustomer(CustomerModel customer);
void createInstallation(InstallationModel installation);
List<CustomerModel> showMyCustomers(int engineerid);
}
}
2 changes: 2 additions & 0 deletions DBHandler/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,8 @@ static void Main(string[] args)
Console.WriteLine("description: " + stats.description);
}
}*/


Console.ReadLine();
}
}
Expand Down
40 changes: 34 additions & 6 deletions Heli.Scada.BL/EngineerBL.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,47 @@ public EngineerBL(ICustomerRepository<CustomerModel> crepo, IEngineerRepository<
this.irepo = irepo;
}

public void createCustomer(CustomerModel customer, InstallationModel installation)
public void createCustomer(CustomerModel customer)
{
try
{
ValidationResults vresult = Validation.ValidateFromAttributes<CustomerModel>(customer);
vresult.AddAllResults(Validation.ValidateFromAttributes<InstallationModel>(installation));
if (vresult.IsValid)
{
crepo.Add(customer);
crepo.Save();
log.Info("Customer saved.");
}
else
{
log.Warn(vresult.Count + "Validation errors");
StringBuilder sb = null;
foreach (var error in vresult)
{
sb = new StringBuilder();
sb.Append("Error on property ");
sb.Append(error.Target);
sb.Append(": ");
sb.Append(error.Message);
}
log.Warn(sb);
}
}
catch (DalException exp)
{
log.Error("Customer konnte nicht gespeichert werden.");
throw new BLException("Customer konnte nicht gespeichert werden.", exp);
}
}

public void createInstallation(InstallationModel installation)
{
try
{
ValidationResults vresult = Validation.ValidateFromAttributes<InstallationModel>(installation);

if (vresult.IsValid)
{
irepo.Add(installation);
irepo.Save();
log.Info("Installation saved.");
Expand All @@ -60,12 +90,10 @@ public void createCustomer(CustomerModel customer, InstallationModel installatio
}
catch (DalException exp)
{
log.Error("Customer bzw. Installation konnte nicht gespeichert werden.");
throw new BLException("Customer bzw. Installation konnte nicht gespeichert werden.", exp);
log.Error("Installation konnte nicht gespeichert werden.");
throw new BLException("Installation konnte nicht gespeichert werden.", exp);
}
}


public List<CustomerModel> showMyCustomers(int engineerid)
{
List<CustomerModel> clist = null;
Expand Down
4 changes: 3 additions & 1 deletion Heli.Scada.RestService/Heli.Scada.RestService.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,9 @@
<Compile Include="RestService.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="App.config">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
Expand Down
7 changes: 5 additions & 2 deletions Heli.Scada.RestService/RestService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,15 @@
using Microsoft.Practices.Unity;
using Microsoft.Practices.Unity.Configuration;
using System.Configuration;
using log4net;

namespace Heli.Scada.RestService
{

public class RestService : IRestService
{
public static readonly ILog log = LogManager.GetLogger(typeof(RestService));

public void CreateMeasurement(string installationid, MeasuredValue measvalue)
{
try
Expand All @@ -36,8 +39,8 @@ public void CreateMeasurement(string installationid, MeasuredValue measvalue)

catch (Exception exp)
{

throw new Exception("Fehler im Restservice", exp);
log.Error("Measurement via Rest konnte nicht gespeichert werden.");
throw new Exception("Measurement via Rest konnte nicht gespeichert werden.", exp);
}
}
}
Expand Down
106 changes: 106 additions & 0 deletions Heli.Scada.SoapService/App.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</configSections>
<connectionStrings>
<add name="MesswerteEntities1" connectionString="metadata=res://*/DBMesswerte.csdl|res://*/DBMesswerte.ssdl|res://*/DBMesswerte.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MYSNWIN7\SQLEXPRESS;initial catalog=Messwerte;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
</entityFramework>
<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="C:\Users\Christoph\Documents\Visual Studio 2012\Projects\Heli.Scada.dal\log.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
</layout>
</appender>
</log4net>
<appSettings>
<add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
</appSettings>
<system.web>
<compilation debug="true" />
</system.web>
<!-- Bei der Bereitstellung des Dienstbibliothekprojekts muss der Inhalt der Konfigurationsdatei der app.config-Datei
des Hosts hinzugefügt werden. System.Configuration unterstützt keine Konfigurationsdateien für Bibliotheken. -->
<system.serviceModel>
<services>
<service name="Heli.Scada.SoapService.SoapService" behaviorConfiguration="SoapServiceBehaviour">
<endpoint address="" binding="basicHttpBinding" contract="Heli.Scada.SoapService.ISoapService">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<host>
<baseAddresses>
<add baseAddress="http://localhost:8733/SoapService/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name ="SoapServiceBehaviour">

<serviceMetadata httpGetEnabled="true" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
<unity xmlns="http://schemas.microsoft.com/practices/2010/unity">

<alias alias="ICustomerRepository" type="Heli.Scada.DalInterfaces.ICustomerRepository`1, Heli.Scada.DalInterfaces" />
<alias alias="IEngineerRepository" type="Heli.Scada.DalInterfaces.IEngineerRepository`1, Heli.Scada.DalInterfaces" />
<alias alias="IInstallationRepository" type="Heli.Scada.DalInterfaces.IInstallationRepository`1, Heli.Scada.DalInterfaces" />
<alias alias="IMeasurementRepository" type="Heli.Scada.DalInterfaces.IMeasurementRepository`1, Heli.Scada.DalInterfaces" />
<alias alias="IMeasurementTypeRepository" type="Heli.Scada.DalInterfaces.IMeasurementTypeRepository`1, Heli.Scada.DalInterfaces" />

<alias alias="CustomerRepository" type="Heli.Scada.dal.CustomerRepository, Heli.Scada.dal" />
<alias alias="EngineerRepository" type="Heli.Scada.dal.EngineerRepository, Heli.Scada.dal" />
<alias alias="InstallationRepository" type="Heli.Scada.dal.InstallationRepository, Heli.Scada.dal" />
<alias alias="MeasurementRepository" type="Heli.Scada.dal.MeasurementRepository, Heli.Scada.dal" />
<alias alias="MeasurementTypeRepository" type="Heli.Scada.dal.MeasurementTypeRepository, Heli.Scada.dal" />

<alias alias="ICustomerBL" type="Heli.Scada.BLInterfaces.ICustomerBL, Heli.Scada.BLInterfaces" />
<alias alias="IEngineerBL" type="Heli.Scada.BLInterfaces.IEngineerBL, Heli.Scada.BLInterfaces" />
<alias alias="IStatisticService" type="Heli.Scada.BLInterfaces.IStatisticService, Heli.Scada.BLInterfaces" />
<alias alias="IRestServiceBL" type="Heli.Scada.BLInterfaces.IRestServiceBL, Heli.Scada.BLInterfaces" />

<alias alias="CustomerBL" type="Heli.Scada.BL.CustomerBL, Heli.Scada.BL" />
<alias alias="EngineerBL" type="Heli.Scada.BL.EngineerBL, Heli.Scada.BL" />
<alias alias="StatisticService" type="Heli.Scada.BL.StatisticService, Heli.Scada.BL" />
<alias alias="RestServiceBL" type ="Heli.Scada.BL.RestServiceBL, Heli.Scada.BL" />

<alias alias="CustomerModel" type="Heli.Scada.Entities.CustomerModel, Heli.Scada.Entities" />
<alias alias="EngineerModel" type="Heli.Scada.Entities.EngineerModel, Heli.Scada.Entities" />
<alias alias="InstallationModel" type="Heli.Scada.Entities.InstallationModel, Heli.Scada.Entities" />
<alias alias="MeasurementModel" type="Heli.Scada.Entities.MeasurementModel, Heli.Scada.Entities" />
<alias alias="MeasurementTypeModel" type="Heli.Scada.Entities.MeasurementTypeModel, Heli.Scada.Entities" />
<container>

<register type="ICustomerRepository[CustomerModel]" mapTo="CustomerRepository" />
<register type="IEngineerRepository[EngineerModel]" mapTo="EngineerRepository" />
<register type="IInstallationRepository[InstallationModel]" mapTo="InstallationRepository" />
<register type="IMeasurementRepository[MeasurementModel]" mapTo="MeasurementRepository" />
<register type="IMeasurementTypeRepository[MeasurementTypeModel]" mapTo="MeasurementTypeRepository" />

<register type="ICustomerBL" mapTo="CustomerBL" />
<register type="IEngineerBL" mapTo="EngineerBL" />
<register type="IStatisticService" mapTo="StatisticService" />
<register type="IRestServiceBL" mapTo="RestServiceBL" />
</container>
</unity>
</configuration>
108 changes: 108 additions & 0 deletions Heli.Scada.SoapService/Heli.Scada.SoapService.csproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>8.0.50727</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{EF364A25-8D0C-4E4C-997F-E8DA820E9E6D}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Heli.Scada.SoapService</RootNamespace>
<AssemblyName>Heli.Scada.SoapService</AssemblyName>
<ProjectTypeGuids>{3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
<StartArguments>/client:"WcfTestClient.exe"</StartArguments>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<WcfConfigValidationEnabled>True</WcfConfigValidationEnabled>
<XsdCodeGenEnabled>True</XsdCodeGenEnabled>
</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="log4net">
<HintPath>..\packages\log4net.2.0.0\lib\net40-full\log4net.dll</HintPath>
</Reference>
<Reference Include="Microsoft.CSharp" />
<Reference Include="Microsoft.Practices.ServiceLocation">
<HintPath>..\packages\CommonServiceLocator.1.0\lib\NET35\Microsoft.Practices.ServiceLocation.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity">
<HintPath>..\packages\Unity.2.1.505.2\lib\NET35\Microsoft.Practices.Unity.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Practices.Unity.Configuration">
<HintPath>..\packages\Unity.2.1.505.2\lib\NET35\Microsoft.Practices.Unity.Configuration.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.Data" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq" />
</ItemGroup>
<ItemGroup>
<Compile Include="ISoapService.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SoapService.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\BLInterfaces\Heli.Scada.BLInterfaces.csproj">
<Project>{ac429c89-6ffe-42b8-a518-751184008361}</Project>
<Name>Heli.Scada.BLInterfaces</Name>
</ProjectReference>
<ProjectReference Include="..\Heli.Scada.BL\Heli.Scada.BL.csproj">
<Project>{8c14a250-2967-4f18-a241-00270a865f95}</Project>
<Name>Heli.Scada.BL</Name>
</ProjectReference>
<ProjectReference Include="..\Heli.Scada.DalInterfaces\Heli.Scada.DalInterfaces.csproj">
<Project>{9115ff08-75ad-4146-bdb0-680c0f1969f1}</Project>
<Name>Heli.Scada.DalInterfaces</Name>
</ProjectReference>
<ProjectReference Include="..\Heli.Scada.dal\Heli.Scada.dal.csproj">
<Project>{ee54d739-51bc-4d28-8446-05647bc9fb04}</Project>
<Name>Heli.Scada.dal</Name>
</ProjectReference>
<ProjectReference Include="..\Heli.Scada.Entities\Heli.Scada.Entities.csproj">
<Project>{caac6784-edad-4054-81ed-fd87bc775620}</Project>
<Name>Heli.Scada.Entities</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\WCF\Microsoft.VisualStudio.ServiceModel.targets" />
<ProjectExtensions>
<VisualStudio>
<FlavorProperties GUID="{3D9AD99F-2412-4246-B90B-4EAA41C64699}">
<WcfProjectProperties>
<AutoStart>True</AutoStart>
</WcfProjectProperties>
</FlavorProperties>
</VisualStudio>
</ProjectExtensions>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
Loading

0 comments on commit b21b3b2

Please sign in to comment.