/// <summary> /// Maps a business domain asset to an EntityFramework model /// </summary> /// <param name="asset">The business domain asset object</param> /// <returns>The portfolio entry DataAccess object</returns> public static Models.Asset MapAsset(Domain.Models.Asset asset) { return(new Models.Asset { Id = asset.Id, StockId = asset.Stock.Id, Quantity = asset.Quantity }); }
public async Task UpdateAsync(Domain.Models.Asset asset) { using var context = new mmpproject2Context(_contextOptions); var current = await context.Assets.FirstAsync(a => a.Id == asset.Id); var updated = Mapper.MapAsset(asset); updated.PortfolioId = current.PortfolioId; context.Entry(current).CurrentValues.SetValues(updated); await context.SaveChangesAsync(); }
public async Task <Domain.Models.Asset> AddAsync(Domain.Models.Asset asset, Domain.Models.Portfolio portfolio) { if (asset.Id != 0) { throw new ArgumentException("Asset already exists."); } using var context = new mmpproject2Context(_contextOptions); var dbPortfolio = await context.Portfolios .Include(p => p.Assets) .FirstAsync(p => p.Id == portfolio.Id); var newAsset = Mapper.MapAsset(asset); dbPortfolio.Assets.Add(newAsset); context.Assets.Add(newAsset); await context.SaveChangesAsync(); var created = await context.Assets .Include(a => a.Stock) .FirstAsync(a => a.Id == newAsset.Id); return(Mapper.MapAsset(created)); }