Example #1
0
        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);
                }
            }
        }