public CreatePlayerResponse Create(CreatePlayerRequest request) { try { var isValidDate = DateTime.TryParseExact(request.BirthDate, _settings.Value.BirthDateFormat, null, System.Globalization.DateTimeStyles.None, out DateTime birthDate); if (!isValidDate || (DateTime.Now.Year - birthDate.Year) < _settings.Value.MinimumAge) { return new CreatePlayerResponse { Code = _responseSettings.Value.InvalidBirthDateFormatCode, Message = string.Format(_responseSettings.Value.InvalidBirthDateFormatMessage, _settings.Value.BirthDateFormat, _settings.Value.MinimumAge) } } ; var position = _positionDataManager.Get(request.PositionCode); if (string.IsNullOrWhiteSpace(request.PositionCode) || !position.Any()) { return new CreatePlayerResponse { Code = _responseSettings.Value.InvalidPositionCode, Message = _responseSettings.Value.InvalidPositionMessage } } ; if (!_teamDataManager.Get(request.TeamId.GetValueOrDefault()).Any()) { return new CreatePlayerResponse { Code = _responseSettings.Value.InvalidTeamCode, Message = _responseSettings.Value.InvalidTeamMessage } } ; _playerDataManager.Create(new DataAccess.Models.Player { FirstName = request.FirstName, MiddleName = request.MiddleName, LastName = request.LastName, Height = request.Height.GetValueOrDefault(), BirthDate = birthDate, PrimaryPositionId = position.First().Id, TeamId = request.TeamId.GetValueOrDefault() }); return(new CreatePlayerResponse { Code = _responseSettings.Value.SuccessfulResponseCode, Message = _responseSettings.Value.SuccessfulResponseMessage, }); } catch (Exception exception) { //TODO Add logging return(new CreatePlayerResponse { Code = _responseSettings.Value.ErrorOccuredCode, Message = _responseSettings.Value.ErrorOccuredMessage, }); } }