public HistoryItemEmployee Assemble(ClarifyDataRow actEntryRecord) { var proxy = actEntryRecord.AsString("proxy"); if (proxy.IsEmpty()) { return(null); } var ds = _session.CreateDataSet(); var generic = ds.CreateGeneric("empl_user"); generic.Filter(_ => _.Equals("login_name", proxy)); generic.Query(); if (generic.Rows.Count == 0) { return(null); } var employeeRecord = generic.Rows[0]; var name = "{0} {1}".ToFormat(employeeRecord.AsString("first_name"), employeeRecord.AsString("last_name")); var id = employeeRecord.AsInt("employee"); return(new HistoryItemEmployee { Name = name, Firstname = employeeRecord.AsString("first_name"), Lastname = employeeRecord.AsString("last_name"), Id = id, Login = proxy }); }
public void SessionStarted(IClarifySession session) { if (!_schemaCache.IsValidTable("fc_login_monitor")) { _logger.LogDebug("Unable to log user authentication. No fc_login_monitor table is present."); return; } var host = GetLocalhostFqdn(); _logger.LogDebug("Logging application {0} authentication for user {1} on host {2} with session id {3}.", _settings.ApplicationName, session.UserName, host, session.Id); var dataSet = session.CreateDataSet(); var monitorGeneric = dataSet.CreateGeneric("fc_login_monitor"); var monitorRow = monitorGeneric.AddNew(); monitorRow["application"] = _settings.ApplicationName; monitorRow["login_time"] = FCGeneric.NOW_DATE; monitorRow["logout_time"] = FCGeneric.MIN_DATE; monitorRow["login_name"] = session.UserName; monitorRow["fcsessionid"] = session.Id.ToString(); monitorRow["num_sessions"] = _sessionUsageReporter.GetActiveSessionCount(); if (_schemaCache.IsValidField("fc_login_monitor", "server")) { monitorRow["server"] = host; } monitorRow["comments"] = _applicationUrl.Url; monitorRow.RelateByID(session.SessionUserID, "fc_login_monitor2user"); monitorRow.Update(); }
private IEnumerable <HistoryItem> Build(HistoryRequest request, Action <ClarifyGeneric, WorkflowObjectInfo> genericAction) { var clarifyDataSet = _session.CreateDataSet(); var workflowObjectInfo = WorkflowObjectInfo.GetObjectInfo(request.WorkflowObject.Type); var workflowGeneric = clarifyDataSet.CreateGenericWithFields(workflowObjectInfo.ObjectName); if (workflowObjectInfo.HasIDFieldName) { workflowGeneric.DataFields.Add(workflowObjectInfo.IDFieldName); } genericAction(workflowGeneric, workflowObjectInfo); var inverseActivityRelation = workflowObjectInfo.ActivityRelation; var activityRelation = _schemaCache.GetRelation("act_entry", inverseActivityRelation).InverseRelation; var actEntryGeneric = workflowGeneric.Traverse(activityRelation.Name); actEntryGeneric.AppendSort("entry_time", false); actEntryGeneric.AppendSort("objid", false); if (request.Since.HasValue) { var filter = new FilterExpression().MoreThan("entry_time", request.Since.Value); actEntryGeneric.Filter.AddFilter(filter); } var templateDictionary = _templatePolicyConfiguration.RenderPolicies(request.WorkflowObject); //query generic hierarchy and while using act entry templates transform the results into HistoryItems return(_historyItemAssembler.Assemble(actEntryGeneric, templateDictionary, request)); }
public void SessionStarted(IClarifySession session) { if (!_schemaCache.IsValidTable("fc_login_monitor")) { _logger.LogDebug("Unable to log user authentication. No fc_login_monitor table is present."); return; } var host = GetLocalhostFqdn(); _logger.LogDebug("Logging application {0} authentication for user {1} on host {2} with session id {3}.", _settings.ApplicationName, session.UserName, host, session.Id); var dataSet = session.CreateDataSet(); var monitorGeneric = dataSet.CreateGeneric("fc_login_monitor"); var monitorRow = monitorGeneric.AddNew(); monitorRow["application"] = _settings.ApplicationName; monitorRow["login_time"] = FCGeneric.NOW_DATE; monitorRow["logout_time"] = FCGeneric.MIN_DATE; monitorRow["login_name"] = session.UserName; monitorRow["fcsessionid"] = session.Id.ToString(); monitorRow["num_sessions"] = _sessionUsageReporter.GetActiveSessionCount(); if(_schemaCache.IsValidField("fc_login_monitor", "server")) { monitorRow["server"] = host; } monitorRow["comments"] = _applicationUrl.Url; monitorRow.RelateByID(session.SessionUserID, "fc_login_monitor2user"); monitorRow.Update(); }
public void Visit(BeginModelMap instruction) { DataSet = _session.CreateDataSet(); _modelStack.Push(new ModelInformation { ModelName = instruction.Name }); }
public void Visit(BeginModelMap beginModelMap) { DataSet = _session.CreateDataSet(); _modelStack.Push(new ModelInformation { ModelType = beginModelMap.ModelType }); }
private IEnumerable <string> GetSubcaseIds(WorkflowObject workflowObject) { var clarifyDataSet = _session.CreateDataSet(); var caseGeneric = clarifyDataSet.CreateGenericWithFields("case"); caseGeneric.AppendFilter("id_number", StringOps.Equals, workflowObject.Id); var subcaseGeneric = caseGeneric.TraverseWithFields("case2subcase", "id_number"); caseGeneric.Query(); return(subcaseGeneric.Count > 0 ? subcaseGeneric.DataRows().Select(s => s.AsString("id_number")) : new string[0]); }