private void OnTakeSnapshot(TakeSnapshot msg) { string htmlCode; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(_uriAddress); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader sr = new StreamReader(response.GetResponseStream()); htmlCode = sr.ReadToEnd(); string fileName = Path.Combine(_snapshotBasePath, msg.Id + "_" + DateTime.UtcNow.ToString("yyyyMMddHHmmss") + ".jpg"); var documentMsg = new TakeSnapshotCompleted(msg.Id, fileName); Sender.Tell(documentMsg); if (!Directory.Exists(_snapshotBasePath)) { Directory.CreateDirectory(_snapshotBasePath); } HtmlToImageConverter htmlToImageConv = new NReco.ImageGenerator.HtmlToImageConverter(); try { byte[] jpegBytes = htmlToImageConv.GenerateImage(htmlCode, ImageFormat.Jpeg); File.WriteAllBytes(fileName, jpegBytes); } catch (Exception exc) { throw new GenerateSnapshotException(fileName); } Context.Parent.Tell(documentMsg); }
public HttpResponseMessage Post([FromBody] dynamic data) { Uri snapshotUri = new Uri(data.uri.ToString()); TakeSnapshotCompleted reponse = ActorSystemReferences.Actors.PlantCoordinatorActor.Ask <TakeSnapshotCompleted>(new TakeSnapshot(snapshotUri), TimeSpan.FromSeconds(10)).Result; return(Request.CreateResponse(HttpStatusCode.OK, reponse)); }
private void OnTakeSnapshotCompleted(TakeSnapshotCompleted msg) { _snapshots.Find(wc => wc.Id == msg.Id).SetAsAvailable(); }