Esempio n. 1
0
        public async Task <ActionResult <List <Employee> > > EmployeesFromCsv()
        {
            var reconciledEmployeeList = new List <Employee>();

            try
            {
                // Step 1. Update existing employee statuses.
                await employeeReconciler.UpdateEmployeeStatuses();

                // Step 2. Get a list of candidate Employee objects based on the
                // Csv.
                reconciledEmployeeList = await csv.ProcessCsv(Request, employeeReconciler, logger);

                // Step 3. Update existing employee statuses, again.
                await employeeReconciler.UpdateEmployeeStatuses();

                // Step 4. For all ACTIVE users in the DB who are NOT in the
                // Csv, set them to not exiting, IF they are not in a final state.
                // Including updating Callweb.
                await employeeReconciler.UpdateNotExiting(reconciledEmployeeList);
            }
            catch (Exception e)
            {
                await logger.LogFailure(TaskEnum.ReconcileCsv,
                                        $"Error reconciling employee records. Stacktrace:\r\n" +
                                        e.StackTrace
                                        );
            }

            return(Ok(reconciledEmployeeList));
        }
        public async Task <ActionResult> RefreshEmployeeStatus()
        {
            try
            {
                // Update existing employee statuses.
                await EmployeeReconciler.UpdateEmployeeStatuses();

                await logger.LogSuccess(TaskEnum.RefreshStatuses,
                                        $"Manually-triggered refresh of employee statuses."
                                        );
            }
            catch (Exception e)
            {
                await logger.LogFailure(TaskEnum.ReconcileCsv,
                                        $"Error refreshing employee statuses. Stacktrace:\r\n" +
                                        e.StackTrace
                                        );
            }

            return(Ok());
        }