Example #1
0
 public void Dispose()
 {
     mLogger.Dispose();
     mLogger          = null;
     mExceptionLogger = null;
     mHttp            = null;
 }
Example #2
0
        public FacebookClient(string user, string password)
        {
            mInsCreated++;
            mFbClientId = mInsCreated;

            // each time we start host program and create multiple FBClient object
            // we need to supplied its folder for store error and log
            // this folder should not exist, otherwise, old error and log info will be lost because of overwrite.
            // create session folder if not exist
            if (!Directory.Exists("Session"))
            {
                Directory.CreateDirectory("Session");
            }

            if (mSession == null)
            {
                var now      = DateTime.Now;
                var today    = now.Year + "_" + now.Month + "_" + now.Day;
                var dirCount = Directory.GetDirectories("Session", today, SearchOption.TopDirectoryOnly);
                mSession = "Session\\" + today + "_" + dirCount.Length;
                Directory.CreateDirectory(mSession);
            }

            // Folder structure
            // - Session
            //     - {FBClientId}
            //         - Log
            //         - Error

            // create specific facebook client folder
            var fbcFolder = mSession + "\\" + mFbClientId;

            Directory.CreateDirectory(fbcFolder);

            // init Log
            var logFolder = fbcFolder + "\\Log";

            Directory.CreateDirectory(logFolder);
            mLogger = new FileLogger(logFolder);

            // init error log
            var eLogFolder = fbcFolder + "\\Error";

            Directory.CreateDirectory(eLogFolder);
            mExceptionLogger = new XpathErrorLog(eLogFolder);

            mHttp = new HttpHandler();

            Username = user;
            Password = password;

            // after login, we need set delay so each request will delay at least x seconds to send next request.
            mHttp.DelayRequest = true;
            mHttp.DelaySeconds = 2;

            this.authorize();
        }