public ActionResult <VehicleTypeResponseDTO> Post([FromBody] VehicleTypeRequestDTO value)
 {
     try
     {
         var vehType = _insertVehicleType.Execute(value);
         return(Created("api/vehicletypes/" + vehType.Id, vehType));
     }
     catch (EntityExistsException e)
     {
         return(Conflict(e.Message));
     }
     catch (Exception)
     {
         return(StatusCode(500, "Server error"));
     }
 }
 public IActionResult Put(int id, [FromBody] VehicleTypeRequestDTO value)
 {
     try
     {
         _updateVehicleType.Execute(id, value);
         return(NoContent());
     }
     catch (EntityNotFoundException e)
     {
         return(NotFound(e.Message));
     }
     catch (EntityExistsException e)
     {
         return(Conflict(e.Message));
     }
     catch (Exception)
     {
         return(StatusCode(500, "Server error"));
     }
 }
        public VehicleTypeResponseDTO Execute(VehicleTypeRequestDTO request)
        {
            var vehType         = new VehicleType();
            var existingVehType = AiContext.VehicleTypes
                                  .Where(x => x.Name == request.Name)
                                  .Where(x => x.IsDeleted == 0)
                                  .FirstOrDefault();

            if (existingVehType != null)
            {
                throw new EntityExistsException("Vehicle type");
            }
            vehType.Name = request.Name;
            AiContext.VehicleTypes
            .Add(vehType);
            AiContext.SaveChanges();
            return(new VehicleTypeResponseDTO
            {
                Id = vehType.Id,
                Name = vehType.Name
            });
        }
        public void Execute(int search, VehicleTypeRequestDTO request)
        {
            var vehType = AiContext.VehicleTypes
                          .Find(search);

            if (vehType == null || vehType.IsDeleted == 1)
            {
                throw new EntityNotFoundException("Vehicle type");
            }
            var existingVehType = AiContext.VehicleTypes
                                  .Where(x => x.Id != vehType.Id)
                                  .Where(x => x.Name == request.Name)
                                  .Where(x => x.IsDeleted == 0)
                                  .FirstOrDefault();

            if (existingVehType != null)
            {
                throw new EntityExistsException("Vehicle type");
            }
            vehType.Name       = request.Name;
            vehType.ModifiedAt = DateTime.Now;
            AiContext.SaveChanges();
        }