public ClassificatorDescModel GetClassificatorExpDescRecursive(CardAttributeModel cardAttribute) { LOG_TRACE($"GetClassificatorExpDesc"); if (_client != null && cardAttribute.AttributeType == AttributeType.ClassificatorExp) { ClassificatorDesc classificatorDesc = null; try { using (OperationContextScope scope = new OperationContextScope(_client.InnerChannel)) { HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(_client.ClientCredentials.UserName.UserName + ":" + _client.ClientCredentials.UserName.Password)); OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; classificatorDesc = _client.GetClassificatorDesc((int)cardAttribute.AttributeNumber, 0); } } catch (InvalidCastException) { } if (classificatorDesc != null) { ClassificatorDescModel ret = new ClassificatorDescModel(classificatorDesc.type); foreach (var item in classificatorDesc.values) { var addedItem = new ClassificatorDescModel.ClassificatorDescModelItem(item.name, item.oid); ret.Values.Add(addedItem); GetClassificatorDescModelItemRecursive((int)cardAttribute.AttributeNumber, item.oid, addedItem.Childrens); } return(ret); } } return(null); }
private void GetClassificatorDescModelItemRecursive(int attributeNumber, int oid, List <ClassificatorDescModel.ClassificatorDescModelItem> item) { ClassificatorDesc classificatorDesc = null; try { using (OperationContextScope scope = new OperationContextScope(_client.InnerChannel)) { HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty(); httpRequestProperty.Headers[System.Net.HttpRequestHeader.Authorization] = "Basic " + Convert.ToBase64String(Encoding.ASCII.GetBytes(_client.ClientCredentials.UserName.UserName + ":" + _client.ClientCredentials.UserName.Password)); OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty; classificatorDesc = _client.GetClassificatorDesc(attributeNumber, oid); } } catch (InvalidCastException) { } if (classificatorDesc != null) { foreach (var value in classificatorDesc.values) { var subItem = new ClassificatorDescModel.ClassificatorDescModelItem(value.name, value.oid); item.Add(subItem); GetClassificatorDescModelItemRecursive(attributeNumber, value.oid, subItem.Childrens); } } }
public ClassificatorDescModel(ClassificatorDesc classificatorDesc) { Type = GetType(classificatorDesc.type); foreach (var item in classificatorDesc.values) { Values.Add(new ClassificatorDescModelItem(item.name, item.oid)); } }