public MonetaSdkResult sdkMonetaCreateProfile(long unitId, long profileId)
        {
            MonetaSdkResult result = new MonetaSdkResult();

            try
            {
                CreateProfileRequest request = new CreateProfileRequest();


                request.profileId          = profileId;
                request.profileIdSpecified = true;
                request.unitId             = unitId;
                request.unitIdSpecified    = true;

                request.profileType = ProfileType.client;

                List <KeyValueApprovedAttribute> mntAttributes = new List <KeyValueApprovedAttribute>();

                KeyValueApprovedAttribute monetaAtribute = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "first_name";
                monetaAtribute.value = "first_name";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "last_name";
                monetaAtribute.value = "last_name";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "email_for_notifications";
                monetaAtribute.value = "email_for_notifications";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "sex";
                monetaAtribute.value = "MALE";
                mntAttributes.Add(monetaAtribute);

                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "childprofiletypeid";
                monetaAtribute.value = "DIRECTOR";
                mntAttributes.Add(monetaAtribute);

                request.profile = mntAttributes.ToArray();

                response = client.CreateProfile(request);

                result = prepareResult();
            }
            catch (Exception e)
            {
                result.error        = true;
                result.errorMessage = e.Message;
            }

            return(result);
        }
        // CreateUser
        public MonetaSdkResult sdkMonetaCreateUser(string firstName, string lastName, string email, string gender)
        {
            MonetaSdkResult result = new MonetaSdkResult();

            try
            {
                if (String.Compare(gender, "MALE") != 0 && String.Compare(gender, "FEMALE") != 0)
                {
                    gender = "MALE";
                }

                CreateProfileRequest             request       = new CreateProfileRequest();
                List <KeyValueApprovedAttribute> mntAttributes = new List <KeyValueApprovedAttribute>();

                KeyValueApprovedAttribute monetaAtribute = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "first_name";
                monetaAtribute.value = firstName;
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "last_name";
                monetaAtribute.value = lastName;
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "email_for_notifications";
                monetaAtribute.value = email;
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "sex";
                monetaAtribute.value = gender;
                mntAttributes.Add(monetaAtribute);

                request.profile = mntAttributes.ToArray();

                String mntPrototype = basicSettings.GetSetting("BasicSettings", "monetasdk_prototype_user_unit_id");
                if (String.Compare(mntPrototype, "") != 0)
                {
                    request.unitId          = (long)Convert.ToDouble(mntPrototype);
                    request.unitIdSpecified = true;
                }

                request.profileType = ProfileType.client;

                response = client.CreateProfile(request);

                result = prepareResult();
            }
            catch (Exception e)
            {
                result.error        = true;
                result.errorMessage = e.Message;
            }

            return(result);
        }
        public MonetaSdkResult sdkMonetaEditProfileDocumentRequest(long docId, long unitId, long profileId = 0)
        {
            MonetaSdkResult result = new MonetaSdkResult();

            try
            {
                EditProfileDocumentRequest request = new EditProfileDocumentRequest();

                List <KeyValueApprovedAttribute> mntAttributes = new List <KeyValueApprovedAttribute>();

                KeyValueApprovedAttribute monetaAtribute = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "SERIES";
                monetaAtribute.value = "1111";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "NUMBER";
                monetaAtribute.value = "111111";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "ISSUER";
                monetaAtribute.value = "test";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "ISSUED";
                monetaAtribute.value = "2002-02-04";
                mntAttributes.Add(monetaAtribute);

                request.id          = docId;
                request.idSpecified = true;

                request.attribute       = mntAttributes.ToArray();
                request.unitId          = unitId;
                request.unitIdSpecified = true;
                if (profileId > 0)
                {
                    request.profileId          = profileId;
                    request.profileIdSpecified = true;
                }

                request.type          = DocumentType.PASSPORT;
                request.typeSpecified = true;

                response = client.EditProfileDocument(request);

                result = prepareResult();
            }
            catch (Exception e)
            {
                result.error        = true;
                result.errorMessage = e.Message;
            }

            return(result);
        }
        // EditProfile
        public MonetaSdkResult sdkMonetaEditProfile(long unitId, long profileId)
        {
            MonetaSdkResult result = new MonetaSdkResult();

            try
            {
                EditProfileRequest request = new EditProfileRequest();
                List <KeyValueApprovedAttribute> mntAttributes = new List <KeyValueApprovedAttribute>();

                KeyValueApprovedAttribute monetaAtribute = new KeyValueApprovedAttribute();

                monetaAtribute.key   = "kpp";
                monetaAtribute.value = "1111";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "ogrn";
                monetaAtribute.value = "2222";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "ogrnip";
                monetaAtribute.value = "3333";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "okpo";
                monetaAtribute.value = "4444";
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "okved";
                monetaAtribute.value = "5555";
                mntAttributes.Add(monetaAtribute);

                request.profile            = mntAttributes.ToArray();
                request.unitId             = unitId;
                request.profileId          = profileId;
                request.profileIdSpecified = true;

                response = client.EditProfile(request);

                result = prepareResult();
            }
            catch (Exception e)
            {
                result.error        = true;
                result.errorMessage = e.Message;
            }

            return(result);
        }
        // CreateOrganizationProfile
        public MonetaSdkResult sdkMonetaCreateOrganizationProfile(string inn, string url, string rf_resident, string alias, string organization_name,
                                                                  string organization_name_short, string contact_email)
        {
            MonetaSdkResult result = new MonetaSdkResult();

            try
            {
                CreateProfileRequest             request       = new CreateProfileRequest();
                List <KeyValueApprovedAttribute> mntAttributes = new List <KeyValueApprovedAttribute>();

                KeyValueApprovedAttribute monetaAtribute = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "inn";
                monetaAtribute.value = inn;
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "url";
                monetaAtribute.value = url;
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "rf_resident";
                monetaAtribute.value = rf_resident;
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "alias";
                monetaAtribute.value = alias;
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "organization_name";
                monetaAtribute.value = organization_name;
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "organization_name_short";
                monetaAtribute.value = organization_name_short;
                mntAttributes.Add(monetaAtribute);
                monetaAtribute       = new KeyValueApprovedAttribute();
                monetaAtribute.key   = "contact_email";
                monetaAtribute.value = contact_email;
                mntAttributes.Add(monetaAtribute);

                request.profile = mntAttributes.ToArray();

                String mntPrototype = basicSettings.GetSetting("BasicSettings", "monetasdk_prototype_user_unit_id");
                if (String.Compare(mntPrototype, "") != 0)
                {
                    request.unitId          = (long)Convert.ToDouble(mntPrototype);
                    request.unitIdSpecified = true;
                }

                request.profileType = ProfileType.organization;

                response = client.CreateProfile(request);

                result = prepareResult();
            }
            catch (Exception e)
            {
                result.error        = true;
                result.errorMessage = e.Message;
            }

            return(result);
        }