public Resource ComposeUserResource()
        {
            int            countValues = 4;
            IList <string> values      = new List <string>(countValues);

            for (int valueIndex = 0; valueIndex < countValues; valueIndex++)
            {
                string value = Guid.NewGuid().ToString(SampleComposer.FormatUniqueIdentifierCompressed);
                values.Add(value);
            }

            ElectronicMailAddress electronicMailAddress = new ElectronicMailAddress();

            electronicMailAddress.ItemType = ElectronicMailAddress.Work;
            electronicMailAddress.Primary  = false;
            electronicMailAddress.Value    =
                string.Format(
                    CultureInfo.InvariantCulture,
                    SampleComposer.ElectronicMailAddressTemplate,
                    values[1]);

            int countProxyAddresses = 2;
            IList <ElectronicMailAddress> proxyAddresses = new List <ElectronicMailAddress>(countProxyAddresses);

            for (int proxyAddressIndex = 0; proxyAddressIndex < countProxyAddresses; proxyAddressIndex++)
            {
                ElectronicMailAddress proxyAddress = new ElectronicMailAddress();
                proxyAddress.ItemType = ElectronicMailAddress.Other;
                proxyAddress.Primary  = false;
                proxyAddress.Value    =
                    string.Format(
                        CultureInfo.InvariantCulture,
                        SampleComposer.ElectronicMailAddressTemplate,
                        values[2 + proxyAddressIndex]);
                proxyAddresses.Add(proxyAddress);
            }

            Core2EnterpriseUser result = new Core2EnterpriseUser();

            result.Identifier         = Guid.NewGuid().ToString();
            result.ExternalIdentifier = values[0];
            result.Active             = true;
            result.DisplayName        = values[0];

            result.Name            = new Name();
            result.Name.FamilyName = values[0];
            result.Name.GivenName  = values[0];

            Address workAddress = new Address();

            workAddress.ItemType      = Address.Work;
            workAddress.StreetAddress = values[0];
            workAddress.PostalCode    = values[0];

            Address officeLocation = new Address();

            officeLocation.ItemType  = Address.Other;
            officeLocation.Primary   = false;
            officeLocation.Formatted = values[0];

            PhoneNumber phoneNumberWork = new PhoneNumber();

            phoneNumberWork.ItemType = PhoneNumber.Work;
            phoneNumberWork.Value    = SampleComposer.FictitiousPhoneNumber.ToString(CultureInfo.InvariantCulture);

            PhoneNumber phoneNumberMobile = new PhoneNumber();

            phoneNumberMobile.ItemType = PhoneNumber.Mobile;
            phoneNumberMobile.Value    = (SampleComposer.FictitiousPhoneNumber + 1).ToString(CultureInfo.InvariantCulture);

            PhoneNumber phoneNumberFacsimile = new PhoneNumber();

            phoneNumberFacsimile.ItemType = PhoneNumber.Fax;
            phoneNumberFacsimile.Value    = (SampleComposer.FictitiousPhoneNumber + 2).ToString(CultureInfo.InvariantCulture);

            PhoneNumber phoneNumberPager = new PhoneNumber();

            phoneNumberPager.ItemType = PhoneNumber.Pager;
            phoneNumberPager.Value    = (SampleComposer.FictitiousPhoneNumber + 3).ToString(CultureInfo.InvariantCulture);

            result.UserName =
                string.Format(
                    CultureInfo.InvariantCulture,
                    SampleComposer.ElectronicMailAddressTemplate,
                    values[0]);

            result.Addresses =
                new Address[]
            {
                workAddress,
                officeLocation
            };

            result.ElectronicMailAddresses =
                new ElectronicMailAddress[]
            {
                electronicMailAddress,
            }
            .Union(proxyAddresses)
            .ToArray();

            result.PhoneNumbers =
                new PhoneNumber[]
            {
                phoneNumberWork,
                phoneNumberFacsimile,
                phoneNumberMobile,
                phoneNumberPager
            };

            return(result);
        }
        public SampleProvider()
        {
            this.sampleElectronicMailAddressHome =
                new ElectronicMailAddress
            {
                ItemType = ElectronicMailAddress.Home,
                Value    = SampleProvider.ElectronicMailAddressHome
            };

            this.sampleElectronicMailAddressWork =
                new ElectronicMailAddress
            {
                ItemType = ElectronicMailAddressWork,
                Primary  = true,
                Value    = SampleProvider.ElectronicMailAddressWork
            };

            this.sampleElectronicMailAddresses =
                new ElectronicMailAddress[]
            {
                this.sampleElectronicMailAddressHome,
                this.sampleElectronicMailAddressWork
            };

            this.sampleManager =
                new Manager()
            {
                Value = SampleProvider.ManagerIdentifier,
            };

            this.sampleName =
                new Name()
            {
                FamilyName      = SampleProvider.NameFamily,
                Formatted       = SampleProvider.NameFormatted,
                GivenName       = SampleProvider.NameGiven,
                HonorificPrefix = SampleProvider.NameHonorificPrefix,
                HonorificSuffix = SampleProvider.NameHonorificSuffix
            };

            this.sampleOperationValue =
                new OperationValue()
            {
                Value = SampleProvider.IdentifierUser
            };

            this.sampleOperation = this.ConstructOperation();

            this.samplePatch = this.ConstructPatch();

            this.sampleUser =
                new Core2EnterpriseUser()
            {
                Active = true,
                ElectronicMailAddresses = this.sampleElectronicMailAddresses,
                ExternalIdentifier      = SampleProvider.IdentifierExternal,
                Identifier = SampleProvider.IdentifierUser,
                Name       = this.sampleName,
                UserName   = SampleProvider.NameUser
            };

            ExtensionAttributeEnterpriseUser2 enterpriseExtensionAttributeEnterpriseUser2 =
                new ExtensionAttributeEnterpriseUser2()
            {
                CostCenter     = SampleProvider.ExtensionAttributeEnterpriseUserCostCenter,
                Department     = SampleProvider.ExtensionAttributeEnterpriseUserDepartment,
                Division       = SampleProvider.ExtensionAttributeEnterpriseUserDivision,
                EmployeeNumber = SampleProvider.ExtensionAttributeEnterpriseUserEmployeeNumber,
                Manager        = this.sampleManager,
                Organization   = SampleProvider.ExtensionAttributeEnterpriseUserOrganization
            };

            this.SampleUser.EnterpriseExtension = enterpriseExtensionAttributeEnterpriseUser2;

            this.sampleGroup =
                new Core2Group()
            {
                DisplayName = SampleProvider.GroupName,
            };
        }