Files
StockRepository/StockDal/StockMemberRepository.cs
2021-02-16 07:27:58 +01:00

105 lines
3.3 KiB
C#

using Dapper;
using RepositoryPattern;
using StockDal.Interface;
using StockDomain;
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
namespace StockDal
{
public class StockMemberRepository : IStockMemberRepository
{
public bool Delete(string stockMemberId)
{
throw new NotImplementedException();
}
public void InsertMany(List<StockMember> stockMembers)
{
using IDbConnection db = new SqlConnection(StockDBConnection.ConnectionString);
if (db.State == ConnectionState.Closed)
db.Open();
db.Execute(
@"INSERT INTO [dbo].[StockMember]
(StockId
,StockExtId
,BuyValue
,BuyDate
,ActValue
,ActDate
,SoldValue
,SoldDate
,Comment
,PostAmount)
VALUES
(@StockId
,@StockExtId
,@BuyValue
,@BuyDate
,@ActValue
,@ActDate
,@SoldValue
,@SoldDate
,@Comment
,@PostAmount)
", stockMembers);
}
public void UpdateActPrice(int Id, decimal price)
{
using IDbConnection db = new SqlConnection(StockDBConnection.ConnectionString);
if (db.State == ConnectionState.Closed)
db.Open();
db.Execute(
@"UPDATE [dbo].[StockMember]
SET ActValue = @val,
ActDate = @date
WHERE Id = @id
", new { val = price, date = DateTime.Today, id = Id });
}
public IEnumerable<StockMember> GetStocks()
{
using IDbConnection db = new SqlConnection(StockDBConnection.ConnectionString);
if (db.State == ConnectionState.Closed)
db.Open();
return db.Query<StockMember>(@"SELECT Id
,StockId
,StockExtId
,BuyValue
,BuyDate
,ActValue
,ActDate
,SoldValue
,SoldDate
,Comment
,PostAmount
FROM dbo.StockMember
Where SoldDate is null
ORDER BY PostAmount * (actvalue - BuyValue) desc", commandType: CommandType.Text);
}
public IEnumerable<StockMember> GetAllStocks()
{
using IDbConnection db = new SqlConnection(StockDBConnection.ConnectionString);
if (db.State == ConnectionState.Closed)
db.Open();
return db.Query<StockMember>(@"SELECT Id
,StockId
,StockExtId
,BuyValue
,BuyDate
,ActValue
,ActDate
,SoldValue
,SoldDate
,Comment
,PostAmount
FROM dbo.StockMember
ORDER BY PostAmount * (actvalue - BuyValue) desc", commandType: CommandType.Text);
}
}
}