public Maybe <Archive> GetArchived(ConfigurationId id)
        {
            var dataRow = _data.FirstOrDefault(d => d.Id == id.AsGuid() && d.Status == ConfigStatus.Archived);

            if (dataRow == null)
            {
                return(Maybe <Archive> .None);
            }
            return(ArchiveFactory.Create(dataRow.Id, dataRow.Data, dataRow.ArchivedAuthor, dataRow.ArchiveCreation));
        }
        public Maybe <Planned> GetPlanned(ConfigurationId id)
        {
            var dataRow = _data.FirstOrDefault(d => d.Id == id.AsGuid() && d.Status == ConfigStatus.Planned);

            if (dataRow == null)
            {
                return(Maybe <Planned> .None);
            }

            return(PlannedFactory.Create(dataRow.Id, dataRow.Data, dataRow.PlannedAuthor, dataRow.PlannedCreation, dataRow.WhenGoLive));
        }
        public Maybe <Draft> GetDraft(ConfigurationId id)
        {
            var dataRow = _data.FirstOrDefault(d => d.Id == id.AsGuid() && d.Status == ConfigStatus.Draft);

            if (dataRow == null)
            {
                return(Maybe <Draft> .None);
            }

            return(DraftFactory.Create(dataRow.Id, dataRow.Data, dataRow.DraftAuthor, dataRow.DraftCreation));
        }
        private void AssertRawData(ConfigurationId archiveId)
        {
            var goLiveDate = Date.FromDateTime(goLive);
            var dataRow    = _repository.Get(archiveId.AsGuid());

            dataRow.Status.Should().Be(ConfigStatus.Archived);
            dataRow.DraftAuthor.Should().Be(draftAuthor);
            dataRow.PlannedAuthor.Should().Be(plannedAuthor);
            dataRow.LiveAuthor.Should().Be(liveAuthor);
            dataRow.WhenGoLive.Should().Be(goLiveDate.AsDateTime());
            dataRow.ArchivedAuthor.Should().Be(archiveAuthor);
        }
 public Result PlannedExists(ConfigurationId id)
 {
     return(_data.Any(d => d.Id == id.AsGuid() && d.Status == ConfigStatus.Planned)
             ? Result.Success()
             : Result.Failure($"There is no planned with id {id}"));
 }
 public Result DraftExists(ConfigurationId id)
 {
     return(_data.Any(d => d.Id == id.AsGuid() && d.Status == ConfigStatus.Draft)
             ? Result.Success()
             : Result.Failure($"There is no draft with id: {id}"));
 }