public IActionResult UpdateProductPacking(ProductPackingType productPackingType)
        {
            try
            {
                var _productPackingType = _repository.ProductPackingType.FindByCondition(c =>
                                                                                         (c.Id == productPackingType.Id)).FirstOrDefault();
                if (_productPackingType == null)
                {
                    return(BadRequest("نوع بسته بندی انتخابی وجود ندارد!"));
                }

                _productPackingType.Price   = productPackingType.Price;
                _productPackingType.Weight  = productPackingType.Weight;
                _productPackingType.Mdate   = DateTime.Now.Ticks;
                _productPackingType.MuserId = ClaimPrincipalFactory.GetUserId(User);
                _repository.ProductPackingType.Update(_productPackingType);
                _repository.Save();
                return(NoContent());
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(BadRequest(e.Message));
            }
        }
Ejemplo n.º 2
0
        public IActionResult InsertProductPackingList(ProductPackingListInsertDto input)
        {
            try
            {
                var validator = new ParamValidator();
                validator.ValidateNull(input.Title,
                                       General.Messages_.NullInputMessages_.GeneralNullMessage("نام"))
                .ValidateNull(input.PackingTypeId,
                              General.Messages_.NullInputMessages_.GeneralNullMessage("کد بسته بندی"))
                .Throw(General.Results_.FieldNullErrorCode());

                var packingType = _repository.PackingType.FindByCondition(c =>
                                                                          c.Id == input.PackingTypeId && c.DaDate == null && c.Ddate == null).FirstOrDefault();

                if (packingType == null || packingType.Count < 1)
                {
                    throw new BusinessException(XError.BusinessErrors.InvalidPackingType());
                }

                var packingList = new ProductPackingTypeList
                {
                    Cdate   = DateTime.Now.Ticks,
                    CuserId = ClaimPrincipalFactory.GetUserId(User),
                    Title   = input.Title,
                };
                input.ProductIdList.ForEach(c =>
                {
                    var pp = new ProductPackingType
                    {
                        Cdate          = DateTime.Now.Ticks,
                        CuserId        = ClaimPrincipalFactory.GetUserId(User),
                        PackinggTypeId = input.PackingTypeId,
                        ProductId      = c,
                        Price          = packingType.Price
                    };
                    packingList.ProductPackingType.Add(pp);
                });
                packingType.Count -= 1;
                _repository.ProductPackingTypeList.Create(packingList);
                _repository.PackingType.Update(packingType);

                _repository.Save();
                _logger.LogData(MethodBase.GetCurrentMethod(), packingList.Id, null, input);
                return(Ok(packingType.Id));
            }
            catch (Exception e)
            {
                _logger.LogError(e, MethodBase.GetCurrentMethod(), input);
                return(BadRequest(e.Message));
            }
        }
        public IActionResult InsertProductPackingType(ProductPackingType productPackingType)
        {
            try
            {
                if (_repository.ProductPackingType.FindByCondition(c =>
                                                                   (c.ProductId == productPackingType.ProductId) && (c.PackinggTypeId == productPackingType.PackinggTypeId)).Any())
                {
                    return(BadRequest("بسته بندی انتخابی برای محصول مورد نظر قبلا ثبت شده است"));
                }

                productPackingType.Cdate   = DateTime.Now.Ticks;
                productPackingType.CuserId = ClaimPrincipalFactory.GetUserId(User);
                _repository.ProductPackingType.Create(productPackingType);
                _repository.Save();
                return(NoContent());
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message);
                return(BadRequest(e.Message));
            }
        }
Ejemplo n.º 4
0
        public IActionResult UpdateProductPackingList(ProductPackingListInsertDto input)
        {
            try
            {
                var validator = new ParamValidator();
                validator.ValidateNull(input.Title,
                                       General.Messages_.NullInputMessages_.GeneralNullMessage("نام"))
                .ValidateNull(input.PackingTypeId,
                              General.Messages_.NullInputMessages_.GeneralNullMessage("کد بسته بندی"))
                .ValidateNull(input.PackingTypeId,
                              General.Messages_.NullInputMessages_.GeneralNullMessage("آیدی"))
                .Throw(General.Results_.FieldNullErrorCode());

                var packingList = _repository.ProductPackingTypeList.FindByCondition(c => c.Id == input.Id)
                                  .FirstOrDefault();

                if (packingList == null)
                {
                    throw new BusinessException(XError.GetDataErrors.NotFound());
                }

                packingList.Title   = input.Title;
                packingList.Mdate   = DateTime.Now.Ticks;
                packingList.MuserId = ClaimPrincipalFactory.GetUserId(User);



                var toBeDeleted = _repository.ProductPackingType
                                  .FindByCondition(c => c.ProductPackingTypeListId == input.Id).ToList();

                toBeDeleted.ForEach(c =>
                {
                    c.Ddate   = DateTime.Now.Ticks;
                    c.DuserId = ClaimPrincipalFactory.GetUserId(User);
                });
                _repository.ProductPackingType.UpdateRange(toBeDeleted);

                var InDbPackingType = _repository.PackingType.FindByCondition(c => c.Id == toBeDeleted.Select(c => c.PackinggTypeId).FirstOrDefault()).FirstOrDefault();
                if (InDbPackingType.Id == input.PackingTypeId)
                {
                    input.ProductIdList.ForEach(c =>
                    {
                        var pp = new ProductPackingType
                        {
                            Cdate          = DateTime.Now.Ticks,
                            CuserId        = ClaimPrincipalFactory.GetUserId(User),
                            PackinggTypeId = input.PackingTypeId,
                            ProductId      = c,
                            Price          = InDbPackingType.Price
                        };
                        packingList.ProductPackingType.Add(pp);
                    });
                }
                else
                {
                    var packingType = _repository.PackingType.FindByCondition(c =>
                                                                              c.Id == input.PackingTypeId && c.DaDate == null && c.Ddate == null).FirstOrDefault();
                    if (packingType == null || packingType.Count < 1)
                    {
                        throw new BusinessException(XError.BusinessErrors.InvalidPackingType());
                    }

                    input.ProductIdList.ForEach(c =>
                    {
                        var pp = new ProductPackingType
                        {
                            Cdate          = DateTime.Now.Ticks,
                            CuserId        = ClaimPrincipalFactory.GetUserId(User),
                            PackinggTypeId = input.PackingTypeId,
                            ProductId      = c,
                            Price          = packingType.Price
                        };
                        packingList.ProductPackingType.Add(pp);
                    });
                    packingType.Count -= 1;
                    _repository.PackingType.Update(packingType);
                }

                _repository.ProductPackingTypeList.Update(packingList);

                _repository.Save();
                _logger.LogData(MethodBase.GetCurrentMethod(), General.Results_.SuccessMessage(), null, input);
                return(Ok(General.Results_.SuccessMessage()));
            }
            catch (Exception e)
            {
                _logger.LogError(e, MethodBase.GetCurrentMethod(), input);
                return(BadRequest(e.Message));
            }
        }