public IActionResult GetProudctList(RequestProduct request) { var search = PredicateBuilder.New <Products>(); if (request.IsPromotion == true) { search.And(r => r.IsPromotion == request.IsPromotion); } search.And(r => r.PublishDate <= DateTime.Now && r.DownDate >= DateTime.Now); var products = _context.Products.Where(search); if (products.Any()) { var result = products.Select(r => new ProductListView() { ProductID = r.ID.ToString(), ProductName = r.Name, Link = "/Product/Detail?id=" + r.ID, ImageUrl = r.ImgUrl, OriganalPrice = r.Price, SalePrice = r.SalePrice, Weight = r.Weight }); return(Ok(result)); } else { return(StatusCode(Status400BadRequest, new ResponseMessage { Message = "查無商品資訊" })); } }
public JsonResult SaveRequestProduct(RequestProduct model) { model.CreatedDate = DateTime.Now; db.RequestProducts.Add(model); db.SaveChanges(); return(Json("Sản phẩm yêu cầu của bạn đã được ghi nhận, chúng tôi sẽ liên hệ lại bạn ngay khi có sản phẩm.", JsonRequestBehavior.AllowGet)); }
private static void AssertSuccessfulSave(RequestProduct requestProduct, HttpStatusCode statusCode, Product responseProduct) { Assert.AreEqual(HttpStatusCode.Created, statusCode); Assert.AreEqual(requestProduct.Brand, responseProduct.Brand); Assert.AreEqual(requestProduct.Model, responseProduct.Model); Assert.AreEqual(requestProduct.Description, responseProduct.Description); }
// завершение заявки (статус и дата окончания) public void finishOrder(int recId, DateTime reception) { Request element = context.Requests.FirstOrDefault(rec => rec.Id == recId); element.ReceiptMark = true; element.DateReception = reception; context.SaveChanges(); for (int i = 1; i < 6; i++) { try { RequestProduct elementPr = context.RequestProducts.FirstOrDefault(rec => rec.RequestId == recId && rec.Status == "Заказ передан поставщику"); if (elementPr != null) { elementPr.Status = "Завершен"; context.SaveChanges(); } } catch (Exception) { throw; } } int user = getUserIdForRequest(recId); string address = findEmail(user); email.SendEmail(address, "Завершение заказа", "Доставка заказа № " + recId + " выполнена"); }
// добавление товаров в заявку public void addProdToRequest(RequestProduct model) { using (var transaction = context.Database.BeginTransaction()) { try { RequestProduct element = new RequestProduct { Id = model.Id, RequestId = model.RequestId, ProductId = model.ProductId, Status = model.Status, Amount = model.Amount, ProviderId = model.ProviderId }; context.RequestProducts.Add(element); context.SaveChanges(); transaction.Commit(); } catch (Exception) { transaction.Rollback(); throw; } } }
public async Task PostIncompleteProduct_ReturnsBadRequest() { var requestProduct = new RequestProduct(); var(statusCode, _) = await SaveProduct(requestProduct, null, Post); Assert.AreEqual(HttpStatusCode.BadRequest, statusCode); }
public override async Task <ReturnProduct> GetProduceprice(RequestProduct request, ServerCallContext context) { return(await Task.FromResult <ReturnProduct>(new ReturnProduct { ProductId = request.ProductId, Price = 500 })); }
public override Task <ResponseProduct> SendProduct(RequestProduct request, ServerCallContext context) { Models.Product p = _mapper.Map <Models.Product>(request); _repository.Create(p); return(Task.FromResult(new ResponseProduct { Message = "Product added with id " + p.Id })); }
public IActionResult Post(RequestProduct request) { var product = request.data.attributes; product.created_at = timestamp; product.updated_at = timestamp; _context.products.Add(product); _context.SaveChanges(); return(Ok(new { message = "success add data", status = "true", data = product })); }
public async Task <IActionResult> Post([FromBody] Models.Product product) { using GrpcChannel channel = GrpcChannel.ForAddress("https://localhost:5001"); var client = new Product.ProductClient(channel); var r = new RequestProduct { Title = product.Title, Price = (double)product.Price }; ResponseProduct response = await client.SendProductAsync(r); return(Ok(response)); }
/// <summary> 주민 요구 사항 (빵 같은 것들) 설정 </summary> void InitRequest() { //requestedProductID = "food_001"; //if (Random.Range(0, 100) < 5) // requestedProductID = "food_002"; List <RequestProduct> rpList = new List <RequestProduct>(); RequestProduct rp = new RequestProduct("food_001", 10000); //빵 rpList.Add(rp); if (User.Instance.userLevel >= 2 /*5*/) { int w = Mathf.Min(1000 * (User.Instance.userLevel - 1 /*4*/), 10000); RequestProduct rp2 = new RequestProduct("food_002", w); //생선 rpList.Add(rp2); } int totalWeight = rpList.Sum(x => x.weight); float r = Random.Range(0f, totalWeight); float sum = 0f; int a = 0; for (int i = 0; i < rpList.Count; i++) { if (r > sum && r <= sum + rpList[i].weight) { a = i; break; } sum += rpList[i].weight; } requestedProductID = rpList[a].productID; Item productionData = ProductManager.Instance.productList.Find(x => x.id == requestedProductID); requestAmount = 3d * System.Math.Pow(1.25d, User.Instance.userLevel - 1); if (requestAmount < 1000) { requestAmount = (int)requestAmount; } //말풍선에 아이콘 설정 TerritoryManager.Instance.ChangeMaterialImage(imageRequestIcon, productionData.image); }
public Task <ActionResult> Update([FromBody] RequestProduct newObj) { String serviceName = newObj.GetType().Name; // TODO : validar se entity.getState() é um State com antecessor e precedente validos. return(RequestFilter.GetObject <RequestProduct>(this.User.Identity, this.Request, this.entityManager, serviceName).ContinueWith <ActionResult>(taskOldObj => { return RequestFilter.ProcessUpdate(this.User.Identity, this.Request, this.entityManager, serviceName, newObj).ContinueWith <ActionResult>(taskResponse => { ActionResult response = taskResponse.Result; return response; }).Result; })); }
public async Task PostThenPutProduct_UpdateSucceeds() { var requestProduct = new RequestProduct { Brand = "Dell", Model = "Xps", Description = "Laptop from Dell" }; var(statusCode, product) = await SaveProduct(requestProduct, null, Post); AssertSuccessfulSave(requestProduct, statusCode, product); (statusCode, product) = await SaveProduct(requestProduct, product.Id, Put); Assert.AreEqual(HttpStatusCode.NoContent, statusCode); Assert.IsNull(product); }
// назначение поставщиков заявкам public List <RequestProductViewModel> FindProviders() { List <RequestProductViewModel> result = context.RequestProducts.Where(rec => rec.ProviderId == 1).Select(rec => new RequestProductViewModel { Id = rec.Id, RequestId = rec.RequestId, ProductId = rec.ProductId, Status = rec.Status, Amount = rec.Amount, ProviderId = rec.ProviderId }) .ToList(); for (int i = 0; i < result.Count; i++) { int recuestId = result[i].RequestId; Request el = context.Requests.FirstOrDefault(rec => rec.Id == recuestId); int Prioritet = el.Prioritet; int prodId = result[i].ProductId; int amount = result[i].Amount; int providerId = 1; if (Prioritet == 0) { providerId = FindProviderWithMinPrice(prodId, amount); } else { providerId = FindProviderWithBestRating(prodId, amount); } //result[i].ProviderId = providerId; RequestProduct element = getById(result[i].Id); element.ProviderId = providerId; element.Status = "Заказ передан поставщику"; decimal totalPrice = changeInStockAmount(prodId, providerId, amount); context.SaveChanges(); int user = getUserIdForRequest(result[i].RequestId); string address = findEmail(user); email.SendEmail(address, "Изменение статуса заказа", "Доставка " + productController.ProductNameById(result[i].ProductId) + " передана " + providerController.ProviderNameById(providerId) + ". Стоимость доставки составила " + totalPrice); } context.SaveChanges(); return(result); }
public async Task PostProduct_CanFindPostedProductByGetAll() { var requestProduct = new RequestProduct { Brand = "Apple", Model = "MacBook Pro", Description = "Laptop from Apple" }; var(statusCode, product) = await SaveProduct(requestProduct, null, Post); AssertSuccessfulSave(requestProduct, statusCode, product); var response = await Get(); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); var products = await ReadContent <List <Product> >(response); var savedProduct = products.Single(p => p.Id == product.Id); Assert.IsNotNull(savedProduct); }
public async Task PostProduct_ThenCanDeletePostedProduct() { var requestProduct = new RequestProduct { Brand = "Samsung", Model = "Fridge", Description = "Fridge from Samsung" }; var(statusCode, product) = await SaveProduct(requestProduct, null, Post); AssertSuccessfulSave(requestProduct, statusCode, product); var response = await Get(product.Id); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); response = await Client.DeleteAsync($"{ProductApi}/{product.Id}"); Assert.AreEqual(HttpStatusCode.NoContent, response.StatusCode); response = await Get(product.Id); Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode); }
public IActionResult UpdatebyId(int id, RequestProduct request) { var products = request.data.attributes; try { var result = _context.products.First(x => x.id == id); result.name = products.name; result.price = products.price; result.updated_at = timestamp; _context.SaveChanges(); return(Ok(new { message = "success update data", status = "true", data = result })); } catch (Exception) { return(NotFound()); } }
public Task <ActionResult> Create([FromBody] RequestProduct obj) { String serviceName = CaseConvert.UnderscoreToCamel(obj.GetType().Name, false); return(RequestFilter.ProcessCreate <RequestProduct>(this.User.Identity, this.entityManager, serviceName, obj)); }
// получение товаров в заявке по id public RequestProduct getById(int recId) { RequestProduct element = context.RequestProducts.FirstOrDefault(rec => rec.Id == recId); return(element); }
private async Task <(HttpStatusCode StatusCode, Product Product)> SaveProduct(RequestProduct requestProduct, string productId, Func <string, HttpContent, Task <HttpResponseMessage> > saveFunc) { var stringContent = BuildStringContent(requestProduct); var response = await saveFunc(productId, stringContent); var responseProduct = await ReadContent <Product>(response); return(response.StatusCode, responseProduct); }