public object Clone() { var result = new SCIMRepresentationAttribute(Id) { Id = Id, ValuesString = ValuesString.ToList(), ValuesBoolean = ValuesBoolean.ToList(), ValuesDateTime = ValuesDateTime.ToList(), ValuesInteger = ValuesInteger.ToList(), ValuesReference = ValuesReference.ToList(), SchemaAttribute = (SCIMSchemaAttribute)SchemaAttribute.Clone() }; foreach (var cloneAttribute in Values.Select(v => (SCIMRepresentationAttribute)v.Clone()).ToList()) { result.Add(cloneAttribute); } return(result); }
private static ICollection <SCIMRepresentationAttribute> ExtractRepresentationAttributesFromJSON(SCIMSchemaAttribute schemaAttribute, object jObj) { var jArr = jObj as JArray; var parsedRepresentationAttributes = new List <SCIMRepresentationAttribute>(); if (schemaAttribute.Type == SCIMSchemaAttributeTypes.COMPLEX) { if (jArr != null) { foreach (JObject record in jArr) { var attribute = new SCIMRepresentationAttribute(Guid.NewGuid().ToString(), schemaAttribute); foreach (var attr in SCIMRepresentationHelper.BuildRepresentationAttributes(record, schemaAttribute.SubAttributes)) { attribute.Add(attr); } parsedRepresentationAttributes.Add(attribute); } } else { var attribute = new SCIMRepresentationAttribute(Guid.NewGuid().ToString(), schemaAttribute); foreach (var attr in SCIMRepresentationHelper.BuildRepresentationAttributes(jObj as JObject, schemaAttribute.SubAttributes)) { attribute.Add(attr); } parsedRepresentationAttributes.Add(attribute); } } else { switch (schemaAttribute.Type) { case SCIMSchemaAttributeTypes.BOOLEAN: parsedRepresentationAttributes.Add(new SCIMRepresentationAttribute(Guid.NewGuid().ToString(), schemaAttribute, valuesBoolean: new List <bool> { bool.Parse(jObj.ToString()) })); break; case SCIMSchemaAttributeTypes.STRING: parsedRepresentationAttributes.Add(new SCIMRepresentationAttribute(Guid.NewGuid().ToString(), schemaAttribute, valuesString: new List <string> { jObj.ToString() })); break; case SCIMSchemaAttributeTypes.INTEGER: parsedRepresentationAttributes.Add(new SCIMRepresentationAttribute(Guid.NewGuid().ToString(), schemaAttribute, valuesInteger: new List <int> { int.Parse(jObj.ToString()) })); break; case SCIMSchemaAttributeTypes.DATETIME: parsedRepresentationAttributes.Add(new SCIMRepresentationAttribute(Guid.NewGuid().ToString(), schemaAttribute, valuesDateTime: new List <DateTime> { DateTime.Parse(jObj.ToString()) })); break; } } return(parsedRepresentationAttributes); }