public static void HandleUserLookup(HttpRequest Request, HttpResponse Response, Guid userId)
        {
            try
            {
                ClientControlsReader r	= new ClientControlsReader(Request.InputStream);
                Response.ClearContent();
                ClientControlsWriter w = new ClientControlsWriter(Response.OutputStream);

                w.Write(1);

                string query = Request["userquery"];

                //Write result code
                if(query == null || query.Length == 0)
                {
                    w.Write(-1);
                    return;
                }
                else
                    w.Write(0);

                query = "%"+query+"%";
                ArrayList data = new ArrayList();
                using(Db db = new Db())
                {
                    db.CommandText = @"
                            SELECT id, fullNameClean as fullName, username, email
                            FROM tMember
                            WHERE fullName LIKE @q OR email LIKE @q OR username LIKE @q
                            ORDER BY fullNameClean ASC
                            ";
                    db.AddParameter("@q", query);
                    while(db.Read())
                    {
                        UserInfo user	= new UserInfo();
                        user.username	= (string)db["username"];
                        user.id			= (Guid)db["id"];
                        user.email		= db["email"] as string;
                        user.name		= (string)db["fullName"];
                        data.Add(user);
                    }
                }

                w.Write((int)data.Count);
                foreach(object o in data)
                {
                    if(o is UserInfo)
                    {
                        w.Write((byte)0);
                        UserInfo user = (UserInfo)o;
                        w.Write(user.id.ToByteArray());
                        w.WriteString(user.username);
                        w.WriteString(user.email);
                        w.WriteString(user.name);
                    }
                }

                int a = 3;
            }
            finally
            {
                Response.Flush();
                Response.Close();
                Response.End();
            }
        }
Example #2
0
        public List<Cosa> Retrieve(int pageSize, int page, out long totalRows, string filtro, string filtro2 )
        {
            List<Parameter> parametros = new List<Parameter>();

            var db = new Db();
            var sqlDataFields = " SELECT * ";
            var sqlScalarField = "SELECT COUNT(datakey) ";
            var sqlDataFrom = new StringBuilder(" FROM toomuchdata ");
            bool first = true;
            var parmList = new List<object>();

            if(filtro!=null)
            {
                sqlDataFrom.AppendFormat(first ? " WHERE " : " AND ");
                sqlDataFrom.AppendFormat(" fielddata1 LIKE :fielddata1");
                parmList.AddRange(new[] { ":fielddata1", filtro });
                parametros.Add(new Parameter());
                first = false;
            }

            if (filtro2 != null)
            {
                sqlDataFrom.AppendFormat(first ? " WHERE " : " AND ");
                sqlDataFrom.AppendFormat(" fielddata1 LIKE :fielddata2");
                parmList.AddRange(new[] { ":fielddata2", filtro2 });
                first = false;
            }

            //Se saca el scalar
            var sqlScalar = string.Format("{0}{1}", sqlScalarField, sqlDataFrom);
            var limit = " LIMIT " + pageSize + " OFFSET " + (page - 1);
            sqlDataFrom.Append(limit);
            totalRows = (long)db.Scalar(sqlScalar,parmList.ToArray());

            return db.Read(string.Format("{0}{1}", sqlDataFields, sqlDataFrom), Make2, parmList.ToArray()).ToList();
        }