/// <summary> /// Returns list of <see cref="EmailAttachment"/> items. /// </summary> /// <param name="esq">Instance of <see cref="EntitySchemaQuery"/> type.</param> /// <returns>List of attachments.</returns> protected List <EmailAttachment> GetEmailAttachments(EntitySchemaQuery esq) { EntitySchemaQueryColumn idColumn = esq.AddColumn("Id"); EntityCollection fileEntities = esq.GetEntityCollection(UserConnection); var attachments = new List <EmailAttachment>(); var fileRepository = ClassFactory.Get <FileRepository>( new ConstructorArgument("userConnection", UserConnection)); foreach (Entity fileEntity in fileEntities) { Guid id = fileEntity.GetTypedColumnValue <Guid>(idColumn.Name); using (var memoryStream = new MemoryStream()) { var bwriter = new BinaryWriter(memoryStream); var fileInfo = fileRepository.LoadFile(esq.RootSchema.UId, id, bwriter); string fileName = CheckInvalidFileName(fileInfo.FileName) ? fileInfo.FileName : Path.GetFileName(fileInfo.FileName); var attachment = new EmailAttachment { Id = id, Name = fileName, Data = memoryStream.ToArray(), IsContent = false }; attachments.Add(attachment); } } return(attachments); }
private EntitySchemaQueryFilterCollection GetEsqSummaryGroupFilter(FilterConfig filterConfig, EntitySchemaColumn referenceColumn, EntitySchemaQuery esq) { string referenceSchemaGroupColumnName = $"{referenceColumn.Name}.{filterConfig.GroupColumnPath}"; _groupColumn = esq.AddColumn(referenceSchemaGroupColumnName); var records = filterConfig.RecordIds?.ToList() ?? new List <Guid>(); var recordsGroup = new EntitySchemaQueryFilterCollection(esq); var filterGroup = new EntitySchemaQueryFilterCollection(esq); recordsGroup.LogicalOperation = LogicalOperationStrict.Or; filterGroup.LogicalOperation = LogicalOperationStrict.And; if (records.Contains(Guid.Empty)) { records.Remove(Guid.Empty); recordsGroup.Add(esq.CreateIsNullFilter(referenceSchemaGroupColumnName)); } if (records.IsNotEmpty()) { recordsGroup.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, referenceSchemaGroupColumnName, records.Cast <object>().ToArray())); } filterGroup.Add(recordsGroup); AddHierarchyFilter(filterConfig, referenceColumn, esq); return(recordsGroup); }
protected override EntitySchemaQuery GetEntityCollectionEsq() { var esq = base.GetEntityCollectionEsq(); _visaSchemaColumnName = esq.AddColumn("[SysSchema:UId:VisaSchemaUId].Name"); return(esq); }
public virtual bool GetRemindingCountersScriptTaskExecute(ProcessExecutingContext context) { var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "SysAdminUnit"); EntitySchemaQueryColumn primaryColumn = esq.AddColumn(esq.RootSchema.GetPrimaryColumnName()); esq.AddColumn("Contact"); esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Name", UserConnection.CurrentUser.Name)); EntityCollection entities = esq.GetEntityCollection(UserConnection); if (entities.Count > 0) { Guid sysAdminUnitId = entities[0].GetTypedColumnValue <Guid>(primaryColumn.Name); IMsgChannel channel = MsgChannelManager.IsRunning ? MsgChannelManager.Instance.FindItemByUId(sysAdminUnitId) : null; if (channel == null) { return(true); } RemindingsHelper remindingsHelper = new RemindingsHelper(UserConnection); string formattedDate = DateTime.UtcNow.ToString("o"); string messageBody = remindingsHelper.GetRemindingsCountResponse(sysAdminUnitId, formattedDate); var simpleMessage = new SimpleMessage { Id = sysAdminUnitId, Body = messageBody }; simpleMessage.Header.Sender = "GetRemindingCounters"; channel.PostMessage(simpleMessage); } return(true); }
public override Select Build() { entityColumnsMap = new Dictionary <string, object>(); JObject xAxisConfig = SerieConfig.Value <JObject>("xAxis"); JObject yAxisConfig = SerieConfig.Value <JObject>("yAxis"); string dateTimeFormat = Parameters.Value <string>("dateTimeFormat"); if (HasDateTimeFormat) { AddDateTimeColumnsByFormat(dateTimeFormat); xAxisConfig["dateTimeFormat"] = dateTimeFormat; } else { EntitySchemaQueryColumn column = Esq.AddColumn(ColumnPath); entityColumnsMap[column.Name] = MapColumn(column); xAxisConfig["dataValueType"] = GetColumnDataValueType(column); if (OrderByGroupField) { ApplyColumnOrder(column); } } var useEmptyValue = Parameters.Value <string>("useEmptyValue"); SerieConfig.Add(new JProperty("useEmptyValue", useEmptyValue)); EntitySchemaQueryColumn aggregatedColumn = AddAggregatedColumn(yAxisConfig); if (!OrderByGroupField) { ApplyColumnOrder(aggregatedColumn); } var select = base.Build(); return(select); }
private EntitySchemaQuery GetCommandESQ(Dictionary <string, string> columnNames) { EntitySchemaQuery esq = GetESQWithCommonProperties("CommandParams"); EntitySchemaQueryColumn primaryColumn = esq.AddColumn("=Command.Id"); columnNames.Add("Id", primaryColumn.Name); EntitySchemaQueryColumn createdByColumn = esq.AddColumn("=Command.CreatedBy"); EntitySchemaQueryColumn captionColumn = esq.AddColumn("=Command.Name"); columnNames.Add("Caption", captionColumn.Name); EntitySchemaQueryColumn mainParamNameColumn = esq.AddColumn("=MainParam.Name"); columnNames.Add("AddCaption", mainParamNameColumn.Name); columnNames.Add("MainParamCaption", mainParamNameColumn.Name); EntitySchemaQueryColumn commandCodeColumn = esq.AddColumn("=Command.Code"); columnNames.Add("Code", commandCodeColumn.Name); EntitySchemaQueryColumn columnCaptionColumn = esq.AddColumn("AdditionalParam.ColumnCaption"); columnNames.Add("ColumnCaption", columnCaptionColumn.Name); EntitySchemaQueryColumn subjectColumn = esq.AddColumn("AdditionalParam.SubjectColumnUId"); columnNames.Add("SubjectColumnUId", subjectColumn.Name); EntitySchemaQueryColumn subjectSchemaColumn = esq.AddColumn("=MainParam.SubjectSchemaUId"); columnNames.Add("SubjectSchemaUId", subjectSchemaColumn.Name); EntitySchemaQueryColumn typeColumn = esq.AddColumn("=MainParam.[SysModuleEntity:SysEntitySchemaUId:SubjectSchemaUId].TypeColumnUId"); columnNames.Add("TypeColumnUId", typeColumn.Name); columnNames.Add("TypeColumnCode", ""); columnNames.Add("OrderColumn", ""); esq.CacheItemName = "CommandActionCacheItem_Command"; return(esq); }
private List <MLModelConfig> GetModelsInTrainingStatus(UserConnection userConnection) { EntitySchema mlModelSchema = userConnection.EntitySchemaManager.GetInstanceByName("MLModel"); var esq = new EntitySchemaQuery(mlModelSchema) { IgnoreDisplayValues = true }; esq.PrimaryQueryColumn.IsVisible = true; esq.AddColumn("TrainSessionId"); esq.AddColumn("MetricThreshold"); EntitySchemaQueryColumn stateColumn = esq.AddColumn("State.Code"); EntitySchemaQueryColumn serviceUrlColumn = esq.AddColumn("MLProblemType.ServiceUrl"); esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "State.Code", TrainSessionState.DataTransferring.ToString(), TrainSessionState.QueuedToTrain.ToString(), TrainSessionState.Training.ToString())); esq.Filters.AddLengthFilter(mlModelSchema, "MLProblemType.ServiceUrl", FilterComparisonType.Greater, 0); var entityCollection = esq.GetEntityCollection(userConnection); var mlModelConfigs = new List <MLModelConfig>(); foreach (Entity entity in entityCollection) { string stateValue = entity.GetTypedColumnValue <string>(stateColumn.Name); mlModelConfigs.Add(new MLModelConfig { Id = entity.PrimaryColumnValue, TrainSessionId = entity.GetTypedColumnValue <Guid>("TrainSessionId"), MetricThreshold = entity.GetTypedColumnValue <double>("MetricThreshold"), ServiceUrl = entity.GetTypedColumnValue <string>(serviceUrlColumn.Name), CurrentState = GetTypedState(stateValue) }); } return(mlModelConfigs); }
private string GetSchemaPrimaryColumnName() { var esq = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "Period"); EntitySchemaQueryColumn idColumn = esq.AddColumn(esq.RootSchema.GetPrimaryColumnName()); return(idColumn.Name); }
private Guid FindSysAdminUnitId(Guid contactId) { SysUserInfo currentUser = _userConnection.CurrentUser; if (currentUser.ContactId == contactId) { return(currentUser.Id); } EntitySchemaManager entitySchemaManager = _userConnection.EntitySchemaManager; var esq = new EntitySchemaQuery(entitySchemaManager, "SysAdminUnit") { UseAdminRights = false, IgnoreDisplayValues = true, CanReadUncommitedData = true }; EntitySchemaQueryColumn queryColumn = esq.AddColumn("Id"); IEntitySchemaQueryFilterItem queryFilterItem = esq.CreateFilterWithParameters(FilterComparisonType.Equal, "Contact", contactId); esq.Filters.Add(queryFilterItem); EntityCollection entities = esq.GetEntityCollection(_userConnection); if (entities.Count != 0) { Entity entity = entities.First.Value; return(entity.GetTypedColumnValue <Guid>(queryColumn.Name)); } return(Guid.Empty); }
private void AddDateTimeColumnsByFormat(string dateTimeFormat) { SortedDictionary <int, string> dateTimeFormats = GetSortedDateTimeFormats(dateTimeFormat); int index = 0; foreach (int key in dateTimeFormats.Keys) { var format = dateTimeFormats[key]; string alias = "DatePart" + index; EntitySchemaDatePartQueryFunctionInterval interval = DashboardDataUtils.GetDatePartInterval(format); EntitySchemaQueryExpression columnExpression = EntitySchemaQuery.CreateSchemaColumnExpression(Esq.RootSchema, ColumnPath); columnExpression.UId = Guid.NewGuid(); var queryFunction = new EntitySchemaDatePartQueryFunction(Esq, interval, columnExpression); queryFunction.SpecifyQueryAlias(alias); columnExpression.ParentQuery = queryFunction.ParentQuery; var esqExpression = new EntitySchemaQueryExpression(queryFunction) { UId = Guid.NewGuid() }; EntitySchemaQueryColumn column = Esq.AddColumn(esqExpression.Function); var map = new Dictionary <string, object>(); map["format"] = format; map["valueAlias"] = alias; entityColumnsMap[alias] = map; if (OrderByGroupField) { ApplyColumnOrder(column); } index++; } }
private void AddQueryColumns() { entityColumnsMap = new Dictionary <string, object>(); EntitySchema entitySchema = UserConnection.EntitySchemaManager.GetInstanceByName(SchemaName); string primaryDisplayColumnName = entitySchema.FindPrimaryDisplayColumnName(); string primaryKeyColumnName = entitySchema.GetPrimaryColumnName(); string primaryColumnAlias = string.Empty; foreach (JObject columnItem in _columns) { string columnPath = DashboardDataUtils.GetColumnPath(columnItem); if (entityColumnsMap.ContainsKey(columnPath)) { continue; } EntitySchemaQueryColumn column = AddQueryColumn(columnItem, columnPath); Dictionary <string, object> map = MapColumn(column); entityColumnsMap[columnPath] = map; if (columnPath == primaryKeyColumnName) { primaryColumnAlias = (string)map["valueAlias"]; } } if (primaryColumnAlias.IsNullOrEmpty() && primaryKeyColumnName.IsNotNullOrEmpty()) { EntitySchemaQueryColumn primaryKeyColumn = Esq.AddColumn(primaryKeyColumnName); entityColumnsMap[primaryKeyColumnName] = MapColumn(primaryKeyColumn); } }
public WebitelUserConnection GetUserConnection(string userId) { WebitelUserConnection response = new WebitelUserConnection(); Guid id; if (!Guid.TryParse(userId, out id)) { return(response); } var esqNumberPlan = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "WSysAccount"); EntitySchemaQueryColumn entryNumber = esqNumberPlan.AddColumn("Login"); EntitySchemaQueryColumn entryPassword = esqNumberPlan.AddColumn("Password"); esqNumberPlan.Filters.Add(esqNumberPlan.CreateFilterWithParameters(FilterComparisonType.Equal, "Contact", id)); EntityCollection entitiesNumberPlan = esqNumberPlan.GetEntityCollection(UserConnection); if (entitiesNumberPlan.Count > 0) { Entity entity = entitiesNumberPlan[0]; EntitySchemaColumn entryNumberColumnSchema = entity.Schema.Columns.GetByName(entryNumber.Name); EntitySchemaColumn entryPasswordColumnSchema = entity.Schema.Columns.GetByName(entryPassword.Name); response.login = entity.GetTypedColumnValue <string>(entryNumberColumnSchema.ColumnValueName); response.password = entity.GetTypedColumnValue <string>(entryPasswordColumnSchema.ColumnValueName); } response.customerId = (string)SysSettings.GetValue(UserConnection, "CustomerId"); return(response); }
private EntitySchemaQueryColumn AddAggregatedColumn(JObject yAxisConfig) { AggregationType columnAggregationType = AggregationType.Count; string aggregationType = SerieParameters.Value <string>("func"); if (!string.IsNullOrEmpty(aggregationType)) { columnAggregationType = (AggregationType)Enum.Parse(typeof(AggregationType), aggregationType); } EntitySchemaQueryExpression columnExpression = EntitySchemaQuery.CreateSchemaColumnExpression( Esq.RootSchema, GroupColumnPath); columnExpression.UId = Guid.NewGuid(); var queryFunction = new EntitySchemaAggregationQueryFunction(columnAggregationType.ToStrict(), columnExpression, Esq); if (columnAggregationType == AggregationType.Count) { queryFunction.AggregationEvalType = AggregationEvalType.Distinct; } EntitySchemaQueryColumn column = Esq.AddColumn(queryFunction); var columnMap = new Dictionary <string, object>(); columnMap["valueAlias"] = column.ValueExpression.Function.QueryAlias; columnMap["dataValueType"] = columnExpression.SchemaColumn.DataValueType; entityColumnsMap[GroupColumnPath] = columnMap; yAxisConfig["dataValueType"] = GetColumnDataValueType(columnExpression); return(column); }
/// <summary> /// Searches for the accounts by their web site domains. /// </summary> /// <param name="domains">The domains of the account to find.</param> /// <returns>Identifiers of the found accounts or <c>null</c> if nothing was found.</returns> /// <exception cref="ArgumentNullOrEmptyException">Passed <see cref="domains"/> is <c>null</c>.</exception> public virtual IEnumerable <Guid> SearchByDomain(IEnumerable <string> domains) { domains.CheckArgumentNull("domains"); List <string> domainList = domains.Take(MaxSearchDomainsCount).ToList(); if (domainList.IsEmpty()) { return(null); } var esq = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "AccountCommunication") { RowCount = MaxSearchResultCount, IsDistinct = true }; esq.PrimaryQueryColumn.IsVisible = false; EntitySchemaQueryColumn accountIdColumn = esq.AddColumn("=Account.Id"); domainList.ForEach(email => AddDomainFilters(email, esq)); if (esq.Filters.IsEmpty()) { return(null); } esq.Filters.LogicalOperation = LogicalOperationStrict.Or; EntityCollection entities = esq.GetEntityCollection(_userConnection); if (entities.IsEmpty()) { return(null); } return(entities.Select(entity => entity.GetTypedColumnValue <Guid>(accountIdColumn.Name)).Distinct()); }
/// <summary> /// Returns query for the queue object schema. /// </summary> /// <returns>Instance of the type <see cref="EntitySchemaQuery"/> type.</returns> protected virtual EntitySchemaQuery GetQueueEntitySchemaQuery() { var esq = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "Queue") { UseAdminRights = false, CanReadUncommitedData = true, IgnoreDisplayValues = true }; esq.PrimaryQueryColumn.IsAlwaysSelect = true; esq.AddColumn("Name"); EntitySchemaQueryColumn frequency = esq.AddColumn("[QueueUpdateFrequency:Id:QueueUpdateFrequency].Frequency"); frequency.Name = "Frequency"; esq.AddColumn("FilterEditData"); EntitySchemaQueryFilterCollection esqFilters = esq.Filters; IEntitySchemaQueryFilterItem isManuallyFillingFilterItem = esq.CreateFilterWithParameters(FilterComparisonType.Equal, "IsManuallyFilling", false); esqFilters.Add(isManuallyFillingFilterItem); IEntitySchemaQueryFilterItem statusIsInitialFilterItem = esq.CreateFilterWithParameters(FilterComparisonType.NotEqual, "Status.IsInitial", true); esqFilters.Add(statusIsInitialFilterItem); IEntitySchemaQueryFilterItem statusIsFinalFilterItem = esq.CreateFilterWithParameters(FilterComparisonType.NotEqual, "Status.IsFinal", true); esqFilters.Add(statusIsFinalFilterItem); return(esq); }
/// <inheritdoc/> protected override void ApplyPrimaryColumnRule(EntitySchemaQueryColumn primaryEsqColumn, EntitySchemaQuery esq, string primaryEsqColumnAlias) { var filter = esq.CreateFilterWithParameters(FilterComparisonType.Equal, primaryEsqColumnAlias, Guid.Empty, Guid.Empty); esq.Filters.Add(filter); }
/// <summary> /// Attempts to get time zone from service pact of sourcing case entity. /// </summary> /// <returns>Time zone.</returns> private TimeZoneInfo GetFromServicePact() { var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "ServicePact"); EntitySchemaQueryColumn timeZoneCodeColumn = esq.AddColumn("Calendar.TimeZone.Code"); Entity servicePact = esq.GetEntity(UserConnection, TimeZoneSource.ServicePactId); string code = servicePact.GetTypedColumnValue <string>(timeZoneCodeColumn.Name); return(FindByCode(code)); }
private void ApplyColumnOrder(EntitySchemaQueryColumn column) { string orderDirection = Parameters.Value <string>("orderDirection"); if (!string.IsNullOrEmpty(orderDirection)) { column.OrderDirection = (OrderDirection)Enum.Parse(typeof(OrderDirection), orderDirection); } }
private void SetColumnOrder(JObject columnItem, EntitySchemaQueryColumn column) { string orderDirection = columnItem.Value <string>("orderDirection"); if (!string.IsNullOrEmpty(orderDirection)) { column.OrderDirection = (OrderDirection)Enum.Parse(typeof(OrderDirection), orderDirection); column.OrderPosition = columnItem.Value <int>("orderPosition"); } }
private EntitySchemaQuery GetForecastIndicatorSelectQuery() { var forecastIndicatorEsq = new EntitySchemaQuery(_userConnection.EntitySchemaManager, "ForecastIndicator"); forecastIndicatorEsq.AddColumn(forecastIndicatorEsq.RootSchema.GetPrimaryColumnName()); forecastIndicatorEsq.AddColumn("Name"); forecastIndicatorEsq.AddColumn("Code"); EntitySchemaQueryColumn positionColumn = forecastIndicatorEsq.AddColumn("Position"); positionColumn.OrderByAsc(); return(forecastIndicatorEsq); }
/// <summary> /// Changes partnership level. /// </summary> /// <param name="partnershipId"><see cref="Guid"/> of partnership.</param> public void ChangePartnershipLevel(Guid partnershipId) { EntitySchema partnershipSchema = _userConnection.EntitySchemaManager.GetInstanceByName("Partnership"); EntitySchemaQuery esq = new EntitySchemaQuery(partnershipSchema); esq.PrimaryQueryColumn.IsAlwaysSelect = true; esq.AddAllSchemaColumns(); esq.UseAdminRights = false; EntitySchemaQueryColumn tsCol = esq.AddColumn("PartnerLevel.TargetScore"); EntitySchemaQueryColumn numberCol = esq.AddColumn("PartnerLevel.Number"); Entity partnershipEntity = esq.GetEntity(_userConnection, partnershipId); if (partnershipEntity != null) { Guid obligationPrameterTypeId = PRMBaseConstants.ObligationParameterTypeId; Guid currentPartnershipParamTypeId = PRMBaseConstants.CurrentPartnershipParamTypeId; Select sumSelect = new Select(_userConnection).Column(Func.Sum("Score")) .As("ScoreSum") .From("PartnershipParameter") .Where("PartnershipId") .IsEqual(new QueryParameter(partnershipId)) .And("PartnershipParameterTypeId") .IsEqual(new QueryParameter(currentPartnershipParamTypeId)) .And("ParameterTypeId") .IsEqual(new QueryParameter(obligationPrameterTypeId)) as Select; double scoreSum = sumSelect.ExecuteScalar <double>(); double targetScore = partnershipEntity.GetTypedColumnValue <double>(tsCol.Name); int currentNumber = partnershipEntity.GetTypedColumnValue <int>(numberCol.Name); if (targetScore <= scoreSum) { Guid partnerTypeId = partnershipEntity.GetTypedColumnValue <Guid>("PartnerTypeId"); Select nextLevelSelect = new Select(_userConnection).Top(1) .Column("Id") .From("PartnerLevel") .Where("PartnerTypeId") .IsEqual(new QueryParameter(partnerTypeId)) .And("Number") .IsGreater(new QueryParameter(currentNumber)) .OrderByAsc("Number") as Select; Guid nextLevelId = nextLevelSelect.ExecuteScalar <Guid>(); if (nextLevelId.IsNotEmpty()) { partnershipEntity.SetColumnValue("PartnerLevelId", nextLevelId); partnershipEntity.SetColumnValue("ScoreLeft", targetScore - scoreSum); partnershipEntity.UseAdminRights = false; partnershipEntity.Save(); } } } }
private TimeSpan GetLastWorkingTimeIntervalEnd(Guid dayPrimaryColumnValue) { var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "WorkingTimeInterval"); EntitySchemaQueryColumn toColumn = esq.AddColumn("To"); toColumn.SummaryType = AggregationType.Max; esq.RowCount = 1; esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "DayInCalendar", dayPrimaryColumnValue)); Entity entity = esq.GetSummaryEntity(UserConnection); return(entity != null?entity.GetTypedColumnValue <DateTime>(toColumn.Name).TimeOfDay : TimeSpan.Zero); }
/// <summary> /// Attempts to get time zone from service in service pact of sourcing case entity. /// </summary> /// <returns>Time zone.</returns> private TimeZoneInfo GetFromServiceInServicePact() { var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "ServiceInServicePact"); EntitySchemaQueryColumn timeZoneCodeColumn = esq.AddColumn("Calendar.TimeZone.Code"); esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "ServiceItem", TimeZoneSource.GetTypedColumnValue <Guid>(ServiceItemIdColumnName))); esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "ServicePact", TimeZoneSource.GetTypedColumnValue <Guid>(ServicePactIdColumnName))); Entity serviceInServicePact = esq.GetEntityCollection(UserConnection).First.Value; string code = serviceInServicePact.GetTypedColumnValue <string>(timeZoneCodeColumn.Name); return(FindByCode(code)); }
public int GetUsersCount(string roleId) { var entitySchemaQuery = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "SysAdminUnit"); EntitySchemaQueryColumn countColumn = entitySchemaQuery.AddColumn("Id"); countColumn.SummaryType = AggregationType.Count; entitySchemaQuery.Filters.Add(entitySchemaQuery.CreateFilterWithParameters(FilterComparisonType.Equal, "[SysUserInRole:SysUser:Id].[SysAdminUnit:Id:SysRole].Id", roleId)); entitySchemaQuery.Filters.Add(entitySchemaQuery.CreateFilterWithParameters(FilterComparisonType.Equal, "SysAdminUnitTypeValue", Terrasoft.Core.DB.SysAdminUnitType.User)); Entity summary = entitySchemaQuery.GetSummaryEntity(UserConnection); return((summary != null) ? summary.GetTypedColumnValue <int>(countColumn.Name) : 0); }
private EntityCollection GetAutoTaggedEntities() { EntitySchemaQuery esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "PNGAutoTaggedSection"); esq.Cache = UserConnection.SessionCache.WithLocalCaching(AutoTaggedEntitiesCacheGroupName); esq.CacheItemName = AutoTaggedEntitiesCacheItemName; esq.IsDistinct = true; esq.UseAdminRights = false; EntitySchemaQueryColumn entitySchemaNameColumn = esq.AddColumn("[SysModule:Id:PNGSection].[SysModuleEntity:Id:SysModuleEntity].[SysSchema:UId:SysEntitySchemaUId].Name"); entitySchemaNameColumn.Name = "EntitySchemaName"; esq.AddColumn("PNGColumns"); return(esq.GetEntityCollection(UserConnection)); }
/// <summary> /// ########## ########## ######### ###############. /// </summary> /// <returns>########## ############### # #######.</returns> private int GetSysAdminsCount() { var sysUserInRoleQuery = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "SysUserInRole"); EntitySchemaQueryColumn countColumn = sysUserInRoleQuery.AddColumn("Id"); countColumn.SummaryType = AggregationType.Count; IEntitySchemaQueryFilterItem roleFilter = sysUserInRoleQuery.CreateFilterWithParameters( FilterComparisonType.Equal, "SysRole", sysAdminsRoleId); sysUserInRoleQuery.Filters.Add(roleFilter); Entity summary = sysUserInRoleQuery.GetSummaryEntity(UserConnection); return(summary != null?summary.GetTypedColumnValue <int>(countColumn.Name) : 0); }
private EntitySchemaQuery GetStructuredESQ(UserConnection userConnection) { var esq = new EntitySchemaQuery(userConnection.EntitySchemaManager, "DuplicatesRule") { UseAdminRights = false }; esq.AddColumn("Name"); esq.AddColumn("IsActive"); esq.AddColumn("UseAtSave"); esq.AddColumn("RuleBody"); _schemaNameColumn = esq.AddColumn("[SysSchema:UId:Object].Name"); _sourceSchemaColumn = esq.AddColumn("[SysSchema:UId:SearchObject].Name"); return(esq); }
public Dictionary <string, string> GetMainParamTypeList(string subjectSchemaUId, string columnUId) { if (string.IsNullOrEmpty(subjectSchemaUId) || string.IsNullOrEmpty(columnUId)) { return(null); } var typeColumn = Guid.Parse(columnUId); var schemaUId = Guid.Parse(subjectSchemaUId); if (typeColumn == Guid.Empty || schemaUId == Guid.Empty) { return(null); } var subjectSchema = UserConnection.EntitySchemaManager.GetInstanceByUId(schemaUId); var mainParamTypeCollection = new Dictionary <string, string>(); var typeSchema = subjectSchema.Columns.GetByUId(typeColumn).ReferenceSchema; var typeESQ = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "SysModuleEdit"); typeESQ.PrimaryQueryColumn.IsAlwaysSelect = true; var primaryDisplayColumn = typeESQ.AddColumn("[" + typeSchema.Name + ":Id:TypeColumnValue]." + typeSchema.PrimaryDisplayColumn.Name); EntitySchemaQueryColumn codeESQColumn = null; var codeColumn = typeSchema.Columns.FindByName("Code"); codeESQColumn = codeColumn == null ? null : typeESQ.AddColumn("[" + typeSchema.Name + ":Id:TypeColumnValue]." + codeColumn.Name); typeESQ.Filters.Add( typeESQ.CreateFilterWithParameters( FilterComparisonType.Equal, "SysModuleEntity.SysEntitySchemaUId", schemaUId ) ); typeESQ.Filters.Add( typeESQ.CreateFilterWithParameters( FilterComparisonType.NotEqual, "TypeColumnValue", Terrasoft.Configuration.ActivityConsts.CallTypeUId ) ); var typeEntityCollection = typeESQ.GetEntityCollection(UserConnection); foreach (var typeEntity in typeEntityCollection) { var typeName = typeEntity.GetTypedColumnValue <string>(primaryDisplayColumn.Name); var typeCode = codeESQColumn == null ? null : typeEntity.GetTypedColumnValue <string>(codeESQColumn.Name); mainParamTypeCollection.Add(typeCode, typeName); } return(mainParamTypeCollection); }
private EmailClientType GetEmailClientType(string senderEmailAddress, bool ignoreRights = false) { var helper = ClassFactory.Get <EmailMessageHelper>( new ConstructorArgument("userConnection", UserConnection)); var mailboxESQ = helper.GetMailboxEsq(senderEmailAddress, ignoreRights); EntitySchemaQueryColumn typeColumn = mailboxESQ.AddColumn("MailServer.Type.Id"); EntityCollection mailboxEntities = mailboxESQ.GetEntityCollection(UserConnection); if (mailboxEntities.Count == 0) { throw new EmailException("ErrorOnSend", new ExchangeUtilityImpl().GetMailboxDoesNotExistLczValue(UserConnection)); } bool isExchange = ExchangeConsts.ExchangeMailServerTypeId == mailboxEntities[0].GetTypedColumnValue <Guid>(typeColumn.Name); return(isExchange ? EmailClientType.Exchange : EmailClientType.Smtp); }
/// <summary> /// Returns string value for macros. /// </summary> /// <param name="arguments">Arguments object.</param> /// <returns>Result string.</returns> public override string GetMacrosValue(object arguments) { var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "SatisfactionLevel"); EntitySchemaQueryColumn pointColumn = esq.AddColumn("Point"); pointColumn.OrderDirection = OrderDirection.Descending; string pointColumnName = pointColumn.Name; string dataColumnName = esq.AddColumn("Image.Data").Name; string mimeTypeColumnName = esq.AddColumn("Image.MimeType").Name; esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "IsActive", true)); EntityCollection satisfactionLevels = esq.GetEntityCollection(UserConnection); if (!satisfactionLevels.Any()) { return(string.Empty); } Guid id = GetRecordId(arguments); var count = satisfactionLevels.Count; var rows = (count + RowLengthLimit - 1) / RowLengthLimit; var rowLenght = count / rows; var remainder = count % rows; var result = new StringBuilder(1024); result.Append("<table style=\"border-collapse: collapse; border: 1px outset black;\">"); int index = 0; for (var i = 0; i < rows && index < count; i++, remainder--) { //result.Append("<tr>"); for (var j = 0; j < rowLenght + (remainder > 0 ? 1 : 0) && index < count; j++, index++) { var satisfactionLevel = satisfactionLevels[index]; var image = satisfactionLevel.GetStreamValue(dataColumnName); if (image != null) { var point = satisfactionLevel.GetTypedColumnValue <int>(pointColumnName); var imageBinaryData = image.ReadAllBytes(); var mimeType = satisfactionLevel.GetTypedColumnValue <string>(mimeTypeColumnName); result.Append(GetLinkCell(id, point, imageBinaryData, mimeType)); } } //result.Append("</tr>"); } result.Append("</table>"); return(result.ToString()); }