public ActionResult Lookups(string id) { var ret = AuthenticateDeveloper(); if (ret.StartsWith("!")) { return(Content("<Lookups error=\"{0}\" />".Fmt(ret.Substring(1)))); } if (!id.HasValue()) { return(Content("Lookups error=\"not found\">")); } var q = DbUtil.Db.ExecuteQuery <Setup.Controllers.LookupController.Row>("select * from lookup." + id); var w = new CmsData.API.APIWriter(); w.Start("Lookups"); w.Attr("name", id); foreach (var i in q) { w.Start("Lookup"); w.Attr("Id", i.Id); w.AddText(i.Description); w.End(); } w.End(); DbUtil.LogActivity("APIMeta Lookups"); return(Content(w.ToString(), "text/xml")); }
public string ExtraValues(int orgid, string fields) { try { var a = (fields ?? "").Split(','); var nofields = !fields.HasValue(); var q = from v in Db.OrganizationExtras where nofields || a.Contains(v.Field) where v.OrganizationId == orgid select v; var w = new APIWriter(); w.Start("ExtraOrgValues"); w.Attr("Id", orgid); foreach (var v in q) { w.Add(v.Field, v.Data); } w.End(); return(w.ToString()); } catch (Exception ex) { return(ex.Message); } }
public string ExtraValues(int peopleid, string fields) { try { var a = (fields ?? "").Split(','); var nofields = !fields.HasValue(); var q = from v in Db.PeopleExtras where nofields || a.Contains(v.Field) where v.PeopleId == peopleid select v; var w = new APIWriter(); w.Start("ExtraValues"); w.Attr("Id", peopleid); foreach (var v in q) { w.Add(v.Field, v.StrValue ?? v.Data ?? v.DateValue.FormatDate() ?? v.IntValue.ToString()); } w.End(); return(w.ToString()); } catch (Exception ex) { return(ex.Message); } }
public string FamilyMembers(int familyid) { try { var q = from p in Db.People where p.FamilyId == familyid select p; var w = new APIWriter(); w.Start("Family"); w.Attr("Id", familyid); foreach (var m in q) { w.Start("Member"); w.Add("peopleid", m.PeopleId); w.Add("first", m.FirstName); w.Add("last", m.LastName); w.Add("goesby", m.NickName); w.Add("birthday", m.BDate); w.Add("position", m.PositionInFamilyId); w.Add("marital", m.MaritalStatusId); w.Add("suffix", m.SuffixCode); w.Add("title", m.TitleCode); w.End(); } w.End(); return(w.ToString()); } catch (Exception ex) { return(ex.Message); } }
public ActionResult SQLView(string id) { var ret = AuthenticateDeveloper(); if (ret.StartsWith("!")) return Content($"<SQLView error=\"{ret.Substring(1)}\" />"); if (!id.HasValue()) return Content("<SQLView error\"no view name\" />"); try { var cmd = new SqlCommand("select * from guest." + id.Replace(" ", "")); cmd.Connection = new SqlConnection(Util.ConnectionString); cmd.Connection.Open(); var rdr = cmd.ExecuteReader(); DbUtil.LogActivity("APIMeta SQLView " + id); var w = new APIWriter(); w.Start("SQLView"); w.Attr("name", id); var read = rdr.Read(); while (read) { w.Start("row"); for (var i = 0; i < rdr.FieldCount; i++) w.Attr(rdr.GetName(i), rdr[i].ToString()); w.End(); read = rdr.Read(); } w.End(); return Content(w.ToString(), "text/xml"); } catch (Exception) { return Content($"<SQLView error=\"cannot find view guest.{id}\" />"); } }
// public string OrgMembersPython(int orgid) // { // var list = OrgMembersData(orgid); // var script = Db.Content("API-OrgMembers"); // if (script == null) // { // script = new Content(); // script.Body = @" //from System import * //from System.Text import * // //class OrgMembers(object): // // def Run(self, m, w, q): // w.Start('OrgMembers') // for i in q: // w.Start('Member') // w.Attr('PeopleId', i.member.PeopleId) // w.Attr('Name', i.member.Person.Name) // w.Attr('PreferredName', i.member.Person.PreferredName) // w.Attr('LastName', i.member.Person.LastName) // w.Attr('Email', i.member.Person.EmailAddress) // w.Attr('Enrolled', i.member.EnrollmentDate) // w.Attr('MemberType', i.member.MemberType.Description) // for t in i.tags: // w.Add('Group', t) // w.End() // w.End() // return w.ToString() //"; // } // if (script == null) // return "<login error=\"no API-OrgMembers script\" />"; // var engine = Python.CreateEngine(); // var sc = engine.CreateScriptSourceFromString(script.Body); // try // { // var code = sc.Compile(); // var scope = engine.CreateScope(); // code.Execute(scope); // // dynamic LoginInfo = scope.GetVariable("OrgMembers"); // dynamic m = LoginInfo(); // var w = new APIWriter(); // return m.Run(this, w, list); // } // catch (Exception ex, // { // return $"<login error=\"API-OrgMembers script error: {ex.Message}\" />"; // } // } public string OrgMembers2(int orgid, string search) { search = search ?? ""; var nosearch = !search.HasValue(); var qm = from m in Db.OrganizationMembers where m.OrganizationId == orgid where nosearch || m.Person.Name2.StartsWith(search) select new { m.PeopleId, m.Person.Name, First = m.Person.PreferredName, Last = m.Person.LastName, m.Person.EmailAddress, m.EnrollmentDate, MemberType = m.MemberType.Description, IsLeaderType = (m.MemberType.AttendanceTypeId ?? 0) == CmsData.Codes.AttendTypeCode.Leader, }; var mt = from m in Db.OrgMemMemTags where m.OrganizationMember.OrganizationId == orgid where m.OrganizationMember.MemberTypeId != Codes.MemberTypeCode.InActive select new { m.OrganizationMember.PeopleId, m.MemberTag.Name }; var mtags = mt.ToList(); var w = new APIWriter(); w.Start("OrgMembers"); foreach (var m in qm.ToList()) { w.Start("Member"); w.Attr("PeopleId", m.PeopleId); w.Attr("Name", m.Name); w.Attr("PreferredName", m.First); w.Attr("LastName", m.Last); w.Attr("Email", m.EmailAddress); w.Attr("Enrolled", m.EnrollmentDate); w.Attr("MemberType", m.MemberType); if (m.IsLeaderType) { w.Attr("IsLeader", m.IsLeaderType); } var qt = from t in mtags where t.PeopleId == m.PeopleId select t.Name; foreach (var group in qt) { w.Add("Group", group); } w.End(); } w.End(); return(w.ToString()); }
public string OrganizationsForDiv(int divid) { var q = from o in Db.Organizations where o.DivOrgs.Any(dd => dd.DivId == divid) where o.OrganizationStatusId == CmsData.Codes.OrgStatusCode.Active let leader = Db.People.SingleOrDefault(ll => ll.PeopleId == o.LeaderId) select new { o.OrganizationId, o.OrganizationName, o.Location, o.Description, o.CampusId, o.LeaderName, o.LeaderId, Email = leader != null ? leader.EmailAddress : "", IsParent = o.ChildOrgs.Count() > 0, NumMembers = o.OrganizationMembers.Count(om => om.Pending != true && om.MemberTypeId != CmsData.Codes.MemberTypeCode.InActive) }; var w = new APIWriter(); w.Start("Organizations"); foreach (var o in q) { w.Start("Organization"); w.Attr("Id", o.OrganizationId); w.Attr("Name", o.OrganizationName); w.Attr("NumMembers", o.NumMembers); if (o.IsParent) { w.Attr("IsParent", o.IsParent); } w.Attr("Location", o.Location); w.Attr("Description", o.Description); w.Attr("CampusId", o.CampusId); w.Attr("Leader", o.LeaderName); w.Attr("LeaderId", o.LeaderId); w.Attr("Email", o.Email); w.End(); } w.End(); return(w.ToString()); }
private static string WriteXmlFromReader(IDataReader rd) { var w = new APIWriter(); w.Start("SqlScriptXml"); while (rd.Read()) { w.Start("Row"); for (var i = 0; i < rd.FieldCount; i++) { var name = rd.GetName(i); var value = rd.GetValue(i); w.Add(name, value); } w.End(); } w.End(); return(w.ToString()); }
public string OrganizationsForDiv(int divid) { var q = from o in Db.Organizations where o.DivOrgs.Any(dd => dd.DivId == divid) where o.OrganizationStatusId == CmsData.Codes.OrgStatusCode.Active let leader = Db.People.SingleOrDefault(ll => ll.PeopleId == o.LeaderId) select new { o.OrganizationId, o.OrganizationName, o.Location, o.Description, o.CampusId, o.LeaderName, o.LeaderId, Email = leader != null ? leader.EmailAddress : "", IsParent = o.ChildOrgs.Count() > 0, NumMembers = o.OrganizationMembers.Count(om => om.Pending != true && om.MemberTypeId != CmsData.Codes.MemberTypeCode.InActive) }; var w = new APIWriter(); w.Start("Organizations"); foreach (var o in q) { w.Start("Organization"); w.Attr("Id", o.OrganizationId); w.Attr("Name", o.OrganizationName); w.Attr("NumMembers", o.NumMembers); if (o.IsParent) w.Attr("IsParent", o.IsParent); w.Attr("Location", o.Location); w.Attr("Description", o.Description); w.Attr("CampusId", o.CampusId); w.Attr("Leader", o.LeaderName); w.Attr("LeaderId", o.LeaderId); w.Attr("Email", o.Email); w.End(); } w.End(); return w.ToString(); }
public ActionResult Lookups(string id) { var ret = AuthenticateDeveloper(); if (ret.StartsWith("!")) return Content("<Lookups error=\"{0}\" />".Fmt(ret.Substring(1))); if (!id.HasValue()) return Content("Lookups error=\"not found\">"); var q = DbUtil.Db.ExecuteQuery<Setup.Controllers.LookupController.Row>("select * from lookup." + id); var w = new CmsData.API.APIWriter(); w.Start("Lookups"); w.Attr("name", id); foreach(var i in q) { w.Start("Lookup"); w.Attr("Id", i.Id); w.AddText(i.Description); w.End(); } w.End(); DbUtil.LogActivity("APIMeta Lookups"); return Content(w.ToString(), "text/xml"); }
public string ExtraValues(int meetingid, string fields) { try { var a = (fields ?? "").Split(','); var nofields = !fields.HasValue(); var q = from v in Db.MeetingExtras where nofields || a.Contains(v.Field) where v.MeetingId == meetingid select v; var w = new APIWriter(); w.Start("ExtraMeetingValues"); w.Attr("Id", meetingid); foreach (var v in q) w.Add(v.Field, v.Data); w.End(); return w.ToString(); } catch (Exception ex) { return ex.Message; } }
private static string WriteXmlFromReader(IDataReader rd) { var w = new APIWriter(); w.Start("SqlScriptXml"); while (rd.Read()) { w.Start("Row"); for (var i = 0; i < rd.FieldCount; i++) { var name = rd.GetName(i); var value = rd.GetValue(i); w.Add(name, value); } w.End(); } w.End(); return w.ToString(); }
public string FamilyMembers(int familyid) { try { var q = from p in Db.People where p.FamilyId == familyid select p; var w = new APIWriter(); w.Start("Family"); w.Attr("Id", familyid); foreach (var m in q) { w.Start("Member"); w.Add("peopleid", m.PeopleId); w.Add("first", m.FirstName); w.Add("last", m.LastName); w.Add("goesby", m.NickName); w.Add("birthday", m.BDate); w.Add("position", m.PositionInFamilyId); w.Add("marital", m.MaritalStatusId); w.Add("suffix", m.SuffixCode); w.Add("title", m.TitleCode); w.End(); } w.End(); return w.ToString(); } catch (Exception ex) { return ex.Message; } }
public string ExtraValues(int peopleid, string fields) { try { var a = (fields ?? "").Split(','); var nofields = !fields.HasValue(); var q = from v in Db.PeopleExtras where nofields || a.Contains(v.Field) where v.PeopleId == peopleid select v; var w = new APIWriter(); w.Start("ExtraValues"); w.Attr("Id", peopleid); foreach (var v in q) w.Add(v.Field, v.StrValue ?? v.Data ?? v.DateValue.FormatDate() ?? v.IntValue.ToString()); w.End(); return w.ToString(); } catch (Exception ex) { return ex.Message; } }
public string OrgMembers(int orgid, string search) { search = search ?? ""; var nosearch = !search.HasValue(); var qm = from m in Db.OrganizationMembers where m.OrganizationId == orgid where nosearch || m.Person.Name2.StartsWith(search) select new { m.PeopleId, First = m.Person.PreferredName, Last = m.Person.LastName, m.Person.EmailAddress, m.EnrollmentDate, MemberType = m.MemberType.Description, IsLeaderType = (m.MemberType.AttendanceTypeId ?? 0) == CmsData.Codes.AttendTypeCode.Leader, }; var mt = from m in Db.OrgMemMemTags where m.OrganizationMember.OrganizationId == orgid where m.OrganizationMember.MemberTypeId != Codes.MemberTypeCode.InActive select new { m.OrganizationMember.PeopleId, m.MemberTag.Name }; var mtags = mt.ToList(); var w = new APIWriter(); w.Start("OrgMembers"); foreach (var m in qm.ToList()) { w.Start("Member"); w.Attr("PreferredName", m.First); w.Attr("LastName", m.Last); w.Attr("Email", m.EmailAddress); w.Attr("Enrolled", m.EnrollmentDate); w.Attr("MemberType", m.MemberType); if (m.IsLeaderType) w.Attr("IsLeader", m.IsLeaderType); var qt = from t in mtags where t.PeopleId == m.PeopleId select t.Name; foreach (var group in qt) w.Add("Group", group); w.End(); } w.End(); return w.ToString(); }
public string WriteXml() { var optionsAdded = false; var checkoxesAdded = false; var w = new APIWriter(); w.Start("OnlineRegPersonModel"); foreach (PropertyInfo pi in typeof(OnlineRegPersonModel0).GetProperties(BindingFlags.Public | BindingFlags.Instance) .Where(vv => vv.CanRead && vv.CanWrite)) { switch (pi.Name) { case "ExtraQuestion": WriteExtraAnswers(w); break; case "Text": WriteText(w); break; case "YesNoQuestion": WriteYesNoChoices(w); break; case "option": optionsAdded = WriteDropdownOptions(optionsAdded, w); break; case "Checkbox": checkoxesAdded = WriteCheckboxChoices(checkoxesAdded, w); break; case "MenuItem": WriteMenuChoices(w); break; default: w.Add(pi.Name, pi.GetValue(this, null)); break; } } w.End(); return w.ToString(); }