public IActionResult Create(Defect defect) { if (defectsRepository.Exists(defect)) { ModelState.AddModelError(string.Empty, "Defect already exists"); } if (ModelState.IsValid) { foreach (Photo photo in defect.Photos) { photo.Path = SaveFile(photo.PhotoFile); } defectsRepository.Create(defect); return(RedirectToAction("Index")); } return(View(defect)); }
public async Task <IActionResult> Create([FromBody] DefectCreateDTO defectCreateDTO) { var location = GetControllerActionNames(); try { this.logger.LogInfo($"{location}: Pack creation Attempted"); if (defectCreateDTO == null) { this.logger.LogWarn($"{location}: Empty request was submitted"); return(BadRequest(ModelState)); } if (!ModelState.IsValid) { this.logger.LogWarn($"{location}: Pack Data was Incomplete"); return(BadRequest(ModelState)); } // defectCreateDTO.DateCreated = DateTime.Now;//.ToString(); var defect = this.mapper.Map <Defect>(defectCreateDTO); //foreach( var meas in measurementListCreateDTO) //{ // var measurement = this.mapper.Map<Measurement>(meas); // var measrementtocreate = await measurementRepository.Create(measurement); //} var isGood = await defectRepository.Create(defect); if (!isGood) { return(InternalError($"{location}: defect creation failed")); } this.logger.LogInfo($"{location}: Pack creation was created"); this.logger.LogInfo($"{location}: {defect}"); return(Created("Create", new { defect })); //return (IActionResult)pack; } catch (Exception e) { return(InternalError($"{location}: {e.Message} - {e.InnerException}")); } }
/// <summary> /// Register defect with exiciting id user and car /// </summary> /// <param name="registerDefectDto"></param> /// <returns>return register defect mapped to DefectDto</returns> public async Task <DefectDto> RegisterDefectAsync(RegisterDefectDto registerDefectDto) { var user = await userRepository.FindByIdDetailsAsync(registerDefectDto.UserId); var car = await carRepository.FindByIdAsync(registerDefectDto.CarId); if (user == null || car == null) { return(null); } Defect defect = new Defect(user.UserId, car.CarId, user.FirstName, user.LastName, user.MobileNumber, car.RegistrationNumber, registerDefectDto.Description, Status.Reported); defectRepository.Create(defect); await defectRepository.SaveChangesAsync(); return(mapper.Map <DefectDto>(defect)); }