示例#1
0
        //[ApiExplorerSettings(IgnoreApi = true)]
        public async Task <ActionResult <ReturnObject> > NewProduct([FromBody] NewProductRequest newproduct)
        {
            DNewProductRequest ndf = new DNewProductRequest();

            _mapper.Map(newproduct, ndf);
            return(_mapper.Map <ReturnObject>(await _mediator.Send(new NewProduct(ndf))));
        }
        public async Task <DReturnObject> NewProduct(DNewProductRequest newproduct, CancellationToken cancellationToken)
        {
            DReturnObject ro = new DReturnObject();

            var validationResult = await _validator.ValidateAsync(newproduct, cancellationToken, ruleSet : RuleSets.ExecuteUpdateRules);

            if (!validationResult.IsValid)
            {
                ro.status  = status.invalidinput.ToString();
                ro.message = validationResult.ToString();
                return(ro);
            }

            var          proRepo = _unitOfWork.GetRepository <DProductData>();
            DProductData test    = (await proRepo.GetFirstOrDefaultAsync(
                                        predicate: a => a.title.ToLower().Equals(newproduct.title.ToLower()),
                                        disableTracking: false));

            if (test != null)
            {
                ro.status  = status.error.ToString();
                ro.message = $"The item: {newproduct.title} already exists with id {test.id}";
                return(ro);
            }

            var itemToAdd = new DProductData
            {
                title       = newproduct.title,
                description = newproduct.description,
                imagePath   = newproduct.imagePath,
                price       = newproduct.price
            };

            _unitOfWork.GetRepository <DProductData>().Insert(itemToAdd);
            await _unitOfWork.SaveChangesAsync();

            ro.data   = itemToAdd.id;
            ro.status = status.success.ToString();

            return(ro);
        }
示例#3
0
 public NewProduct(DNewProductRequest newproduct)
 {
     Newproduct = newproduct;
 }