Esempio n. 1
0
        public ActionResult Submit(Guid id, BadgeAssociatedWorkModel[] criterion, string reflections)
        {
            var badge = RepositoryFactory.BadgeRepository.GetNullableById(id);

            if (badge == null) return HttpNotFound();

            var user = RepositoryFactory.UserRepository.Queryable.Single(x => x.Identifier == CurrentUser.Identity.Name);

            var submission =
                RepositoryFactory.BadgeSubmissionRepository.Queryable.SingleOrDefault(
                    x => x.Badge.Id == badge.Id && x.Creator.Identifier == CurrentUser.Identity.Name);

            if (submission == null)
            {
                submission = new BadgeSubmission { Badge = badge, Creator = user, Approved = false };
            }
            else
            {
                submission.BadgeFulfillments.Clear();
            }

            AssociateWorkWithCriterion(submission, criterion);
            submission.Reflection = reflections;
            submission.Submitted = true;
            submission.SubmittedOn = DateTime.UtcNow;

            Message = "Your badge submission has been forwarded for review. You should recieve a response within 48 hours.";
            RepositoryFactory.BadgeSubmissionRepository.EnsurePersistent(submission);

            return RedirectToAction("MyBadges");
        }
Esempio n. 2
0
        public ActionResult Earn(Guid id, BadgeAssociatedWorkModel[] criterion, string reflections)
        {
            var badge = RepositoryFactory.BadgeRepository.GetNullableById(id);

            if (badge == null) return HttpNotFound();

            var user = RepositoryFactory.UserRepository.Queryable.Single(x => x.Identifier == CurrentUser.Identity.Name);

            var submission =
                RepositoryFactory.BadgeSubmissionRepository.Queryable.SingleOrDefault(
                    x => x.Badge.Id == badge.Id && x.Creator.Identifier == CurrentUser.Identity.Name);

            if (submission == null)
            {
                submission = new BadgeSubmission { Badge = badge, Creator = user, Approved = false };
            }
            else
            {
                submission.BadgeFulfillments.Clear();
            }

            submission.Reflection = reflections;
            AssociateWorkWithCriterion(submission, criterion);

            Message = "Your badge progress has been saved";
            RepositoryFactory.BadgeSubmissionRepository.EnsurePersistent(submission);

            return RedirectToAction("MyBadges");
        }