internal FixedList <SignEvent> Execute(SignTask task)
        {
            Assertion.AssertObject(task, "task");

            this.EnsureValidCredentials(task.SignCredentials);

            var eventsList = new List <SignEvent>(task.SignRequests.Count);

            using (var context = StorageContext.Open()) {
                foreach (var request in task.SignRequests)
                {
                    SignEvent signEvent = CreateSignEvent(task, request);

                    context.Watch(request);

                    signEvent.Save();
                    request.Save();

                    eventsList.Add(signEvent);
                }

                context.Update();
            } // using

            return(eventsList.ToFixedList());
        }
示例#2
0
        static private FixedList <SignEventDTO> ExecuteSignTask(SignTaskDTO signTaskDTO,
                                                                SignEventType eventType)
        {
            EnsureValidSignTaskDTO(signTaskDTO);

            signTaskDTO.eventType = eventType;

            SignTask signTask = ESignMapper.Map(signTaskDTO);

            var signTaskProcessor = new SignTaskProcessor();

            FixedList <SignEvent> signEvents = signTaskProcessor.Execute(signTask);

            return(ESignMapper.Map(signEvents));
        }
        static private SignEvent CreateSignEvent(SignTask signTask, SignRequest signRequest)
        {
            switch (signTask.EventType)
            {
            case SignEventType.Signed:
                string digitalSign = SignData(signTask.SignCredentials,
                                              signRequest.Document.SignInputData);

                return(signRequest.Sign(digitalSign));

            case SignEventType.Refused:
                return(signRequest.Refuse());

            case SignEventType.Revoked:
                return(signRequest.Revoke());

            case SignEventType.Unrefused:
                return(signRequest.Unrefuse());

            default:
                throw Assertion.AssertNoReachThisCode();
            }
        }