private async Task OnCamerasUpdated()
        {
            var action = CamerasChanged;

            if (action != null)
            {
                var comparer = new ResolutionComparer();
                var cameras = _cameras.Keys.OrderBy(x => x).Select(key => _cameras[key]).ToList();

                IEnumerable<RemoteResolutionModel> resolutions = null;

                foreach (var c in cameras)
                {
                    try
                    {
                        resolutions = resolutions ?? c.Resolutions;
                        resolutions = resolutions.Intersect(c.Resolutions, comparer);
                    }
                    catch
                    {
                    }
                }

                await action(cameras, resolutions);
            }
        }
        private async Task OnCamerasUpdated()
        {
            var action = CamerasChanged;

            if (action != null)
            {
                var comparer = new ResolutionComparer();
                var cameras = _cameras.Values.ToList();

                IEnumerable<RemoteResolutionModel> resolutions = null;

                foreach (var c in cameras)
                {
                    resolutions = resolutions ?? c.Resolutions;
                    resolutions = resolutions.Intersect(c.Resolutions, comparer);
                }

                await action(cameras, resolutions);
            }
        }