public async Task <IActionResult> Add([FromBody] VehicleViewModel vehicle)
        {
            var(EntitySuccessfullyAdded, Entity) = await _vehiclesRepository.Add(vehicle);

            if (EntitySuccessfullyAdded)
            {
                return(RedirectToAction(nameof(Get), new { Id = Entity.Id }));
            }
            return(Ok(new { status = "error", data = $"not possible add{vehicle.Name}" }));
        }
Example #2
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");
            }
        public async Task <(bool IsSuccess, Vehicle Vehicle)> InsertVehicle(Vehicle vehicle)
        {
            try
            {
                var response = await vehicleRepository.Add(vehicle);

                return(response);
            }
            catch (Exception ex)
            {
                logger.LogError(ex, ex.Message);
            }

            return(false, null);
        }