/// <summary> /// Set autentication in Nprinting and Get the Task details from database. /// </summary> // public async Task ExecuteNprintingTask() static void ExecuteNprintingTask() { IsAdhoc = false; DataTable taskExecutionDetails = null; DataTable distinctReprots = null; try { taskExecutionDetails = new DataTable(); taskExecutionDetails = GetTaskExecutionDetails(); if (taskExecutionDetails != null && taskExecutionDetails.Rows.Count > 0) { // var dtUniqueReportList = taskExecutionDetails.AsEnumerable() //.Select(row => new //{ // ReportID = row.Field<Int32>("ReportID"), //}) //.Distinct(); // dtUniqueReportList.ToArray(); //var tasks = new List<Task>(); var listOfActions = new List <Action>(); distinctReprots = taskExecutionDetails.AsEnumerable() .GroupBy(row => new { ReportID = row.Field <Int32>("ReportID"), }) .Select(group => group.First()) .CopyToDataTable(); NprintingReqResRepository obj = new NprintingReqResRepository(); obj.InsertLog("start", "start", DateTime.Now); #region Parallel foreach (DataRow dr in distinctReprots.Rows) { string TaskID = dr["NprintingTaskID"].ToString(); Int32 ReportID = Convert.ToInt32(dr["ReportID"]); listOfActions.Add(() => NprintingReqResRepository.excuteReportBunch(taskExecutionDetails, ReportID)); } Parallel.Invoke(listOfActions.ToArray()); #endregion #region sequential //foreach (DataRow dr in taskExecutionDetails.Rows) //{ // string TaskID = dr["NprintingTaskID"].ToString(); // Int32 ReportID = Convert.ToInt32(dr["ReportID"]); // NprintingReqResRepository.TasksExecution(TaskID, ReportID); //} #endregion } } catch (Exception ex) { LoggerHelper.ExcpLogger("Window Service Program", "ExecuteNprintingTask", ex); } }