internal static Message CreateGetMessage(UniqueIdentifier id, IEnumerable <string> attributes, CultureInfo locale) { Get op = null; if (attributes != null && attributes.Any()) { op = new Get(); op.Dialect = Namespaces.RMIdentityAttributeType; op.Expressions = MessageComposer.AddMandatoryAttributes(attributes, locale).ToArray(); } Message message; if (op == null) { message = Message.CreateMessage(MessageVersion.Default, Namespaces.Get); } else { message = Message.CreateMessage(MessageVersion.Default, Namespaces.Get, new SerializerBodyWriter(op)); message.AddHeader(Namespaces.IdMDirectoryAccess, HeaderConstants.IdentityManagementOperation, null, true); } if (locale != null) { message.AddHeader(AttributeNames.Locale, locale); } message.AddHeader(HeaderConstants.ResourceReferenceProperty, id.ToString()); return(message); }
internal static Message CreateEnumerateMessage(string filter, int pageSize, IEnumerable <string> attributes, IEnumerable <SortingAttribute> sortingAttributes, CultureInfo locale) { Enumerate request = new Enumerate(); request.Filter = new FilterType(filter); request.MaxElements = pageSize < 0 ? MessageComposer.DefaultPageSize : pageSize.ToString(); if (attributes != null) { request.Selection = MessageComposer.AddMandatoryAttributes(attributes, locale).ToArray(); } if (sortingAttributes != null && sortingAttributes.Any()) { request.Sorting = new Sorting(); request.Sorting.Dialect = Namespaces.ResourceManagement; request.Sorting.SortingAttributes = sortingAttributes.ToArray(); } if (locale != null) { request.LocalePreferences = new LocalePreferenceType[1]; request.LocalePreferences[0] = new LocalePreferenceType(locale, 1); } Message requestMessage = Message.CreateMessage(MessageVersion.Default, Namespaces.Enumerate, new SerializerBodyWriter(request)); requestMessage.AddHeader(Namespaces.ResourceManagement, "IncludeCount", null); return(requestMessage); }