コード例 #1
0
        public Task <bool> Handle(TakeFreightCommand request, CancellationToken cancellationToken)
        {
            var freightRegister = new FreightsRegister(request.FreightId, request.TruckerId, request.Payment, (int)FreightDeliveryStatus.Pending);

            _freightRegisterRepository.AddFreightRegister(freightRegister);
            _freightRegisterRepository.SaveChanges();
            return(Task.FromResult(true));
        }
コード例 #2
0
        public async Task <bool> Handle(CompleteFreightCommand request, CancellationToken cancellationToken)
        {
            var freightRegister = await _freightsRegisterRepository.GetFreightsByFreightAndTrucker(request.TruckerId, request.FreightId);

            if (freightRegister == null)
            {
                return(false);
            }

            freightRegister.ChangeStatus(request.Status);
            if (request.Status == (int)FreightDeliveryStatus.WithIssues)
            {
                var random = new Random();
                freightRegister.AddPayment(freightRegister.Payment - random.Next(100, freightRegister.Payment - 100));
            }
            else if (request.Status == (int)FreightDeliveryStatus.Destroyed)
            {
                freightRegister.AddPayment(0);
            }

            _freightsRegisterRepository.SaveChanges();
            return(true);
        }