public MessageModel UpdateSingleEntity(ProductBaseModel model) { Func <IEntityContext, string> operation = delegate(IEntityContext context) { var data = context.ProductBase.FirstOrDefault(m => m.ProductID == model.ProductID); if (data == null) { return("当前数据不存在或被更新,请刷新后再次操作!"); } data.ProductName = model.ProductName; data.ClassID = model.ClassID; data.ClassName = model.ClassName; data.ProductCode = model.ProductCode; data.ProductSpcID = model.ProductSpcID; data.ProductTypeID = model.ProductTypeID; data.Weight = model.Weight; data.PinYinCode = model.PinYinCode; data.Price = model.Price; data.Remark = model.Remark; data.IsLocked = model.IsLocked; data.IsShow = model.IsShow; data.ModifyID = 1; data.ModifyName = "Admin"; data.ModifyTime = DateTime.Now; context.SaveChanges(); return(string.Empty); }; return(base.DbOperation(operation)); }
public int AddNew(string code, int seed, decimal price = decimal.Zero) { using (var context = new StoreDbContext(DbContextOptions)) { var controller = CreateController(context); var addProductModel = new ProductBaseModel() { Code = code, Description = $"{code} DESC1", UnitId = 1, ProductTypeId = 1, Price = price != decimal.Zero ? price : Convert.ToDecimal(new Random(seed).Next(20, 100)), NextDelivery = DateTime.UtcNow.AddDays(new Random(seed).Next(0, 31)), Categories = new List <int>(new[] { 4 }) }; var result = controller.Add(addProductModel).GetAwaiter().GetResult(); var createdAtResult = result.Should().BeOfType <CreatedAtActionResult>().Subject; var product = createdAtResult.Value.Should().BeAssignableTo <ProductModel>().Subject; Assert.True(product.Id > 0); return(product.Id); } }
public ProductViewModel UpdateProduct(string code, ProductBaseModel model) { var product = _unitOfWork.Repository <ProductEntity>() .Set .FirstOrDefault(x => x.Code == code); if (product == null) { throw null; } product.Name = model.Name; product.Description = model.Description; product.Category = model.Category; product.Price = model.Price; _unitOfWork.SaveChanges(); return(new ProductViewModel() { Code = product.Code, Name = product.Name, Description = product.Description, Category = product.Category, Price = product.Price }); }
public void Edit_OK() { int addeddId = AddNew("EDIT_TEST_OK", 4321); using (var context = new StoreDbContext(DbContextOptions)) { var controller = CreateController(context); var editProductModel = new ProductBaseModel() { Code = "TEST_EDIT_OK", Description = "New description", UnitId = 2, ProductTypeId = 1, Price = 20, NextDelivery = DateTime.UtcNow.AddDays(14), Categories = new List <int>(new[] { 1, 2, 3 }) }; var editResult = controller.Update(addeddId, editProductModel).GetAwaiter().GetResult(); var editedAtResult = editResult.Should().BeOfType <CreatedAtActionResult>().Subject; var updatedProduct = editedAtResult.Value.Should().BeAssignableTo <ProductModel>().Subject; Assert.Equal("New description", updatedProduct.Description); Assert.Equal(2, updatedProduct.UnitId); Assert.True(updatedProduct.Categories.All(c => c == 1 || c == 2 || c == 3)); } }
public IActionResult Create([FromBody] ProductBaseModel product) { if (product == null) { return(BadRequest("product is null")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = _productService.Create(product); if (result.IsSuccess) { var data = new { ProductId = long.Parse(result.Message), product.ProductName, product.Description, product.Price, product.CategoryId }; return(CreatedAtRoute("GetProduct", new { id = data.ProductId }, data)); } return(BadRequest(result)); }
public ReturnViewModel Create(ProductBaseModel model) { var result = new ReturnViewModel(); if (!model.CategoryId.HasValue) { result.Message = "CategoryId is null ?"; return(result); } var entity = new Product { Name = model.ProductName, Description = model.Description, Price = model.Price, Seq = model.Seq, CategoryId = model.CategoryId.Value, AddedOn = DateTime.Now.Date, }; try { _repository.Create(entity); } catch (Exception ex) { result.Message = ex.Message; return(result); } result.Message = entity.Id.ToString(); result.IsSuccess = true; return(result); }
public ICollection <ProductToCategory> Resolve(ProductBaseModel source, Product destination, ICollection <ProductToCategory> destMember, ResolutionContext context) { var result = new List <ProductToCategory>(source.Categories.Select(c => new ProductToCategory(destination, c))); destination.Categories.Clear(); result.ForEach(x => destination.Categories.Add(x)); return(result); }
public ActionResult Create(ProductBaseModel productBaseModel) { var result = productBaseService.InsertSingleProductBase(productBaseModel); var flag = result.Status == MessageStatus.Success ? true : false; var msg = result.Message; return(Json(new { flag = flag, msg = msg })); }
public int Save(ProductBaseModel model) { foreach (var productModel in model.Products) { productModel.Prices = productModel.Prices.Where(p => p.UnitPrice != 0).ToList(); } var productBase = (model.IsNew ? Add(model) : Update(model)); return(productBase.ProductBaseId); }
public IActionResult OnPost() { if (!ModelState.IsValid) { return(Page()); } Product = _marketService.CreateProduct(Product); return(RedirectToPage("./Index")); }
public void ProcessOrder(ProductBaseModel productModel = null) { Console.WriteLine("Payment recieved for Video"); if (productModel.Name == "Learning to ski") { _packageable.GeneratePackagingSlip("Learning to Ski Video and First aid"); } else { _packageable.GeneratePackagingSlip("Video"); } }
private ProductBase Add(ProductBaseModel model) { using (var context = _contextFactory.CreateContext()) { var productBase = model.MapTo <ProductBase>(); productBase.CreatedOn = DateTime.Now; context.Add(productBase); context.SaveChanges(); return(productBase); } }
public MessageModel InsertSingleEntity(ProductBaseModel model) { Func <IEntityContext, string> operation = delegate(IEntityContext context) { model.ModifyID = UserManagement.CurrentUser.UserID; model.ModifyName = UserManagement.CurrentUser.UserName; model.ModifyTime = DateTime.Now; context.ProductBase.Add(model); context.SaveChanges(); return(string.Empty); }; return(base.DbOperation(operation)); }
static void Main(string[] args) { string repeat; do { string input; string subInput; DisplayClientUI(out input, out subInput); ProductBaseModel model = ProcessUserInput(input, subInput); product?.ProcessOrder(model); Console.WriteLine("If you want to repeat, press Y"); repeat = Console.ReadLine(); } while (repeat.ToLower().Equals("y")); }
public void ProcessOrder(ProductBaseModel productModel = null) { if (productModel is MembershipModel) { MembershipModel membershipModel = productModel as MembershipModel; if (membershipModel.IsUpgrade) { Console.WriteLine("Payment recieved to Upgrade Membership"); _notification.SendEmail("Email membership upgraded"); } else if (membershipModel.IsActivation) { Console.WriteLine("Payment recieved to Activate Membership"); _notification.SendEmail("Email membership activated"); } } }
public void Populatelookups(ProductBaseModel model) { //Fill CategoryList var categoryList = _repository.AllCategories(); var cList = categoryList.Select(x => new SelectListItem { Text = x.Name, Value = x.CategoryId.ToString() }).ToArray(); //Fill SubCategoryList var subcategoryList = _repository.AllSubcateCategories(); var scList = subcategoryList.Select(x => new SelectListItem { Text = x.Name, Value = x.SubCategoryId.ToString() }).ToArray(); model.CategoryList = cList; model.SubcategoryList = scList; }
public OrderProductsModel ConvertToOrderHeaderModel(OrderProduct m) { var product = new ProductBaseModel(); if (m.Product != null) { product = ConvertToProductBaseModel(m.Product); } return(new OrderProductsModel { Amount = m.Amount, ProductId = m.ProductId, Price = m.Price, IsDelete = m.IsDelete, OrderId = m.OrderId, Quantity = m.Quantity, Id = m.Id, Discount = m.Discount, Product = product }); }
public ProductViewModel CreateProduct(ProductBaseModel model) { var newProduct = new ProductEntity() { Code = Guid.NewGuid().ToString("N"), Name = model.Name, Description = model.Description, Category = model.Category, Price = model.Price }; _unitOfWork.Repository <ProductEntity>().Insert(newProduct); _unitOfWork.SaveChanges(); return(new ProductViewModel() { Code = newProduct.Code, Name = newProduct.Name, Description = newProduct.Description, Category = newProduct.Category, Price = newProduct.Price }); }
public void ProcessOrder(ProductBaseModel productModel = null) { Console.WriteLine("Payment recieved for Book"); _packageable.GeneratePackagingSlip("Book", 2); _agentCommission.GenerateCommissionPaymentToAgent(); }
/// <summary> /// 新增单条ProductBase /// </summary> /// <param name="model">地块信息实体</param> /// <returns></returns> public MessageModel InsertSingleProductBase(ProductBaseModel model) { return(productBaseAccess.InsertSingleEntity(model)); }
public void Init([NotNull] ModelContainer modelContainer) { Platform = modelContainer.Get <PlatformBase>(_platformId); Product = modelContainer.Get <ProductBaseModel>(_productId); }
/// <summary> /// 编辑单条ProductBase /// </summary> /// <param name="model">地块信息实体</param> /// <returns></returns> public MessageModel UpdateSingleProductBase(ProductBaseModel model) { return(productBaseAccess.UpdateSingleEntity(model)); }
/// <summary> /// Gets the prod list. /// </summary> /// <returns>The prod list.</returns> /// <param name="rq">Rq.</param> //1.取得商品列表 public static SearchProductModel GetProdList(SearchRQModel rq) { SearchProductModel prod = new SearchProductModel(); List <ProductBaseModel> pLst = new List <ProductBaseModel>(); try { JObject obj = SearchProxy.GetProdList(rq); Metadata md = new Metadata(); DataModel.Discount.DiscountRuleModel disc = null; #region --1.取回傳資料是否成功的訊息、統計用資訊-- md.result = obj["metadata"]["status"].ToString(); md.result_msg = obj["metadata"]["desc"].ToString(); prod.metadata = md; #endregion //如果狀態為0000 表示搜尋沒問題 才繼續滿足商品欄位 if (md.result == "0000") { #region --2.從傑森物件取『商品列表』-- JArray jsonPlst = (JArray)obj["data"]["prods"]; int countBlackProd = 0;//計算黑名單筆數 for (int i = 0; i < jsonPlst.Count; i++) { var model = new ProductBaseModel(); string prod_no = jsonPlst[i]["id"].ToString(); //抓商品是否為黑名單 bool isBlack = DiscountRepository.GetProdBlackWhite(prod_no); //表示該商品為白名單 需要綁入列表中 (黑名單的就不綁了) if (isBlack != true) { model.prod_no = Convert.ToInt32(prod_no); model.prod_name = jsonPlst[i]["name"].ToString(); model.b2d_price = DiscountRepository.GetCompanyDiscPrice(Int64.Parse(rq.company_xid), (double)jsonPlst[i]["price"], prod_no, jsonPlst[i]["main_cat_key"].ToString(), ref disc); //分銷價 model.b2c_price = (double)jsonPlst[i]["sale_price"]; //直客價 model.display_ref_price = jsonPlst[i]["display_price"].ToString(); model.prod_currency = jsonPlst[i]["currency"].ToString(); model.prod_img_url = jsonPlst[i]["img_url"].ToString(); model.rating_count = (int)jsonPlst[i]["rating_count"]; model.avg_rating_star = (double)jsonPlst[i]["rating_star"]; model.instant_booking = (bool)jsonPlst[i]["instant_booking"]; model.order_count = (int)jsonPlst[i]["order_count"]; model.days = (int)jsonPlst[i]["days"]; model.hours = (int)jsonPlst[i]["hours"]; model.introduction = jsonPlst[i]["introduction"].ToString(); model.duration = (int)jsonPlst[i]["duration"]; //model.display_price_usd = jsonPlst[i]["display_price_usd"].ToString(); //model.price_usd = (double)jsonPlst[i]["price_usd"]; model.prod_type = jsonPlst[i]["main_cat_key"].ToString(); model.tag = jsonPlst[i]["cat_key"].ToObject <string[]>();//把傑森物件轉成字串陣列 //取國家,城市 List <Country> country = ((JArray)jsonPlst[i]["countries"]) .Select(x => new Country { id = (string)x["id"], name = (string)x["name"], cities = x["cities"].ToObject <List <City> >() }).ToList(); model.countries = country; pLst.Add(model); } else { countBlackProd++; } //頁數、筆數統計 md.total_count = (int)obj["metadata"]["pagination"]["total_count"] - countBlackProd; //商品總筆數 扣掉黑名單筆數 md.start = (int)obj["metadata"]["pagination"]["start"]; //從第?筆開始 md.count = (int)obj["metadata"]["pagination"]["count"]; //一頁?筆商品 prod.metadata = md; //stats 金額統計 if (rq.stats != null) { Stats s = new Stats(); s.price = new Price() { min = (int)obj["data"]["stats"]["price"]["min"], max = (int)obj["data"]["stats"]["price"]["max"], count = (int)obj["data"]["stats"]["price"]["count"], currency = obj["data"]["stats"]["price"]["currency"].ToString() }; prod.stats = s; } //facets 大分類 小分類 ...的統計 if (rq.facets != null) { Facets f = new Facets(); //大分 if (rq.facets.Where(x => x.Equals("cat_main")).Count() == 1) { List <CatMain> cm = ((JArray)obj["data"]["facets"]["cat_main"]) .Select(x => new CatMain { id = (string)x["id"], name = (string)x["name"], sort = (string)x["sort"], count = (int)x["count"] }).ToList(); f.cat_main = cm; } //小分 if (rq.facets.Where(x => x.Equals("cat")).Count() == 1) { List <Cat> ca = ((JArray)obj["data"]["facets"]["cat"]) .Select(x => new Cat { id = (string)x["id"], name = (string)x["name"], sort = (string)x["sort"], count = (int)x["count"] }).ToList(); f.cat = ca; } if (rq.facets.Where(x => x.Equals("total_time")).Count() == 1) { List <TotalTime> tt = ((JArray)obj["data"]["facets"]["total_time"]) .Select(x => new TotalTime { time = (int)x["time"], count = (int)x["count"] }).ToList(); f.total_time = tt; } if (rq.facets.Where(x => x.Equals("guide_lang")).Count() == 1) { List <GuideLang> gl = ((JArray)obj["data"]["facets"]["guide_lang"]) .Select(x => new GuideLang { id = (string)x["id"], name = (string)x["name"], count = (int)x["count"] }).ToList(); f.guide_lang = gl; } //可販售日期 if (rq.facets.Where(x => x.Equals("sale_dt")).Count() == 1) { List <SaleDt> sd = ((JArray)obj["data"]["facets"]["sale_dt"]) .Select(x => new SaleDt { id = (int)x["id"], count = (int)x["count"] }).ToList(); f.sale_dt = sd; } prod.facets = f; } } prod.prods = pLst; #endregion } } catch (Exception ex) { Website.Instance.logger.FatalFormat($"getProdLst Error :{ex.Message},{ex.StackTrace}"); throw ex; } return(prod); }
private ProductBase Update(ProductBaseModel model) { using (var context = _contextFactory.CreateContext()) { var existingProductBase = context.ProductBases .Include(pb => pb.ProductVariationsLink) .Include(pb => pb.Products).ThenInclude(p => p.ProductSource) .Include(pb => pb.Products).ThenInclude(p => p.ProductDestination) .Include(pb => pb.Products).ThenInclude(p => p.Prices) .FirstOrDefault(pb => pb.ProductBaseId == model.ProductBaseId); context.Entry(existingProductBase).CurrentValues.SetValues(model); //ProductVariationsLink foreach (var variationLink in existingProductBase.ProductVariationsLink) { if (!model.ProductVariationsLink.Any(v => v.ProductBaseProductVariationId == variationLink.ProductBaseProductVariationId)) { existingProductBase.ProductVariationsLink.Remove(variationLink); } } foreach (var variationLinkModel in model.ProductVariationsLink) { var variationLink = existingProductBase.ProductVariationsLink .FirstOrDefault(v => v.ProductBaseProductVariationId == variationLinkModel.ProductBaseProductVariationId); if (variationLink == null) { existingProductBase.ProductVariationsLink.Add(variationLinkModel.MapTo <ProductBaseProductVariation>()); } else { context.Entry(variationLink).CurrentValues.SetValues(variationLinkModel); } } //Products foreach (var existingProduct in existingProductBase.Products) { if (!model.Products.Any(p => p.ProductId == existingProduct.ProductId)) { existingProductBase.Products.Remove(existingProduct); } } foreach (var productModel in model.Products) { var existingProduct = existingProductBase.Products.FirstOrDefault(p => p.ProductId == productModel.ProductId); if (existingProduct != null) { context.Entry(existingProduct).CurrentValues.SetValues(productModel); //ProductSource if (existingProduct.ProductSource != null || productModel.ProductSource != null) { if (existingProduct.ProductSource != null && productModel.ProductSource != null) { if (productModel.ProductSource.ProductSourceId == 0) { existingProduct.ProductSource = productModel.ProductSource.MapTo <ProductSource>(); } else { context.Entry(existingProduct.ProductSource).CurrentValues.SetValues(productModel.ProductSource); } } else if (existingProduct.ProductSource == null) { existingProduct.ProductSource = productModel.ProductSource.MapTo <ProductSource>(); } else { existingProduct.ProductSource = null; } } //ProductDestination if (existingProduct.ProductDestination != null || productModel.ProductDestination != null) { if (existingProduct.ProductDestination != null && productModel.ProductDestination != null) { if (productModel.ProductDestination.ProductDestinationId == 0) { existingProduct.ProductDestination = productModel.ProductDestination.MapTo <ProductDestination>(); } else { context.Entry(existingProduct.ProductDestination).CurrentValues.SetValues(productModel.ProductDestination); } } else if (existingProduct.ProductDestination == null) { existingProduct.ProductDestination = productModel.ProductDestination.MapTo <ProductDestination>(); } else { existingProduct.ProductDestination = null; } } //Prices foreach (var price in existingProduct.Prices) { if (!productModel.Prices.Any(p => p.PriceId == price.PriceId)) { existingProduct.Prices.Remove(price); } } foreach (var priceModel in productModel.Prices) { var existingPrice = existingProduct.Prices.FirstOrDefault(p => p.PriceId == priceModel.PriceId); if (existingPrice == null) { existingProduct.Prices.Add(priceModel.MapTo <Price>()); } else { context.Entry(existingPrice).CurrentValues.SetValues(priceModel); } } } else { existingProductBase.Products.Add(productModel.MapTo <Product>()); } } context.Update(existingProductBase); context.SaveChanges(); return(existingProductBase); } }