public async Task <IActionResult> Post([FromBody] DirectorViewModel model) { try { if (ModelState.IsValid) { var director = await _userManager.FindByEmailAsync(model.DirectorEmail); if (director == null) { director = new MeticulousUser() { UserName = model.DirectorEmail, Email = model.DirectorEmail, FirstName = model.DirectorFirstName, LastName = model.DirectorLastName }; var directorResult = await _userManager.CreateAsync(director, $"{model.DirectorLastName}{DateTime.Now.Year}!"); if (directorResult == IdentityResult.Success) { await _userManager.AddToRoleAsync(director, "Director"); model.DirectorId = director.Id; var newDirector = this._mapper.Map <DirectorViewModel, Director>(model); newDirector.created_on = DateTime.Now; newDirector.modified_on = DateTime.Now; _directorRepository.AddDirector(newDirector); if (_directorRepository.SaveAll()) { return(Created($"/api/directors/{newDirector.id}", _mapper.Map <Director, DirectorViewModel>(newDirector))); } } } } else { return(BadRequest(ModelState)); } } catch (Exception e) { this._logger.LogError($"Could not save Director data: {e}"); } return(BadRequest("Failed to save Director data")); }