Пример #1
0
        private static void downloadUpdateFile(object state)
        {
            try
            {
                IsChecking = true;
                string url = "https://raw.githubusercontent.com/dipu-bd/UVA-Arena/master/VERSION";

                WebClient     wc   = new WebClient();
                byte[]        raw  = wc.DownloadData(url);
                string        data = System.Text.Encoding.UTF8.GetString(raw);
                UpdateMessage um   = JsonConvert.DeserializeObject <UpdateMessage>(data);

                //this applications functions
                if (um != null)
                {
                    Interactivity.UpdateFound(um);
                }
            }
            catch (Exception ex)
            {
                Logger.Add(ex.Message, "UpdateCheck|downloadUpdateFile()");
            }
            finally
            {
                IsChecking = false;
            }
        }
Пример #2
0
        private void customWebBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
        {
            ProcessPage();

            try
            {
                //check if a submission occured
                if (customWebBrowser1.Url == null)
                {
                    return;
                }
                string url = customWebBrowser1.Url.ToString();
                string msg = "mosmsg=Submission+received+with+ID+";
                if (url.Contains(msg))
                {
                    url = url.Substring(url.IndexOf(msg) + msg.Length);
                    if (int.Parse(url) > 10)
                    {
                        Interactivity.ShowJudgeStatus();
                        this.Hide();
                    }
                }
            }
            catch { }
        }
Пример #3
0
        private void DownloadCompleted(Internet.DownloadTask task)
        {
            try
            {
                if (task.Status != Internet.ProgressStatus.Completed)
                {
                    throw task.Error;
                }

                RegistryAccess.DefaultUsername = username1.Text;
                this.DialogResult = System.Windows.Forms.DialogResult.OK;
                this.Close();

                Interactivity.DefaultUsernameChanged();
            }
            catch (Exception ex)
            {
                if (ex == null)
                {
                    ex = new Exception("Canceled");
                }
                Status.Text = string.Format("[Error: {0}]", ex.Message);
            }
            finally
            {
                username1.Enabled   = true;
                set_button1.Enabled = true;
                username1.Focus();
            }
        }
Пример #4
0
        public static void RunLoadAsync(object background)
        {
            if (!IsReady)
            {
                return;
            }

            if ((bool)background)
            {
                bool back = System.Threading.ThreadPool.QueueUserWorkItem(RunLoadAsync, false);
                if (back)
                {
                    return;
                }
            }

            try
            {
                IsReady = false;

                //initialize global values
                problemList  = new List <ProblemInfo>();
                problemId    = new SortedDictionary <long, long>();
                problemNum   = new SortedDictionary <long, ProblemInfo>();
                categoryRoot = new CategoryNode("Root", "All Categories");

                //get object data from json data
                string text = File.ReadAllText(LocalDirectory.GetProblemInfoFile());
                var    data = JsonConvert.DeserializeObject <List <List <object> > >(text);
                if (data == null || data.Count == 0)
                {
                    throw new NullReferenceException("Problem database was empty");
                }

                //load all lists from object data
                LoadList(data);
                LoadOthers();

                data.Clear();
                IsAvailable = true;
            }
            catch (Exception ex)
            {
                Logger.Add(ex.Message, "Problem Database|RunLoadAsync()");
                if (!IsAvailable)
                {
                    Internet.Downloader.DownloadProblemDatabase();
                }
            }

            //load categories
            LoadCategories();

            //load default user
            LoadDefaultUser();

            IsReady = true;
            Interactivity.CategoryDataUpdated();
            Interactivity.ProblemDatabaseUpdated();
        }
Пример #5
0
 /// <summary>
 /// Set the userid of a username
 /// </summary>
 /// <param name="name">Username</param>
 /// <param name="uid">Userid</param>
 public static void SetUserid(string name, string uid)
 {
     SetValue(name, uid, "UserID", RegistryValueKind.String);
     if (!LocalDatabase.usernames.ContainsKey(name))
     {
         LocalDatabase.usernames.Add(name, uid);
     }
     Interactivity.UserNameListChanged();
 }
Пример #6
0
 public void ClearStatus(object last)
 {
     if (Status1.Text.CompareTo(last) == 0)
     {
         Interactivity.SetStatus();
         Interactivity.SetProgress();
     }
     TaskQueue.AddTask(ClearStatus, Status1.Text, 3000);
 }
Пример #7
0
        /// <summary>
        /// Delete a username from registry entry
        /// </summary>
        /// <param name="name">Username to delete</param>
        public static void DeleteUserid(string name)
        {
            if (!LocalDatabase.usernames.ContainsKey(name))
            {
                return;
            }
            LocalDatabase.usernames.Remove(name);
            RegistryKey key = DEFAULT.CreateSubKey("UserID");

            key.DeleteValue(name, false);
            Interactivity.UserNameListChanged();
        }
Пример #8
0
        static void Main()
        {
            //enable application styles
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            //add header to log file
            string dat = Environment.NewLine;

            for (int i = 0; i < 80; ++i)
            {
                dat += '*';
            }
            dat += Environment.NewLine;
            System.IO.File.AppendAllText(LocalDirectory.GetLogFile(), dat);

            //load user-names
            LocalDatabase.usernames = RegistryAccess.GetAllUsers();
            if (string.IsNullOrEmpty(RegistryAccess.DefaultUsername) ||
                Properties.Settings.Default.AskForUsernameEverytime)
            {
                UsernameForm uf = new UsernameForm();
                Application.Run(uf);
            }

            //task queue
            TaskQueue.StartTimer();

            try
            {
                //launch application
                Interactivity.mainForm = new MainForm();
                Application.Run(Interactivity.mainForm);
            }
            catch (Exception ex)
            {
                Logger.Add("Error in main form => ", ex.Message + " => " + ex.StackTrace);
                Application.Exit();
            }

            //end of application works
            Interactivity.CloseAllOpenedForms();
            Properties.Settings.Default.Save();

            UVA_Arena.Elements.CodeCompiler.ForceStopTask();
        }
Пример #9
0
        /// <summary>
        /// Set the userid of a username
        /// </summary>
        /// <param name="name">Username</param>
        /// <param name="uid">Userid</param>
        public static void AddUserid(string name, string uid)
        {
            if (string.IsNullOrEmpty(name))
            {
                return;
            }
            if (string.IsNullOrEmpty(uid) || uid == "-")
            {
                return;
            }

            SetValue(name, uid, "UserID", RegistryValueKind.String);
            if (!LocalDatabase.usernames.ContainsKey(name))
            {
                LocalDatabase.usernames.Add(name, uid);
            }
            Interactivity.UserNameListChanged();
        }
Пример #10
0
 public void SetFormProperties()
 {
     string user = RegistryAccess.DefaultUsername;
     if (LocalDatabase.ContainsUser(user))
     {
         this.Text = string.Format(this.Tag.ToString(), user, LocalDatabase.GetUserid(user));
     }
     else
     {
         string msg = "Looks like you didn't set a default user-name." + Environment.NewLine;
         msg += "It is extremely important to set a default user-name to enable many features." + Environment.NewLine;
         msg += "Press OK to set it now. Or, you can set it later from the menu bar options.";
         if (MessageBox.Show(msg, Application.ProductName, MessageBoxButtons.OKCancel)
             == System.Windows.Forms.DialogResult.OK)
         {
             Interactivity.ShowUserNameForm();
         }
     }
 }
Пример #11
0
 private void licenceToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Interactivity.ShowHelpAbout();
 }
Пример #12
0
 private void changePrecodesToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Interactivity.ShowSettings(3);
 }
Пример #13
0
 private void setUpCompilerToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Interactivity.ShowSettings(2);
 }
Пример #14
0
 private void editorSettingToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Interactivity.ShowSettings(1);
 }
Пример #15
0
 private void username_button1_Click(object sender, EventArgs e)
 {
     Interactivity.ShowUserNameForm();
 }
Пример #16
0
 private void loggerToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Interactivity.ShowLogger();
 }
Пример #17
0
 private void submitFormToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Interactivity.SubmitCode(0);
 }
Пример #18
0
 private void settingsButton_Click(object sender, EventArgs e)
 {
     customTabControl1.Focus();
     Interactivity.ShowSettings();
 }
Пример #19
0
 private void loggerButton_Click(object sender, EventArgs e)
 {
     customTabControl1.Focus();
     Interactivity.ShowLogger();
 }
Пример #20
0
 private void helpButton_Click(object sender, EventArgs e)
 {
     customTabControl1.Focus();
     Interactivity.ShowHelpAbout();
 }
Пример #21
0
 private void descriptionDownloaderToolStripMenuItem_Click(object sender, EventArgs e)
 {
     customTabControl1.SelectedTab = problemTab;
     Interactivity.ShowDownloadAllForm();
 }
Пример #22
0
 private void setDefaultUserToolStripMenuItem_Click(object sender, EventArgs e)
 {
     Interactivity.ShowUserNameForm();
 }
Пример #23
0
 private void downloadAll_Click(object sender, EventArgs e)
 {
     Interactivity.ShowDownloadAllForm();
 }