public ActionResult DeletePhoto(int personId, int photoId) { var person = DatabaseSession.Get <Person>(personId); var result = PhotosController.Delete(this, photoId); if (DatabaseSession.Transaction.IsActive) { // reassign photo if we just deleted it if (person.Photo == null || person.Photo.PhotoId == photoId || person.Photo.IsDefaultNoPic()) { person.Photo = DatabaseSession.Query <PersonPhoto>() .Where(x => x.Person == person && x.Photo.PhotoId != photoId) .Take(1) .ToList() .Select(x => x.Photo) .FirstOrDefault() ?? DatabaseSession.Load <Photo>(Photo.NoPic); } } if (result != null) { return(result); } return(new ViewModelResult(new HttpApiResult { HttpStatusCode = HttpStatusCode.OK, Message = "Photo Deleted", RedirectToURL = this.GetURL(c => c.ListPersonPhotos(personId, null)), })); }
public ActionResult DeleteAward(int awardId) { var award = DatabaseSession.Get <Award>(awardId); DatabaseSession.Delete(award); return(this.RedirectToAction(x => x.ByYear(award.Year))); }
public ActionResult Admin() { var awardTypes = DatabaseSession.Query <AwardType>().ToList(); return(new ViewModelResult(new AwardTypesViewModel(awardTypes, this.Url))); }
public ActionResult EditAwardType(int awardTypeId) { var awardType = DatabaseSession.Get <AwardType>(awardTypeId); var viewModel = new AwardTypeViewModel(awardType, this.Url); return(PartialView(viewModel)); }
public byte[] ExportUserBytes(UserSearchInput input) { using (var session = DatabaseSession.OpenSession()) { var sql = @"SELECT A.""Id"" 标识, A.""UserName"" 工号, ""Name"" 姓名, C.GROUP_NAME 地区, B.NAME 部门, CASE WHEN A.""IsDeleted"" = 1 THEN '注销' WHEN A.""IsActive"" = 0 THEN '锁定' ELSE '正常' END 状态, a.""CreationTime"" 创建时间, a.""LastLoginTime"" 最后登录时间 FROM ""AbpDepartment"" B, ""AbpUsers"" A LEFT JOIN ""AbpDistrict"" C ON A.""GroupId"" = C.ID WHERE ""TenantId"" = {0} AND A.""DepartmentId"" = B.ID".FormatWith(AbpSession.TenantId); const string whereString = ""; var orderString = input.Order != null ? @" ORDER BY A.""{0}"" {1}".FormatWith(input.Order.Name, input.Order.Type) : ""; var reader = session.ExecuteReader(new DataCommandDefinition(sql + whereString + orderString)); return(_exportProvider.ExportBig(reader, ExportFileType.Excel)); } }
//根据code判断功能权限接口 public bool Checkin(string code) { long Id = CurrentUser.Id; using (var session = DatabaseSession.OpenSession()) { var sql = @"SELECT DISTINCT E.CODE FROM ""AbpUsers"" A INNER JOIN ""AbpUserRoles"" B ON A.""Id"" = B.""UserId"" INNER JOIN ""AbpRoles"" C ON B.""RoleId"" = C.""Id"" LEFT JOIN ""AbpFunctionRole"" D ON D.""ROLE_ID"" = C.""Id"" INNER JOIN ""AbpFunction"" E ON D.""FUNCTION_ID"" = E.""ID"" WHERE A.""Id""= {0}"; var resultL = session.Query <string>(sql.FormatWith(Id)); if (resultL.ToList().Contains(code)) { return(true); } } return(false); }
public ActionResult POSTEditUser(int userId, UserAccountViewModel postModel) { var user = DatabaseSession.Get <UserAccount>(userId); if (user == null) { return(new HttpNotFoundResult()); } if (this.User.IsInRole(RoleNames.Admin) && ((ClaimsPrincipal)this.User).GetUserAccountId() == userId) { // do not allow admin to remove self from admin role postModel.IsAdmin = true; } user.IsContributor = postModel.IsContributor; user.IsArchivist = postModel.IsArchivist; user.IsAdmin = postModel.IsAdmin; if (Request.IsAjaxRequest()) { return(Json("OK")); } return(this.RedirectToAction(c => c.List())); }
/// <summary> /// Bonus wirtualnych zetonow za zalogowanie sie /// </summary> /// <param name="user"></param> private void DailyVirtualBonus(UserModel user) { if (user.IsOnline()) { var wallet = user.GetWallet(Enums.CurrencyType.VIRTUAL); using (ISession session = DatabaseSession.Open()) { var transferList = session.QueryOver <WalletModel>(). Where(w => w.ID == wallet.ID). SingleOrDefault(). TransferList; if (!transferList.Any(c => c.Timestamp.Date == DateTime.Now.Date && c.Flag == "LOGIN_BONUS")) { Task.Factory.StartNew(() => { System.Timers.Timer timer = new System.Timers.Timer(2000); timer.Elapsed += (o, e) => { user.Deposit( Enums.CurrencyType.VIRTUAL, 1000.00m, "Bonus wirtualny za zalogowanie się!", "LOGIN_BONUS" ); }; timer.AutoReset = false; timer.Enabled = true; }); } } } }
public void TestAll() { DatabaseSession databaseSession = new DatabaseSession("Invalid Connection String;"); databaseSession.OpenConnection(); Accessor databaseSessionAccessor = ReflectionAccessor.Wrap(databaseSession); databaseSessionAccessor.Call("GetConnection", DBType.Oracle); databaseSessionAccessor.Call("GetConnection", DBType.MySql); databaseSessionAccessor.SetField("m_dbType", DBType.Oracle); databaseSession.GetParameterDelimiter(); databaseSessionAccessor.SetField("m_dbType", DBType.MySql); databaseSession.GetParameterDelimiter(); databaseSession.CheckDatabaseConnection(); try { databaseSession.CommitTransaction(); //throw exception } catch (System.Exception ex) { } try { databaseSession.RollBackTransaction(); //throw exception } catch (System.Exception ex) { } }
public ActionResult GetPhotoDetail(int id) { var photos = DatabaseSession .Query <Photo>() .Select(x => new PhotoItemDto { PhotoId = x.PhotoId, InsertedDateTime = x.InsertedDateTime, }) .ToList().OrderBy(x => x.PhotoId).ToList(); var index = photos.IndexOf(photos.Single(x => x.PhotoId == id)); var previousId = index > 0 ? photos[index - 1].PhotoId : (int?)null; var nextId = index < photos.Count - 1 ? photos[index + 1].PhotoId : (int?)null; var viewModel = new PhotoDetailViewModel(); viewModel.PhotoUploadLinkURL = ""; viewModel.PreviousPhotoLinkURL = this.GetURL(c => c.GetPhotoDetail(id)); viewModel.NextPhotoLinkURL = this.GetURL(c => c.GetPhotoDetail(id)); if (previousId.HasValue) { viewModel.HasPreviousPhotoLinkURL = true; viewModel.PreviousPhotoLinkURL = this.GetURL(c => c.GetPhotoDetail(previousId.Value)); } if (nextId.HasValue) { viewModel.HasNextPhotoLinkURL = true; viewModel.NextPhotoLinkURL = this.GetURL(c => c.GetPhotoDetail(nextId.Value)); } viewModel.PhotoViewModel = new PhotoViewModel(DatabaseSession.Get <Photo>(id), "", this); return(View(viewModel)); }
public ActionResult SaveEdit(int personId, SaveEditParameters param) { if (string.IsNullOrWhiteSpace(param.FirstName) || string.IsNullOrWhiteSpace(param.LastName)) { throw new Exception("Name is required"); } var person = DatabaseSession.Get <Person>(personId); person.FirstName = (param.FirstName ?? string.Empty).Trim(); person.LastName = (param.LastName ?? string.Empty).Trim(); person.MiddleName = (param.MiddleName ?? string.Empty).Trim(); person.Honorific = (param.Honorific ?? string.Empty).Trim(); person.Suffix = (param.Suffix ?? string.Empty).Trim(); person.Nickname = (param.Nickname ?? string.Empty).Trim(); person.Biography = (param.Biography ?? string.Empty).Trim(); if (DatabaseSession.IsDirtyEntity(person)) { // TODO: build in auditing person.LastModifiedDateTime = DateTime.UtcNow; } return(this.RedirectToAction(x => x.PersonDetails(personId))); }
public ActionResult SaveAddPerson(SaveEditParameters param) { if (string.IsNullOrWhiteSpace(param.FirstName) || string.IsNullOrWhiteSpace(param.LastName)) { throw new Exception("Name is required"); } var person = new Person(); person.FirstName = (param.FirstName ?? string.Empty).Trim(); person.LastName = (param.LastName ?? string.Empty).Trim(); person.MiddleName = (param.MiddleName ?? string.Empty).Trim(); person.Honorific = (param.Honorific ?? string.Empty).Trim(); person.Suffix = (param.Suffix ?? string.Empty).Trim(); person.Nickname = (param.Nickname ?? string.Empty).Trim(); person.Biography = (param.Biography ?? string.Empty).Trim(); person.Photo = DatabaseSession.Load <Photo>(Photo.NoPic); // TODO: build in auditing person.InsertedDateTime = DateTime.UtcNow; person.LastModifiedDateTime = DateTime.UtcNow; DatabaseSession.Save(person); DatabaseSession.Flush(); return(this.RedirectToAction(x => x.PersonDetails(person.PersonId))); }
public ActionResult EditPerson(int personId) { if (!Request.IsAjaxRequest()) { return(this.RedirectToAction(x => x.PersonDetails(personId))); } var person = DatabaseSession.Get <Person>(personId); var photos = DatabaseSession.Query <PersonPhoto>().Where(x => x.Person == person).Fetch(x => x.Photo).ToList(); var viewModel = new EditPersonViewModel(); viewModel.POSTUrl = Url.Action("SaveEdit"); viewModel.PersonId = personId; viewModel.FirstName = person.FirstName; viewModel.LastName = person.LastName; viewModel.MiddleName = person.MiddleName; viewModel.Honorific = person.Honorific; viewModel.Suffix = person.Suffix; viewModel.Nickname = person.Nickname; viewModel.Biography = person.Biography; viewModel.DefaultPhotoId = person.Photo.PhotoId; viewModel.Photos = photos.OrderBy(x => x.Photo.InsertedDateTime).ThenBy(x => x.Photo.PhotoId).Select(x => new EditPersonViewModel.Photo { PhotoItemId = x.Photo.PhotoId, PhotoTinyURL = x.Photo.GetTinyFileURL(), PhotoThumbnailURL = x.Photo.GetThumbnailFileURL(), }).ToList(); return(PartialView(viewModel)); }
public ActionResult List() { var photos = DatabaseSession .Query <Photo>() .ToList(); var recentlyUploaded = photos.OrderByDescending(x => x.InsertedDateTime).ThenByDescending(x => x.PhotoId).Take(10).ToList(); var ran = new Random(); var randomSet = new HashSet <Photo>(); var randomList = new List <Photo>(photos); while (randomSet.Count < 10) { var nextIndex = ran.Next(randomList.Count); var item = randomList[nextIndex]; randomList.Remove(item); randomSet.Add(item); } var viewModel = new ListPhotosViewModel(); viewModel.RecentlyUploaded = recentlyUploaded.Select(x => new ListPhotosViewModel.Photo { PhotoLinkURL = this.GetURL(c => c.GetPhotoDetail(x.PhotoId)), PhotoThumbnailURL = x.GetThumbnailFileURL(), }).ToList(); viewModel.RandomPic = randomSet.Select(x => new ListPhotosViewModel.Photo { PhotoLinkURL = this.GetURL(c => c.GetPhotoDetail(x.PhotoId)), PhotoThumbnailURL = x.GetThumbnailFileURL() }).ToList(); return(new ViewModelResult(viewModel)); }
public ActionResult EditUser(int userId) { var user = DatabaseSession.Get <UserAccount>(userId); var userViewModel = new UserAccountViewModel(user, this.Url); return(PartialView(userViewModel)); }
// do not use at home // sql injection public IActionResult Get(string query) { DatabaseSession session = null; try { session = new DatabaseSession(); var repo = new Repository(session.Connection); var values = repo.Get(query); var result = new QueryResult { Query = query, Values = values }; return(View(result)); } catch (SqlException) { return(View(new QueryResult { IsCorrect = false })); } finally { ((IDisposable)session)?.Dispose(); } }
public ActionResult ByYear(short?year) { if (!year.HasValue || year > DateTime.Now.Year) { return(this.RedirectToAction(c => c.ByYear(GetMostRecentYear()))); } var awards = DatabaseSession.Query <Award>().Where(x => x.Year == year).Fetch(x => x.Show).Fetch(x => x.Person).Fetch(x => x.AwardType).ToList(); var viewModel = new ByYearViewModel(); viewModel.Year = year.Value; var nextYear = (short)(year.Value + 1); var prevYear = (short)(year.Value - 1); viewModel.NextYearURL = this.GetURL(c => c.ByYear(nextYear)); viewModel.PreviousYearURL = this.GetURL(c => c.ByYear(prevYear)); viewModel.AwardsTable = new AwardsTableViewModel( this.Url , id => "" , awards) { CanEdit = false, //AddItemURL = this.GetURL(c => c.AddAward(personId)), }; return(View(viewModel)); }
/// <summary> /// 导入数据到目标表 /// </summary> /// <param name="tableName">目标表名</param> /// <param name="filePath">数据文件流路径,支持xls、xlsx、csv文件</param> /// <param name="columnCont">字段数量</param> /// <param name="databaseSessionKey">数据库连接Key</param> /// <returns>成功行数</returns> public static int Import(string tableName, string filePath, int columnCont = 0, string databaseSessionKey = null) { using (var session = DatabaseSession.OpenSession(databaseSessionKey)) { return(Import(session, tableName, filePath, columnCont)); } }
public static T FetchObject(DatabaseSession dbSession, Int32 key) { DatabaseRecord record = dbSession.RetrieveRecord(FetchQuery, parameters); T obj = new T(); obj.Initialize(row); return(obj); }
public void DeletePosition(string symbol) { using (var db = new DatabaseSession()) { var position = db.Query <Position>().FirstOrDefault(p => p.Symbol == symbol); db.Remove(position); } }
public async Task Initialize(DatabaseSession databaseSession, CancellationToken cancellationToken) { databaseSession = databaseSession.Owner ?? databaseSession; var oracleSessionValues = (OracleSessionValues)databaseSession.ProviderValues; if (_oracleSessionValues != null && _oracleSessionValues.Instance == oracleSessionValues.Instance && _oracleSessionValues.Id == oracleSessionValues.Id && String.Equals(_oracleSessionValues.SqlId, oracleSessionValues.SqlId) && _oracleSessionValues.ExecutionId == oracleSessionValues.ExecutionId) { await Refresh(cancellationToken); return; } Shutdown(); DatabaseSession = databaseSession; try { _oracleSessionValues = oracleSessionValues.Clone(); if (!String.IsNullOrEmpty(_oracleSessionValues.SqlId) && _oracleSessionValues.ExecutionId.HasValue) { var monitorDataProvider = new SqlMonitorDataProvider(_oracleSessionValues.Instance, _oracleSessionValues.Id, _oracleSessionValues.ExecutionStart.Value, _oracleSessionValues.ExecutionId.Value, _oracleSessionValues.SqlId, _oracleSessionValues.ChildNumber.Value); await OracleDatabaseModel.UpdateModelAsync(OracleConnectionStringRepository.GetBackgroundConnectionString(_connectionString.ConnectionString), null, false, cancellationToken, monitorDataProvider); _planItemCollection = monitorDataProvider.ItemCollection; _planItemCollection.RefreshPeriod = DefaultRefreshPeriod; //QueryCoordinatorLongOperations = _planItemCollection.QueryCoordinatorLongOperations; if (_planItemCollection.RootItem != null) { ExecutionPlanTreeView.RootItem = _planItemCollection.RootItem; SessionItems = _planItemCollection.SessionItems; var collectionView = CollectionViewSource.GetDefaultView(SessionItems); collectionView.SortDescriptions.Add(new SortDescription { PropertyName = "SessionIdentifier.Instance" }); collectionView.SortDescriptions.Add(new SortDescription { PropertyName = "ParallelServerGroup" }); collectionView.SortDescriptions.Add(new SortDescription { PropertyName = "ParallelServerSet" }); collectionView.SortDescriptions.Add(new SortDescription { PropertyName = "ParallelServerNumber" }); SummarySession.Inititalize(_planItemCollection); await SafeRefresh(); } } } finally { AutoRefreshEnabled = true; } }
public ActionResult DeleteCrew(int personId, int showCrewId) { var entity = DatabaseSession.Get <ShowCrew>(showCrewId); DatabaseSession.Delete(entity); return(new ViewModelResult(new HttpApiResult { RedirectToURL = this.GetURL(c => c.PersonDetails(personId)), })); }
public ActionResult AddCrew(int personId, int showId, string position) { var entity = new ShowCrew(DatabaseSession.Load <Person>(personId), DatabaseSession.Load <Show>(showId), position); DatabaseSession.Save(entity); return(new ViewModelResult(new HttpApiResult { RedirectToURL = this.GetURL(c => c.PersonDetails(personId)), })); }
public ActionResult AddClubPosition(int personId, string position, short year) { var entity = new PersonClubPosition(DatabaseSession.Load <Person>(personId), position, year); DatabaseSession.Save(entity); return(new ViewModelResult(new HttpApiResult { RedirectToURL = this.GetURL(c => c.PersonDetails(personId)), })); }
public ActionResult DeleteCast(int showId, int showCastId) { var entity = DatabaseSession.Get <ShowCast>(showCastId); DatabaseSession.Delete(entity); return(new ViewModelResult(new HttpApiResult { RedirectToURL = this.GetURL(c => c.ShowDetails(showId)), })); }
public IEnumerable <Position> GetPositions() { using (var db = new DatabaseSession()) { var positions = db.Query <Position>().OrderBy(p => p.Symbol).ToList(); var portfolio = new Portfolio(positions); //This calculates the asset allocation return(portfolio.Positions); } }
public ActionResult GetPhotoThumbnail(int id) { var photo = DatabaseSession.Get <Photo>(id); if (photo == null) { return(new HttpNotFoundResult()); } return(new RedirectResult(photo.GetThumbnailFileURL())); }
public ActionResult List() { var users = DatabaseSession.Query <UserAccount>().ToList(); var listViewModel = new ListViewModel(); listViewModel.IsUserAdmin = this.User.IsInRole(RoleNames.Admin); listViewModel.Users = users.Select(x => new UserAccountViewModel(x, this.Url)).ToList(); return(View(listViewModel)); }
public void TestSessionStoreConstructor01() { SessionStore sessionStore = new SessionStore(); DatabaseSession session = new DatabaseSession(TestDBInit.localConnectionString2); sessionStore.Store(TestDBInit.localConnectionString2, session); sessionStore.Dispose(""); DBConnectionStrings.ReleaseInstance(); SimpleDatabase.ReleaseInstance(); }
public ActionResult DeleteAward(int personId, int awardId) { var award = DatabaseSession.Get <Award>(awardId); DatabaseSession.Delete(award); return(new ViewModelResult(new HttpApiResult { Message = "Award Deleted", RedirectToURL = this.GetURL(c => c.PersonDetails(personId)), })); }
public async Task<DatabaseSessions> GetAllSessionDataAsync(CancellationToken cancellationToken) { var databaseSessions = new DatabaseSessions(); using (var connection = new OracleConnection(BackgroundConnectionString)) { using (var command = connection.CreateCommand()) { command.CommandText = OracleDatabaseCommands.SelectBasicSessionInformationCommandText; await connection.OpenAsynchronous(cancellationToken); connection.ModuleName = "Database monitor"; using (var reader = await command.ExecuteReaderAsynchronous(CommandBehavior.Default, cancellationToken)) { databaseSessions.ColumnHeaders = DatabaseSessionColumnHeaders; var sessions = new Dictionary<int, DatabaseSession>(); while (await reader.ReadAsynchronous(cancellationToken)) { var oracleSession = new OracleSessionValues { Process = OracleReaderValueConvert.ToString(reader["PROCESS"]), ExecutionId = OracleReaderValueConvert.ToInt32(reader["SQL_EXEC_ID"]), Type = (string)reader["TYPE"], Id = Convert.ToInt32(reader["SID"]), ExecutionStart = OracleReaderValueConvert.ToDateTime(reader["SQL_EXEC_START"]), Action = OracleReaderValueConvert.ToString(reader["ACTION"]), State = (string)reader["STATE"], Status = (string)reader["STATUS"], AuditingSessionId = Convert.ToInt64(reader["AUDSID"]), ChildNumber = OracleReaderValueConvert.ToInt32(reader["SQL_CHILD_NUMBER"]), ClientInfo = OracleReaderValueConvert.ToString(reader["CLIENT_INFO"]), CurrentCommandText = OracleReaderValueConvert.ToString(await reader.GetValueAsynchronous(reader.GetOrdinal("CURRENT_COMMAND_TEXT"), cancellationToken)), Event = (string)reader["EVENT"], FailedOver = (string)reader["FAILED_OVER"], FailoverMethod = (string)reader["FAILOVER_METHOD"], FailoverType = (string)reader["FAILOVER_TYPE"], LockWait = OracleReaderValueConvert.ToString(reader["LOCKWAIT"]), LogonTime = (DateTime)reader["LOGON_TIME"], Machine = OracleReaderValueConvert.ToString(reader["MACHINE"]), Module = OracleReaderValueConvert.ToString(reader["MODULE"]), OperatingSystemUser = OracleReaderValueConvert.ToString(reader["OSUSER"]), ParallelDdlStatus = (string)reader["PDDL_STATUS"], ParallelDmlEnabled = (string)reader["PDML_ENABLED"], ParallelDmlStatus = (string)reader["PDML_STATUS"], ParallelQueryStatus = (string)reader["PQ_STATUS"], Parameter1 = Convert.ToDecimal(reader["P1"]), Parameter1Text = OracleReaderValueConvert.ToString(reader["P1TEXT"]), Parameter2 = Convert.ToDecimal(reader["P2"]), Parameter2Text = OracleReaderValueConvert.ToString(reader["P2TEXT"]), Parameter3 = Convert.ToDecimal(reader["P3"]), Parameter3Text = OracleReaderValueConvert.ToString(reader["P3TEXT"]), OwnerSessionId = OracleReaderValueConvert.ToInt32(reader["OWNER_SID"]), Port = OracleReaderValueConvert.ToInt32(reader["PORT"]), PrecedingChildNumber = OracleReaderValueConvert.ToInt32(reader["PREV_CHILD_NUMBER"]), PrecedingCommandText = OracleReaderValueConvert.ToString(await reader.GetValueAsynchronous(reader.GetOrdinal("PRECEDING_COMMAND_TEXT"), cancellationToken)), PrecedingExecutionId = OracleReaderValueConvert.ToInt32(reader["PREV_EXEC_ID"]), PrecedingExecutionStart = OracleReaderValueConvert.ToDateTime(reader["PREV_EXEC_START"]), PrecedingSqlId = OracleReaderValueConvert.ToString(reader["PREV_SQL_ID"]), ProcessAddress = (string)reader["PADDR"], Program = OracleReaderValueConvert.ToString(reader["PROGRAM"]), RemainingTimeMicroseconds = OracleReaderValueConvert.ToInt64(reader["TIME_REMAINING_MICRO"]), ResourceConsumeGroup = OracleReaderValueConvert.ToString(reader["RESOURCE_CONSUMER_GROUP"]), SchemaName = OracleReaderValueConvert.ToString(reader["SCHEMANAME"]), Serial = Convert.ToInt32(reader["SERIAL#"]), Server = (string)reader["SERVER"], ServiceName = OracleReaderValueConvert.ToString(reader["SERVICE_NAME"]), Instance = Convert.ToInt32(reader["INSTANCE_ID"]), SessionAddress = (string)reader["SADDR"], SqlId = OracleReaderValueConvert.ToString(reader["SQL_ID"]), SqlTrace = (string)reader["SQL_TRACE"], TimeSinceLastWaitMicroseconds = OracleReaderValueConvert.ToInt64(reader["TIME_SINCE_LAST_WAIT_MICRO"]), TransactionAddress = OracleReaderValueConvert.ToString(reader["TADDR"]), UserName = OracleReaderValueConvert.ToString(reader["USERNAME"]), WaitClass = (string)reader["WAIT_CLASS"], WaitTime = OracleReaderValueConvert.ToInt64(reader["WAIT_TIME"]), WaitTimeMicroseconds = OracleReaderValueConvert.ToInt64(reader["WAIT_TIME_MICRO"]), ProcessIdentifier = OracleReaderValueConvert.ToInt32(reader["PID"]), OperatingSystemIdentifier = OracleReaderValueConvert.ToInt32(reader["SOSID"]), OperatingSystemProcessIdentifier = OracleReaderValueConvert.ToInt32(reader["SPID"]), TraceId = OracleReaderValueConvert.ToString(reader["TRACEID"]), TraceFile = OracleReaderValueConvert.ToString(reader["TRACEFILE"]), ProgramGlobalAreaUsedMemoryBytes = OracleReaderValueConvert.ToInt64(reader["PGA_USED_MEM"]), ProgramGlobalAreaAllocatedMemoryBytes = OracleReaderValueConvert.ToInt64(reader["PGA_ALLOC_MEM"]), ProgramGlobalAreaFreeableMemoryBytes = OracleReaderValueConvert.ToInt64(reader["PGA_FREEABLE_MEM"]), ProgramGlobalAreaMaximumMemoryBytes = OracleReaderValueConvert.ToInt64(reader["PGA_MAX_MEM"]) }; var databaseSession = new DatabaseSession { Id = oracleSession.Id, ProviderValues = oracleSession, Type = String.Equals(oracleSession.Type, "User") ? SessionType.User : SessionType.System, IsActive = Convert.ToString(oracleSession.Status) == "Active" }; sessions.Add(databaseSession.Id, databaseSession); } foreach (var session in sessions.Values) { DatabaseSession ownerSession; var ownerSid = ((OracleSessionValues)session.ProviderValues).OwnerSessionId; if (ownerSid.HasValue && sessions.TryGetValue(ownerSid.Value, out ownerSession)) { session.Owner = ownerSession; ownerSession.ChildSessions.Add(session); } } databaseSessions.Rows = sessions.Values.ToArray(); } } await connection.CloseAsynchronous(cancellationToken); } return databaseSessions; }
public IEnumerable<ContextAction> GetSessionContextActions(DatabaseSession databaseSession) { var sessionValues = (OracleSessionValues)databaseSession.ProviderValues; var executionHandler = new CommandExecutionHandler(); string actionName; if (String.Equals(sessionValues.SqlTrace, "Disabled")) { actionName = "Enable trace"; executionHandler.ExecutionHandlerAsync = (context, cancellationToken) => EnableSessionTracing(sessionValues, sessionValues.TraceId, true, true, cancellationToken); } else { actionName = "Disable trace"; executionHandler.ExecutionHandlerAsync = (context, cancellationToken) => DisableSessionTracing(sessionValues, cancellationToken); } yield return new ContextAction(actionName, executionHandler, null, true); var remoteTraceDirectory = OracleConfiguration.Configuration.GetRemoteTraceDirectory(_connectionString.Name); var traceFileName = String.IsNullOrWhiteSpace(remoteTraceDirectory) ? sessionValues.TraceFile : Path.Combine(remoteTraceDirectory, new FileInfo(sessionValues.TraceFile).Name); executionHandler = new CommandExecutionHandler { ExecutionHandler = context => OracleTraceViewer.NavigateToTraceFile(traceFileName) }; yield return new ContextAction("Navigate to trace file", executionHandler, null); executionHandler = new CommandExecutionHandler { ExecutionHandlerAsync = (context, cancellationToken) => KillSession(sessionValues, cancellationToken) }; yield return new ContextAction("Kill", executionHandler, null, true); }