/// <summary>
        /// Catalogs the value set with dependent values.
        /// </summary>
        /// <param name="values">
        /// The values.
        /// </param>
        /// <returns>
        /// a catalog value set
        /// </returns>
        public static CatalogValueSet CatalogValueSetWithDependentValues(List <object> values)
        {
            var valueSet = new CatalogValueSet();

            if (values == null)
            {
                return(valueSet);
            }

            foreach (JArray catval in values)
            {
                var catvaldef = catval?.ToObject <List <object> >();
                var value     = new UPCatalogValue(catvaldef);
                valueSet.AddWithOwnership(
                    new DependentCatalogValue(
                        value.Code,
                        value.ParentCode,
                        value.Text,
                        value.Tenant,
                        value.ExtKey,
                        value.Sortinfo,
                        value.Access,
                        true));
            }

            return(valueSet);
        }
Пример #2
0
        /// <summary>
        /// Valueses from catalog value set sorted include hidden check tenants.
        /// </summary>
        /// <param name="valueSet">
        /// The value set.
        /// </param>
        /// <param name="sorted">
        /// if set to <c>true</c> [sorted].
        /// </param>
        /// <param name="includeHidden">
        /// if set to <c>true</c> [include hidden].
        /// </param>
        /// <param name="checkTenants">
        /// if set to <c>true</c> [check tenants].
        /// </param>
        /// <returns>
        /// The <see cref="List"/>.
        /// </returns>
        public List <UPCatalogValue> ValuesFromCatalogValueSetSortedIncludeHiddenCheckTenants(
            CatalogValueSet valueSet,
            bool sorted,
            bool includeHidden,
            bool checkTenants)
        {
            int i, count = valueSet?.Values?.Count ?? 0;
            var valueArray  = new List <UPCatalogValue>(count);
            var tenantCount = 0;

            int[] tenants = null;
            if (checkTenants)
            {
                List <int> tenantArray = null;
                if (ServerSession.CurrentSession.TenantNo > 0)
                {
                    tenantArray = ServerSession.CurrentSession.AllUserTenants;
                }

                tenantCount = tenantArray?.Count ?? 0;
                if (tenantCount > 0)
                {
                    tenants = new int[tenantCount];
                    for (i = 0; i < tenantCount; i++)
                    {
                        tenants[i] = tenantArray[i];
                    }
                }
            }

            for (i = 0; i < count; i++)
            {
                var value = sorted ? valueSet?.GetSortedCatalogValueFromIndex(i) : valueSet?.GetCatalogValueFromIndex(i);
                if (!includeHidden && value?.Access > 0)
                {
                    continue;
                }

                if (checkTenants && value?.GetAccessForTenants(tenantCount, tenants) != 0)
                {
                    continue;
                }

                valueArray.Add(new UPCatalogValue(value));
            }

            return(valueArray);
        }
Пример #3
0
        /// <summary>
        /// Sorteds the values for codes from value set.
        /// </summary>
        /// <param name="codeArray">
        /// The code array.
        /// </param>
        /// <param name="catalogValueSet">
        /// The catalog value set.
        /// </param>
        /// <returns>
        /// The <see cref="List"/>.
        /// </returns>
        public List <string> SortedValuesForCodesFromValueSet(List <string> codeArray, CatalogValueSet catalogValueSet)
        {
            var valueDict = new Dictionary <string, object>();

            // NSDictionary.DictionaryWithObjectsForKeys(codeArray, codeArray);
            int i, count = catalogValueSet?.Values?.Count ?? 0;
            var resultArray = new List <string>(codeArray.Count);

            for (i = 0; i < count; i++)
            {
                var v = catalogValueSet.GetSortedCatalogValueFromIndex(i);
                if (v == null)
                {
                    continue;
                }

                var n = $"{v.Code}";
                if (valueDict.ValueOrDefault(n) != null)
                {
                    resultArray.Add(n);
                }
            }

            return(resultArray);
        }