예제 #1
0
        public static IHttpContext statisticGet(IHttpContext context)
        {
            try
            {
                if (!context.token().hasPermission("statistics.read"))
                {
                    context.Response.StatusCode = HttpStatusCode.NotFound;
                    context.Response.SendResponse("");
                    return(context);
                }
                var startDate = context.Request.QueryString["start"] != null?DateTime.Parse(context.Request.QueryString["start"]) : DateTime.Parse("1970-01-01 00:00:00");

                bool groupDay = context.Request.QueryString["groupDay"] != null?bool.Parse(context.Request.QueryString["groupDay"]) : false;

                bool groupWeek = context.Request.QueryString["groupWeek"] != null?bool.Parse(context.Request.QueryString["groupWeek"]) : false;

                bool groupMonth = context.Request.QueryString["groupMonth"] != null?bool.Parse(context.Request.QueryString["groupMonth"]) : false;


                List <RegistrationSummary> summary = RegistrationSummary.list(startDate, groupDay, groupWeek, groupMonth);

                context.Response.SendResponse(JsonConvert.SerializeObject(summary));
            }
            catch (Exception ex)
            {
                context.Response.StatusCode = HttpStatusCode.InternalServerError;
                context.Response.SendResponse(ex.Message);
            }
            return(context);
        }
예제 #2
0
        public async Task <LoginSummary> Register(RegistrationSummary registrationSummary)
        {
            BaseAPI <LoginSummary> api = new BaseAPI <LoginSummary>();

            api.RelativeUrl = "account/register";
            var result = await api.PostAsync(registrationSummary);

            return(result);
        }
예제 #3
0
        public void Register(RegistrationSummary registration)
        {
            if (registration.Password != registration.ConfirmPassword)
            {
                throw new UserException("The confirm password field does not match the password field");
            }
            var personMgr  = Dependency.Resolve <IPersonManager>();
            var accountMgr = Dependency.Resolve <IAccountManager>();

            accountMgr.SaveCredentials(registration.Username, registration.Password);
        }
예제 #4
0
        protected void Page_Load(object sender, EventArgs e)
        {
            courseId = Request["courseid"];

            List <RegistrationData> regList = ScormCloud.RegistrationService.GetRegistrationListForCourse(courseId);

            StringBuilder ct = new StringBuilder();

            ct.AppendLine("<table class=\"registrationsTableDiv\">");

            ct.AppendLine("<tr>");
            ct.AppendLine("<td> Reg ID</td>");
            ct.AppendLine("<td> Course ID</td>");

            ct.AppendLine("<td>Completion</td>");
            ct.AppendLine("<td>Success</td>");
            ct.AppendLine("<td>Score</td>");
            ct.AppendLine("<td>TotalTime</td>");
            ct.AppendLine("<td>Completed Date </td>");
            ct.AppendLine("</tr>");

            foreach (RegistrationData reg in regList)
            {
                ct.AppendLine("<tr>");
                ct.AppendLine("<td>" + reg.RegistrationId + "</td>");
                ct.AppendLine("<td>" + reg.CourseId + "</td>");
                RegistrationSummary result = ScormCloud.RegistrationService.GetRegistrationSummary(reg.RegistrationId);
                ct.AppendLine("<td>" + result.Complete + "</td>");
                ct.AppendLine("<td>" + result.Success + "</td>");
                ct.AppendLine("<td>" + result.Score + "</td>");
                ct.AppendLine("<td>" + result.TotalTime + "</td>");
                String launchUrl = ScormCloud.RegistrationService.GetLaunchUrl(reg.RegistrationId, "http://cloud.scorm.com");
                ct.AppendLine("<td><a href='" + launchUrl + "'>Launch</a></td>");
                //Delete
                //Launch

                // ct.AppendLine("<td><a href='InvitationInfoSample.aspx?invid=" + inv.Id + "&courseid=" + courseId + "'>details</a></td>");
                // ct.AppendLine("<td><a href='InvitationChange.aspx?invid=" + inv.Id + "&enable=" + (!inv.AllowLaunch).ToString().ToLower() + "&open=" + inv.AllowNewRegistrations.ToString().ToLower() + "&courseid=" + courseId + "'>" + (inv.AllowLaunch ? "enabled" : "disabled") + "</a></td>");
                // ct.AppendLine("<td><a href='InvitationChange.aspx?invid=" + inv.Id + "&enable=" + inv.AllowLaunch.ToString().ToLower() + "&open=" + (!inv.AllowNewRegistrations).ToString().ToLower() + "&courseid=" + courseId + "'>" + (inv.AllowNewRegistrations ? "open" : "closed") + "</a></td>");
                ct.AppendLine("</tr>");
            }


            ct.AppendLine("</table>");

            registrationsTableDiv.InnerHtml = ct.ToString();
        }
예제 #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            String regId = Request["registration"];

            //Get registration info, make sure it exists
            Registration reg = DataStore.GetRegistration(regId);

            if (reg == null)
            {
                Response.Write("Error, registration not found");
                Response.End();
            }

            //Grab learning and invitation information as well
            String     learningId = reg.LearningId;
            Learning   learning   = DataStore.GetLearning(learningId);
            Invitation invitation = DataStore.GetInvitationByLearningId(learningId);

            //Set dynamic content for controls
            sentMessage.InnerText     = invitation.SenderName + " sent you some learning";
            learnerEmail.Value        = reg.Email;
            senderEmail.Value         = invitation.SenderEmail;
            learningTitle.Value       = learning.Title;
            learningDescription.Value = learning.Description;



            //Contruct a single row table with this learner's info
            RegSummaryTable regTable = new RegSummaryTable(false);

            //Get completion, score, and other stats from Hosted Scorm Engine
            RegistrationSummary summary = ScormCloud.RegistrationService.GetRegistrationSummary(regId);

            //Add this info to our table
            regTable.AddRow(DataStore.GetRegistration(regId), summary.TotalTime, summary.Complete, summary.Success, summary.Score);

            learnerInfoTableDiv.InnerHtml = regTable.GetHtml();



            //Get launch url from ScormCloud client, redirect to this page on exit
            startLearningLink.HRef = "Launch.aspx?regid=" + regId;

            //Include detailed report link for this learner
            detailedReportLink.HRef = "HostedReport.aspx?registration=" + regId;
        }
예제 #6
0
        protected void Page_Load(object sender, EventArgs e)
        {
            //Make sure invitation parameter is available
            String invitationId = Request["invitation"];

            if (invitationId == null)
            {
                Response.Write("No invitation id specified!");
                Response.End();
            }
            //Grab the learning id from the invitation info
            Invitation invitation = DataStore.GetInvitation(invitationId);
            String     learningId = invitation.LearningId;

            //Set these learningid attributes for Ajax functionality
            learningTitle.Attributes["learningid"]       = learningId;
            learningDescription.Attributes["learningid"] = learningId;

            //Set title and description of learning
            Learning learning = DataStore.GetLearning(learningId);

            learningTitle.Value       = learning.Title;
            learningDescription.Value = learning.Description;

            //Setup preview learning and change settings links
            previewLearningLink.HRef = "Preview.aspx?courseid=" + learningId;
            changeSettingsLink.HRef  = "Properties.aspx?courseid=" + learningId;



            //Construct registration table for all learners associated with this learning
            RegSummaryTable regTable = new RegSummaryTable(true);

            String[] regIds = DataStore.GetRegistrationIdsForLearning(learningId);
            foreach (String regId in regIds)
            {
                //Get completion, score, and other stats from Hosted Scorm Engine
                RegistrationSummary summary = ScormCloud.RegistrationService.GetRegistrationSummary(regId);

                //Add this info to our table
                regTable.AddRow(DataStore.GetRegistration(regId),
                                summary.TotalTime, summary.Complete, summary.Success, summary.Score);
            }
            learnerTableDiv.InnerHtml = regTable.GetHtml();
        }
예제 #7
0
        private static void AssertRegistrationSummary(Registration original, RegistrationSummary result)
        {
            Assert.NotNull(result);

            Assert.Equal(original.Id, result.Id);
            Assert.Equal(!string.IsNullOrEmpty(original.InternalCaseNotes), result.HasInternalCaseNotes);
            Assert.Equal(original.HostCommunity?.Id, result.HostCommunity?.Id);
            Assert.Equal(original.IncidentTask?.Id, result.IncidentTask?.Id);
            Assert.Equal(original.Facility, result.Facility);
            Assert.Equal(original.RegisteringFamilyMembers, result.RegisteringFamilyMembers);
            Assert.Equal(original.RegistrationCompletionDate, result.RegistrationCompletionDate);
            Assert.Equal(original.RequiresAccommodation, result.RequiresAccommodation);
            Assert.Equal(original.RequiresClothing, result.RequiresClothing);
            Assert.Equal(original.RequiresFood, result.RequiresFood);
            Assert.Equal(original.RequiresIncidentals, result.RequiresIncidentals);
            Assert.Equal(original.RequiresSupport, result.RequiresSupport);
            Assert.Equal(original.RequiresTransportation, result.RequiresTransportation);
            Assert.Equal(original.RestrictedAccess, result.RestrictedAccess);
            Assert.Equal(original.SelfRegisteredDate, result.SelfRegisteredDate);
            Assert.NotNull(result.HeadOfHousehold);
            Assert.NotNull(result.HeadOfHousehold.Id);
            Assert.Equal($"{original.Id}-1", result.HeadOfHousehold.Id);
            Assert.Equal(original.HeadOfHousehold.Dob, result.HeadOfHousehold.Dob);
            Assert.Equal(original.HeadOfHousehold.Email, result.HeadOfHousehold.Email);
            Assert.Equal(original.HeadOfHousehold.FirstName, result.HeadOfHousehold.FirstName);
            Assert.Equal(original.HeadOfHousehold.Gender, result.HeadOfHousehold.Gender);
            Assert.Equal(original.HeadOfHousehold.Initials, result.HeadOfHousehold.Initials);
            Assert.Equal(original.HeadOfHousehold.LastName, result.HeadOfHousehold.LastName);
            Assert.Equal(original.HeadOfHousehold.Nickname, result.HeadOfHousehold.Nickname);
            Assert.Equal(original.HeadOfHousehold.PhoneNumber, result.HeadOfHousehold.PhoneNumber);
            Assert.Equal(original.HeadOfHousehold.PhoneNumberAlt, result.HeadOfHousehold.PhoneNumberAlt);
            Assert.Equal($"{original.Id}-2", result.HeadOfHousehold.MailingAddress?.Id);
            Assert.Equal(original.HeadOfHousehold.MailingAddress?.AddressLine1, result.HeadOfHousehold.MailingAddress?.AddressLine1);
            Assert.Equal(original.HeadOfHousehold.MailingAddress?.AddressLine2, result.HeadOfHousehold.MailingAddress?.AddressLine2);
            Assert.Equal(original.HeadOfHousehold.MailingAddress?.AddressLine3, result.HeadOfHousehold.MailingAddress?.AddressLine3);
            Assert.Equal(original.HeadOfHousehold.MailingAddress?.AddressSubtype, result.HeadOfHousehold.MailingAddress?.AddressSubtype);
            Assert.Equal(original.HeadOfHousehold.MailingAddress?.City, result.HeadOfHousehold.MailingAddress?.City);
            Assert.Equal(original.HeadOfHousehold.MailingAddress?.Community?.Id, result.HeadOfHousehold.MailingAddress?.Community?.Id);
            Assert.Equal(original.HeadOfHousehold.MailingAddress?.Country?.Id, result.HeadOfHousehold.MailingAddress?.Country?.Id);
            Assert.NotNull(result.HeadOfHousehold.PrimaryResidence);
            Assert.NotNull(result.HeadOfHousehold.PrimaryResidence.Id);
            Assert.Equal($"{original.Id}-1", result.HeadOfHousehold.PrimaryResidence.Id);
            Assert.Equal(original.HeadOfHousehold.PrimaryResidence.AddressLine1, result.HeadOfHousehold.PrimaryResidence.AddressLine1);
            Assert.Equal(original.HeadOfHousehold.PrimaryResidence.AddressLine2, result.HeadOfHousehold.PrimaryResidence.AddressLine2);
            Assert.Equal(original.HeadOfHousehold.PrimaryResidence.AddressLine3, result.HeadOfHousehold.PrimaryResidence.AddressLine3);
            Assert.Equal(original.HeadOfHousehold.PrimaryResidence.AddressSubtype, result.HeadOfHousehold.PrimaryResidence.AddressSubtype);
            Assert.Equal(original.HeadOfHousehold.PrimaryResidence.City, result.HeadOfHousehold.PrimaryResidence.City);
            Assert.Equal(original.HeadOfHousehold.PrimaryResidence.Community?.Id, result.HeadOfHousehold.PrimaryResidence.Community?.Id);
            Assert.Equal(original.HeadOfHousehold.PrimaryResidence.Country?.Id, result.HeadOfHousehold.PrimaryResidence.Country?.Id);
            Assert.Equal(original.HeadOfHousehold.FamilyMembers.Count(), result.HeadOfHousehold.FamilyMembers.Count());
            Assert.All(original.HeadOfHousehold.FamilyMembers, fmbr =>
            {
                var resultFmbr = result.HeadOfHousehold.FamilyMembers.Single(f => f.FirstName == fmbr.FirstName && f.Dob == fmbr.Dob);
                Assert.NotNull(resultFmbr.Id);
                Assert.StartsWith(original.Id, resultFmbr.Id);
                Assert.Equal(fmbr.Dob, resultFmbr.Dob);
                Assert.Equal(fmbr.FirstName, resultFmbr.FirstName);
                Assert.Equal(fmbr.Gender, resultFmbr.Gender);
                Assert.Equal(fmbr.Initials, resultFmbr.Initials);
                Assert.Equal(fmbr.LastName, resultFmbr.LastName);
                Assert.Equal(fmbr.Nickname, resultFmbr.Nickname);
                Assert.Equal(fmbr.RelationshipToEvacuee?.Code, resultFmbr.RelationshipToEvacuee?.Code);
                Assert.Equal(fmbr.SameLastNameAsEvacuee, resultFmbr.SameLastNameAsEvacuee);
            });
        }