public Task <DashBoardRow1WidgetsModel> GetBoardRow1WidgetsDetails()
        {
            DashBoardRow1WidgetsModel dashBoardRow1WidgetsModel = new DashBoardRow1WidgetsModel();

            var dashBoardRow1WidgetsModels = Builder <DashBoardRow1WidgetsModel> .CreateListOfSize(1)
                                             .All()
                                             .With(c => c.TotalNoOfApplicationUsers  = Faker.Number.RandomNumber(300, 400).ToString())
                                             .With(c => c.NoOfActiveSessions         = Faker.Number.RandomNumber(45, 55).ToString())
                                             .With(c => c.NoOfActiveUsers            = Faker.Number.RandomNumber(15, 30).ToString())
                                             .With(c => c.NoOfEmployeesCreatedToday  = Faker.Number.RandomNumber(25, 40).ToString())
                                             .With(c => c.NoOfEmployeesPendingAuth   = Faker.Number.RandomNumber(35, 56).ToString())
                                             .With(c => c.TodayNoOfApplicationErrors = Faker.Number.RandomNumber(100, 150).ToString())
                                             .With(c => c.ErrorLastLoggedOn          = Faker.Date.PastWithTime().ToString(@"yyyy-MM-dd hh:mm tt", new CultureInfo("en-US")))
                                             .With(c => c.ServicesLastChecked        = Faker.Date.PastWithTime().ToString(@"yyyy-MM-dd hh:mm tt", new CultureInfo("en-US")))
                                             .With(c => c.TotalNoOfApplicationErrors = Faker.Number.RandomNumber(5000, 6000).ToString())
                                             .With(c => c.TotalNoOfEmployees         = Faker.Number.RandomNumber(2500, 3580).ToString())
                                             .With(c => c.TotalNoOfServicesDown      = Faker.Number.RandomNumber(0, 5).ToString())
                                             .With(c => c.TotalNoOfServicesScheduled = Faker.Number.RandomNumber(10, 20).ToString())
                                             .Build();

            var getdashBoardRow1DetailsTask = Task.Run(() =>
                                                       dashBoardRow1WidgetsModels.FirstOrDefault()
                                                       );

            getdashBoardRow1DetailsTask.Wait();

            return(getdashBoardRow1DetailsTask);
        }
        private void DoWork(object state)
        {
            DashBoardRow1WidgetsModel dashBoardRow1WidgetsModel = new DashBoardRow1WidgetsModel();
            var dashBoardRow1WidgetsModelTask = Task.Run(() =>
                                                         this._iDashBoardService.GetBoardRow1WidgetsDetails()
                                                         );
            string content;
            var    vv = new PhysicalFileProvider(
                Path.Combine(Directory.GetCurrentDirectory()));

            using (StreamReader sr = new StreamReader(vv.Root + "Areas/DashBoard/Views/DashBoard/_DashBoardRow1Widgets.cshtml"))
            {
                content = sr.ReadToEnd();
            }

            var engine = new RazorLightEngineBuilder()
                         .UseMemoryCachingProvider()
                         .Build();

            dashBoardRow1WidgetsModelTask.Wait();
            dashBoardRow1WidgetsModel = dashBoardRow1WidgetsModelTask.Result;

            DashBoardWidgetsDTO dashBoardWidgetsDTO = new DashBoardWidgetsDTO();

            dashBoardWidgetsDTO.DashBoardRow1WidgetsViewModel = new DashBoardRow1WidgetsViewModel();
            dashBoardWidgetsDTO.DashBoardRow1WidgetsViewModel = _mapper.Map <DashBoardRow1WidgetsViewModel>(dashBoardRow1WidgetsModel);

            var serviceScheduled = ApplicationGlobalVariables.ServiceScheduled;

            dashBoardWidgetsDTO.DashBoardRow1WidgetsViewModel.TotalNoOfServicesScheduled =
                serviceScheduled.Keys.Count.ToString();

            var servicesDown = serviceScheduled.Values.Where(s => s.UpdatedOn <= DateTime.Now.AddSeconds(-30))
                               .Count();

            dashBoardWidgetsDTO.DashBoardRow1WidgetsViewModel.ServicesLastChecked   = DateTime.Now.ToString();
            dashBoardWidgetsDTO.DashBoardRow1WidgetsViewModel.TotalNoOfServicesDown = servicesDown.ToString();

            var getdashBoardRow1DetailsTask = Task.Run(() =>
                                                       engine.CompileRenderAsync("sdvsdvd", content,
                                                                                 dashBoardWidgetsDTO.DashBoardRow1WidgetsViewModel)
                                                       );

            getdashBoardRow1DetailsTask.Wait();

            string pVdashBoardRow1WidgetsHtml = getdashBoardRow1DetailsTask.Result;

            _hubContext.Clients.All.SendAsync("rUpdateDashBoardRow1Widgets", pVdashBoardRow1WidgetsHtml);
        }
        public IActionResult Index()
        {
            var userIpAddress = this._IHttpContextAccessor
                                .HttpContext.Connection.RemoteIpAddress
                                .ToString();

            if (userIpAddress == "::1")
            {
                userIpAddress = "35.225.15.176";
            }
            DashBoardRow1WidgetsModel dashBoardRow1WidgetsModel = new DashBoardRow1WidgetsModel();
            WeatherWidgetsViewModel   weatherWidgetsViewModel   = new WeatherWidgetsViewModel();
            WeatherModel weatherModel = new WeatherModel();

            DashBoardWidgetsDTO dashBoardWidgetsDTO = new DashBoardWidgetsDTO();

            dashBoardWidgetsDTO.DashBoardRow1WidgetsViewModel = new DashBoardRow1WidgetsViewModel();

            var dashBoardRow1WidgetsModelTask = Task.Run(() =>
                                                         this._iDashBoardService.GetBoardRow1WidgetsDetails()
                                                         );
            var dashBoardWeatherWidgetTask = Task.Run(() =>
                                                      this._iDashBoardService.GetCurrectWeatherDetails(userIpAddress)
                                                      );

            Task.WhenAll(dashBoardRow1WidgetsModelTask, dashBoardWeatherWidgetTask);

            dashBoardRow1WidgetsModel = dashBoardRow1WidgetsModelTask.Result;
            dashBoardWidgetsDTO.DashBoardRow1WidgetsViewModel = _mapper.Map <DashBoardRow1WidgetsViewModel>(dashBoardRow1WidgetsModel);

            weatherModel = dashBoardWeatherWidgetTask.Result;
            dashBoardWidgetsDTO.DashBoardRow2WidgetsViewModel = new DashBoardRow2WidgetsViewModel();
            dashBoardWidgetsDTO.DashBoardRow2WidgetsViewModel.WeatherWidgetsViewModel =
                _mapper.Map <WeatherWidgetsViewModel>(weatherModel);

            return(View("Index", dashBoardWidgetsDTO));
        }