public SingleObjectModel GetESignRequestByDocumentNo(string documentNo)
        {
            try {
                SignRequestDTO signRequest = ESignUseCases.GetESignRequestByDocumentNo(documentNo);

                return(GetResponse(signRequest));
            } catch (Exception e) {
                throw base.CreateHttpException(e);
            }
        }
        public CollectionModel GetMyESignRequests([FromUri] string keywords = "")
        {
            try {
                FixedList <SignRequestDTO> myRequests =
                    ESignUseCases.GetMyESignRequests(keywords);

                return(GetResponse(myRequests));
            } catch (Exception e) {
                throw base.CreateHttpException(e);
            }
        }
        public PagedCollectionModel GetMyLastESignEvents([FromUri] string keywords = "")
        {
            try {
                FixedList <SignEventDTO> events = ESignUseCases.GetMyLastESignEvents(keywords);

                return(new PagedCollectionModel(this.Request, events, typeof(SignEventDTO).FullName));
            } catch (Exception e) {
                EmpiriaLog.Error(e);

                throw base.CreateHttpException(e);
            }
        }
        public CollectionModel RefuseSign([FromBody] SignTaskDTO signTaskDTO)
        {
            try {
                AssertSignTaskDTOIsValid(signTaskDTO);

                FixedList <SignEventDTO> refuseSignEvents = ESignUseCases.RefuseSign(signTaskDTO);

                return(GetResponse(refuseSignEvents));
            } catch (Exception e) {
                throw base.CreateHttpException(e);
            }
        }
        public CollectionModel GetMyESignRequestsInStatus([FromUri] string status,
                                                          [FromUri] string keywords = "")
        {
            try {
                SignStatus signStatus = GetSignStatusFromRequest(status);

                FixedList <SignRequestDTO> myRequests =
                    ESignUseCases.GetMyESignRequests(signStatus, keywords);

                return(GetResponse(myRequests));
            } catch (Exception e) {
                throw base.CreateHttpException(e);
            }
        }
        private void AssertSignTaskDTOIsValid(SignTaskDTO signTaskDTO)
        {
            base.RequireBody(signTaskDTO);

            ESignUseCases.EnsureValidSignTaskDTO(signTaskDTO);
        }