protected void TEST_PAGINATE_Command(object sender, RepeaterCommandEventArgs e) { if (e == null) return; if (e.CommandName == null) return; if (!e.CommandName.Equals("PAGINATE")) return; if (e.CommandArgument == null) return; int n; if (!((Int32.TryParse((string)e.CommandArgument, out n)) || (e.CommandArgument.Equals("NEXT")) || (e.CommandArgument.Equals("FORM")) || (e.CommandArgument.Equals("FIRST")) || (e.CommandArgument.Equals("LAST")))) return; try { SCYS_REQUEST req = new SCYS_REQUEST(); req.Fill("EXEC", "GET_PRESTATIONS_UNITE_SPEC"); req.Fill("TYPE", "DB.PRESTATIONS_UNITE"); req.Fill("RECORDS", 3); req.Fill("PAGE", e.CommandArgument); TEST_PAGINATE.DataSource = req; TEST_PAGINATE.DataBind<PRESTATIONS_UNITE, SCYS_PRESTClient>(SCYS_PREST); } catch (Exception ex) { throw new ApplicationException(String.Empty, ex); } }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { SCYS_REQUEST req = new SCYS_REQUEST(); req.Fill("EXEC", "GET_PRESTATIONS_UNITE_SPEC"); req.Fill("TYPE", "DB.PRESTATIONS_UNITE"); req.Fill("RECORDS", 3); req.Fill("PAGE", 1); TEST_PAGINATE.DataSource = req; TEST_PAGINATE.DataBind<PRESTATIONS_UNITE, SCYS_PRESTClient>(SCYS_PREST); } }
public byte[] EXECUTE(byte[] xml) { List<object> tmp = null; SCYS_REQUEST req = null; SCYS_RESPONSE resp = null; SCYS_RESPONSE_WRAPPER s; OperationContext.Current.OperationCompleted += new EventHandler(delegate(object sender, EventArgs args) { if (tmp != null) tmp.Clear(); if (xml != null) Array.Clear(xml, 0, xml.Length); if (req != null) req.ClearAll(); if (resp != null) resp.ClearAll(); }); try { req = new SCYS_REQUEST(ref xml); s.F_TYPE = ((req.GetDictionary().Keys.Any(x => x.Equals("TYPE"))) && (req["TYPE"] != null)) ? req["TYPE"].ToString() : null; s.F_EXEC = ((req.GetDictionary().Keys.Any(x => x.Equals("EXEC"))) && (req["EXEC"] != null)) ? req["EXEC"].ToString() : null; s.C_DEMO = ((req.GetDictionary().Keys.Any(x => x.Equals("DEMO"))) && (req["DEMO"] != null)) ? Convert.ToBoolean(req["DEMO"]) : false; s.C_PAGE = ((req.GetDictionary().Keys.Any(x => x.Equals("PAGE"))) && (req["PAGE"] != null)) ? Convert.ToInt32(req["PAGE"]) : 0; s.C_ORDER = ((req.GetDictionary().Keys.Any(x => x.Equals("ORDER"))) && (req["ORDER"] != null)) ? Convert.ToInt32(req["ORDER"]) : 0; s.N_RECORDS = ((req.GetDictionary().Keys.Any(x => x.Equals("RECORDS"))) && (req["RECORDS"] != null)) ? Convert.ToInt32(req["RECORDS"]) : 0; if (!Assembly.GetAssembly(typeof(SESSION)).GetTypes().Any(x => x.FullName.Equals(s.F_TYPE))) return null; if (!this.GetType().GetMethods().Any()) return null; if (!Assembly.GetAssembly(typeof(SESSION)).GetType(s.F_TYPE).GetProperties().Any()) return null; int abs = Math.Abs(s.C_ORDER); MethodInfo[] m = this.GetType().GetMethods(BindingFlags.NonPublic | BindingFlags.Instance).Where(x => x.Name.Equals(s.F_EXEC)).ToArray(); var p = Assembly.GetAssembly(typeof(SESSION)).GetType(s.F_TYPE).GetProperties(BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance); if (m == null) return null; if (!m.Any()) return null; if (p == null) return null; if (!p.Any()) return null; object[] args = new object[] { req.GetDictionaryWithoutMandatories(), s.C_DEMO, null }; m.FirstOrDefault().Invoke(this, args); tmp = ((IEnumerable<object>)args[2]).ToList(); s.N_TOTAL = tmp.Count; s.N_PAGES = ((s.N_TOTAL) / s.N_RECORDS) + ((((s.N_TOTAL) % s.N_RECORDS) > 0) ? 1 : 0); if (s.N_TOTAL < ((s.C_PAGE - 1) * s.N_RECORDS)) return null; s.ENUM = tmp.Cast<object>().OrderBy(x => x.GetType().GetProperty(p[abs].Name).GetValue(x, null)).ToList().GetRange(((s.C_PAGE - 1) * s.N_RECORDS), (((s.N_TOTAL - ((s.C_PAGE - 1) * s.N_RECORDS)) < s.N_RECORDS) ? (s.N_TOTAL - ((s.C_PAGE - 1) * s.N_RECORDS)) : s.N_RECORDS)).ToList(); if (s.C_PAGE < 0) return null; if (s.C_ORDER == 0) return null; if (s.N_RECORDS < 0) return null; if (s.N_TOTAL < 0) return null; if (s.N_PAGES < 0) return null; resp = new SCYS_RESPONSE(ref s); return resp.Return(); } catch (Exception ex) { throw new ApplicationException(String.Empty, ex); } }