/// <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); }
/// <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); }
/// <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); }