示例#1
0
        /// <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);
        }
示例#2
0
        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);
        }
示例#5
0
        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);
        }
示例#7
0
        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);
        }
示例#8
0
        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);
        }
示例#10
0
        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++;
            }
        }
示例#11
0
        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);
            }
        }
示例#12
0
        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);
        }
示例#13
0
        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));
        }
示例#18
0
        private void ApplyColumnOrder(EntitySchemaQueryColumn column)
        {
            string orderDirection = Parameters.Value <string>("orderDirection");

            if (!string.IsNullOrEmpty(orderDirection))
            {
                column.OrderDirection = (OrderDirection)Enum.Parse(typeof(OrderDirection),
                                                                   orderDirection);
            }
        }
示例#19
0
        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");
            }
        }
示例#20
0
        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();
                    }
                }
            }
        }
示例#22
0
        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));
        }
示例#24
0
        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);
        }
示例#25
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));
        }
示例#26
0
        /// <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);
        }
示例#27
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);
        }
示例#30
0
        /// <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());
        }