Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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);
            }
        }
Beispiel #3
0
    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);
        }
    }