public async Task StartAsync() { while (true) { try { var fileName = FileLocation; if (System.IO.File.Exists(fileName)) { var connectionString = string.Format( "Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName); var administrator = await CustomPrincipal.LoadAsync("JustinW"); ApplicationContext.User = administrator; using (var adapter = new OleDbDataAdapter("SELECT * FROM [Data$]", connectionString)) { var ds = new DataSet(); adapter.Fill(ds, "ActivityData"); DataTable data = ds.Tables["ActivityData"]; foreach (DataRow row in data.Rows) { var activityId = row.Field <Double>("Activity Id"); var adName = row.Field <string>("Magenic Username"); var dateOccurred = row.Field <DateTime>("Date Occurred"); var comments = row.Field <string>("Comments"); ICslaPrincipal employee = null; try { employee = await CustomPrincipal.LoadAsync(adName); } catch (Exception ex) { Logger.Error <ADProcessor>(ex.Message, ex); } if (employee != null) { var activitySubmission = SubmitActivity.CreateActivitySubmission(((ICustomIdentity)administrator.Identity).EmployeeId); activitySubmission.ActivityId = (int)activityId; activitySubmission.EmployeeId = ((ICustomIdentity)employee.Identity).EmployeeId; activitySubmission.ActivitySubmissionDate = dateOccurred; activitySubmission.Notes = comments; await activitySubmission.SaveAsync(); } } } System.IO.File.Delete(fileName); } } catch (Exception ex) { Logger.Error <ADProcessor>(ex.Message, ex); } finally { Thread.Sleep(SleepInterval); } } }
public async Task StartAsync() { while (true) { try { var fileName = FileLocation; if (System.IO.File.Exists(fileName)) { var connectionString = string.Format( "Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName); using (var adapter = new OleDbDataAdapter("SELECT * FROM [Data$]", connectionString)) { var ds = new DataSet(); adapter.Fill(ds, "AnniversaryData"); DataTable data = ds.Tables["AnniversaryData"]; var activityId = ActivityId; foreach (DataRow row in data.Rows) { var adName = row.Field <string>("Magenic Username"); var years = int.Parse(row.Field <string>("Years")); var submittedActivities = await SubmittedActivityCollection.GetSubmittedActivitiesByADNameAsync(adName, activityId); if (submittedActivities.Count < years) { ICslaPrincipal employee = null; try { employee = await BusinessLogic.Security.CustomPrincipal.LoadAsync(adName); } catch (Exception ex) { Logger.Error <ADProcessor>(ex.Message, ex); } if (employee != null) { for (var i = 0; i < (years - submittedActivities.Count); i++) { var activitySubmission = SubmitActivity.CreateActivitySubmission(((ICustomIdentity)employee.Identity).EmployeeId); activitySubmission.ActivityId = activityId; activitySubmission.ActivitySubmissionDate = DateTime.UtcNow; activitySubmission.Notes = "Created by automatic feed."; await activitySubmission.SaveAsync(); } } } } } System.IO.File.Delete(fileName); } } catch (Exception ex) { Logger.Error <ADProcessor>(ex.Message, ex); } finally { Thread.Sleep(SleepInterval); } } }