/// <summary>
        /// Write session information to the workbook as a custom XML part
        /// </summary>
        /// <param name="session">
        /// The <see cref="ISession"/> related with the the workbook.
        /// </param>
        /// <param name="iteration">
        /// The <see cref="Iteration"/> that is written to the workbook
        /// </param>
        /// <param name="participant">
        /// The <see cref="Participant"/> that is written to the workbook
        /// </param>
        private void WriteSessionInfoToWorkbook(ISession session, Iteration iteration, Participant participant)
        {
            var engineeringModel = (EngineeringModel)iteration.Container;

            var selectedDomainOfExpertise = session.QuerySelectedDomainOfExpertise(iteration);

            var workbookSession    = new WorkbookSession(participant.Person, engineeringModel.EngineeringModelSetup, iteration.IterationSetup, selectedDomainOfExpertise);
            var workbookSessionDal = new WorkbookSessionDal(this.workbook);

            workbookSessionDal.Write(workbookSession);
        }
        public void SetUp()
        {
            this.serviceLocator = new Mock <IServiceLocator>();
            ServiceLocator.SetLocatorProvider(new ServiceLocatorProvider(() => this.serviceLocator.Object));
            this.serviceLocator.Setup(x => x.GetInstance <IMetaDataProvider>()).Returns(new MetaDataProvider());

            var sourcePath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData\test.xlsx");
            var fileinfo   = new FileInfo(sourcePath);

            var targetPath = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestData\temporarytestfile.xlsx");
            var tempfile   = fileinfo.CopyTo(targetPath, true);

            this.testfilepath = tempfile.FullName;

            var siteDirectory = new CDP4Common.SiteDirectoryData.SiteDirectory(Guid.NewGuid(), null, null);

            var engineeringModelSetup = new CDP4Common.SiteDirectoryData.EngineeringModelSetup(Guid.NewGuid(), null, null)
            {
                Name      = "test model",
                ShortName = "testmodel"
            };

            siteDirectory.Model.Add(engineeringModelSetup);

            var iterationSetup = new CDP4Common.SiteDirectoryData.IterationSetup(Guid.NewGuid(), null, null)
            {
                IterationIid = Guid.NewGuid()
            };

            engineeringModelSetup.IterationSetup.Add(iterationSetup);

            var person = new CDP4Common.SiteDirectoryData.Person(Guid.NewGuid(), null, null)
            {
                GivenName = "test",
                Surname   = "user"
            };

            siteDirectory.Person.Add(person);

            var domainOfExpertise = new CDP4Common.SiteDirectoryData.DomainOfExpertise(Guid.NewGuid(), null, null);

            siteDirectory.Domain.Add(domainOfExpertise);

            this.workbookSession = new WorkbookSession(person, engineeringModelSetup, iterationSetup, domainOfExpertise);
            this.workbookSession.RebuildDateTime = DateTime.Now;
        }