Esempio n. 1
0
        public async virtual Task <ActionResult> Index()
        {
            var allBadges = await BadgeCollection.GetAllBadgesByTypeAsync(BadgeType.Unset);

            var allEarnedBadges = await EarnedBadgeCollection.GetAllBadgesForUserByTypeAsync(AuthenticatedUser.EmployeeId, BadgeType.Unset);

            var allActivities = await ActivityCollection.GetAllActivitiesAsync(true);

            var corporateBadges       = allBadges.Where(b => b.Type == BadgeType.Corporate);
            var communityBadges       = allBadges.Where(b => b.Type == BadgeType.Community);
            var earnedCorporateBadges = allEarnedBadges.Where(b => b.Type == BadgeType.Corporate);
            var earnedCommunityBadges = allEarnedBadges.Where(b => b.Type == BadgeType.Community);

            var sortedCorporateBadges = corporateBadges.OrderByDescending(b => b.BadgePriority);
            var sortedCommunityBadges = communityBadges.OrderByDescending(b => b.BadgePriority);
            var badgeIndexViewModel   = new BadgeIndexViewModel()
            {
                CorporateBadges       = sortedCorporateBadges,
                CorporateEarnedBadges = earnedCorporateBadges,
                CommunityBadges       = sortedCommunityBadges,
                CommunityEarnedBadges = earnedCommunityBadges,
                SubmittedActivity     = SubmitActivity.CreateActivitySubmission(AuthenticatedUser.EmployeeId),
                AvailableUsers        = await UserCollection.GetAllAvailabileUsersForCurrentUserAsync(),
            };

            badgeIndexViewModel.AllActivities      = allActivities;
            badgeIndexViewModel.PossibleActivities = allActivities.Select(ai => new SelectListItem()
            {
                Text = ai.Name, Value = ai.Id.ToString(CultureInfo.CurrentCulture)
            });

            return(View(badgeIndexViewModel));
        }
Esempio n. 2
0
        public async Task GetActivitySubmissionById()
        {
            var submitActivity = await SubmitActivity.GetActivitySubmissionByIdAsync(1);

            Assert.IsNotNull(submitActivity);
            Assert.AreEqual(1, submitActivity.Id);
        }
Esempio n. 3
0
        private ISubmitActivity CreateSubmitActivity(string newNotes, int employeeId)
        {
            var submitActivity = SubmitActivity.CreateActivitySubmission(employeeId);

            submitActivity.Notes      = newNotes;
            submitActivity.ActivityId = 2;

            submitActivity = (ISubmitActivity)submitActivity.Save();
            return(submitActivity);
        }
Esempio n. 4
0
        public async virtual Task <ActionResult> SubmitActivityForm()
        {
            var submittedActivity = SubmitActivity.CreateActivitySubmission(AuthenticatedUser.EmployeeId);

            TryUpdateModel(submittedActivity, "SubmittedActivity");
            var activities = await ActivityCollection.GetAllActivitiesAsync(false);

            var badges = await BadgeCollection.GetAllBadgesForActivitiesAsync(activities.Where(x => x.Id == submittedActivity.ActivityId).Select(x => x.Id));

            var badge = badges.Select(x => new { x.Id, x.BadgeAwardValue, x.BadgeAwardValueMax }).FirstOrDefault();

            if (submittedActivity.AwardValue > badge.BadgeAwardValueMax || submittedActivity.AwardValue < badge.BadgeAwardValue)
            {
                ModelState.AddModelError("SubmittedActivity.AwardValue", String.Format("Award Value not within acceptable range. ({0} - {1})", badge.BadgeAwardValue, badge.BadgeAwardValueMax));
            }
            else if (string.IsNullOrWhiteSpace(submittedActivity.EmployeeIds))
            {
                ModelState.AddModelError("SubmittedActivity.EmployeeIds", ApplicationResources.NoEmployeeIdsErrorMsg);
            }
            else
            {
                //Parse the list of employee ids the client form sent us.
                List <int> empIds = submittedActivity.EmployeeIds.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                                    .Convert(delegate(string item, out int result) { return(int.TryParse(item.Trim(), out result)); });

                bool allSaved = true;
                foreach (int empId in empIds)
                {
                    var singleActivity = SubmitActivity.CreateActivitySubmission(empId);
                    singleActivity.ActivityId             = submittedActivity.ActivityId;
                    singleActivity.ActivitySubmissionDate = submittedActivity.ActivitySubmissionDate;
                    singleActivity.Notes      = submittedActivity.Notes;
                    singleActivity.AwardValue = submittedActivity.AwardValue;

                    var singActEdit = await ActivityEdit.GetActivityEditByIdAsync(singleActivity.ActivityId);

                    singleActivity.EntryType = singActEdit.EntryType;
                    if (!await SaveObjectAsync(singleActivity, true))
                    {
                        allSaved = false;
                    }
                }

                if (allSaved)
                {
                    return(RedirectToAction(await Mvc.Activities.Actions.Index()));
                }
            }

            return(await Index());
        }
Esempio n. 5
0
        public async Task DeleteSubmitActivity()
        {
            var newNotes       = "Test Notes";
            var employeeId     = 4;
            var submitActivity = CreateSubmitActivity(newNotes, employeeId);

            var id = submitActivity.Id;

            submitActivity.Delete();
            submitActivity.Save();

            await SubmitActivity.GetActivitySubmissionByIdAsync(id);

            Assert.Fail("Submit Activity should not return.");
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="activity"></param>
        /// <returns></returns>
        public async Task <IHttpActionResult> Post([FromBody] ExternalActivitySubmissionDTO activity)
        {
            //Get the employee ID
            ICustomIdentityDAL customIdentityDAL = IoC.Container.Resolve <ICustomIdentityDAL>();
            var identity = await customIdentityDAL.RetrieveIdentityAsync(activity.UserADName);

            var submitActivity = SubmitActivity.CreateActivitySubmission(identity.Id);

            submitActivity.Notes      = activity.Notes;
            submitActivity.ActivityId = activity.ActivityId;

            submitActivity = (ISubmitActivity)submitActivity.Save();

            return(Ok());
        }
Esempio n. 7
0
        public async Task UpdateActivitySubmission()
        {
            var newNotes       = "Test Notes";
            var submitActivity = await SubmitActivity.GetActivitySubmissionByIdAsync(1);

            var oldNotes = submitActivity.Notes;

            submitActivity.Notes = newNotes;

            submitActivity = (ISubmitActivity)submitActivity.Save();

            Assert.AreEqual(newNotes, submitActivity.Notes);

            //reset
            submitActivity.Notes = oldNotes;
            submitActivity.Save();
        }
Esempio n. 8
0
        public async virtual Task <ActionResult> Index()
        {
            var submittedActivities = await SubmittedActivityCollection.GetSubmittedActivitiesByEmployeeIdAsync(AuthenticatedUser.EmployeeId, null, null);

            var activityIndexViewModel = new ActivityIndexViewModel()
            {
                SubmittedActivity = SubmitActivity.CreateActivitySubmission(AuthenticatedUser.EmployeeId),
                AvailableUsers    = await UserCollection.GetAllAvailabileUsersForCurrentUserAsync(),
            };

            var allActivities = await ActivityCollection.GetAllActivitiesAsync(true);

            activityIndexViewModel.PossibleActivities = allActivities.Select(ai => new SelectListItem()
            {
                Text = ai.Name, Value = ai.Id.ToString(CultureInfo.CurrentCulture)
            });
            activityIndexViewModel.PreviousActivities = await SubmittedActivityCollection.GetSubmittedActivitiesByEmployeeIdAsync(AuthenticatedUser.EmployeeId, null, null);

            return(View(Mvc.Activities.Views.Index, activityIndexViewModel));
        }
Esempio n. 9
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);
                }
            }
        }
Esempio n. 10
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);

                        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);
                }
            }
        }