public async Task <ActionResult <ProductResponseDto> > PostProduct(ProductRequestDto productRequestDto) { var product = _mapper.Map <Product>(productRequestDto); _context.Products.Add(product); await _context.SaveChangesAsync(); var client = _httpClientFactory.CreateClient(); var content = new StringContent( JsonSerializer.Serialize(product), Encoding.UTF8, "application/json"); try { client.PostAsync("http://localhost:6010/api/products", content); client.PostAsync("http://localhost:6020/api/products", content); client.PostAsync("http://localhost:6030/api/products", content); client.PostAsync("http://localhost:6040/api/products", content); } catch (Exception) { } return(CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product)); }
public async Task <IActionResult> UpdateProduct(ProductRequestDto productRequestDto) { return(Ok(await _mediator.Send(new UpdateProductCommand { ProductRequestDto = productRequestDto }))); }
public Task <ProductResponseDto> ProductInventory(ProductRequestDto request, string nameMethod) { //TODO: Michael, se realiza un Switch para que se pase el nombre del metodo que va ejecuta //en el servicio pero es metodo tiene que retornar un Tipo generico porque los metodos // post, put, delete retornar un tipo diferente. throw new System.NotImplementedException(); }
public async Task <ActionResult <int> > AddProduct(ProductRequestDto dto) { var command = _mapper.Map <AddProductCommand>(dto); var result = await _mediator.Send(command); return(Ok(result.Data)); }
public ProductUpdate(ProductRequestDto productRequestDto) { Id = productRequestDto.Id; Image = productRequestDto.Image; Description = productRequestDto.Description; Price = productRequestDto.Price; Composition = productRequestDto.Composition; IsActive = productRequestDto.IsActive; }
public async Task <IActionResult> PostProduct(ProductRequestDto productRequestDto) { var product = _mapper.Map <Product>(productRequestDto); _context.Products.Add(product); await _context.SaveChangesAsync(); return(new OkObjectResult(product.Id)); }
public void End2EndSerializationTest() { var dto = new ProductRequestDto { Filled = DateTime.Now, FullName = "Clinique Face Cream Hybrid SPF30", Brend = "Clinique", Product = new ProductRequirements() { SunscreenProduct = new List <SunscreenRequirements>() { new SunscreenRequirements() { SPF = 30 }, new SunscreenRequirements() { SPF = 50 }, }, WaterproofProduct = false }, Description = new List <Description>() { new Description { Price = 599, Currency = Currency.Rubles, Color = "White", Amount = "30", Code = "354720", Type = ProductsType.MassMarket }, new Description { Price = 25, Currency = Currency.Rubles, Amount = "15", Code = "1643742", Type = ProductsType.Lux }, } }; var tempFileName = Path.GetTempFileName(); try { ProductDtoHelper.WriteToFile(tempFileName, dto); var readDto = ProductDtoHelper.LoadFromFile(tempFileName); Assert.AreEqual(dto.Description.Count, readDto.Description.Count); Assert.AreEqual(dto.Filled, readDto.Filled); } finally { File.Delete(tempFileName); } }
public async Task <IActionResult> PostProduct(ProductRequestDto productRequestDto) { _logger.LogInformation($"Hit PostProduct with guid {productRequestDto.Guid}"); var product = _mapper.Map <Product>(productRequestDto); _context.Products.Add(product); await _context.SaveChangesAsync(); _logger.LogInformation($"SavedProduct with guid {productRequestDto.Guid}"); return(new OkObjectResult(product.Id)); }
public IActionResult AddProduct(ProductRequestDto productRequestDto) { var product = _productServiceManager.AddProduct(productRequestDto); if (!product) { return(BadRequest()); } return(Created("", null)); }
private void SetModelToUI(ProductRequestDto dto) { dateTimePicker1.Value = dto.Filled; textBox1.Text = dto.FullName; textBox2.Text = dto.Brend; listBox1.Items.Clear(); foreach (var e in dto.Description) { listBox1.Items.Add(e); } }
public async Task <IHttpActionResult> Create(ProductRequestDto requestDto) { var command = new CreateProductCommand(requestDto.Name, requestDto.Description, requestDto.Price, requestDto.DeliveryPrice); var result = await _productService.CreateProduct(command); if (!result.IsSuccess) { return(BadRequest(result.FailureReason)); } return(Ok()); }
public async Task <IActionResult> PostProduct(ProductRequestDto productRequestDto) { if (productRequestDto.Name.EndsWith('1')) { return(new ConflictResult()); } var product = _mapper.Map <Product>(productRequestDto); _context.Products.Add(product); await _context.SaveChangesAsync(); return(new OkObjectResult(product.Id)); }
public async Task <ActionResult> UpdateProduct(int id, ProductRequestDto dto) { var command = _mapper.Map <UpdateProductCommand>(dto, opt => { opt.Items[nameof(UpdateProductCommand.Id)] = id; }); var result = await _mediator.Send(command); if (result.IsSuccess) { return(Ok(result)); } return(BadRequest(result.ErrorMessage)); }
public async Task <ActionResult <ProductResponseDto> > PostProductOutbox(ProductRequestDto productRequestDto) { var product = _mapper.Map <Product>(productRequestDto); _context.Products.Add(product); var data = JsonSerializer.Serialize(product); AddProductMessage(data, "http://localhost:6010/api/products", Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod.Post); AddProductMessage(data, "http://localhost:6020/api/products", Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod.Post); AddProductMessage(data, "http://localhost:6030/api/products", Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod.Post); AddProductMessage(data, "http://localhost:6040/api/products", Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpMethod.Post); await _context.SaveChangesAsync(); return(CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product)); }
public async Task <ActionResult> PostProductSagaChoreography(ProductRequestDto productRequestDto) { var @event = new ProductCreated { Guid = Guid.NewGuid(), Id = 5, Name = "Twarożek" }; var product = _mapper.Map <Product>(productRequestDto); _context.Products.Add(product); var data = JsonSerializer.Serialize(product); var productEvent = new OutboxEvent(data, "ProductCreated"); _context.OutboxEvents.Add(productEvent); await _context.SaveChangesAsync(); return(Ok()); }
public async Task Create_Produt_Successfull_Test() { var productEntity = new ProductRequestDto { ProductId = Guid.NewGuid().ToString(), ProductName = "name fake", ProductDescription = " description Fake", CategoryId = Guid.NewGuid().ToString() }; var productRepoMock = new Mock <IProductRepository>(); productRepoMock.Setup(x => x.Insert(It.IsAny <ProductEntity>())) .Returns(() => { return(Task.FromResult(new ProductEntity { ProductId = Guid.NewGuid().ToString() })); }); }
public void RequestProduct(ProductRequestDto productRequestDto) { Guard.ArgNotNull(productRequestDto, nameof(productRequestDto)); IIdentity productIdentity = productRequestDto.ProductId.ToIdentity(); IIdentity customerIdentity = productRequestDto.CustomerId.ToIdentity(); IIdentity companyIdentity = productRequestDto.CompanyId.ToIdentity(); ISpecification <ProductRequest> requestByProductAndCustomer = new ProductRequestByProductSpecification(productIdentity) .And(new ProductRequestByCustomerSpecification(customerIdentity)) .And(new ProductRequestByCompanySpecification(companyIdentity)) .And(new PendingRequestSpecification()); ProductRequest existingProductRequest = requestRepository.GetEntity(requestByProductAndCustomer); if (existingProductRequest != null) { throw new Exception("Request already exists"); } TimeInterval timeInterval = new TimeInterval(productRequestDto.StartDate, productRequestDto.EndDate); ISpecification <ProductRequest> overlapingRequestSpecification = new ProductRequestOverlapsTimeIntervalSpecification(timeInterval) .And(new ProductRequestByCompanySpecification(companyIdentity)) .And(new ProductRequestByProductSpecification(productIdentity)); IEnumerable <ProductRequest> overlapingRequests = requestRepository.GetEntities(overlapingRequestSpecification) .ToList(); if (overlapingRequests.Any()) { throw new Exception($"Request overlaps with other {overlapingRequests.Count()} requests"); } ProductRequest productRequest = new ProductRequest(Identity.Create(Constants.ProductRequestsIds.Request1), productIdentity, customerIdentity, companyIdentity, timeInterval); requestRepository.Add(productRequest); }
public async Task <IActionResult> PutProduct(int id, ProductRequestDto productRequestDto) { if (id != productRequestDto.Id) { return(BadRequest()); } var product = _mapper.Map <Product>(productRequestDto); _context.Entry(product).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) when(!ProductExists(id)) { return(NotFound()); } return(NoContent()); }
public async Task <ActionResult> EditProduct([FromQuery] ProductIdRequestDto idRequestDto, [FromBody] ProductRequestDto productDto) { productDto.Id = idRequestDto.Id; await productsInteractor.EditProduct(productDto); return(Ok()); }
public async Task <ActionResult> Product(ProductRequestDto input) { #region Check Validations if (input.BrandOwnerdoc1 == null) { ModelState.AddModelError(nameof(ProductRequestDto.BrandOwnerdoc1), "حداقل یک مدرک مالکيت نام تجاری را وارد نمایید"); } if (input.BusinessLicense == null) { ModelState.AddModelError(nameof(ProductRequestDto.BusinessLicense), "پروانه بهره برداری را وارد نمایید"); } if (input.HealthLicensing1 == null) { ModelState.AddModelError(nameof(ProductRequestDto.HealthLicensing1), "حداقل یک مجوز بهداشتی و استاندارد را وارد نمایید"); } if (input.CostEstimation == null) { ModelState.AddModelError(nameof(ProductRequestDto.CostEstimation), "جدول برآورد هزینه را وارد نمایید"); } if (input.Commitment == null) { ModelState.AddModelError(nameof(ProductRequestDto.Commitment), "تعهد نامه ضوابط قيمت گذاری محصول را وارد نمایید"); } if (input.Catalogue == null) { ModelState.AddModelError(nameof(ProductRequestDto.Catalogue), "کاتالوگ محصولات مصرفی را وارد نمایید"); } if (input.Factor1 == null) { ModelState.AddModelError(nameof(ProductRequestDto.Factor1), "پيش فاکتور اول واحدهای توليدی مختلف را وارد نمایید"); } if (input.OtherDocument == null) { ModelState.AddModelError(nameof(ProductRequestDto.OtherDocument), "قرارداد ظرفيت خالی یا درصد توليد قراردادی را وارد نمایید"); } if (!ModelState.IsValid) { ViewBag.Result = false; ViewBag.Message = "لطفا اطلاعات ضروری را وارد نمایید"; return(View(input)); } #endregion #region Create Request var request = new ProductRequest { Password = input.Password, CompanyId = input.CompanyId, Title = input.Title, IranCode = input.IranCode, UserName = input.UserName, UserEmail = input.UserEmail, RegistrationDate = input.RegistrationDate }; #endregion #region Convert Uploaded Photos To Base64 And Add To Request await using (var ms = new MemoryStream()) { input.BrandOwnerdoc1.CopyTo(ms); var fileBytes = ms.ToArray(); request.BrandOwnerdoc = Convert.ToBase64String(fileBytes); request.BrandOwnerdocFileName = input.BrandOwnerdoc1.FileName; } if (input.BrandOwnerdoc2 != null) { await using var ms = new MemoryStream(); input.BrandOwnerdoc2.CopyTo(ms); var fileBytes = ms.ToArray(); request.BrandOwnerdoc = $"{request.BrandOwnerdoc}|{Convert.ToBase64String(fileBytes)}"; request.BrandOwnerdocFileName = $"{request.BrandOwnerdocFileName}|{input.BrandOwnerdoc2.FileName}"; } if (input.BrandOwnerdoc3 != null) { await using var ms = new MemoryStream(); input.BrandOwnerdoc3.CopyTo(ms); var fileBytes = ms.ToArray(); request.BrandOwnerdoc = $"{request.BrandOwnerdoc}|{Convert.ToBase64String(fileBytes)}"; request.BrandOwnerdocFileName = $"{request.BrandOwnerdocFileName}|{input.BrandOwnerdoc3.FileName}"; } await using (var ms = new MemoryStream()) { input.BusinessLicense.CopyTo(ms); var fileBytes = ms.ToArray(); request.BusinessLicense = Convert.ToBase64String(fileBytes); request.BusinessLicenseFileName = input.BusinessLicense.FileName; } await using (var ms = new MemoryStream()) { input.HealthLicensing1.CopyTo(ms); var fileBytes = ms.ToArray(); request.HealthLicensing = Convert.ToBase64String(fileBytes); request.HealthLicensingFileName = input.HealthLicensing1.FileName; } if (input.HealthLicensing2 != null) { await using var ms = new MemoryStream(); input.HealthLicensing2.CopyTo(ms); var fileBytes = ms.ToArray(); request.HealthLicensing = $"{request.HealthLicensing}|{Convert.ToBase64String(fileBytes)}"; request.HealthLicensingFileName = $"{request.HealthLicensingFileName}|{input.HealthLicensing2.FileName}"; } if (input.HealthLicensing3 != null) { await using var ms = new MemoryStream(); input.HealthLicensing3.CopyTo(ms); var fileBytes = ms.ToArray(); request.HealthLicensing = $"{request.HealthLicensing}|{Convert.ToBase64String(fileBytes)}"; request.HealthLicensingFileName = $"{request.HealthLicensingFileName}|{input.HealthLicensing3.FileName}"; } await using (var ms = new MemoryStream()) { input.CostEstimation.CopyTo(ms); var fileBytes = ms.ToArray(); request.CostEstimation = Convert.ToBase64String(fileBytes); request.CostEstimationFileName = input.CostEstimation.FileName; } await using (var ms = new MemoryStream()) { input.Commitment.CopyTo(ms); var fileBytes = ms.ToArray(); request.Commitment = Convert.ToBase64String(fileBytes); request.CommitmentFileName = input.Commitment.FileName; } await using (var ms = new MemoryStream()) { input.Catalogue.CopyTo(ms); var fileBytes = ms.ToArray(); request.Catalogue = Convert.ToBase64String(fileBytes); request.CatalogueFileName = input.Catalogue.FileName; } await using (var ms = new MemoryStream()) { input.Factor1.CopyTo(ms); var fileBytes = ms.ToArray(); request.Factor = Convert.ToBase64String(fileBytes); request.FactorFileName = input.Factor1.FileName; } if (input.Factor2 != null) { await using var ms = new MemoryStream(); input.Factor2.CopyTo(ms); var fileBytes = ms.ToArray(); request.Factor = $"{request.Factor}|{Convert.ToBase64String(fileBytes)}"; request.FactorFileName = $"{request.FactorFileName}|{input.Factor2.FileName}"; } await using (var ms = new MemoryStream()) { input.OtherDocument.CopyTo(ms); var fileBytes = ms.ToArray(); request.OtherDocument = Convert.ToBase64String(fileBytes); request.OtherDocumentFileName = input.OtherDocument.FileName; } #endregion #region Call Webservice And Return Result var result = await _asnafProductsApiClient.ProductAsync(request); if (result.Status == 1) { ViewBag.Result = true; ViewBag.Message = $"درخواست شما با موفقیت ثبت شد، شماره پیگیری {result.RequestId}"; } else { ViewBag.Result = false; ViewBag.Message = result.Message; } return(View(input)); #endregion }
public Task <ProductResponseDto> Create(ProductRequestDto request) { throw new System.NotImplementedException(); }
public bool Update(ProductRequestDto request) { throw new System.NotImplementedException(); }
public IActionResult PostProductRequest([FromBody] ProductRequestDto productRequestDto) { productRequestService.RequestProduct(productRequestDto); return(Ok()); }
public async Task <ActionResult <Pagination <ProductResponseDto> > > GetProducts([FromQuery] ProductRequestDto productRequestDto) { var productRepositoryObject = new ProductRepositoryObject { BrandId = productRequestDto?.BrandId, SortBy = productRequestDto?.SortBy, SortOrder = productRequestDto?.SortOrder, TypeId = productRequestDto?.TypeId, Skip = productRequestDto?.PageIndex ?? 1, Take = productRequestDto?.PageSize ?? 50, Search = productRequestDto.Search, IsPagingEnabled = true }; var products = await _productRepository.GetAllAsync(productRepositoryObject); var totalItems = await _productRepository.CountAsync(productRepositoryObject); var data = _mapper.Map <IReadOnlyList <Product>, IReadOnlyList <ProductResponseDto> >(products); var pagination = new Pagination <ProductResponseDto>(productRepositoryObject.Skip, productRepositoryObject.Take, totalItems, data); return(Ok(pagination)); }
public async Task EditProduct(ProductRequestDto productDto) { await productRepository.EditProduct(new ProductUpdate(productDto)); }