Beispiel #1
0
        /// <summary>
        /// Attempt to get the list of character types.
        /// </summary>
        public bool GetCharacterTypes()
        {
            omaeSoapClient objService = _objOmaeHelper.GetOmaeService();

            try
            {
                MemoryStream  objStream = new MemoryStream();
                XmlTextWriter objWriter = new XmlTextWriter(objStream, Encoding.UTF8);

                objService.GetCharacterTypes().WriteTo(objWriter);
                // Flush the output.
                objWriter.Flush();
                objStream.Flush();

                XmlDocument objXmlDocument = _objOmaeHelper.XmlDocumentFromStream(objStream);

                // Close everything now that we're done.
                objWriter.Close();
                objStream.Close();

                // Stuff all of the items into a ListItem List.
                foreach (XmlNode objNode in objXmlDocument.SelectNodes("/types/type"))
                {
                    ListItem objItem = new ListItem();
                    objItem.Value = objNode["id"].InnerText;
                    objItem.Name  = objNode["name"].InnerText;
                    _lstCharacterTypes.Add(objItem);
                }

                // Add an item for Official NPCs.
                ListItem objNPC = new ListItem();
                objNPC.Value = "4";
                objNPC.Name  = "Official NPC Packs";
                _lstCharacterTypes.Add(objNPC);

                // Add an item for Custom Data.
                ListItem objData = new ListItem();
                objData.Value = "data";
                objData.Name  = "Data";
                _lstCharacterTypes.Add(objData);

                // Add an item for Character Sheets.
                ListItem objSheets = new ListItem();
                objSheets.Value = "sheets";
                objSheets.Name  = "Character Sheets";
                _lstCharacterTypes.Add(objSheets);

                cboCharacterTypes.Items.Clear();
                cboCharacterTypes.DataSource    = _lstCharacterTypes;
                cboCharacterTypes.ValueMember   = "Value";
                cboCharacterTypes.DisplayMember = "Name";
            }
            catch (EndpointNotFoundException)
            {
                MessageBox.Show(NO_CONNECTION_MESSAGE, NO_CONNECTION_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            objService.Close();

            return(false);
        }
Beispiel #2
0
        /// <summary>
        /// Attempt to get the list of character types.
        /// </summary>
        public bool GetCharacterTypes()
        {
            omaeSoapClient objService = OmaeHelper.GetOmaeService();

            try
            {
                MemoryStream  objStream = new MemoryStream();
                XmlTextWriter objWriter = new XmlTextWriter(objStream, Encoding.UTF8);

                objService.GetCharacterTypes().WriteTo(objWriter);
                // Flush the output.
                objWriter.Flush();

                XmlDocument objXmlDocument = OmaeHelper.XmlDocumentFromStream(objStream);

                // Close everything now that we're done.
                objWriter.Close();

                // Stuff all of the items into a ListItem List.
                foreach (XmlNode objNode in objXmlDocument.SelectNodes("/types/type"))
                {
                    _lstCharacterTypes.Add(new ListItem(objNode["id"].InnerText, objNode["name"].InnerText));
                }
                _lstCharacterTypes.Add(new ListItem("4", "Official NPC Packs"));
                _lstCharacterTypes.Add(new ListItem("data", "Data"));
                _lstCharacterTypes.Add(new ListItem("sheets", "Character Sheets"));

                cboCharacterTypes.Items.Clear();
                cboCharacterTypes.DataSource    = _lstCharacterTypes;
                cboCharacterTypes.ValueMember   = nameof(ListItem.Value);
                cboCharacterTypes.DisplayMember = nameof(ListItem.Name);
            }
            catch (EndpointNotFoundException)
            {
                Program.MainForm.ShowMessageBox(NO_CONNECTION_MESSAGE, NO_CONNECTION_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            objService.Close();

            return(false);
        }
        private void cmdSearch_Click(object sender, EventArgs e)
        {
            omaeSoapClient objService = OmaeHelper.GetOmaeService();

            // Clear the current contents of the Omae Panel. Detach the events before clearing it.
            foreach (OmaeRecord objRecord in panOmae.Controls.OfType <OmaeRecord>())
            {
                objRecord.OmaeDownloadClicked   -= objRecord_OmaeDownloadClicked;
                objRecord.OmaePostUpdateClicked -= objRecord_OmaePostUpdateClicked;
                objRecord.OmaeDeleteClicked     -= objRecord_OmaeDeleteClicked;
            }
            panOmae.Controls.Clear();

            // Set the current operating mode.
            switch (cboCharacterTypes.SelectedValue.ToString())
            {
            case "data":
                _objMode = OmaeMode.Data;
                break;

            case "sheets":
                _objMode = OmaeMode.Sheets;
                break;

            default:
                _objMode = OmaeMode.Character;
                break;
            }

            // Search for characters.
            if (_objMode == OmaeMode.Character)
            {
                try
                {
                    MemoryStream  objStream = new MemoryStream();
                    XmlTextWriter objWriter = new XmlTextWriter(objStream, Encoding.UTF8);

                    objService.FetchCharacters153(Convert.ToInt32(cboCharacterTypes.SelectedValue),
                                                  Convert.ToInt32(cboSortOrder.SelectedValue), cboFilterMetatype.Text,
                                                  cboFilterMetavariant.Text, Convert.ToInt32(cboFilterMode.SelectedValue),
                                                  txtFilterUser.Text, cboFilterQuality1.Text, cboFilterQuality2.Text,
                                                  cboFilterQuality3.Text).WriteTo(objWriter);
                    // Flush the output.
                    objWriter.Flush();

                    XmlDocument objXmlDocument = OmaeHelper.XmlDocumentFromStream(objStream);

                    // Close everything now that we're done.
                    objWriter.Close();

                    if (objXmlDocument.SelectNodes("/characters/character").Count == 0)
                    {
                        Label lblResults = new Label
                        {
                            Text  = LanguageManager.GetString("String_Omae_NoCharacters", GlobalOptions.Language),
                            Width = 200
                        };
                        panOmae.Controls.Add(lblResults);
                    }
                    else
                    {
                        int intCounter = -1;
                        foreach (XmlNode objNode in objXmlDocument.SelectNodes("/characters/character"))
                        {
                            intCounter++;
                            OmaeRecord objRecord = new OmaeRecord(objNode, Convert.ToInt32(cboCharacterTypes.SelectedValue), OmaeMode.Character);
                            objRecord.OmaeDownloadClicked   += objRecord_OmaeDownloadClicked;
                            objRecord.OmaePostUpdateClicked += objRecord_OmaePostUpdateClicked;
                            objRecord.OmaeDeleteClicked     += objRecord_OmaeDeleteClicked;
                            if ((objRecord.UserName == txtUserName.Text || txtUserName.Text == "Nebular") && _blnLoggedIn)
                            {
                                objRecord.OwnedByUser = true;
                            }
                            objRecord.Top = intCounter * 88;
                            panOmae.Controls.Add(objRecord);
                        }
                    }
                    objService.Close();
                }
                catch (EndpointNotFoundException)
                {
                    MessageBox.Show(NO_CONNECTION_MESSAGE, NO_CONNECTION_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            // Search for data.
            else if (_objMode == OmaeMode.Data)
            {
                try
                {
                    MemoryStream  objStream = new MemoryStream();
                    XmlTextWriter objWriter = new XmlTextWriter(objStream, Encoding.UTF8);

                    objService.FetchDataFiles(Convert.ToInt32(cboSortOrder.SelectedValue), string.Empty, txtFilterUser.Text).WriteTo(objWriter);
                    // Flush the output.
                    objWriter.Flush();

                    XmlDocument objXmlDocument = OmaeHelper.XmlDocumentFromStream(objStream);

                    // Close everything now that we're done.
                    objWriter.Close();

                    if (objXmlDocument.SelectNodes("/datas/data").Count == 0)
                    {
                        Label lblResults = new Label
                        {
                            Text  = LanguageManager.GetString("String_Omae_NoData", GlobalOptions.Language),
                            Width = 200
                        };
                        panOmae.Controls.Add(lblResults);
                    }
                    else
                    {
                        int intCounter = -1;
                        foreach (XmlNode objNode in objXmlDocument.SelectNodes("/datas/data"))
                        {
                            intCounter++;
                            OmaeRecord objRecord = new OmaeRecord(objNode, 0, OmaeMode.Data);
                            objRecord.OmaeDownloadClicked   += objRecord_OmaeDownloadClicked;
                            objRecord.OmaePostUpdateClicked += objRecord_OmaePostUpdateClicked;
                            objRecord.OmaeDeleteClicked     += objRecord_OmaeDeleteClicked;
                            if ((objRecord.UserName == txtUserName.Text || txtUserName.Text == "Nebular") && _blnLoggedIn)
                            {
                                objRecord.OwnedByUser = true;
                            }
                            objRecord.Top = intCounter * 88;
                            panOmae.Controls.Add(objRecord);
                        }
                    }
                    objService.Close();
                }
                catch (EndpointNotFoundException)
                {
                    MessageBox.Show(NO_CONNECTION_MESSAGE, NO_CONNECTION_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }

            // Search for character sheets.
            else if (_objMode == OmaeMode.Sheets)
            {
                try
                {
                    MemoryStream  objStream = new MemoryStream();
                    XmlTextWriter objWriter = new XmlTextWriter(objStream, Encoding.UTF8);

                    objService.FetchSheets(Convert.ToInt32(cboSortOrder.SelectedValue), txtFilterUser.Text).WriteTo(objWriter);
                    // Flush the output.
                    objWriter.Flush();

                    XmlDocument objXmlDocument = OmaeHelper.XmlDocumentFromStream(objStream);

                    // Close everything now that we're done.
                    objWriter.Close();

                    if (objXmlDocument.SelectNodes("/sheets/sheet").Count == 0)
                    {
                        Label lblResults = new Label
                        {
                            Text  = LanguageManager.GetString("String_Omae_NoSheets", GlobalOptions.Language),
                            Width = 200
                        };
                        panOmae.Controls.Add(lblResults);
                    }
                    else
                    {
                        int intCounter = -1;
                        foreach (XmlNode objNode in objXmlDocument.SelectNodes("/sheets/sheet"))
                        {
                            intCounter++;
                            OmaeRecord objRecord = new OmaeRecord(objNode, 0, OmaeMode.Sheets);
                            objRecord.OmaeDownloadClicked   += objRecord_OmaeDownloadClicked;
                            objRecord.OmaePostUpdateClicked += objRecord_OmaePostUpdateClicked;
                            objRecord.OmaeDeleteClicked     += objRecord_OmaeDeleteClicked;
                            if ((objRecord.UserName == txtUserName.Text || txtUserName.Text == "Nebular") && _blnLoggedIn)
                            {
                                objRecord.OwnedByUser = true;
                            }
                            objRecord.Top = intCounter * 88;
                            panOmae.Controls.Add(objRecord);
                        }
                    }
                    objService.Close();
                }
                catch (EndpointNotFoundException)
                {
                    MessageBox.Show(NO_CONNECTION_MESSAGE, NO_CONNECTION_TITLE, MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }