Example #1
0
        public string AddOrEditForDomain(PerformanceAnalysisDmnViewModel domainViewModel)
        {
            var domainDto = new DomainExaminationDto();

            try
            {
                if (domainViewModel.Id != null)
                {
                    domainDto = domainExaminationService.GetById(domainViewModel.Id);
                }
                domainDto.Protocol     = domainViewModel.Protocol;
                domainDto.Domain       = domainViewModel.Domain;
                domainDto.CustomerId   = domainViewModel.CustomerId;
                domainDto.Status       = (int)StatusEnum.enabled;
                domainDto.ToStartTime  = Convert.ToDateTime(domainViewModel.ToStartTime).ToLocalTime();
                domainDto.ToEndTime    = Convert.ToDateTime(domainViewModel.ToEndTime).ToLocalTime();
                domainDto.Interval     = domainViewModel.Interval;
                domainDto.BrowserType  = domainViewModel.BrowserType;
                domainDto.TestType     = domainViewModel.TestType;
                domainDto.LastExecuted = DateTime.Now.AddHours(-3).ToLocalTime();

                domainExaminationService.AddOrEdit(domainDto);
            }
            catch (Exception ex)
            {
                log.Error(ex);
            }
            return(JsonConvert.SerializeObject(new { result = "true" }));
        }
        public void Run()
        {
            var serverList = serverInformationService.GetAll();

            var taskList = new List <Task>();

            foreach (var server in serverList)
            {
                var domainList = JsonConvert.SerializeObject(_urlList.Select(s => s.Protocol + s.Domain).ToList());
                var client     = new RestClient($"http://{server.ServerIp}:9487/api/PerformanceTest");
                var request    = new RestRequest(Method.POST)
                {
                    RequestFormat = DataFormat.Json
                };
                request.AddOrUpdateParameter("passwd", "Toffstech_Performance-Monitoring@48969487");
                request.AddOrUpdateParameter("jsonDomain", domainList);
                request.Timeout = 5 * 60 * 1000;

                taskList.Add(Task.Run(() =>
                {
                    var response = client.Execute(request);
                    Console.WriteLine($"{DateTime.Now} - {server.ServerIp} API called.");
                }));
            }
            Task.WhenAll(taskList);
            var utcNow = DateTime.UtcNow;
            var now    = new DateTime(utcNow.Year, utcNow.Month, utcNow.Day, utcNow.Hour, utcNow.Minute / 5 * 5, 0, 0, DateTimeKind.Utc);

            foreach (var record in _urlList)
            {
                record.LastExecuted = utcNow;
                domainExaminationService.AddOrEdit(record);
            }
        }