/// <summary> /// Handles CaptureCompleted event. /// Creates directory where photos are saved (if does not exist). /// Saves photo in device memory. /// Updates Media Database. /// Invokes "CameraServicePhotoTaken" event. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="e">Contains event data.</param> private void OnCaptureCompleted(object sender, EventArgs e) { bool errorOccurred = false; _photoPath = string.Format(PHOTO_PATH_TEMPLATE, DateTime.Now.ToString("yyyyMMdd-HHmmss") + ".jpg"); var memoryStream = new MemoryStream(_capturedPhoto.Data); try { Directory.CreateDirectory(string.Format(PHOTO_PATH_TEMPLATE, "")); FileStream fileStream = File.Create(_photoPath); memoryStream.WriteTo(fileStream); fileStream.Dispose(); } catch (Exception exception) { ErrorHandler("Saving photo error: " + exception.Message); errorOccurred = true; } if (!errorOccurred) { UpdateDatabase(); CameraServicePhotoTaken?.Invoke(this, _photoPath, _photoThumbnail); } StartCameraPreview(); }
/// <summary> /// Handles "CameraServicePhotoTaken" of the ICameraService object. /// Invokes "CameraServicePhotoTaken" event. /// </summary> /// <param name="sender">Event sender.</param> /// <param name="photoPath">Path to the last taken photo.</param> /// <param name="photoThumbnail">Last taken photo thumbnail.</param> private void CameraServiceEventHandler(object sender, string photoPath, Image photoThumbnail) { CameraServicePhotoTaken?.Invoke(this, photoPath, photoThumbnail); }