//=========================================================== //=========================================================== #region -- Create Product -- public SingleRsp CreateProduct(ProductsReq pro) { var res = new SingleRsp(); Products product = new Products(); product.CategoryId = pro.CategoryId; product.ProductName = pro.ProductName; product.Photo = pro.Photo; product.Description = pro.Description; product.ProductSlug = pro.ProductSlug; product.IsActive = pro.IsActive; // we must to save a new product before. // if we don't, we will not have productID to do anything. res = _rep.CreateProduct(product); // ProductsReq pro have Options is a list. // so we get those options and store it into database. foreach (var po in pro.Options) { using (var context = new EatWellDBContext()) { using (var tran = context.Database.BeginTransaction()) { try { ProductOptions product_option = new ProductOptions(); product_option.ProductId = product.ProductId; product_option.OptionId = po.OptionId; product_option.Price = po.Price; // add a new record in to ProductOptions table var t = context.ProductOptions.Add(product_option); context.SaveChanges(); tran.Commit(); } catch (Exception ex) { tran.Rollback(); res.SetError(ex.StackTrace); } } } } return(res); }