public ActionResult Import(HttpPostedFileBase file) { if( file.ContentLength>0 ) { using(var sr = new StreamReader(file.InputStream)) { var engine = new DelimitedFileEngine<WareCatalogItem>(Encoding.UTF8); var items = engine.ReadStream(sr); var existingWares = Session.QueryOver<Ware>().List(); var wareMap = existingWares.ToDictionary(x => x.Sku); foreach(var item in items) { if( wareMap.ContainsKey(item.Sku) ) { var ware = wareMap[item.Sku]; ware.Name = item.Name; } else { var ware = new Ware {Sku = item.Sku, Name = item.Name}; Session.Save(ware); } } } } return RedirectToAction("Import"); }
public virtual void AddWare(Ware ware, int quantity, double price) { Wares.Add(new TaskWare(ware, quantity, price)); }