示例#1
0
 /// <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
     });
 }
示例#2
0
        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();
        }
示例#3
0
        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));
        }