Exemplo n.º 1
0
            public async Task <ResponseResult> Handle(Command request, CancellationToken cancellationToken)
            {
                if (request.Items == null || request.Items.Count() == 0)
                {
                    return(ResponseResult.Error("暂无请求参数数据."));
                }

                request.Items = request.Items.Distinct().ToList();

                using (var scope = _databaseScopeFactory.CreateWithTransaction())
                {
                    List <Item> handledItems = new List <Item>();

                    foreach (var t in request.Items)
                    {
                        if (!handledItems.Any(q => q.MaterialId == t.MaterialId && q.ProductId == t.ProductId))
                        {
                            await _productDetailRepository.AddAsync(
                                new QueryStack.Models.ProductDetail()
                            {
                                ProductId  = t.ProductId,
                                MaterialId = t.MaterialId,
                                Quantity   = t.Quantity,
                            }, request.UserId);

                            scope.SaveChanges();
                            handledItems.Add(t);
                        }
                    }
                }

                return(ResponseResult.Ok());
            }
Exemplo n.º 2
0
            private async Task UpdateProductMaterials(Command request, CancellationToken cancellationToken)
            {
                string errorMsg = string.Empty;

                request.Materials = request.Materials.Distinct().ToList();

                foreach (var m in request.Materials)
                {
                    MService.QueryStack.Models.ProductDetail entity = new MService.QueryStack.Models.ProductDetail()
                    {
                        Id         = m.Id,
                        MaterialId = m.MaterialId,
                        ProductId  = request.Id,
                        Quantity   = m.Quantity,
                    };
                    if (string.IsNullOrEmpty(entity.Id))
                    {
                        await _productDetailRepository.AddAsync(entity, request.UserId);
                    }
                    else
                    {
                        await _productDetailRepository.UpdateAsync(entity, request.UserId);
                    }
                }
            }
Exemplo n.º 3
0
            private async Task AddProductMaterials(Command request, CancellationToken cancellationToken)
            {
                string errorMsg = string.Empty;

                List <MaterialItem> handledItems = new List <MaterialItem>();

                foreach (var t in request.Materials)
                {
                    if (!handledItems.Any(q => q.MaterialId == t.MaterialId))
                    {
                        await _productDetailRepository.AddAsync(
                            new MService.QueryStack.Models.ProductDetail()
                        {
                            ProductId  = request.ProductId,
                            MaterialId = t.MaterialId,
                            Quantity   = t.Quantity,
                        }, request.UserId);

                        handledItems.Add(t);
                    }
                }
            }