public ServerController() { CameraHeartbeat += async f => { await Task.Yield(); }; _cameras = new ConcurrentDictionary<string, RemoteCameraModel>(StringComparer.OrdinalIgnoreCase); _ping = new PingUtility(50123); _sender = new CommandSender(); _listener = new CommandListener(); _listener.RegisterHandler<ReportingCommand, RemoteCameraModel>(HandleReporting); _uploader = new UploadListener(); _heartbeat = new HeartBeatListener(); _heartbeat.DataRecieved += async f => { await CameraHeartbeat(f); }; }
public ServerController() { CameraHeartbeat += async f => { await Task.Yield(); }; _cameras = new ConcurrentDictionary <string, RemoteCameraModel>(StringComparer.OrdinalIgnoreCase); _ping = new PingUtility(50123); _sender = new CommandSender(); _listener = new CommandListener(); _listener.RegisterHandler <ReportingCommand, RemoteCameraModel>(HandleReporting); _uploader = new UploadListener(); _heartbeat = new HeartBeatListener(); _heartbeat.DataRecieved += async f => { await CameraHeartbeat(f); }; }
/// <summary> /// Encapsulate Card into a single file for uploading and sharing to Firebase /// </summary> private void uploadCardMedia(StorageReference sr_cardMedias, Card card) { // Upload media to cloud foreach (AbMediaContent media in card.mediaList) { string mediaFileName = Path.GetFileName(media.filePath); StorageReference sr_curCardMedia = sr_cardMedias.Child(mediaFileName); FileStream fs = new FileStream(media.filePath, FileMode.Open); //StorageMetadata metadata = new StorageMetadata.Builder() // .SetCustomMetadata("MediaContentType", media.mediaType.ToString()).Build(); UploadTask uploadTask = sr_curCardMedia.PutStream(fs); UploadListener uploadListener = new UploadListener(fs); uploadTask.AddOnFailureListener(uploadListener); uploadTask.AddOnSuccessListener(uploadListener); } // TODO add upload failure and success handling? }