コード例 #1
0
ファイル: Program.cs プロジェクト: advi1012/AVG
        // Server side handler for the setPreferredSupplierForProduct RPC
        public override async Task <Empty> setPreferredSupplierForProduct(setPreferredSupplierForProductRequest request, ServerCallContext context)
        {
            //var scoped = _serviceProvider.CreateScope();
            //var supplierService = scoped.ServiceProvider.GetRequiredService<SupplierService>();
            //var supplier = supplierService.findById(request.PrefSupplier.Id);
            //var product = supplierService.findProductById(request.ProductReq.Id);
            //supplierService.setPreferredSupplierForProduct(supplier, product, request.ProductReq.Id);
            //return null;

            if (!products.Contains(request.ProductReq))
            {
                throw new UnknownProductException();
            }

            if (!suppliers.Contains(request.PrefSupplier))
            {
                throw new UnknownSupplierException();
            }

            foreach (var product in products)
            {
                if (product.Id == request.ProductReq.Id)
                {
                    lock (myLock)
                    {
                        Task.Run(() =>
                                 product.Preferredsupplier = request.PrefSupplier.Id);
                    }
                    return(await Task.FromResult(new Empty { Info = 1 }));
                }
            }

            return(await Task.FromResult(new Empty { Info = 0 }));
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: advi1012/AVG
            // Realisierung von setPreferredSupplierForProduct
            public async Task setPreferredSupplierForProduct(setPreferredSupplierForProductRequest x)
            {
                Console.WriteLine("***** Task setPreferredSupplierForProduct *****");
                var result = await _client.setPreferredSupplierForProductAsync(x);

                // 0 ist der Defaultwert für int32 Felder
                if (result.Info != 1)
                {
                    throw new Exception("An unknown error has occured. Please contact the developers for further help.");
                }
            }