public void AddTestVehicles()
        {
            if (_vehicleRepo.GetAll().Count() > 0)
            {
                return;
            }

            Vehicle testVehicle1 = new Vehicle
            {
                Id           = 1,
                Name         = "Fleet Vehicle 1",
                Model        = "Ford Focus",
                LicensePlate = "JF3W2-98L",
                Status       = "In Use",
                Notes        = "ojasodjfowef ojaweofja woeifjo weofjoajoweofj aewofj"
            };

            Vehicle testVehicle2 = new Vehicle
            {
                Id           = 2,
                Name         = "Fleet Vehicle 2",
                Model        = "Ford Explorer",
                LicensePlate = "KWD2-777",
                Status       = "Not In Use",
                Notes        = "ojasodjfowef ojaweofja woeifjo weofjoajoweofj aewofj"
            };

            _vehicleRepo.Add(testVehicle1);
            _vehicleRepo.Add(testVehicle2);
        }
Example #2
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResources vehicleResources)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if ((await featureRepository.GetModelAsync(vehicleResources.ModelId)) == null)
            {
                ModelState.AddModelError("ModelId", "Invalid ModelId");
                return(BadRequest(ModelState));
            }

            var vehicle = mapper.Map <Vehicle>(vehicleResources);

            vehicle.LastUpdate = DateTime.Now;
            vehicleRepository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            vehicle = await vehicleRepository.GetVehicleAsync(vehicle.Id);

            var result = mapper.Map <VehicleResources>(vehicle);

            return(Ok(result));
        }
Example #3
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var model = await modelRepository.GetAsync(vehicleResource.ModelId);

            if (model == null)
            {
                ModelState.AddModelError("ModelId", "Invalid modelId.");
                return(BadRequest(ModelState));
            }

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdated = DateTime.Now;

            vehicleRepository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            vehicle = await vehicleRepository.GetAsync(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
Example #4
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource saveVehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var model = await _context.Models.FindAsync(saveVehicleResource.ModelId);

            if (model == null)
            {
                ModelState.AddModelError("ModelId", "Invalid Model Id");
                return(BadRequest(ModelState));
            }

            var vehicle = _mapper.Map <SaveVehicleResource, Vehicle>(saveVehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            _vehicleRepo.Add(vehicle);
            await _context.SaveChangesAsync();

            vehicle = await _vehicleRepo.GetVehicle(vehicle.Id);

            var result = _mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
Example #5
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);
                vehicle.LastUpdate = DateTime.Now;

                repository.Add(vehicle);
                await unitOfWork.CompleteAsync();

                vehicle = await repository.GetVehicle(vehicle.Id);

                var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

                return(Ok(result));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message + " " + ex.InnerException.ToString()));
            }
        }
Example #6
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            // throw new Exception();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var vehicle = _mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            //Saving Domain Model (Vehicle)
            _repo.Add(vehicle);
            await _uow.CompleteAsync();

            vehicle = await _repo.GetVehicle(vehicle.Id);


            var result = _mapper.Map <Vehicle, VehicleResource>(vehicle);

            //Returning Data Transfer Object (VehicleResource)
            return(Ok(result));
        }
Example #7
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // var model = await _context.Models.FindAsync(vehicleResource.ModelId);

            // if(model == null)
            // {
            //     ModelState.AddModelError("ModelId", "Invalid model id");
            //     return BadRequest(ModelState);
            // }

            var vehicle = _mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            // _context.Vehicles.Add(vehicle);
            _repo.Add(vehicle); // *** for OOP reason to decouple from DbContext, cuz it may change.
            await _uow.CompleteAsync();

            // Complete Vehicle object, incl. Make, Model obj etc.
            vehicle = await _repo.GetVehicleAsync(vehicle.Id);

            var result = _mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            // throw new Exception("ooppss!!");
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var model = await modelRepository.GetModel(vehicleResource.ModelId);

            if (model == null)
            {
                ModelState.AddModelError(nameof(vehicleResource.ModelId), "Invalid Model.");
                return(BadRequest(ModelState));
            }

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            vehicleRepository.Add(vehicle);
            await unitOfWork.Complete();

            vehicle = await vehicleRepository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
Example #9
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // var model = await context.Models.FindAsync(vehicleResource.ModelId);
            // if(model == null)
            // {
            //     ModelState.AddModelError("ModelId", "Invalid ModelId.");
            //     return BadRequest(ModelState);
            // }

            // In order to create a vehicle instance into database
            // input data type: VehicleResource
            // output data type: Vehicle
            // so we need to map VehicleResource to Vehicle
            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.UpdateTime = DateTime.Now;
            vehicleRepository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            // await context.Models.Include(m => m.Make).SingleOrDefaultAsync(m => m.Id == vehicle.ModelId);
            vehicle = await vehicleRepository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            // Model Validation For DataAnnotations
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Businness Logic Validation
            // if(true) {
            //     ModelState.AddModelError("..","error");
            //     return BadRequest(ModelState);
            // }
            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            repository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
Example #11
0
        public async Task <IActionResult> addVehicleAsync([FromBody] SaveVehicleResource vehicleBody)
        {
            //throw new Exception();
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                var newVehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleBody);
                newVehicle.LastUpdate = DateTime.Now;
                repository.Add(newVehicle);
                await unitOfWork.CompleteAsync();

                newVehicle = await repository.GetVehicleAsync(newVehicle.Id);

                var returnVehicle = mapper.Map <Vehicle, VehicleResource>(newVehicle);
                return(Ok(returnVehicle));
            }
            catch (System.Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Example #12
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            //throw new Exception ();
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var model = await repository.GetVehicle(vehicleResource.ModelId, includeRelated : false);

            /*if (model == null)
             * {
             *  ModelState.AddModelError("ModelId", "Invalid modelId.");
             *  return BadRequest(ModelState);
             * }*/
            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;
            repository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
        public async Task <IActionResult> CreatVehicle([FromBody] SaveVehicleResource vehicleResorce)
        {
            // throw new Exception();
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle> (vehicleResorce);

            vehicle.LastUpdate = DateTime.Now;
            repository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            // *** One Way Mapping to resource
            // await context.Models.Include(make=>make.Make).SingleOrDefaultAsync(makeId=>makeId.Id == vehicle.ModelId);
            // await context.Features.ToListAsync();

            // ** Recommentdation Way **//
            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource> (vehicle);

            return(Ok(result));
        }
Example #14
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            try
            {
                //throw new Exception();
                if (ModelState.IsValid)
                {
                    var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

                    vehicle.LastUpdate = DateTime.Now;

                    vehicleRepository.Add(vehicle);
                    await unitOfWork.CompleteAsync();

                    vehicle = await vehicleRepository.GetVehicle(vehicle.Id, true);

                    var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

                    return(Ok(result));
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                //ModelState.AddModelError($"error while creating Vehicle : { ex }", ex);
                return(BadRequest($"error while creating Vehicle : { ex }"));
            }
        }
Example #15
0
        public async Task <IActionResult> AddVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            // if(!ModelState.IsValid)
            // {
            //     this.HttpContext.Response.StatusCode = StatusCodes.Status422UnprocessableEntity;
            //     return Json(new {
            //         message = "Validation Error",
            //         errors = ModelState.Values.SelectMany(v => v.Errors)
            //     });
            // }

            var model = await repo.GetModel(vehicleResource.ModelId);

            if (model == null)
            {
                ModelState.AddModelError("ModelId", "Invalid ModelId");
                return(BadRequest(ModelState));
            }

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            repo.Add(vehicle);

            await uow.Complete();

            vehicle = await repo.GetVehicleAsync(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            //return Ok(result);
            return(Created(Request.Path + "/" + result.Id, result));
        }
Example #16
0
        /// <summary>
        /// <see cref="IDgtAppService"/>
        /// </summary>
        /// <returns><see cref="IDgtAppService"/></returns>
        public VehicleDTO AddNewVehicle(VehicleDTO vehicleDTO)
        {
            if (vehicleDTO == null)
            {
                throw new ArgumentNullException("vehicleDTO");
            }

            // Check vehicle license is unique
            var licenseSpec            = VehicleSpecifications.WithLicense(vehicleDTO.License);
            var repeatedLicenseVehicle = _vehicleRepository.AllMatching(licenseSpec);

            if (repeatedLicenseVehicle != null && repeatedLicenseVehicle.Any())
            {
                throw new InvalidOperationException(String.Format(CommonMessages.exception_ItemAlreadyExistsWithProperty, Names.Vehicle, Names.License, vehicleDTO.License));
            }

            // Cast dto to vehicle and save
            var vehicle = MaterializeVehicleFromDto(vehicleDTO);

            vehicle.GenerateNewIdentity();
            vehicle.CreatedDate = DateTime.Now;

            // Add habitual driver
            var driver = _driverRepository.Get(vehicleDTO.DriverId);

            if (driver == null)
            {
                throw new InvalidOperationException(String.Format(CommonMessages.exception_EntityWithIdNotExists,
                                                                  Names.Driver, vehicleDTO.DriverId));
            }

            // Check driver vehicles
            var driverVehicles = _vehicleDriverRepository.GetFiltered(vd => vd.DriverId == driver.Id);

            if (driverVehicles.Count() > 10)
            {
                throw new InvalidOperationException(String.Format(CommonMessages.exception_DriverMaxVehicles,
                                                                  driver.Identifier, 10));
            }

            // Add VehicleDriver item
            var vehicleDriver = new VehicleDriver()
            {
                VehicleId = vehicle.Id, DriverId = driver.Id
            };

            vehicleDriver.GenerateNewIdentity();
            vehicleDriver.CreatedDate = DateTime.Now;

            // Validate items and save
            vehicle.Validate();
            vehicleDriver.Validate();

            _vehicleRepository.Add(vehicle);
            _vehicleRepository.UnitOfWork.Commit();
            _vehicleDriverRepository.Add(vehicleDriver);
            _vehicleDriverRepository.UnitOfWork.Commit();

            return(vehicle.ProjectedAs <VehicleDTO>());
        }
Example #17
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // var model = await context.Models.FindAsync(vehicleResource.ModelId);
            // if (model == null)
            // {
            //     ModelState.AddModelError("ModelId", "Invalid modelId");
            //     return BadRequest(ModelState);
            // }

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            repository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            vehicle = await repository.GetVehicle(vehicle.Id);

            // vehicle = await context.Vehicles
            // .Include(v => v.Features)
            //     .ThenInclude(vf => vf.Feature)
            // .Include(v => v.Model)
            //     .ThenInclude(m => m.Make)
            // .SingleOrDefaultAsync(v => v.Id == vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            // ha pl névnek számot ad meg akkor modelstate az hamis
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            /*var model = await context.Models.FindAsync(vehicleResource.ModelId);
             * if (model == null)
             * {
             *  ModelState.AddModelError("ModelId", "Invalid modelid");
             *  return BadRequest(ModelState);
             * }*/

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            repository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            //  use data anotation for input validation
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var model = await context.Models.FindAsync(vehicleResource.ModelId);

            if (model == null)
            {
                ModelState.AddModelError("ModelId", "Invalid model ID");
                return(BadRequest(ModelState));
            }
            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            _repository.Add(vehicle);
            await _unitOfWork.CompleteAsync();

            vehicle = await _repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // var model = await context.Models.FindAsync(vehicleResource.ModelId);
            // if (model == null)
            // {
            //     ModelState.AddModelError("ModelId", "Invalid modelId.");
            //     return BadRequest(ModelState);
            // }

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            repository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            //Below we load remaining assosiated propeties of the object, but it's ugly (we're strongly depend on EF) so DON'T USE IT
            // EF will automatically asossiate returned model with vehicle object( no need to assaigned result to vehicle.model)
            //await context.Models.Include(m => m.Make).SingleOrDefaultAsync(m => m.Id == vehicle.Id);

            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
Example #21
0
        public IActionResult Post([FromBody] Vehicle vehicle)
        {
            if (vehicle == null)
            {
                return(BadRequest());
            }

            // Check for Model state
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            else
            {
                try
                {
                    vehicle = _vehicleRepository.Add(vehicle);
                    if (vehicle == null)
                    {
                        return(BadRequest());
                    }
                    else
                    {
                        return(CreatedAtRoute("GetById", new { id = vehicle.Id }, vehicle));
                    }
                }
                catch (Exception ex)
                {
                    return(StatusCode((int)HttpStatusCode.InternalServerError));
                }
            }
        }
        [HttpPost] // Create
        //[Authorize]
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            // mapper convert VehicleResource to Vehicle
            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            // set update time
            vehicle.LastUpdate = DateTime.Now;
            // add vehicle to database
            // context.Vehicles.Add(vehicle);
            repository.Add(vehicle);
            // save database changes
            await unitOfWork.Complete();

            // reassign the vehicle object with all the properties inside
            vehicle = await repository.GetVehicle(vehicle.Id);

            // mapper convert Vehicle to VehicleResource
            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
Example #23
0
        public async Task <IActionResult> Post([FromBody] VehicleViewModel vehicleVm)
        {
            if (vehicleVm == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var newItem = Mapper.Map <Vehicle>(vehicleVm);

            newItem.SetCreation(UserName);
            _vehicleRepository.Add(newItem);
            if (!await UnitOfWork.SaveAsync())
            {
                return(StatusCode(500, "保存时出错"));
            }

            var vm = Mapper.Map <VehicleViewModel>(newItem);

            return(CreatedAtRoute("GetVehicle", new { id = vm.Id }, vm));
        }
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // validation which is kind of a overkill  will get through this later

            /*var model=  await context.Models.FindAsync(vehicleResource.ModelId);
             *
             * if(model==null){
             *  ModelState.AddModelError("ModelId","Invalid modelId.");
             *  return BadRequest(ModelState);eb
             * }*/

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle> (vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            repository.Add(vehicle);

            await unitOfWork.CompleteAsync();

            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource> (vehicle);

            return(Ok(result));
        }
Example #25
0
        public async Task <IActionResult> Create([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // how to implement business
            // if (true)
            // {
            //     ModelState.AddModelError("key", "error message");
            //     return BadRequest(ModelState);
            // }
            // var model = await context.Models.FindAsync(vehicleResource.ModelId);
            // if (model == null){
            //     ModelState.AddModelError("ModelId", "Invalid modelId.");
            //     return BadRequest(ModelState);
            // }

            Vehicle vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdated = DateTime.Now;

            repository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(CreatedAtRoute("GetVehicle", new { id = vehicle.Id }, result));
        }
      public async Task <IActionResult> CreateVehicle([FromBody] VehicleResource vehicleResource)
      {
          if (!ModelState.IsValid)
          {
              return(BadRequest(ModelState));
          }

          var model = await vegaDbContext.Models.FindAsync(vehicleResource.Id);

          if (model == null)
          {
              ModelState.AddModelError("Model", "Invalid ModelId");
              return(BadRequest(ModelState));
          }
          var vehicle = mapper.Map <VehicleResource, Vehicle>(vehicleResource);

          vehicle.LastUpdate = DateTime.Now;

          repository.Add(vehicle);
          await vegaDbContext.SaveChangesAsync();

          vehicle = await repository.GetVehicle(vehicle.Id); /*await vegaDbContext.Vehicles.Include(v=>v.Features)
                                                              * .ThenInclude(vf=>vf.Feature)
                                                              * .Include(m=>m.Model)
                                                              * .ThenInclude(m=>m.Make)
                                                              * .SingleOrDefaultAsync(v=>v.Id == vehicle.Id)*/;
          var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

          return(Ok(result));
      }
Example #27
0
        // [Authorize]
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // var model = await context.Models.FindAsync(vehicleResource.ModelId);
            // if (model == null)
            // {
            //     ModelState.AddModelError("ModelId", "Invalid ModelId");
            //     return BadRequest(ModelState);
            // }

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;

            repository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            // Repository call
            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
Example #28
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResources VR)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //var model = await context.Models.FindAsync(VR.ModelId);
            var model = await repository.GetModel(VR.ModelId);

            if (model == null)
            {
                ModelState.AddModelError("ModelId", "Invalid Model");
                return(BadRequest(ModelState));
            }

            var vehicle = mapper.Map <SaveVehicleResources, Vehicle>(VR);

            vehicle.LastUdpate = DateTime.Now;
            //context.Vehicles.Add(vehicle);
            repository.Add(vehicle);
            await unitofWork.CompleteAsync();

            // This will include all the other name properties form id
            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResources>(vehicle);

            return(Ok(result));
        }
Example #29
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // Complex business validation goes here
            // if (true)
            // {
            //     ModelState.AddModelError("...", "error");
            //     return BadRequest(ModelState);
            // }

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            vehicle.LastUpdate = DateTime.Now;
            repository.Add(vehicle);
            await uow.CompleteAsync();

            // eager load
            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            //throw new Exception();

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            // if(true)
            // {
            //     ModelState.AddModelError("..", "error");
            //     return BadRequest(ModelState);
            // }

            // var model = await context.Models.FindAsync(vehicleResource.ModelId);
            // if (model == null)
            // {
            //     ModelState.AddModelError("ModelId", "Invalid modelId.");
            //     return BadRequest(ModelState);
            // }

            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            repository.Add(vehicle);
            await unitOfWork.CompleteAsync();

            vehicle = await repository.GetVehicle(vehicle.Id);

            var result = mapper.Map <Vehicle, VehicleResource>(vehicle);

            return(Ok(result));
        }