Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }