Beispiel #1
0
        public async Task <IActionResult> Post([FromBody] Domain.Models.Stock stock)
        {
            await _stockService.AddAsync(stock);

            return(Created($"/api/stock/{stock.Id}", new Domain.Models.Stock {
                Id = stock.Id
            }));
        }
 /// <summary>
 /// Turn a model stock into an entity inventory
 /// </summary>
 /// <param name="stock"></param>
 /// <returns></returns>
 public static Entities.InventoryEntity Map(Domain.Models.Stock stock)
 {
     return(new Entities.InventoryEntity
     {
         BookIsbnNavigation = MapperBook.Map(stock.Book),
         Quantity = stock.Quantity,
         BookIsbn = MapperBook.Map(stock.Book).Isbn
     });
 }
Beispiel #3
0
 /// <summary>
 /// Maps a business domain stock to an EntityFramework model
 /// </summary>
 /// <param name="stock">The business domain stock object</param>
 /// <returns>The stock DataAccess object</returns>
 public static Models.Stock MapStock(Domain.Models.Stock stock)
 {
     return(new Models.Stock {
         Id = stock.Id,
         Symbol = stock.Symbol,
         Market = stock.Market,
         Name = stock.Name,
         Logo = stock.Logo
     });
 }
Beispiel #4
0
        public async Task UpdateAsync(Domain.Models.Stock stock)
        {
            using var context = new mmpproject2Context(_contextOptions);
            var current = await context.Stocks.FirstAsync(s => s.Symbol == stock.Symbol && s.Market == stock.Market);

            var updated = Mapper.MapStock(stock);

            context.Entry(current).CurrentValues.SetValues(updated);

            await context.SaveChangesAsync();
        }
Beispiel #6
0
        public async Task <Domain.Models.Stock> AddAsync(Domain.Models.Stock stock)
        {
            if (stock.Id != 0)
            {
                throw new ArgumentException("Stock already exists.");
            }

            using var context = new mmpproject2Context(_contextOptions);
            var newStock = Mapper.MapStock(stock);

            await context.Stocks.AddAsync(newStock);

            await context.SaveChangesAsync();

            return(Mapper.MapStock(newStock));
        }
        public async Task AddStock_Database_TestAsync()
        {
            using var connection = new SqliteConnection("Data Source=:memory:");
            connection.Open();
            var options = new DbContextOptionsBuilder <mmpproject2Context>().UseSqlite(connection).Options;

            testStock = new Domain.Models.Stock("APPL", "NASDAQ", "Apple Inc.", null);


            using (var context = new mmpproject2Context(options))
            {
                context.Database.EnsureCreated();
                var repo = new StockRepository(options);

                await repo.AddAsync(testStock);
            }

            using var context2 = new mmpproject2Context(options);
            DataAccess.Models.Stock testReal = context2.Stocks
                                               .Single(l => l.Symbol == "APPL");

            Assert.Equal(testStock.Symbol, testReal.Symbol);
            Assert.Equal(testStock.Name, testReal.Name);
        }
Beispiel #8
0
        public async Task <IActionResult> Put([FromBody] Domain.Models.Stock stock)
        {
            await _stockService.UpdateAsync(stock);

            return(Ok());
        }
Beispiel #9
0
 public async Task <int> UpdateAsync(Domain.Models.Stock stock)
 {
     _unit.StockRepository.Update(stock.Id, stock);
     return(await _unit.CommitChangesAsync());
 }
Beispiel #10
0
 public async Task <int> AddAsync(Domain.Models.Stock stock)
 {
     _unit.StockRepository.Add(stock);
     return(await _unit.CommitChangesAsync());
 }