public async Task <Tuple <int, byte> > InsertOrUpdate(int actUserId) { try { int affectedRows, userId = 0, sysMessageId = 0; byte sysMessageTypeId = 0; DbCommand dbCommand = _dbHelper.GetStoredProcCommand("Users_InsertOrUpdate"); _dbHelper.AddInputOutputParameter(dbCommand, "@UserId", DbType.Int32, UserId); _dbHelper.AddInParameter(dbCommand, "@UserName", DbType.String, UserName); _dbHelper.AddInParameter(dbCommand, "@Password", DbType.String, Password); _dbHelper.AddInParameter(dbCommand, "@FullName", DbType.String, FullName); _dbHelper.AddInParameter(dbCommand, "@Address", DbType.String, Address); _dbHelper.AddInParameter(dbCommand, "@Email", DbType.String, Email); _dbHelper.AddInParameter(dbCommand, "@Mobile", DbType.String, Mobile); _dbHelper.AddInParameter(dbCommand, "@GenderId", DbType.Byte, GenderId); _dbHelper.AddInParameter(dbCommand, "@Avatar", DbType.String, Avatar); _dbHelper.AddInParameter(dbCommand, "@Salt", DbType.String, Salt); _dbHelper.AddInParameter(dbCommand, "@Comments", DbType.String, Comments); _dbHelper.AddInParameter(dbCommand, "@UserStatusId", DbType.Byte, UserStatusId); _dbHelper.AddInParameter(dbCommand, "@UserTypeId", DbType.Byte, UserTypeId); _dbHelper.AddInParameter(dbCommand, "@DefaultActionId", DbType.Int16, DefaultActionId); if (BirthDay.HasValue) { _dbHelper.AddInParameter(dbCommand, "@BirthDay", DbType.DateTime, BirthDay); } _dbHelper.AddOutParameter(dbCommand, "@SysMessageId", DbType.Int32); _dbHelper.AddOutParameter(dbCommand, "@SysMessageTypeId", DbType.Byte); affectedRows = await _dbHelper.ExecuteNonQueryAsync(dbCommand); UserId = Convert.ToInt32(dbCommand.Parameters["@UserId"].Value ?? "0"); sysMessageId = Convert.ToInt32(dbCommand.Parameters["@SysMessageId"].Value ?? "0"); sysMessageTypeId = Convert.ToByte(dbCommand.Parameters["@SysMessageTypeId"].Value ?? "0"); return(new Tuple <int, byte>(sysMessageId, sysMessageTypeId)); } catch (Exception ex) { throw ex; } }