Example #1
0
        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;
 }
Example #3
0
        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);
        }
Example #4
0
 public async Task AddGtfs(GtfsFile gtfsRecord)
 {
     _unitOfWork.GtfsFilesRepository.Add(gtfsRecord);
     await _unitOfWork.SaveChangesAsync();
 }
 private static void AssignLastUpdate(GtfsFile gtfs, HttpServerUtility server)
 {
     gtfs.LastUpdateUtc = new FileInfo(server.MapPath(gtfs.FileName)).LastWriteTimeUtc;
 }