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 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 GetStocks() { using IDbConnection db = new SqlConnection(StockDBConnection.ConnectionString); if (db.State == ConnectionState.Closed) db.Open(); return db.Query(@"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 GetAllStocks() { using IDbConnection db = new SqlConnection(StockDBConnection.ConnectionString); if (db.State == ConnectionState.Closed) db.Open(); return db.Query(@"SELECT Id ,StockId ,StockExtId ,BuyValue ,BuyDate ,ActValue ,ActDate ,SoldValue ,SoldDate ,Comment ,PostAmount FROM dbo.StockMember ORDER BY PostAmount * (actvalue - BuyValue) desc", commandType: CommandType.Text); } } }