示例#1
0
        public SourceFileModel GetSourceFileData(IJobContextMessage jobContextMessage)
        {
            if (!jobContextMessage.KeyValuePairs.ContainsKey(JobContextMessageKey.Filename))
            {
                throw new ArgumentException($"{nameof(JobContextMessageKey.Filename)} is required");
            }

            var fileName = jobContextMessage.KeyValuePairs[JobContextMessageKey.Filename].ToString();

            string[] fileNameParts = FileNameHelper.SplitFileName(fileName);

            if (fileNameParts.Length != 5)
            {
                throw new ArgumentException($"{nameof(JobContextMessageKey.Filename)} is invalid");
            }

            var fileNameDatePart = FileNameHelper.GetPreparedDateFromFileName(fileName);

            if (!DateTime.TryParse(fileNameDatePart, out var preparationDateTime))
            {
                throw new ArgumentException($"{nameof(JobContextMessageKey.Filename)} is invalid");
            }

            var jobId = jobContextMessage.JobId;

            return(new SourceFileModel
            {
                ConRefNumber = fileNameParts[2],
                UKPRN = fileNameParts[1],
                FileName = fileName,
                PreparationDate = preparationDateTime,
                SuppliedDate = jobContextMessage.SubmissionDateTimeUtc,
                JobId = jobId
            });
        }
示例#2
0
        public bool Execute(SourceFileModel sourceFileModel, SupplementaryDataLooseModel model)
        {
            string[] filenameParts = FileNameHelper.SplitFileName(sourceFileModel.FileName);

            return(filenameParts[2] == model.ConRefNumber);
        }