Esempio n. 1
0
        internal Silanis.ESL.API.Package ToAPIPackage()
        {
            if (sdkPackage == null)
            {
                return(apiPackage);
            }

            Silanis.ESL.API.Package package = new Silanis.ESL.API.Package();

            package.Name         = sdkPackage.Name;
            package.Due          = sdkPackage.ExpiryDate;
            package.Autocomplete = sdkPackage.Autocomplete;

            if (sdkPackage.Id != null)
            {
                package.Id = sdkPackage.Id.ToString();
            }

            if (sdkPackage.Status != null)
            {
                package.Status = sdkPackage.Status;
            }

            if (sdkPackage.Description != null)
            {
                package.Description = sdkPackage.Description;
            }

            if (sdkPackage.EmailMessage != null)
            {
                package.EmailMessage = sdkPackage.EmailMessage;
            }

            if (sdkPackage.Language != null)
            {
                if (sdkPackage.Language.IsNeutralCulture)
                {
                    package.Language = sdkPackage.Language.TwoLetterISOLanguageName;
                }
                else
                {
                    string LanguageCountry = (new RegionInfo(sdkPackage.Language.LCID)).TwoLetterISORegionName;
                    package.Language = sdkPackage.Language.TwoLetterISOLanguageName + "-" + LanguageCountry;
                }
            }

            if (sdkPackage.Settings != null)
            {
                package.Settings = sdkPackage.Settings.toAPIPackageSettings();
            }

            if (sdkPackage.SenderInfo != null)
            {
                package.Sender = new SenderConverter(sdkPackage.SenderInfo).ToAPISender();
            }

            if (sdkPackage.Attributes != null)
            {
                package.Data = sdkPackage.Attributes.Contents;
            }

            if (sdkPackage.Notarized != null)
            {
                package.Notarized = sdkPackage.Notarized;
            }

            if (sdkPackage.Trashed != null)
            {
                package.Trashed = sdkPackage.Trashed;
            }

            if (sdkPackage.Visibility != null)
            {
                package.Visibility = sdkPackage.Visibility;
            }

            if (sdkPackage.TimezoneId != null)
            {
                package.TimezoneId = sdkPackage.TimezoneId;
            }

            int signerCount = 1;

            foreach (Signer signer in sdkPackage.Signers)
            {
                Silanis.ESL.API.Role role = new SignerConverter(signer).ToAPIRole("signer" + signerCount);
                package.AddRole(role);
                signerCount++;
            }
            foreach (Signer signer in sdkPackage.Placeholders)
            {
                Silanis.ESL.API.Role role = new SignerConverter(signer).ToAPIRole(signer.Id, signer.PlaceholderName);
                role.Index = signer.SigningOrder;
                package.AddRole(role);
                signerCount++;
            }
            foreach (FieldCondition condition in sdkPackage.Conditions)
            {
                package.AddCondition(new FieldConditionConverter(condition).ToAPIFieldCondition());
            }

            return(package);
        }