예제 #1
0
        public ActionResult PyScript(string name)
        {
            try
            {
//                var q = new QueryFunctions(DbUtil.Db);
//                var s = q.SqlNameCountArray("test", @"
//SELECT ms.Description Name, COUNT(*) Cnt
//FROM dbo.People p
//JOIN lookup.MemberStatus ms ON ms.Id = p.MemberStatusId
//GROUP BY ms.Description
//");
//                Response.ContentType = "text/plain";
//                return Content(s);

#if DEBUG2
                var script = System.IO.File.ReadAllText(Server.MapPath("/chart.py"));
#else
                var script = DbUtil.Db.ContentOfTypePythonScript(name);
#endif
                if (!script.HasValue())
                {
                    return(Message("no script named " + name));
                }
                var pe = new PythonEvents(Util.Host, script);
                return(View(pe));
            }
            catch (Exception ex)
            {
                return(RedirectShowError(ex.Message));
            }
        }
예제 #2
0
        public ActionResult PyScriptForm(string name)
        {
            try
            {
                var script = FetchPyScriptForm(name);

                if (!script.HasValue())
                {
                    return(Message("no script named " + name));
                }
                var pe = new PythonEvents(Util.Host);
                foreach (var key in Request.QueryString.AllKeys)
                {
                    pe.DictionaryAdd(key, Request.QueryString[key]);
                }
                pe.Data.pyscript = name;
                pe.HttpMethod    = "get";
                pe.RunScript(script);
                return(View(pe));
            }
            catch (Exception ex)
            {
                return(RedirectShowError(ex.Message));
            }
        }
예제 #3
0
        public ActionResult RunTestScript(string script)
        {
            Util.IsInRoleEmailTest = true;
            var ret = PythonEvents.RunScript(DbUtil.Db, script);

            return(Content(ret));
        }
예제 #4
0
        public ActionResult Test()
        {
            var s = System.IO.File.ReadAllText(Server.MapPath("~/test.py"));

            ViewBag.text = PythonEvents.RunScript(Util.Host, s);
            return(View());
        }
예제 #5
0
        public ActionResult PyScript(Guid id, string report)
        {
            var content = DbUtil.Db.ContentOfTypePythonScript(report);

            if (content == null)
            {
                return(Content("no script named " + report));
            }
            if (!content.Contains("BlueToolbarReport"))
            {
                return(Content("Missing Call to Query Function 'BlueToolbarReport'"));
            }
            if (id == Guid.Empty)
            {
                return(Content("Must be run from the BlueToolbar"));
            }


            var pe = new PythonEvents(Util.Host);

            pe.DictionaryAdd("BlueToolbarGuid", id.ToCode());
            foreach (var key in Request.QueryString.AllKeys)
            {
                pe.DictionaryAdd(key, Request.QueryString[key]);
            }

            pe.RunScript(content);

            return(View(pe));
        }
예제 #6
0
        public ActionResult Test()
        {
            var s   = @"
q = model.ChangedAddresses()
for v in q:
    print 'Hi {} {}, \nI noticed you have moved to {}\n'.format(v.FirstName, v.LastName, v.PrimaryCity)
";
            var ret = PythonEvents.RunScript(DbUtil.Db, s);

            return(Content("<pre>{0}</pre>".Fmt(ret)));
        }
예제 #7
0
 public ActionResult Script(string id)
 {
     try
     {
         var script = DbUtil.Db.Content(id);
         PythonEvents.RunScript(DbUtil.Db, script.Body);
     }
     catch (Exception e)
     {
         return(Content(e.Message));
     }
     return(Content("done"));
 }
예제 #8
0
        public void ParseSettings()
        {
//            if (HttpContext.Current.Items.Contains("RegSettings"))
//                return;
            var list = new Dictionary <int, Settings>();

            if (masterorgid.HasValue)
            {
                var q = from o in UserSelectClasses(masterorg)
                        select new { o.OrganizationId, o.RegSetting };
                foreach (var i in q)
                {
                    list[i.OrganizationId] = new Settings(i.RegSetting, DbUtil.Db, i.OrganizationId);
                }
                list[masterorg.OrganizationId] = new Settings(masterorg.RegSetting, DbUtil.Db, masterorg.OrganizationId);
            }
            else if (_orgid == null)
            {
                return;
            }
            else if (org != null)
            {
                list[_orgid.Value] = new Settings(org.RegSetting, DbUtil.Db, _orgid.Value);
            }
//            if (HttpContext.Current.Items.Contains("RegSettings"))
//                return;
            HttpContext.Current.Items["RegSettings"] = list;

            if (org == null || !org.AddToSmallGroupScript.HasValue())
            {
                return;
            }

            var script = DbUtil.Db.Content(org.AddToSmallGroupScript);

            if (script == null || !script.Body.HasValue())
            {
                return;
            }

            try
            {
                var pe = new PythonEvents(Util.Host, "RegisterEvent", script.Body);
                HttpContext.Current.Items["PythonEvents"] = pe;
            }
            catch (Exception ex)
            {
                org.AddToExtraData("Python.errors", ex.Message);
                throw;
            }
        }
예제 #9
0
 public ActionResult RunScript(string id)
 {
     try
     {
         var script = DbUtil.Db.Content(id);
         var pe     = new PythonEvents(DbUtil.Db, id, script.Body);
         pe.instance.Run();
     }
     catch (Exception e)
     {
         return(Content(e.Message));
     }
     return(Content("done"));
 }
예제 #10
0
        public SummaryInfo(CMSDataContext db, int pid, int oid)
        {
            this.db   = db;
            OrgMember = OrganizationMember.Load(db, pid, oid);
            if (!OrgMember.OnlineRegData.HasValue())
            {
                return;
            }
            // ReSharper disable once UseObjectOrCollectionInitializer
            Person         = new OnlineRegPersonModel0(OrgMember.OnlineRegData, db);
            Person.setting = db.CreateRegistrationSettings(OrgMember.Organization.RegSettingXml, oid);

            Handlebars.RegisterHelper("Registrant", Registrant);
            Handlebars.RegisterHelper("IfShowTransaction", IfShowTransaction);
            Handlebars.RegisterHelper("IfSupportMissionTrip", IfSupportMissionTrip);
            Handlebars.RegisterHelper("AskItems", AskItems);

            Handlebars.RegisterHelper("IfAskAllergies", IfAskAllergies);
            Handlebars.RegisterHelper("IfAskCheckboxes", IfAskCheckboxes);
            Handlebars.RegisterHelper("IfAskCoaching", IfAskCoaching);
            Handlebars.RegisterHelper("IfAskChurch", IfAskChurch);
            Handlebars.RegisterHelper("IfAskDoctor", IfAskDoctor);
            Handlebars.RegisterHelper("IfAskDropdown", IfAskDropdown);
            Handlebars.RegisterHelper("IfAskEmContact", IfAskEmContact);
            Handlebars.RegisterHelper("IfAskExtraQuestions", IfAskExtraQuestions);
            Handlebars.RegisterHelper("IfAskGradeOptions", IfAskGradeOptions);
            Handlebars.RegisterHelper("IfAskHeader", IfAskHeader);
            Handlebars.RegisterHelper("IfAskInstruction", IfAskInstruction);
            Handlebars.RegisterHelper("IfAskInsurance", IfAskInsurance);
            Handlebars.RegisterHelper("IfAskMenu", IfAskMenu);
            Handlebars.RegisterHelper("IfAskParents", IfAskParents);
            Handlebars.RegisterHelper("IfAskRequest", IfAskRequest);
            Handlebars.RegisterHelper("IfAskSize", IfAskSize);
            Handlebars.RegisterHelper("IfAskSms", IfAskSms);
            Handlebars.RegisterHelper("IfAskTextQuestions", IfAskTextQuestions);
            Handlebars.RegisterHelper("IfAskTickets", IfAskTickets);
            Handlebars.RegisterHelper("IfAskTylenolEtc", IfAskTylenolEtc);
            Handlebars.RegisterHelper("IfAskYesNoQuestions", IfAskYesNoQuestions);

            Handlebars.RegisterHelper("IfHasAgeGroups", IfHasAgeGroups);
            Handlebars.RegisterHelper("MenuItems", MenuItems);
            Handlebars.RegisterHelper("Checkboxes", Checkboxes);

            Handlebars.RegisterHelper("TopLabel", (writer, context, args) => { writer.Write(TopLabel); });
            Handlebars.RegisterHelper("BottomStyle", (writer, context, args) => { writer.Write(RowStyle); });

            PythonEvents.RegisterHelpers(db);
        }
예제 #11
0
 public void AddToSmallGroup(CMSDataContext Db, OrganizationMember om, PythonEvents pe)
 {
     if (om == null)
     {
         return;
     }
     if (pe != null)
     {
         pe.instance.AddToSmallGroup(SmallGroup, om);
     }
     om.AddToGroup(Db, SmallGroup);
     if (MeetingTime.HasValue)
     {
         Attend.MarkRegistered(Db, om.OrganizationId, om.PeopleId, MeetingTime.Value, 1);
     }
 }
예제 #12
0
        public void ParseSettings()
        {
            var list = new Dictionary <int, Settings>();

            if (masterorgid.HasValue)
            {
                foreach (var o in UserSelectClasses(masterorg))
                {
                    list[o.OrganizationId] = DbUtil.Db.CreateRegistrationSettings(o.OrganizationId);
                }
                list[masterorg.OrganizationId] = DbUtil.Db.CreateRegistrationSettings(masterorg.OrganizationId);
            }
            else if (_orgid == null)
            {
                return;
            }
            else if (org != null)
            {
                list[_orgid.Value] = DbUtil.Db.CreateRegistrationSettings(_orgid.Value);
            }
            HttpContext.Current.Items["RegSettings"] = list;

            if (org == null || !org.AddToSmallGroupScript.HasValue())
            {
                return;
            }

            var script = DbUtil.Db.Content(org.AddToSmallGroupScript);

            if (script == null || !script.Body.HasValue())
            {
                return;
            }

            Log("Script:" + org.AddToSmallGroupScript);
            try
            {
                var pe = new PythonEvents(Util.Host, "RegisterEvent", script.Body);
                HttpContext.Current.Items["PythonEvents"] = pe;
            }
            catch (Exception ex)
            {
                Log("PythonError");
                org.AddToExtraData("Python.errors", ex.Message);
                throw;
            }
        }
예제 #13
0
        public ActionResult PyScriptForm()
        {
            try
            {
                var pe = new PythonEvents(Util.Host);
                foreach (var key in Request.Form.AllKeys)
                {
                    pe.DictionaryAdd(key, Request.Form[key]);
                }
                pe.HttpMethod = "post";

                var script = FetchPyScriptForm(pe.Data.pyscript);
                return(Content(pe.RunScript(script)));
            }
            catch (Exception ex)
            {
                return(RedirectShowError(ex.Message));
            }
        }
예제 #14
0
        public ActionResult PyScript(string name, string p1, string p2, string v1, string v2)
        {
            try
            {
                var script = DbUtil.Db.ContentOfTypePythonScript(name);
                if (!script.HasValue())
                {
                    return(Message("no script named " + name));
                }

                if (script.Contains("model.Form"))
                {
                    return(Redirect("/PyScriptForm/" + name));
                }
                script = script.Replace("@P1", p1 ?? "NULL")
                         .Replace("@P2", p2 ?? "NULL")
                         .Replace("V1", v1 ?? "None")
                         .Replace("V2", v2 ?? "None");
                if (script.Contains("@qtagid"))
                {
                    var id  = DbUtil.Db.FetchLastQuery().Id;
                    var tag = DbUtil.Db.PopulateSpecialTag(id, DbUtil.TagTypeId_Query);
                    script = script.Replace("@qtagid", tag.Id.ToString());
                }

                var pe = new PythonEvents(Util.Host);

                foreach (var key in Request.QueryString.AllKeys)
                {
                    pe.DictionaryAdd(key, Request.QueryString[key]);
                }

                pe.RunScript(script);

                return(View(pe));
            }
            catch (Exception ex)
            {
                return(RedirectShowError(ex.Message));
            }
        }
예제 #15
0
        public ActionResult VoteLinkSg(string id, string message, bool?confirm)
        {
            if (!id.HasValue())
            {
                return(Content("bad link"));
            }

            var guid = id.ToGuid();

            if (guid == null)
            {
                return(Content("invalid link"));
            }
            var ot = DbUtil.Db.OneTimeLinks.SingleOrDefault(oo => oo.Id == guid.Value);

            if (ot == null)
            {
                return(Content("invalid link"));
            }
            if (ot.Used)
            {
                return(Content("link used"));
            }
            if (ot.Expires.HasValue && ot.Expires < DateTime.Now)
            {
                return(Content("link expired"));
            }
            var a          = ot.Querystring.SplitStr(",", 5);
            var oid        = a[0].ToInt();
            var pid        = a[1].ToInt();
            var emailid    = a[2].ToInt();
            var pre        = a[3];
            var smallgroup = a[4];
            var q          = (from pp in DbUtil.Db.People
                              where pp.PeopleId == pid
                              let org = DbUtil.Db.Organizations.SingleOrDefault(oo => oo.OrganizationId == oid)
                                        let om = DbUtil.Db.OrganizationMembers.SingleOrDefault(oo => oo.OrganizationId == oid && oo.PeopleId == pid)
                                                 select new { p = pp, org = org, om = om }).Single();

            if (q.org == null)
            {
                return(Content("org missing, bad link"));
            }

            if ((q.org.RegistrationTypeId ?? RegistrationTypeCode.None) == RegistrationTypeCode.None)
            {
                return(Content("votelink is no longer active"));
            }

            if (q.om == null && q.org.Limit <= q.org.RegLimitCount(DbUtil.Db))
            {
                return(Content("sorry, maximum limit has been reached"));
            }

            if (q.om == null && (q.org.RegistrationClosed == true || q.org.OrganizationStatusId == OrgStatusCode.Inactive))
            {
                return(Content("sorry, registration has been closed"));
            }

            var setting = new Settings(q.org.RegSetting, DbUtil.Db, oid);

            if (IsSmallGroupFilled(setting, oid, smallgroup))
            {
                return(Content("sorry, maximum limit has been reached for " + smallgroup));
            }

            var omb = q.om;

            omb = OrganizationMember.InsertOrgMembers(DbUtil.Db,
                                                      oid, pid, MemberTypeCode.Member, DateTime.Now, null, false);
            //DbUtil.Db.UpdateMainFellowship(oid);

            if (q.org.AddToSmallGroupScript.HasValue())
            {
                var script = DbUtil.Db.Content(q.org.AddToSmallGroupScript);
                if (script != null && script.Body.HasValue())
                {
                    try
                    {
                        var pe = new PythonEvents(DbUtil.Db, "RegisterEvent", script.Body);
                        pe.instance.AddToSmallGroup(smallgroup, omb);
                    }
                    catch (Exception)
                    {
                    }
                }
            }
            omb.AddToGroup(DbUtil.Db, smallgroup);
            omb.AddToGroup(DbUtil.Db, "emailid:" + emailid);
            ot.Used = true;
            DbUtil.Db.SubmitChanges();
            DbUtil.LogActivity("Votelink: {0}".Fmt(q.org.OrganizationName));

            if (confirm == true)
            {
                var subject = Util.PickFirst(setting.Subject, "no subject");
                var msg     = Util.PickFirst(setting.Body, "no message");
                msg = CmsData.API.APIOrganization.MessageReplacements(DbUtil.Db, q.p, q.org.DivisionName, q.org.OrganizationName, q.org.Location, msg);
                msg = msg.Replace("{details}", smallgroup);
                var NotifyIds = DbUtil.Db.StaffPeopleForOrg(q.org.OrganizationId);

                try
                {
                    DbUtil.Db.Email(NotifyIds[0].FromEmail, q.p, subject, msg); // send confirmation
                }
                catch (Exception ex)
                {
                    DbUtil.Db.Email(q.p.FromEmail, NotifyIds,
                                    q.org.OrganizationName,
                                    "There was a problem sending confirmation from org: " + ex.Message);
                }
                DbUtil.Db.Email(q.p.FromEmail, NotifyIds,
                                q.org.OrganizationName,
                                "{0} has registered for {1}<br>{2}<br>(from votelink)".Fmt(q.p.Name, q.org.OrganizationName, smallgroup));
            }

            return(Content(message));
        }
예제 #16
0
        public Dictionary <Person, string> NoticesToSend()
        {
            var leaderNotices = new Dictionary <Person, string>();

            const int days = 36;

            var olist = FetchOrgs().Select(oo => oo.OrganizationId).ToList();

            var alist = (from p in DbUtil.Db.RecentAbsents(null, null, days)
                         where olist.Contains(p.OrganizationId)
                         select p).ToList();

            var mlist = (from r in DbUtil.Db.LastMeetings(null, null, days)
                         where olist.Contains(r.OrganizationId)
                         select r).ToList();

            var plist = (from om in DbUtil.Db.ViewOrganizationLeaders
                         where olist.Contains(om.OrganizationId)
                         group om.OrganizationId by om.PeopleId
                         into leaderlist
                         select leaderlist).ToList();

            PythonEvents.RegisterHelpers(DbUtil.Db);
            var template = HandlebarsDotNet.Handlebars.Compile(Resource1.RecentVisitsAbsents);
            var sb       = new StringBuilder("Notices sent to:</br>\n<table>\n");

            foreach (var p in plist)
            {
                var leader   = DbUtil.Db.LoadPersonById(p.Key);
                var orgids   = p.ToList();
                var meetings =
                    (from m in mlist
                     where orgids.Contains(m.OrganizationId)
                     let visitors = DbUtil.Db.OrgVisitorsAsOfDate(m.OrganizationId, m.Lastmeeting, true).ToList()
                                    let absents = (from a in alist where a.OrganizationId == m.OrganizationId select a).ToList()
                                                  let org = DbUtil.Db.LoadOrganizationById(m.OrganizationId)
                                                            select new
                {
                    m.MeetingId,
                    m.OrganizationId,
                    LastMeeting = m.Lastmeeting.ToString2("g"),
                    OrgName = Organization.FormatOrgName(m.OrganizationName, m.LeaderName, m.Location),
                    m.LeaderName,
                    ConsecutiveAbsentsThreshold = org.ConsecutiveAbsentsThreshold ?? 2,
                    HasAbsents = absents.Any(),
                    Absents = (from a in absents
                               orderby a.Lastmeeting descending
                               select new
                    {
                        a.PeopleId,
                        a.Consecutive,
                        a.Name2,
                        HasHomePhone = a.HomePhone.HasValue(),
                        HomePhone = a.HomePhone.FmtFone("H"),
                        HasCellPhone = a.CellPhone.HasValue(),
                        CellPhone = a.CellPhone.FmtFone("C"),
                        HasEmail = a.EmailAddress.HasValue(),
                        a.EmailAddress,
                        MostRecentMeeting = a.Mostrecentmeeting.ToString2("d"),
                        a.LeaderName,
                        a.OrganizationName,
                        LastMeeting = a.Lastmeeting.ToString2("d"),
                    }).ToList(),
                    HasVisits = visitors.Any(),
                    Visits = (from a in visitors
                              select new
                    {
                        a.LastName,
                        a.PreferredName,
                        LastAttended = a.LastAttended.ToString2("d"),
                        HasHomePhone = a.HomePhone.HasValue(),
                        HomePhone = a.HomePhone.FmtFone("H"),
                        HasCellPhone = a.CellPhone.HasValue(),
                        CellPhone = a.CellPhone.FmtFone("C"),
                        HasEmail = a.Email.HasValue(),
                        a.Email,
                    }).ToList(),
                }).ToList();
                foreach (var m in meetings)
                {
                    sb.Append($"<tr><td>{leader.Name}</td><td>{m.OrgName}</td><td>{m.LastMeeting:g}</td></tr>\n");
                }

                leaderNotices.Add(leader, template(meetings));
            }
            sb.Append("</table>\n");
            noticelist = sb.ToString();
            return(leaderNotices);
        }
예제 #17
0
        public ActionResult VoteLinkSg(string id, string message, bool?confirm, FormCollection formCollection)
        {
            var li = new LinkInfo(votelinkSTR, confirmSTR, id);

            if (li.error.HasValue())
            {
                return(Message(li.error));
            }

            try
            {
                var smallgroup = li.a[4];

                if (!li.oid.HasValue)
                {
                    throw new Exception("orgid missing");
                }

                if (!li.pid.HasValue)
                {
                    throw new Exception("peopleid missing");
                }

                var q = (from pp in DbUtil.Db.People
                         where pp.PeopleId == li.pid
                         let org = DbUtil.Db.Organizations.SingleOrDefault(oo => oo.OrganizationId == li.oid)
                                   let om = DbUtil.Db.OrganizationMembers.SingleOrDefault(oo => oo.OrganizationId == li.oid && oo.PeopleId == li.pid)
                                            select new { p = pp, org, om }).Single();

                if (q.org == null && DbUtil.Db.Host == "trialdb")
                {
                    var oid = li.oid + Util.TrialDbOffset;
                    q = (from pp in DbUtil.Db.People
                         where pp.PeopleId == li.pid
                         let org = DbUtil.Db.Organizations.SingleOrDefault(oo => oo.OrganizationId == oid)
                                   let om = DbUtil.Db.OrganizationMembers.SingleOrDefault(oo => oo.OrganizationId == oid && oo.PeopleId == li.pid)
                                            select new { p = pp, org, om }).Single();
                }

                if (q.org == null)
                {
                    throw new Exception("org missing, bad link");
                }
                if ((q.org.RegistrationTypeId ?? RegistrationTypeCode.None) == RegistrationTypeCode.None)
                {
                    throw new Exception("votelink is no longer active");
                }

                if (q.om == null && q.org.Limit <= q.org.RegLimitCount(DbUtil.Db))
                {
                    throw new Exception("sorry, maximum limit has been reached");
                }

                if (q.om == null &&
                    (q.org.RegistrationClosed == true || q.org.OrganizationStatusId == OrgStatusCode.Inactive))
                {
                    throw new Exception("sorry, registration has been closed");
                }

                var setting = DbUtil.Db.CreateRegistrationSettings(li.oid.Value);
                if (IsSmallGroupFilled(setting, li.oid.Value, smallgroup))
                {
                    throw new Exception("sorry, maximum limit has been reached for " + smallgroup);
                }

                var omb = OrganizationMember.InsertOrgMembers(DbUtil.Db,
                                                              li.oid.Value, li.pid.Value, MemberTypeCode.Member, DateTime.Now, null, false);

                if (q.org.AddToSmallGroupScript.HasValue())
                {
                    var script = DbUtil.Db.Content(q.org.AddToSmallGroupScript);
                    if (script != null && script.Body.HasValue())
                    {
                        try
                        {
                            var pe = new PythonEvents(Util.Host, "RegisterEvent", script.Body);
                            pe.instance.AddToSmallGroup(smallgroup, omb);
                        }
                        catch (Exception)
                        {
                        }
                    }
                }
                omb.AddToGroup(DbUtil.Db, smallgroup);
                li.ot.Used = true;
                DbUtil.Db.SubmitChanges();

                DbUtil.LogActivity($"{votelinkSTR}{confirmSTR}: {smallgroup}", li.oid, li.pid);

                if (confirm == true)
                {
                    var subject = Util.PickFirst(setting.Subject, "no subject");
                    var msg     = Util.PickFirst(setting.Body, "no message");
                    msg = APIOrganization.MessageReplacements(DbUtil.Db, q.p, q.org.DivisionName, q.org.OrganizationId, q.org.OrganizationName, q.org.Location, msg);
                    msg = msg.Replace("{details}", smallgroup);
                    var NotifyIds = DbUtil.Db.StaffPeopleForOrg(q.org.OrganizationId);

                    try
                    {
                        DbUtil.Db.Email(NotifyIds[0].FromEmail, q.p, subject, msg); // send confirmation
                    }
                    catch (Exception ex)
                    {
                        DbUtil.Db.Email(q.p.FromEmail, NotifyIds,
                                        q.org.OrganizationName,
                                        "There was a problem sending confirmation from org: " + ex.Message);
                    }
                    DbUtil.Db.Email(q.p.FromEmail, NotifyIds,
                                    q.org.OrganizationName,
                                    $"{q.p.Name} has registered for {q.org.OrganizationName}<br>{smallgroup}<br>(from votelink)");
                }
            }
            catch (Exception ex)
            {
                DbUtil.LogActivity($"{votelinkSTR}{confirmSTR}Error: {ex.Message}", li.oid, li.pid);
                return(Message(ex.Message));
            }

            return(Message(message));
        }
예제 #18
0
 public void AddToSmallGroup(CMSDataContext Db, OrganizationMember om, PythonEvents pe)
 {
     if (om == null)
         return;
     if (pe != null)
     {
         pe.instance.AddToSmallGroup(SmallGroup, om);
         om.Person.LogChanges(Db, om.PeopleId);
     }
     om.AddToGroup(Db, SmallGroup);
     if (MeetingTime.HasValue)
         Attend.MarkRegistered(Db, om.OrganizationId, om.PeopleId, MeetingTime.Value, 1);
 }
예제 #19
0
 public ActionResult TestScript(string script)
 {
     return(Content(PythonEvents.RunScript(Util.Host, script)));
 }
예제 #20
0
 public ActionResult RunPythonScript(string body)
 {
     return(Content(PythonEvents.RunScript(DbUtil.Db, body)));
 }
예제 #21
0
        public void ParseSettings()
        {
            if (HttpContext.Current.Items.Contains("RegSettings"))
            {
                return;
            }
            var list = new Dictionary <int, Settings>();

            if (_Divid.HasValue)
            {
                var q = from o in DbUtil.Db.Organizations
                        where o.DivOrgs.Any(od => od.DivId == divid)
                        where o.OrganizationStatusId == OrgStatusCode.Active
                        where (o.RegistrationClosed ?? false) == false
                        where o.RegistrationTypeId != RegistrationTypeCode.None
                        select new { o.OrganizationId, o.RegSetting };
                foreach (var i in q)
                {
                    list[i.OrganizationId] = new Settings(i.RegSetting, DbUtil.Db, i.OrganizationId);
                }
            }
            else if (masterorgid.HasValue)
            {
                var q = from o in UserSelectClasses(masterorg)
                        select new { o.OrganizationId, o.RegSetting };
                foreach (var i in q)
                {
                    list[i.OrganizationId] = new Settings(i.RegSetting, DbUtil.Db, i.OrganizationId);
                }
                list[masterorg.OrganizationId] = new Settings(masterorg.RegSetting, DbUtil.Db, masterorg.OrganizationId);
            }
            else if (org == null)
            {
                return;
            }
            else
            {
                list[_Orgid.Value] = new Settings(org.RegSetting, DbUtil.Db, _Orgid.Value);
            }
            if (HttpContext.Current.Items.Contains("RegSettings"))
            {
                return;
            }
            HttpContext.Current.Items.Add("RegSettings", list);

            if (org != null && org.AddToSmallGroupScript.HasValue())
            {
                var script = DbUtil.Db.Content(org.AddToSmallGroupScript);
                if (script != null && script.Body.HasValue())
                {
                    try
                    {
                        var pe = new PythonEvents(DbUtil.Db, "RegisterEvent", script.Body);
                        HttpContext.Current.Items.Add("PythonEvents", pe);
                    }
                    catch (Exception ex)
                    {
                        org.AddToExtraData("Python.errors", ex.Message);
                        throw;
                    }
                }
            }
        }