init

parents
Pipeline #36 skipped
using DataAccessLayer;
using Shared.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BusinessLogicLayer
{
public class BLEmployees : IBLEmployees
{
private IDALEmployees _dal;
public BLEmployees(IDALEmployees dal)
{
_dal = dal;
}
public void AddEmployee(Employee emp)
{
throw new NotImplementedException();
}
public void DeleteEmployee(int id)
{
throw new NotImplementedException();
}
public void UpdateEmployee(Employee emp)
{
throw new NotImplementedException();
}
public List<Employee> GetAllEmployees()
{
throw new NotImplementedException();
}
public Employee GetEmployee(int id)
{
throw new NotImplementedException();
}
public double CalcPartTimeEmployeeSalary(int idEmployee, int hours)
{
throw new NotImplementedException();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" 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>{A07AA8DF-3A92-4CC5-B111-5DEA0447C2A3}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>BusinessLogicLayer</RootNamespace>
<AssemblyName>BusinessLogicLayer</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</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="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="BLEmployees.cs" />
<Compile Include="IBLEmployees.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\CrossCutting\Shared.csproj">
<Project>{8b1e409e-8eb8-4171-8d99-5db230da4889}</Project>
<Name>Shared</Name>
</ProjectReference>
<ProjectReference Include="..\DataAccessLayer\DataAccessLayer.csproj">
<Project>{135e79f3-5b60-4253-8ca1-53dfe3a6024b}</Project>
<Name>DataAccessLayer</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- 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>
\ No newline at end of file
using Shared.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BusinessLogicLayer
{
public interface IBLEmployees
{
void AddEmployee(Employee emp);
void DeleteEmployee(int id);
void UpdateEmployee(Employee emp);
List<Employee> GetAllEmployees();
Employee GetEmployee(int id);
double CalcPartTimeEmployeeSalary(int idEmployee, int hours);
}
}
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("BusinessLogicLayer")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("BusinessLogicLayer")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[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("1f1e89d1-0c6d-4dfa-8f15-ff5b87fb084d")]
// 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")]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shared.Entities
{
public abstract class Employee
{
public int Id { get; set; }
public string Name { get; set; }
public DateTime StartDate { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shared.Entities
{
public class FullTimeEmployee : Employee
{
public int Salary { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Shared.Entities
{
public class PartTimeEmployee : Employee
{
public double HourlyRate { get; set; }
}
}
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("CrossCutting")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("CrossCutting")]
[assembly: AssemblyCopyright("Copyright © 2015")]
[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("beb37011-da66-43ee-b777-d1bfeaa477ec")]
// 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")]
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" 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>{8B1E409E-8EB8-4171-8D99-5DB230DA4889}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Shared</RootNamespace>
<AssemblyName>Shared</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</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="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Entities\Employee.cs" />
<Compile Include="Entities\FullTimeEmployee.cs" />
<Compile Include="Entities\PartTimeEmployee.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<Folder Include="Caching\" />
<Folder Include="Enums\" />
<Folder Include="Exception\" />
<Folder Include="Logging\" />
<Folder Include="Security\" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<!-- 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>
\ No newline at end of file
<?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>
<connectionStrings>
<add name="CompanyEntities" connectionString="metadata=res://*/Model.Company.csdl|res://*/Model.Company.ssdl|res://*/Model.Company.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=MARI-PC;initial catalog=practico1;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework&quot;" providerName="System.Data.EntityClient" />
</connectionStrings>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
</configuration>
\ No newline at end of file
using Shared.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataAccessLayer
{
public class DALEmployeesEF : IDALEmployees
{
static EmployeeDBContext db = new EmployeeDBContext();
public void AddEmployee(Employee emp)
{
try
{
db.Employee.Add(emp);
db.SaveChangesAsync();
}
catch (Exception ex)
{
throw ex;
}
}
public void DeleteEmployee(int id)
{
var matched_Employee = (from c in db.Employee
where c.Id == id
select c).SingleOrDefault();
try
{
db.Employee.Remove(matched_Employee);
db.SaveChangesAsync();
}
catch (Exception ex)
{
throw ex;
}
}
public void UpdateEmployee(Employee emp)
{
try
{
var empleado = db.Employee
.Where(w => w.Id == emp.Id)
.SingleOrDefault();
if (emp != null)
{
empleado.Name = emp.Name;
empleado.StartDate = emp.StartDate;
db.SaveChangesAsync();
}
}
catch (Exception ex)
{
throw ex;
}
}
public List<Employee> GetAllEmployees()
{
List<Employee> employees = new List<Employee>();
try
{
employees = db.Employee.ToList();
return employees;
}
catch (Exception ex)
{
throw ex;
}
}
public Employee GetEmployee(int id)
{
Employee emp = null;
try
{
emp = db.Employee
.Where(w => w.Id == id)
.SingleOrDefault();
return emp;
}
catch (Exception ex)
{
throw ex;
}
}
}
}
using Shared.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataAccessLayer
{
public class DALEmployeesMock : IDALEmployees
{
private List<Employee> employeesRepository = new List<Employee>()
{
new PartTimeEmployee(){HourlyRate = 100},
new PartTimeEmployee(){HourlyRate = 150},
new PartTimeEmployee(){HourlyRate = 200},
new PartTimeEmployee(){HourlyRate = 250},
new PartTimeEmployee(){HourlyRate = 300},
new FullTimeEmployee(){},
new FullTimeEmployee(){},
new FullTimeEmployee(){},
new FullTimeEmployee(){},
new FullTimeEmployee(){},
};
public void AddEmployee(Employee emp)
{
throw new NotImplementedException();
}
public void DeleteEmployee(int id)
{
throw new NotImplementedException();
}
public void UpdateEmployee(Employee emp)
{
throw new NotImplementedException();
}
public List<Employee> GetAllEmployees()
{
return employeesRepository;
}
public Employee GetEmployee(int id)
{
throw new NotImplementedException();
}
}
}
using Shared.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;
namespace DataAccessLayer
{
public class DALEmployeesMongo : IDALEmployees
{
MongoClient client;
IMongoDatabase database;
IMongoCollection<Employee> collection;
public DALEmployeesMongo()
{
client = new MongoClient("mongodb://localhost");
database = client.GetDatabase("practico1");
collection = database.GetCollection<Employee>("employees");
}
public void AddEmployee(Employee emp)
{
this.collection.InsertOneAsync(emp);
}
public void DeleteEmployee(int id)
{
var filter = Builders<Employee>.Filter.Eq("id", id);
this.collection.DeleteOneAsync(filter);
}
public void UpdateEmployee(Employee emp)
{
var filter = Builders<Employee>.Filter.Eq("id", emp.Id);
var update = Builders<Employee>.Update.Set("Name", emp.Name).Set("StartDate", emp.StartDate);
var result = collection.UpdateOneAsync(filter, update);
return result;
}
public List<Employee> GetAllEmployees()
{
return this.collection.FindAsync();
}
public Employee GetEmployee(int id)
{
var filter = Builders<Employee>.Filter.Eq("id", id);
var employee = this.collection.Find(filter);
return employee;
}
}
}
using Shared.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DataAccessLayer
{
public class DALEmployeesNativeSQL : IDALEmployees
{
static EmployeeDBContext db = new EmployeeDBContext();
public void AddEmployee(Employee nuevoemp)
{
try
{
string nativeSQLQuery =
"INSERT INTO Employees " +
"VALUES nuevoemp ";
var result = db.Employee.SqlQuery(nativeSQLQuery);
}
catch (Exception ex)
{
throw ex;
}
}
public void DeleteEmployee(int id)
{
try
{
string nativeSQLQuery =
"SELECT e " +
"FROM db.Employees " +
"WHERE e.id = '{0}'";
var emp = db.Employee.SqlQuery(nativeSQLQuery, id);
foreach (var item in emp)
{
db.Employee.Remove(item);
}
}
catch (Exception ex)
{
throw ex;
}
}
public void UpdateEmployee(Employee emp)
{
throw new NotImplementedException();
}
public List<Employee> GetAllEmployees()
{
List<Employee> list = new List<Employee>();
try
{
string nativeSQLQuery =
"SELECT * " +
"FROM dbo.Employees ";
var emp = db.Employee.SqlQuery(nativeSQLQuery);
foreach (var item in emp)
{
list.Add(item);
}
}
catch (Exception ex)
{
throw ex;
}
return list;
}
public Employee GetEmployee(int id)
{
throw new NotImplementedException();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" 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>{135E79F3-5B60-4253-8CA1-53DFE3A6024B}</ProjectGuid>
<OutputType>Library</OutputType>