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();
 }