public async Task FileCrawlerRecordUpdateAsync(FileCrawlerRecordUpdateDto input)
        {
            FileCrawler fileCrawler = await FileCrawlerRepository.GetAsync(x => x.Code == input.FileCrawlerCode);

            if (fileCrawler != null)
            {
                await FileCrawlerRecordDomainService.UpdateAsync(fileCrawler, input.Date);
            }
        }
        public async Task <FileCrawlerDto> CreateAsync(CreateFileCrawlerDto input)
        {
            FileCrawler fileCrawler = ObjectMapper.Map <CreateFileCrawlerDto, FileCrawler>(input);
            await FileCrawlerDomainService.CreateAsync(fileCrawler);

            await FileCrawlerRepository.InsertAsync(fileCrawler);

            await ParameterCombinationDomainService.InsertAsync(fileCrawler);

            return(ObjectMapper.Map <FileCrawler, FileCrawlerDto>(fileCrawler));
        }
        public async Task CreateAsync([NotNull] FileCrawler fileCrawler)
        {
            Check.NotNull(fileCrawler, nameof(fileCrawler));

            FileCrawler existingFileCrawler = await FileCrawlerRepository.FindAsync(x => x.Code == fileCrawler.Code);

            if (existingFileCrawler != null)
            {
                throw new FileCrawlerAlreadyExistsException(fileCrawler.Code);
            }
        }
        public async Task ChangeCodeAsync([NotNull] FileCrawler fileCrawler, [NotNull] string newCode)
        {
            Check.NotNull(fileCrawler, nameof(fileCrawler));
            Check.NotNullOrWhiteSpace(newCode, nameof(newCode));

            FileCrawler existingFileCrawler = await FileCrawlerRepository.FindAsync(x => x.Code == newCode);

            if (existingFileCrawler == null)
            {
                fileCrawler.SetCode(newCode);
            }
            else
            {
                if (existingFileCrawler.Id != fileCrawler.Id)
                {
                    throw new FileCrawlerAlreadyExistsException(newCode);
                }
            }
        }
        public async Task UpdateAsync(Guid id, UpdateFileCrawlerDto input)
        {
            FileCrawler fileCrawler = await FileCrawlerRepository.GetAsync(id);

            if (fileCrawler.Code != input.Code)
            {
                await FileCrawlerDomainService.ChangeCodeAsync(fileCrawler, input.Code);
            }

            fileCrawler.SetName(input.Name);
            fileCrawler.Type            = input.Type;
            fileCrawler.DelaySeconds    = input.DelaySeconds;
            fileCrawler.UrlDateTimeKind = input.UrlDateTimeKind;
            fileCrawler.UrlFormat       = input.UrlFormat;
            fileCrawler.FileNameFormat  = input.FileNameFormat;
            fileCrawler.StampFormat     = input.StampFormat;
            fileCrawler.Periods         = input.Periods;
            fileCrawler.Parameters      = input.Parameters;

            await FileCrawlerRepository.UpdateAsync(fileCrawler);

            await ParameterCombinationDomainService.UpdateAsync(fileCrawler);
        }
        public async Task <FileCrawlerDto> GetAsync(GetFileCrawlerDto input)
        {
            FileCrawler fileCrawler = await FileCrawlerRepository.GetAsync(x => x.Code == input.FileCrawlerCode);

            return(ObjectMapper.Map <FileCrawler, FileCrawlerDto>(fileCrawler));
        }