示例#1
0
        /// <summary>
        /// Tries to kill the session and updates controls.
        /// </summary>
        /// <returns></returns>
        private async ValueTask <bool> TryKillSessionAsync()
        {
            if (SessionID != null)
            {
                try
                {
                    var parameters = new Dictionary <string, string>
                    {
                        ["ENTITYID"]  = EntID,
                        ["SESSIONID"] = SessionID,
                        ["SOURCEIP"]  = Empty
                    };
                    var query = APIHelper.BuildPVEQuery("KillSession", parameters);
                    await query.SendXml(Url);

                    btnCreateQuery.Enabled = btnOpenDoc.Enabled = btnUpload.Enabled = btnBuildAPIQuery.Enabled = btnCustom.Enabled = btnSendQuery.Enabled = numDocID.Enabled = numProjID.Enabled = false;
                    numEntID.Enabled       = txtPW.Enabled = txtUsername.Enabled = txtURL.Enabled = true;
                    txtSessionID.Clear();
                    pingTimer.Stop();
                }
                catch
                {
                    Console.WriteLine("Unable to kill session.");
                    return(false);
                }
            }
            return(true);
        }
示例#2
0
        private string BuildQuery()
        {
            string paramNames = Empty;
            string paramVals  = Empty;
            var    parameters = new Dictionary <string, string>();
            int    i          = 0;

            try
            {
                foreach (Control c in paramTable.Controls)
                {
                    if (c is TextBox)
                    {
                        parameters.Add(paramList[i].ToUpper(), c.Text);
                        ++i;
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            return(APIHelper.BuildPVEQuery(cmbQuery.SelectedItem as string, parameters));
        }
示例#3
0
 private async void PingSessionAsync(object sender, EventArgs e)
 {
     var parameters = new Dictionary <string, string>
     {
         ["ENTITYID"]  = EntID,
         ["SESSIONID"] = SessionID,
         ["SOURCEIP"]  = Empty
     };
     var pingQuery = APIHelper.BuildPVEQuery("PingSession", parameters);
     await pingQuery.SendXml(Url);
 }
示例#4
0
        /// <summary>
        /// Builds the LoginUserEx3 query
        /// </summary>
        /// <returns></returns>
        private string BuildLoginQuery()
        {
            // *TO BE DONE*: Pass the entity ID, user name, and password to the LoginUserEx3 call from the form controls
            var parameters = new Dictionary <string, string>
            {
                ["ENTITYID"]       = EntID,
                ["USERNAME"]       = Username,
                ["PASSWORD"]       = Password,
                ["SOURCEIP"]       = Empty,
                ["CORELICTYPE"]    = Empty,
                ["CLIENTPINGABLE"] = "TRUE",
                ["REMOTEAUTH"]     = "FALSE"
            };

            return(APIHelper.BuildPVEQuery("LoginUserEx3", parameters));
        }
示例#5
0
        private string BuildUploadQuery()
        {
            string indexNames = Empty;
            string indexVals  = Empty;
            string base64     = Empty;
            bool   first      = true;

            foreach (string index in indexList)
            {
                if (indexList.First() == index)
                {
                    indexNames += index;
                }
                else
                {
                    indexNames += $"|{index}";
                }
            }

            foreach (Control c in indexTable.Controls)
            {
                if (c is TextBox && first)
                {
                    indexVals += c.Text;
                    first      = false;
                }
                else if (c is TextBox)
                {
                    indexVals += $"|{c.Text}";
                }
            }

            try
            {
                Byte[] fileBytes = File.ReadAllBytes(txtFilePath.Text);
                base64 = Convert.ToBase64String(fileBytes);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                MessageBox.Show($"Unable to read file:\n{ex.Message}", "I/O Error");
                throw ex;
            }

            var parameters = new Dictionary <string, string>
            {
                ["ENTITYID"]           = mainForm.EntID,
                ["SESSIONID"]          = mainForm.SessionID,
                ["PARAMETERS"]         = Empty,
                ["SOURCEIP"]           = Empty,
                ["PROJID"]             = nupProjID.Value.ToString(),
                ["FIELDNAMES"]         = indexNames,
                ["FIELDVALUES"]        = indexVals,
                ["ORIGINALFILENAME"]   = Path.GetFileName(txtFilePath.Text),
                ["SAVEDFILE"]          = Empty,
                ["ORIGINALFILENAMEFT"] = Empty,
                ["SAVEDFILEFT"]        = Empty,
                ["ADDTOFOLDER"]        = Empty,
                ["INFILEDATA"]         = base64,
                ["INFILEDATAFT"]       = Empty
            };
            var query = APIHelper.BuildPVEQuery("AttachNewDocToProjectEx", parameters);

            return(query.ReplaceFirst("INFILEDATA", @"INFILEDATA types:dt=""bin.base64"" xmlns:types=""urn:schemas-microsoft-com:datatypes"""));
        }