예제 #1
0
        public async Task DeleteAsync(Guid id)
        {
            var monitor = await _monitorRepository.GetAsync(id);

            if (CurrentUser.GetId() != monitor.CreatorId)
            {
                return;
            }

            await _monitorRepository.DeleteAsync(id);
        }
예제 #2
0
        public async Task <IActionResult> GetMonitorAsync(Guid id)
        {
            try {
                var result = await _monitorRepository.GetAsync(id.ToString());

                if (result.Id.Equals(Guid.Empty))
                {
                    return(NotFound());
                }
                return(Ok(result));
            } catch (Exception ex) {
                _logger.LogError($"Something went wrong inside GetMonitorAsync: {ex.Message}");
                return(StatusCode(500, "Internal server error."));
            }
        }
예제 #3
0
        // GET: Monitor/Zone?group=A1
        public async Task <ActionResult> Zone(string group)
        {
            var monitors = await repository.GetAsync(m => m.DISPLAY_GROUP == group, null, c => c.MST_LOSS_GROUP);

            var viewModel = new MonitorViewModel
            {
                Monitors = monitors.ToList()
            };

            return(View(viewModel));
        }
예제 #4
0
        public async Task <Monitor> UpdateAsync(
            Guid id,
            Guid userId,
            [NotNull] string name,
            [NotNull] string url,
            int interval)
        {
            Check.NotNullOrWhiteSpace(name, nameof(name));
            Check.NotNullOrWhiteSpace(url, nameof(url));

            if (interval < 1)
            {
                throw new UserFriendlyException("Interval value cannot be less than one");
            }

            var monitor = await _monitorRepository.GetAsync(id);

            if (monitor.CreatorId != userId)
            {
                return(null);
            }

            var isExistingMonitorName = _monitorRepository
                                        .Any(x => x.CreatorId == monitor.CreatorId && x.Id != id && x.Name.Equals(name));

            if (isExistingMonitorName)
            {
                throw new UserFriendlyException("This project name is already in use. Please choose a different name.");
            }

            monitor.SetName(name);
            monitor.MonitorStep.SetUrl(url);
            monitor.MonitorStep.Interval = interval;

            return(await _monitorRepository.UpdateAsync(monitor));
        }