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); }
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); }