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"));
        }