Files
Stockinfo/StockDAL/StockRepository.cs
2021-03-04 10:38:47 +01:00

76 lines
2.2 KiB
C#

using DataDomain;
using DatamodelLibrary;
using StockDAL.Interface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StockDAL
{
public class StockRepository : IStockRepository
{
public void SaveStockMember(StockMember stockMember)
{
using (var context = new StockContext())
{
var sm = context.Stocks.Add(stockMember);
context.SaveChanges();
}
}
public void UpdateActualPrice(int id, decimal price)
{
using var context = new StockContext();
var entity = (from stk in context.Stocks
where stk.Id == id
select stk).FirstOrDefault();
entity.ActValue = price;
entity.ActDate = DateTime.Today;
context.SaveChanges();
}
public void UpdateActualForSell(int id, int sellAmount, decimal sellPrice, DateTime sellDate)
{
using var context = new StockContext();
var entity = (from stk in context.Stocks
where stk.Id == id
select stk).FirstOrDefault();
var rest = entity.ActAmount - sellAmount;
entity.ActAmount = rest < 0 ? 0 : rest;
entity.SoldDate = DateTime.Today;
entity.SoldValue = sellAmount * sellPrice;
context.SaveChanges();
}
public IEnumerable<StockMember> GetAllStocks()
{
using var context = new StockContext();
var output = context.Stocks;
return output.ToList();
}
public IEnumerable<StockMember> GetAllRemainingStocks()
{
using var context = new StockContext();
var output = (from stk in context.Stocks
where stk.SoldDate == null || stk.ActAmount > 0
select stk).ToList();
return output;
}
public void InsertMany(List<StockMember> stockMembers)
{
using var context = new StockContext();
context.Stocks.AddRange(stockMembers);
context.SaveChanges();
}
}
}