Beispiel #1
0
        static void Main(string[] args)
        {
            DateTime phDate = DateTime.UtcNow.AddHours(8);

            List <RTTripUpdates> tripUpdates = db.Database
                                               .SqlQuery <RTTripUpdates>("RTTripUpdatesGetActive @travel_date"
                                                                         , new SqlParameter("@travel_date", phDate.ToString("yyyyMMdd")))
                                               .ToList();

            FeedMessage feed = new FeedMessage();

            if (tripUpdates.Count > 0)
            {
                foreach (RTTripUpdates tripUpdate in tripUpdates)
                {
                    TripDescriptor td = new TripDescriptor();
                    td.TripId      = tripUpdate.trip_id;
                    td.RouteId     = tripUpdate.route_id;
                    td.DirectionId = (uint)tripUpdate.direction_id;
                    td.StartDate   = tripUpdate.start_date;
                    td.StartTime   = tripUpdate.start_time;

                    TripUpdate tp = new TripUpdate();
                    tp.Delay = tripUpdate.delay;
                    tp.Trip  = td;

                    FeedEntity entity = new FeedEntity();
                    entity.TripUpdate = tp;
                    entity.Id         = tripUpdate.id.ToString();

                    feed.Entities.Add(entity);
                }

                byte[] objSerialized = Functions.ProtoSerialize(feed);

                CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
                string filename = "tripupdate.pb";


                // Create a CloudFileClient object for credentialed access to Azure Files.
                CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

                // Get a reference to the file share we created previously.
                CloudFileShare share = fileClient.GetShareReference("gtfsrt");
                share.CreateIfNotExists();

                var rootDir = share.GetRootDirectoryReference();
                using (var stream = new MemoryStream(objSerialized, writable: false))
                {
                    rootDir.GetFileReference(filename).UploadFromStream(stream);//.UploadFromByteArray(feed,);
                }
            }


            // Functions.CreatePBFile(storageAccount, filename, objSerialized);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            int tsOffset = Convert.ToInt32(ConfigurationManager.AppSettings.Get("TimeStampOffset"));

            long timestamp_from = (long)Functions.ToEpoch(DateTime.UtcNow.AddMinutes(tsOffset));
            long timestamp_to   = (long)Functions.ToEpoch(DateTime.UtcNow);

            List <RTVehiclePositions> vehiclePositions = db.Database
                                                         .SqlQuery <RTVehiclePositions>("RTVehiclePositionsGetActive @timestamp_from, @timestamp_to"
                                                                                        , new SqlParameter("@timestamp_from", timestamp_from)
                                                                                        , new SqlParameter("@timestamp_to", timestamp_to))
                                                         .ToList();

            FeedMessage feed = new FeedMessage();

            if (vehiclePositions.Count > 0)
            {
                foreach (RTVehiclePositions vehiclePosition in vehiclePositions)
                {
                    TripDescriptor td = new TripDescriptor();
                    td.TripId      = vehiclePosition.trip_id;
                    td.RouteId     = vehiclePosition.route_id;
                    td.DirectionId = (uint)vehiclePosition.direction_id;
                    td.StartDate   = vehiclePosition.start_date;
                    td.StartTime   = vehiclePosition.start_time;

                    Position pos = new Position();
                    pos.Latitude  = (float)vehiclePosition.latitude;
                    pos.Longitude = (float)vehiclePosition.longitude;

                    VehicleDescriptor v = new VehicleDescriptor();
                    v.Id           = vehiclePosition.vehicle_id;
                    v.Label        = vehiclePosition.vehicle_label;
                    v.LicensePlate = vehiclePosition.vehicle_license_plate;

                    VehiclePosition vp = new VehiclePosition();
                    vp.Position            = pos;
                    vp.Trip                = td;
                    vp.Vehicle             = v;
                    vp.CurrentStopSequence = (uint)vehiclePosition.current_stop_sequence;
                    vp.StopId              = vehiclePosition.stop_id;
                    vp.Timestamp           = (ulong)vehiclePosition.timestamp;

                    FeedEntity entity = new FeedEntity();
                    entity.Id      = vehiclePosition.id.ToString();
                    entity.Vehicle = vp;

                    feed.Entities.Add(entity);
                }

                byte[] objSerialized = Functions.ProtoSerialize(feed);

                CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("StorageConnectionString"));
                string filename = "vehicleposition.pb";

                // Create a CloudFileClient object for credentialed access to Azure Files.
                CloudFileClient fileClient = storageAccount.CreateCloudFileClient();

                // Get a reference to the file share we created previously.
                CloudFileShare share = fileClient.GetShareReference("gtfsrt");
                share.CreateIfNotExists();

                var rootDir = share.GetRootDirectoryReference();
                using (var stream = new MemoryStream(objSerialized, writable: false))
                {
                    rootDir.GetFileReference(filename).UploadFromStream(stream);
                }
            }
        }