Esempio n. 1
0
        public async Task <IActionResult> CreateVehicle([FromBody] SaveVehicleResource vehicleResource)
        {
            if (!ModelState.IsValid)
            {
                Console.WriteLine(vehicleResource.Contact.Name);
                Console.WriteLine(vehicleResource.Id);
                foreach (var state in ModelState)
                {
                    foreach (var error in state.Value.Errors)
                    {
                        Console.WriteLine(error.ErrorMessage);
                    }
                }
                return(BadRequest(ModelState));
            }
            var vehicle = mapper.Map <SaveVehicleResource, Vehicle>(vehicleResource);

            var features = repository.GetAllFeature();

            vehicle.LastUpdate = DateTime.Now;
            repository.Add(vehicle);

            await unitOfWork.CompleteAsync();

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

            var res = (from item in features join value in vehicleResource.Features on item.Id equals value select item).ToList();

            foreach (Feature feature in res)
            {
                var modelToAdd = new VehicleFeature
                {
                    VehicleId = vehicle.Id,
                    FeatureId = feature.Id
                };
                repository.AddVehicleFeature(modelToAdd);
                vehicle.Features.Add(modelToAdd);
            }

            await unitOfWork.CompleteAsync();

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

            return(Ok(result));
        }