public static GtfsFileDto ToView(this GtfsFile gtfs) { var dto = new GtfsFileDto { AgencyId = gtfs.AgencyId, GtfsFileId = gtfs.GtfsFileId, OriginalName = gtfs.OriginalName, UploadedUtc = gtfs.UploadedUtc, Valid = gtfs.Valid }; if (gtfs.CalendarFrom.HasValue) { dto.CalendarFrom = gtfs.CalendarFrom.Value.LocalDateTime; } if (gtfs.CalendarTo.HasValue) { dto.CalendarTo = gtfs.CalendarTo.Value.LocalDateTime; } return(dto); }
private static void AssignLastUpdate(GtfsFile gtfs, HttpServerUtility server) { gtfs.LastUpdateUtc = new FileInfo(server.MapPath(gtfs.FileName)).LastWriteTimeUtc; }
public async Task <string> SaveGtfs(Stream stream, string originalName, string agencyId) { DateTime?fromDate; DateTime?toDate; string timezone; var gtfsSubAgencies = new List <GtfsSubAgency>(); GtfsHelper.ParseGtfs(stream, out fromDate, out toDate, out timezone, out gtfsSubAgencies); var agency = _unitOfWork.AgencyRepository.Entities.FirstOrDefault(a => a.AgencyId == agencyId); if (agency == null) { throw new Exception($"Agency {agencyId} was not found."); } var gtfsFileId = GtfsHelper.GetGtfsFileId(agencyId); string url; /*using (var memoryStream = new MemoryStream()) * { * stream.CopyTo(memoryStream); * var fileBytes = memoryStream.ToArray(); * * url = await _storage.StoreFileInBlob(agency.StorageAccountName, gtfsFileId, fileBytes); * }*/ byte[] arr = new byte[stream.Length]; //var memoryStream = new MemoryStream(arr); //stream.CopyTo(memoryStream); //var fileBytes = memoryStream.ToArray(); //url = await _storage.StoreFileInBlob(agency.StorageAccountName, gtfsFileId, fileBytes); stream.Position = 0; url = await _storage.StoreFileInBlob(agency.StorageAccountName, gtfsFileId, stream); foreach (var subAgency in gtfsSubAgencies) { subAgency.GtfsFileId = gtfsFileId; _unitOfWork.SubAgencyRepository.Add(subAgency); } var gtfsEntity = new GtfsFile { AgencyId = agencyId, CalendarFrom = fromDate.HasValue ? GtfsHelper.DateTimeToDateTimeOffset(timezone, fromDate.Value) : (DateTimeOffset?)null, CalendarTo = toDate.HasValue ? GtfsHelper.DateTimeToDateTimeOffset(timezone, toDate.Value) : (DateTimeOffset?)null, OriginalName = originalName, GtfsFileId = gtfsFileId, UploadedUtc = DateTime.UtcNow, Status = "New" }; _unitOfWork.GtfsFilesRepository.Add(gtfsEntity); await _unitOfWork.SaveChangesAsync(); return(url); }
public async Task AddGtfs(GtfsFile gtfsRecord) { _unitOfWork.GtfsFilesRepository.Add(gtfsRecord); await _unitOfWork.SaveChangesAsync(); }