示例#1
0
        public async Task <ActionResult <ReturnObject> > UpdateProduct([FromBody] UpdateProductDataRequest updateproduct)
        {
            DUpdateProductDataRequest prod = new DUpdateProductDataRequest();

            _mapper.Map(updateproduct, prod);
            return(_mapper.Map <ReturnObject>(await _mediator.Send(new UpdateProduct(prod))));
        }
        public async Task <DReturnObject> UpdateProduct(DUpdateProductDataRequest updateproduct, CancellationToken cancellationToken)
        {
            DReturnObject ro = new DReturnObject();

            var prodRepo = await _unitOfWork.GetRepository <DProductData>().GetFirstOrDefaultAsync(
                predicate: a => a.id.Equals(updateproduct.id));

            if (prodRepo is null)
            {
                ro.status  = status.error.ToString();
                ro.message = $"Product with id: {updateproduct.id.ToString()} was not found.";
                return(ro);
            }

            var config = new MapperConfiguration(cfg => {
                cfg.CreateMap <DUpdateProductDataRequest, DProductData>();
            });
            var mapper = new Mapper(config);

            mapper.Map(updateproduct, prodRepo);

            var validationResult = await _updatevalidator.ValidateAsync(updateproduct, cancellationToken, ruleSet : RuleSets.ExecuteUpdateRules);

            if (!validationResult.IsValid)
            {
                ro.status  = status.error.ToString();
                ro.message = validationResult.ToString();
                // return ro;
            }
            else
            {
                var repo = _unitOfWork.GetRepository <DProductData>();
                repo.Update(prodRepo);
                await _unitOfWork.SaveChangesAsync();

                ro.data   = updateproduct;
                ro.status = status.success.ToString();
            }

            return(ro);
        }
示例#3
0
 public UpdateProduct(DUpdateProductDataRequest prd)
 {
     Prd = prd;
 }