public Result <User> CreateUser(CreateUserOptions options) { if (options == null) { return(Result <User> .CreateFailed(StatusCode.BadRequest, "Null options")); } var user = new User(); if (!string.IsNullOrWhiteSpace(options.FirstName)) { user.FirstName = options.FirstName; } else { return(Result <User> .CreateFailed(StatusCode.BadRequest, "First name was null or empty")); } if (!string.IsNullOrWhiteSpace(options.LastName)) { user.LastName = options.LastName; } else { return(Result <User> .CreateFailed(StatusCode.BadRequest, "Last name was null or empty")); } if (string.IsNullOrWhiteSpace(options.Email)) { return(Result <User> .CreateFailed(StatusCode.BadRequest, "Email was null or empty")); } options.Email = options.Email.Trim(); if (IsValidEmail(options.Email)) { user.Email = options.Email; } else { return(Result <User> .CreateFailed(StatusCode.BadRequest, "Email submitted was not a valid email address")); } dbContext.Add(user); try { if (dbContext.SaveChanges() > 0) { return(Result <User> .CreateSuccessful(user)); } else { return(Result <User> .CreateFailed(StatusCode.InternalServerError, "User could not be created")); } } catch (Exception ex) { return(Result <User> .CreateFailed(StatusCode.InternalServerError, ex.ToString())); } }