Exemplo n.º 1
0
        internal Silanis.ESL.API.Signer ToAPISigner()
        {
            Silanis.ESL.API.Signer signer = new Silanis.ESL.API.Signer();

            if (!IsGroupSigner())
            {
                signer.Email     = Email;
                signer.FirstName = FirstName;
                signer.LastName  = LastName;
                signer.Title     = Title;
                signer.Company   = Company;
                if (DeliverSignedDocumentsByEmail)
                {
                    signer.Delivery       = new Silanis.ESL.API.Delivery();
                    signer.Delivery.Email = DeliverSignedDocumentsByEmail;
                }
            }
            else
            {
                signer.Group    = new Silanis.ESL.API.Group();
                signer.Group.Id = GroupId.Id;
            }

            if (!String.IsNullOrEmpty(Id))
            {
                signer.Id = Id;
            }

            signer.Auth = authentication.ToAPIAuthentication();

            return(signer);
        }
Exemplo n.º 2
0
		public PackageBuilder WithSigner(Signer signer)
        {
            if (signer.IsPlaceholderSigner())
            {
                placeholders[signer.Id] = signer;
            }
			else if (signer.IsGroupSigner())
			{
				signers[signer.GroupId.Id] = signer;
			}
			else
			{
				signers[signer.Email] = signer;
			}
			return this;
		}
Exemplo n.º 3
0
        private Role FindRoleForGroup(PackageId packageId, string groupId)
        {
            IList <Role> roles = GetRoles(packageId);

            foreach (Role role in roles)
            {
                if (role.Signers.Count > 0)
                {
                    Silanis.ESL.API.Signer signer = role.Signers[0];
                    if (signer.Group != null && signer.Group.Id.Equals(groupId))
                    {
                        return(role);
                    }
                }
            }
            return(null);
        }
Exemplo n.º 4
0
     public Role AddSigner(Signer value)
 {
     if (value == null)
     {
         throw new ArgumentNullException("Argument cannot be null");
     }
     
     _signers.Add(value);
     return this;
 }
Exemplo n.º 5
0
		public void UpdateSigner( PackageId packageId, Signer signer )
		{
			Role apiPayload = new SignerConverter( signer ).ToAPIRole( System.Guid.NewGuid().ToString());

			string path = template.UrlFor (UrlTemplate.UPDATE_SIGNER_PATH)
				.Replace( "{packageId}", packageId.Id )
				.Replace( "{roleId}", signer.Id )
				.Build ();
			try {
				string json = JsonConvert.SerializeObject (apiPayload, settings);
				restClient.Put(path, json);              
			}
            catch (EslServerException e) {
                throw new EslServerException ("Could not update signer." + " Exception: " + e.Message, e.ServerError, e);
            }
            catch (Exception e) {
				throw new EslException ("Could not update signer." + " Exception: " + e.Message, e);
			}
		}
Exemplo n.º 6
0
		public string AddSigner( PackageId packageId, Signer signer )
		{
			Role apiPayload = new SignerConverter( signer ).ToAPIRole( System.Guid.NewGuid().ToString());

			string path = template.UrlFor (UrlTemplate.ADD_SIGNER_PATH)
				.Replace( "{packageId}", packageId.Id )
				.Build ();
			try {
				string json = JsonConvert.SerializeObject (apiPayload, settings);
				string response = restClient.Post(path, json);              
				Role apiRole = JsonConvert.DeserializeObject<Role> (response);

				return apiRole.Id;
			} 
            catch (EslServerException e) {
                throw new EslServerException ("Could not add signer." + " Exception: " + e.Message, e.ServerError, e);
            }
            catch (Exception e) {
				throw new EslException ("Could not add signer." + " Exception: " + e.Message, e);
			}
		}
Exemplo n.º 7
0
		internal Silanis.ESL.API.Signer ToAPISigner ()
		{
			Silanis.ESL.API.Signer signer = new Silanis.ESL.API.Signer ();

			if (!IsGroupSigner())
			{
				signer.Email = Email;
				signer.FirstName = FirstName;
				signer.LastName = LastName;
				signer.Title = Title;
				signer.Company = Company;
				if (DeliverSignedDocumentsByEmail)
				{
					signer.Delivery = new Silanis.ESL.API.Delivery();
					signer.Delivery.Email = DeliverSignedDocumentsByEmail;
				}
			}
			else
			{
				signer.Group = new Silanis.ESL.API.Group();
				signer.Group.Id = GroupId.Id;
			}

			if (!String.IsNullOrEmpty(Id))
			{
				signer.Id = Id;
			}

			signer.Auth = authentication.ToAPIAuthentication ();

			return signer;
		}
Exemplo n.º 8
0
        internal static SignatureBuilder NewSignatureFromAPIApproval(Silanis.ESL.API.Approval apiApproval, Silanis.ESL.API.Package package)
        {
            SignatureBuilder signatureBuilder = null;

            Silanis.ESL.API.Signer apiSigner = null;
            foreach (Silanis.ESL.API.Role role in package.Roles)
            {
                if (role.Id.Equals(apiApproval.Role))
                {
                    if (!isPlaceHolder(role))
                    {
                        apiSigner = role.Signers [0];
                    }
                }
            }
            if (apiSigner != null)
            {
                if (apiSigner.Group == null)
                {
                    signatureBuilder = new SignatureBuilder(apiSigner.Email);
                }
                else
                {
                    signatureBuilder = new SignatureBuilder(new GroupId(apiSigner.Group.Id));
                }
            }
            else
            {
                signatureBuilder = new SignatureBuilder("");
            }
            signatureBuilder.WithName(apiApproval.Name);

            Silanis.ESL.API.Field apiSignatureField = null;
            foreach (Silanis.ESL.API.Field apiField in apiApproval.Fields)
            {
                if (apiField.Type == Silanis.ESL.API.FieldType.SIGNATURE)
                {
                    apiSignatureField = apiField;
                }
                else
                {
                    FieldBuilder fieldBuilder = FieldBuilder.NewFieldFromAPIField(apiField);
                    signatureBuilder.WithField(fieldBuilder);
                }
            }

            if (apiSignatureField == null)
            {
                signatureBuilder.WithStyle(SignatureStyle.ACCEPTANCE);
                signatureBuilder.WithSize(0, 0);
            }
            else
            {
                signatureBuilder.WithStyle(FromAPIFieldSubType(apiSignatureField.Subtype))
                .OnPage(apiSignatureField.Page)
                .AtPosition(apiSignatureField.Left, apiSignatureField.Top)
                .WithSize(apiSignatureField.Width, apiSignatureField.Height);

                if (apiSignatureField.Extract)
                {
                    signatureBuilder.EnableExtraction();
                }
            }

            return(signatureBuilder);
        }