Esempio n. 1
0
        public DocumentPosition Map(EditDocumentPositionRequest request)
        {
            if (request == null)
            {
                return(null);
            }

            DocumentPosition documentPosition = new DocumentPosition
            {
                Id = request.Id,
                PositionNumberText = request.PositionNumberText,
                ArticleNameExtern  = request.ArticleNameExtern,
                Quantity           = request.Quantity,
                ScaleUnitQty       = request.ScaleUnitQty,
                ScaleUnitType      = request.ScaleUnitType,
                ScaleUnit          = request.ScaleUnit,
                DeliveryQty        = request.DeliveryQty,
                IsPartialDelivered = request.IsPartialDelivered,
                PriceBase          = request.PriceBase,
                PricePerUnit       = request.PricePerUnit,
                PriceTotal         = request.PricePerUnit,
                SalesTaxPercent    = request.SalesTaxPercent,
                ParentId           = request.ParentId,
                DocumentId         = request.DocumentId,
                ArticleId          = request.ArticleId,
            };

            return(documentPosition);
        }
Esempio n. 2
0
        public async Task <DocumentPositionResponse> EditDocumentPositionAsync(EditDocumentPositionRequest request)
        {
            DocumentPosition existingRecord = await _documentPositionRespository.GetAsync(request.Id);

            if (existingRecord == null)
            {
                throw new ArgumentException($"Entity with {request.Id} is not present");
            }

            if (request.ArticleId != null)
            {
                Article existingArticle = await _articleRespository.GetAsync(request.ArticleId);

                if (existingArticle == null)
                {
                    throw new NotFoundException($"Article with {request.ArticleId} is not present");
                }
            }

            if (request.ParentId != null)
            {
                DocumentPosition existingDocumentPosition = await _documentPositionRespository.GetAsync(request.ParentId);

                if (existingDocumentPosition == null)
                {
                    throw new NotFoundException($"Parent DocumentPosition with {request.ParentId} is not present");
                }
            }

            if (request.DocumentId != null)
            {
                Document existingDocument = await _documentRespository.GetAsync(request.DocumentId);

                if (existingDocument == null)
                {
                    throw new NotFoundException($"Document with {request.DocumentId} is not present");
                }
            }

            DocumentPosition entity = _documentPositionMapper.Map(request);
            DocumentPosition result = _documentPositionRespository.Update(entity);

            int modifiedRecords = await _documentPositionRespository.UnitOfWork.SaveChangesAsync();

            _logger.LogInformation(Logging.Events.Edit, Messages.NumberOfRecordAffected_modifiedRecords, modifiedRecords);
            _logger.LogInformation(Logging.Events.Edit, Messages.ChangesApplied_id, result?.Id);

            return(_documentPositionMapper.Map(result));
        }