コード例 #1
0
        public async Task <ActionResult <IConnectRootResponse <IUser> > > GetUser([Required, EmailAddress, StringLength(200)] string email)
        {
            IConnectRootResponse <IUser> response = new ConnectRootResponse <IUser>();

            try
            {
                this._cpLogger.LogInfo($">>[UsersController->GetUser][Email: {email}]: START.");

                response = await this._usersService.GetUser(email);

                this._cpLogger.LogInfo($">> [UsersController->GetUser][Email: {email}]: END, Response message: {response.Message}, code: {response.ResponseCode}");

                if (response.Status.Equals(ConnectConstants.Failed))
                {
                    return(BadRequest(response));
                }
                else
                {
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                response.Message      = ConnectResponseCodes.CP001_MESSAGE;
                response.ResponseCode = ConnectResponseCodes.CP001;
                this._cpLogger.LogError($">> [UsersController->GetUser][Email: {email}]: Exception - {ex.Message}.");
                this._cpLogger.LogError($">> [UsersController->GetUser][Email: {email}]: END, Response message: {response.Message}, code: {response.ResponseCode}");
                return(StatusCode(StatusCodes.Status500InternalServerError, response));
            }
        }
コード例 #2
0
        public async Task <ActionResult <IConnectRootResponse <IResponseItem <IConnectGroupInfo> > > > GetGroupInfos()
        {
            IConnectRootResponse <IResponseItem <IConnectGroupInfo> > response = new ConnectRootResponse <IResponseItem <IConnectGroupInfo> >();

            try
            {
                this._cpLogger.LogInfo($">>[GroupsController->GetGroupInfos] : START.");

                response = await this._connectGroupInfoService.GetGroupInfos();

                this._cpLogger.LogInfo($">> [GroupsController->GetGroupInfos]: END, Response message: {response.Message}, code: {response.ResponseCode}");

                if (response.Status.Equals(ConnectConstants.Failed))
                {
                    return(BadRequest(response));
                }
                else
                {
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                response.Message      = ConnectResponseCodes.CP001_MESSAGE;
                response.ResponseCode = ConnectResponseCodes.CP001;
                this._cpLogger.LogError($">> [GroupsController->GetGroupInfos]: Exception - {ex.Message}.");
                this._cpLogger.LogError($">> [GroupsController->GetGroupInfos]: END, Response message: {response.Message}, code: {response.ResponseCode}");
                return(StatusCode(StatusCodes.Status500InternalServerError, response));
            }
        }
コード例 #3
0
        public async Task <IConnectRootResponse <IConnectToken> > GetLogin(string email)
        {
            try
            {
                IConnectRootResponse <IConnectToken> response = new ConnectRootResponse <IConnectToken>();
                IConnectToken resposeToken = new ConnectToken();

                var userInfo = await this._connectDatabaseRepository.GetUserAsync(email);

                if (userInfo.Status.Equals(ConnectConstants.Success))
                {
                    var tokenHandler = new JwtSecurityTokenHandler();
                    var key          = Encoding.ASCII.GetBytes(this._appSettings.ConnectJwt.ApiSecret);

                    DateTime expiryTime      = DateTime.UtcNow.AddSeconds(this._appSettings.ConnectJwt.AccessTokenLongExpireTime);
                    var      tokenDescriptor = new SecurityTokenDescriptor
                    {
                        Subject = new ClaimsIdentity(new Claim[]
                        {
                            new Claim(ClaimTypes.Name, userInfo.ResponseData.Name),
                            new Claim(ClaimTypes.Email, userInfo.ResponseData.Email)
                        }),
                        Expires            = expiryTime,
                        SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
                    };
                    var token       = tokenHandler.CreateToken(tokenDescriptor);
                    var tokenString = tokenHandler.WriteToken(token);


                    this._cpLogger.LogInfo($"AccountService->GetLogin-> Success for the email:: {email}");

                    resposeToken.ExpiresIn   = this._appSettings.ConnectJwt.AccessTokenLongExpireTime;
                    resposeToken.TokenType   = "bearer";
                    resposeToken.AccessToken = tokenString;

                    response.Status       = ConnectConstants.Success;
                    response.Message      = ConnectResponseCodes.CP026_MESSAGE;
                    response.ResponseCode = ConnectResponseCodes.CP026;
                    response.ResponseData = resposeToken;
                }
                else
                {
                    response.Message      = ConnectResponseCodes.CP029_MESSAGE;
                    response.ResponseCode = ConnectResponseCodes.CP029;
                }

                return(response);
            }
            catch (Exception) { throw; }
        }
コード例 #4
0
        public async Task <ActionResult <IConnectRootResponse <IConnectToken> > > Login([FromBody] ConnectCredentials connectCredentials)
        {
            IConnectRootResponse <IConnectToken> response = new ConnectRootResponse <IConnectToken>();

            try
            {
                this._cpLogger.LogInfo($">>[AccoutnsController->Login][{connectCredentials.Email}] : START.");

                response = await this._accountService.GetLogin(connectCredentials.Email);

                this._cpLogger.LogInfo($">> [AccoutnsController->Login][{connectCredentials.Email}]: END, Response message: {response.Message}, code: {response.ResponseCode}");

                /*
                 #region AddEmailClaim
                 * // create a new user
                 * var user = new ApplicationUser { UserName = connectCredentials.Email, Email = connectCredentials.Email };
                 * var result = await _userManager.CreateAsync(user);
                 *
                 * // add the email claim and value for this user
                 * await _userManager.AddClaimAsync(user, new Claim(ClaimTypes.Email, connectCredentials.Email));
                 #endregion
                 */
                if (response.Status.Equals(ConnectConstants.Failed))
                {
                    return(BadRequest(response));
                }
                else
                {
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                response.Message      = ConnectResponseCodes.CP001_MESSAGE;
                response.ResponseCode = ConnectResponseCodes.CP001;
                this._cpLogger.LogError($">> [AccoutnsController->CreateUser][{connectCredentials.Email}]: Exception - {ex.Message}.");
                this._cpLogger.LogError($">> [AccoutnsController->CreateUser][{connectCredentials.Email}]: END, Response message: {response.Message}, code: {response.ResponseCode}");
                return(StatusCode(StatusCodes.Status500InternalServerError, response));
            }
        }
コード例 #5
0
        public async Task <IConnectRootResponse <IResponseItem <IUser> > > GetUsers()
        {
            try
            {
                IConnectRootResponse <IResponseItem <IUser> > response = new ConnectRootResponse <IResponseItem <IUser> >();

                var dbResponse = await this._connectDatabaseRepository.GetAllUsersAsync();

                if (dbResponse.Items?.Count > 0)
                {
                    response.Status       = ConnectConstants.Success;
                    response.Message      = ConnectResponseCodes.CP024_MESSAGE;
                    response.ResponseCode = ConnectResponseCodes.CP024;
                    response.ResponseData = dbResponse;
                }
                else
                {
                    response.Message      = ConnectResponseCodes.CP023_MESSAGE;
                    response.ResponseCode = ConnectResponseCodes.CP023;
                }
                return(response);
            }
            catch (Exception) { throw; }
        }
コード例 #6
0
        public async Task <IConnectRootResponse <IUser> > GetUserAsync(string email)
        {
            IConnectRootResponse <IUser> response = new ConnectRootResponse <IUser>();
            DbConnection connection = null;
            DbDataReader reader;

            IUser user = null;

            try
            {
                string commandText = @"SELECT * FROM USERS WHERE EMAIL=@EMAIL";
                using var command = this.GetCommand(commandText, CommandType.Text);
                this.CreateParameter(command, "@EMAIL", email, DbType.String);

                (connection, reader) = await this.ExecuteReaderAsync(command);

                if (await reader.ReadAsync())
                {
                    user = new User
                    {
                        Id   = DBNullExt.ToValue <string>(reader["Id"]),
                        Name = DBNullExt.ToValue <string>(reader["NAME"]),

                        FirstName      = DBNullExt.ToValue <string>(reader["FIRSTNAME"]),
                        lastName       = DBNullExt.ToValue <string>(reader["LASTNAME"]),
                        Email          = DBNullExt.ToValue <string>(reader["EMAIL"]),
                        CreateDate     = DBNullExt.ToValue <DateTime>(reader["CREATEDATE"]),
                        ModifyDate     = DBNullExt.ToValue <DateTime>(reader["MODIFYDATE"]),
                        LastSignInDate = DBNullExt.ToValue <DateTime>(reader["LASTSIGNINDATE"]),
                        ConnectionId   = DBNullExt.ToValue <string>(reader["CONNECTIONID"]),
                        //Token = DBNullExt.ToValue<string>(reader["TOKEN"]),
                        IsLive   = DBNullExt.ToValue <int>(reader["ISLIVE"]),
                        IsActive = DBNullExt.ToValue <int>(reader["ISACTIVE"])
                    };
                }
                await reader.CloseAsync();

                if (user != null)
                {
                    response.Status       = ConnectConstants.Success;
                    response.Message      = ConnectResponseCodes.CP024_MESSAGE;
                    response.ResponseCode = ConnectResponseCodes.CP024;
                    response.ResponseData = user;
                }
                else
                {
                    response.Status       = ConnectConstants.Failed;
                    response.Message      = ConnectResponseCodes.CP023_MESSAGE;
                    response.ResponseCode = ConnectResponseCodes.CP023;
                }
            }
            catch (Exception ex)
            {
                throw new DatabaseException(ex.Message, ex);
            }
            finally
            {
                if (connection?.State == ConnectionState.Open)
                {
                    await connection.CloseAsync();
                }
            }

            return(response);
        }