コード例 #1
0
ファイル: UserService.cs プロジェクト: kthanaselos/Crowdfund
        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()));
            }
        }