Example #1
0
            public async Task <Unit> Handle(Data request, CancellationToken cancellationToken)
            {
                Guid _Id     = Guid.NewGuid();
                var  vehicle = new Vehicle
                {
                    Id            = _Id,
                    Enrollment    = request.Enrollment,
                    Brand         = request.Brand,
                    Model         = request.Model,
                    RegularDriver = request.RegularDriver,
                    Status        = true
                };

                var findEnrollment = await _vehiclesRepository.FindBy(f => f.Enrollment == vehicle.Enrollment);

                if (findEnrollment != null & findEnrollment.Count > 0)
                {
                    throw new ExceptionHandler(HttpStatusCode.Conflict, new { mensaje = "Enrollment existing in the database" });
                }

                _vehiclesRepository.Add(vehicle);

                if (request.DriverList != null)
                {
                    foreach (var id in request.DriverList)
                    {
                        var findDriver = await _driverRepository.FindBy(f => f.Id == id);

                        if (!findDriver.Any())
                        {
                            throw new ExceptionHandler(HttpStatusCode.Conflict, new { mensaje = $"Driver does not exist: {id}." });
                        }

                        var driverVehicle = new DriverVehicle
                        {
                            Id        = Guid.NewGuid(),
                            DriverId  = id,
                            VehicleId = vehicle.Id
                        };
                        _driverVehicleRepository.Add(driverVehicle);
                    }
                }

                var value = await _vehiclesRepository.Commit();

                if (value > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("The record was not inserted");
            }
Example #2
0
            public async Task <Unit> Handle(Data request, CancellationToken cancellationToken)
            {
                var vehicle = _vehiclesRepository.GetSingle(request.Id);

                if (vehicle == null)
                {
                    throw new Exception("no record found");
                }
                _vehiclesRepository.Delete(vehicle);

                var result = await _vehiclesRepository.Commit();

                if (result > 0)
                {
                    return(Unit.Value);
                }

                throw new Exception("Records were not saved");
            }