public ImportVehiclesForSiteResultDto(ImportVehiclesForSiteResult entity) { Status = entity.Status.ToString(); Message = entity.Message; SiteId = entity.SiteId; SiteName = entity.SiteName; ProcessedVehiclesCount = entity.ProcessedVehiclesCount; ProcessedNewVehiclesCount = entity.ProcessedNewVehiclesCount; ProcessedUsedVehiclesCount = entity.ProcessedUsedVehiclesCount; }
public virtual async Task <ImportVehiclesForSiteResult> ImportVehiclesAsync(int id) { Site site = await Repository.GetAsync(id); ((ISitePolicy)Policy).PolicyImportVehicles(site); ImportVehiclesForSiteResult importResult = (await VehiclesImportService.Import(site)).First(); if (importResult.Status == Vehicles.Import.Enums.ImportStatusEnum.Success) { site.NewVehiclesCount = importResult.ProcessedNewVehiclesCount; site.UsedVehiclesCount = importResult.ProcessedUsedVehiclesCount; } return(importResult); }
protected virtual async Task <ImportVehiclesForSiteResult> InternalImportForSiteAsync(Site site, IFtpClient ftpClient) { ImportVehiclesForSiteResult importResult; try { if (site.ImportRelativeFtpPath != null) { if (ftpClient.DirectoryExists(site.ImportRelativeFtpPath)) { FtpListItem lastModifiedFileInfo = (await ftpClient.GetListingAsync(site.ImportRelativeFtpPath, FtpListOption.Auto)) .Where(r => r.Type == FtpFileSystemObjectType.File) .OrderByDescending(r => r.Modified) .FirstOrDefault(); if (lastModifiedFileInfo != null) { IEnumerable <Vehicle> vehicles; using (var csvFileStream = new MemoryStream(await ftpClient.DownloadAsync(lastModifiedFileInfo.FullName))) { vehicles = VehicleBulkFactory.Create(new VehicleFromCsvFileBulkFactorySettings(site.Id, csvFileStream)); } await VehicleRepository.RefreshEntitiesForSiteAsync(site.Id, vehicles); importResult = new ImportVehiclesForSiteResult( site.Id, site.Name, vehicles.Count(), vehicles.Count(r => r.Condition == VehicleConditions.New), vehicles.Count(r => r.Condition == VehicleConditions.Used)); } else { importResult = new ImportVehiclesForSiteResult(site.Id, site.Name, $"No files in specified folder ({site.ImportRelativeFtpPath}).", ImportStatusEnum.NotStarted); } } else { importResult = new ImportVehiclesForSiteResult(site.Id, site.Name, $"The specified folder ({site.ImportRelativeFtpPath}) was not found.", ImportStatusEnum.NotStarted); } } else { importResult = new ImportVehiclesForSiteResult(site.Id, site.Name, $"The specified folder is not defined.", ImportStatusEnum.NotStarted); } } catch (Exception ex) { importResult = new ImportVehiclesForSiteResult(site.Id, site.Name, ex.Message, ImportStatusEnum.Failed); } return(importResult); }