public RecordServiceResult SignOff(Record record, SignOffInfo signOffInfo)
        {
            if (!record.IsAssessedAndUpToDate())
            {
                throw new InvalidOperationException("Couldn't sign-off record for publication - assessment not completed or out of date");
            }

            if (record.IsSignedOffAndUpToDate())
            {
                throw new InvalidOperationException("The record has already been signed off");
            }

            record.Publication.SignOff = signOffInfo;
            UpdateMetadataDate(record, signOffInfo.DateUtc);
            SetFooterForUpdatedRecord(record, signOffInfo.User);

            var recordServiceResult = Upsert(record, db, validator);

            if (!recordServiceResult.Success)
            {
                throw new Exception("Error while saving sign off changes");
            }

            return(recordServiceResult);
        }
Exemplo n.º 2
0
        public object SignOff(SignOffRequest signOffRequest)
        {
            var record      = db.Load <Record>(Helpers.AddCollection(signOffRequest.Id));
            var signOffInfo = new SignOffInfo
            {
                User = new UserInfo
                {
                    DisplayName = user.User.DisplayName,
                    Email       = user.User.Email
                },
                DateUtc = Clock.NowUtc,
                Comment = signOffRequest.Comment
            };

            var updatedRecord = recordPublishingService.SignOff(record, signOffInfo);

            db.SaveChanges();

            updatedRecord.Record = Helpers.RemoveCollectionFromId(updatedRecord.Record);
            return(updatedRecord);
        }