Ejemplo n.º 1
0
 public AuthProcessor(AccountDBContext context, GenericRequest request)
 {
     this.request = request;
     this.context = context;
     context.Configuration.ProxyCreationEnabled = false;
     users = new GenericRepository<User>(new StorageContext<User>(context));
     roles = new GenericRepository<Role>(new StorageContext<Role>(context));
     userroles = new GenericRepository<UserRoles>(new StorageContext<UserRoles>(context));
 }
Ejemplo n.º 2
0
 private static void DoMessage(Object obj)
 {
     GenericRequest gen_req = obj as GenericRequest;
     ObjectMessageQueue queue = new ObjectMessageQueue();
     queue.RequestGuid = gen_req.requester_guid;
     queue.RequestIP = gen_req.requester_ip;
     if (gen_req == null)
     {
         Console.WriteLine("Error processing request, it is not a request object!");
         queue.sendObject(null, ObjectMessageQueue.AUTH_RESPONSE);
     }
     else
     {
         Console.WriteLine("Fetching data...");
         AccountDBContext context = null;
         if (contextQueue.TryDequeue(out context) == false)
         {
             //Check if we are under the max count of contexts allowed
             bool createNew = false;
             lock (context_lock)
             {
                 if (context_count < 25)
                 {
                     context_count++;
                     createNew = true;
                 }
             }
             //If we are allowed, create a context for ourself and the pool.
             if (createNew)
             {
                 context = new AccountDBContext();
             }
             else //Else, wait for a context to be available
             {
                 while (contextQueue.TryDequeue(out context) == false)
                 {
                     Thread.Sleep(5);
                 }
             }
         }
         AuthProcessor parser = new AuthProcessor(context, gen_req);
         try
         {
             Object result = typeof(AuthProcessor).GetMethod(gen_req.Method.ToString()).Invoke(parser, null);
             Console.WriteLine("It worked!");
             queue.sendResponse(result, ObjectMessageQueue.AUTH_RESPONSE);
         }
         catch (SqlException)
         {
             Console.WriteLine("An error occurred.");
         }
         contextQueue.Enqueue(context);
     }
 }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath);

            AccountDBContext context = new AccountDBContext();

            ObjectMessageQueue queue = new ObjectMessageQueue();
            ObjectMessageQueue.InitializeQueue(ObjectMessageQueue.AUTH_REQUEST);
            while (true)
            {
                try
                {
                    Object obj = queue.receiveObject(ObjectMessageQueue.AUTH_REQUEST);
                    GenericRequest gen_req = obj as GenericRequest;

                    if (gen_req == null)
                    {
                        Console.WriteLine("Error processing request, it is not a request object!");
                        queue.sendObject(null, ObjectMessageQueue.AUTH_RESPONSE);
                    }
                    else
                    {
                        Console.WriteLine("Fetching data...");
                        AuthProcessor parser = new AuthProcessor(context, gen_req);
                        try
                        {
                            Object result = typeof(AuthProcessor).GetMethod(gen_req.Method.ToString()).Invoke(parser, null);
                            Console.WriteLine("It worked!");
                            queue.sendResponse(result, ObjectMessageQueue.AUTH_RESPONSE);
                        }
                        catch (SqlException)
                        {
                            Console.WriteLine("An error occurred.");
                        }
                    }
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    continue;
                }
            }
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath);

            context = new AccountDBContext();

            ObjectMessageQueue.InitializeQueue(ObjectMessageQueue.AUTH_REQUEST);
            queue = new ObjectMessageQueue();

            while (true)
            {
                try
                {
                    Object obj = queue.receiveObject(ObjectMessageQueue.AUTH_REQUEST);
                    new Thread(ProcessRequest).Start(obj);
                    //ProcessRequest(obj);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    continue;
                }
            }
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            AppDomain.CurrentDomain.SetData("DataDirectory", Application.StartupPath);

            AccountDBContext context = new AccountDBContext();

            ObjectMessageQueue queue = new ObjectMessageQueue();
            ObjectMessageQueue.InitializeQueue(ObjectMessageQueue.AUTH_REQUEST);

            contextQueue = new ConcurrentQueue<AccountDBContext>();
            context_lock = new object();
            context_count = 0;
            ThreadPool.SetMaxThreads(25, 0);
            ThreadPool.SetMinThreads(5, 0);

            while (true)
            {
                try
                {
                    Object obj = queue.receiveObject(ObjectMessageQueue.AUTH_REQUEST);
                    GenericRequest gen_req = obj as GenericRequest;
                    gen_req.requester_guid = queue.RequestGuid;
                    gen_req.requester_ip = queue.RequestIP;
                    ThreadPool.QueueUserWorkItem(DoMessage, obj);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    continue;
                }
            }
        }