예제 #1
0
        private async void addMarket_btn_Click(object sender, EventArgs e)
        {
            clear_selected_entry();

            clear();

            int    sort_id    = max_sort_id;
            string marketName = ts_market_list.Text;

            if (sort_id != -1 && !string.IsNullOrEmpty(marketName))
            {
                if (exists(sort_id, marketName))
                {
                    MessageBox.Show("The Market sort_id, name combination already exists!", "Add Market Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }

                MarketEntry entry = await create_new_entry(sort_id, marketName);

                if (!entry.HasData)
                {
                    MessageBox.Show("Failed to create new market entry!", "Entry Create Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }
                else
                {
                    add_new_entry(entry);

                    // Select the added entry on the display list
                    marketList.Items[selected_key].Selected = true;
                }
            }
        }
        private void performEdit()
        {
            if (validateInputs())
            {
                var updateEntry = new MarketEntry()
                {
                    ResourceID     = ((Resource)cboResources.SelectedItem).ResourceID,
                    ResourceAmount = Int32.Parse(txtAmount.Text)
                };

                try
                {
                    int result = _marketEntryManager.UpdateMarketEntry(updateEntry, _marketEntryDetail.MarketEntry);
                    if (result != 1)
                    {
                        throw new ApplicationException("Market Entry could not be updated!");
                    }
                    this.DialogResult = true;
                    this.Close();
                }
                catch (Exception ex)
                {
                    var message = ex.Message;
                    if (ex.InnerException != null)
                    {
                        message += "\n\n" + ex.InnerException.Message;
                    }
                    //have to display the error
                    MessageBox.Show(message, "Add Failed", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
            }
        }
예제 #3
0
        private void marketList_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (marketList.SelectedIndices.Count == 0 || marketList.SelectedIndices[0] == -1)
            {
                return;
            }

            MarketEntry entry = null;

            if (!newEntry && selectedEntry != null)
            {
                clear_selected_entry();
            }

            if (newEntry && selectedEntry != null && selected_item_name != selectedEntry.ItemName)
            {
                clear_pending_entry();
            }

            if (!newEntry && selectedEntry == null) //User has selected an item from marketList
            {
                entry = entries.Find(m => m.SortID == selected_sort_id && m.ItemName == selected_item_name);
            }

            if (entry != null && selectedEntry == null)
            {
                selectedEntry = entry;
            }
            else if (entry == null && selectedEntry == null)
            {
                return;
            }

            populate_info();
        }
        public ActionResult AddMarketEntry(UserMarketEntryViewModel uvm)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    GetUserViewModel();
                    var createEntry = new MarketEntry
                    {
                        ResourceID        = uvm.Resource.ResourceID,
                        ResourceAmount    = uvm.Units.HasValue ? (int)uvm.Units : 0,
                        CollectionEntryID = uvm.CollectionEntry.CollectionEntryID
                    };
                    _marketEntryManager.AddMarketEntry(createEntry);
                    return(RedirectToAction("Index"));
                }
                catch (Exception ex)
                {
                    return(RedirectToAction("Index", "Error", new { message = ex.Message, stackTrace = ex.StackTrace }));
                }
            }
            GetUserViewModel();
            var resources = _resourceManager.RetrieveResources();
            var entries   = _collectionmanager.RetreiveCollectionEntryListByUserID(vm.User.UserID);

            uvm.Resources         = resources;
            uvm.CollectionEntries = entries;
            return(View(uvm));
        }
        private void performAdd()
        {
            if (validateInputs())
            {
                var newMarketEntry = new MarketEntry()
                {
                    CollectionEntryID = _collectionEntryDetails.CollectionEntry.CollectionEntryID,
                    ResourceID        = ((Resource)cboResources.SelectedItem).ResourceID,
                    ResourceAmount    = Int32.Parse(txtAmount.Text)
                };

                try
                {
                    int result = _marketEntryManager.AddMarketEntry(newMarketEntry);
                    if (result != 1)
                    {
                        throw new ApplicationException("Collection Entry was not added to the market!");
                    }
                    MessageBox.Show("Collection Entry was added to the market!");
                    this.DialogResult = true;
                    this.Close();
                }
                catch (Exception ex)
                {
                    var message = ex.Message;
                    if (ex.InnerException != null)
                    {
                        message += "\n\n" + ex.InnerException.Message;
                    }
                    //have to display the error
                    MessageBox.Show(message, "Add Failed", MessageBoxButton.OK, MessageBoxImage.Exclamation);
                }
            }
        }
예제 #6
0
        public static int CreateMarketEntry(MarketEntry entry)
        {
            int result = 0;

            var conn    = DBConnection.GetDBConnection();
            var cmdText = @"sp_create_market_entry";

            var cmd = new SqlCommand(cmdText, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@CollectionEntryID", entry.CollectionEntryID);
            cmd.Parameters.AddWithValue("@ResourceID", entry.ResourceID);
            cmd.Parameters.AddWithValue("@Units", entry.ResourceAmount);

            try
            {
                conn.Open();
                result = cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }


            return(result);
        }
예제 #7
0
        public static int EditMarketEntryStatus(MarketEntry marketEntry, string status)
        {
            int result = 0;

            var conn    = DBConnection.GetDBConnection();
            var cmdText = @"sp_update_market_entry_status";

            var cmd = new SqlCommand(cmdText, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@MarketEntryID", marketEntry.MarketEntryID);
            cmd.Parameters.AddWithValue("@NewMarketEntryStatusID", status);
            cmd.Parameters.AddWithValue("@OldMarketEntryStatusID", marketEntry.MarketEntryStatusID);

            try
            {
                conn.Open();
                result = cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }


            return(result);
        }
예제 #8
0
        public static int CreateMarketEntryPurchase(User user, MarketEntry marketEntry)
        {
            int result = 0;

            var conn    = DBConnection.GetDBConnection();
            var cmdText = @"sp_perform_market_entry_purchase";

            var cmd = new SqlCommand(cmdText, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@UserID", user.UserID);
            cmd.Parameters.AddWithValue("@MarketEntryID", marketEntry.MarketEntryID);

            try
            {
                conn.Open();
                result = cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }


            return(result);
        }
예제 #9
0
        public static int EditMarketEntry(MarketEntry updateEntry, MarketEntry oldEntry)
        {
            int result = 0;

            var conn    = DBConnection.GetDBConnection();
            var cmdText = @"sp_update_market_entry";

            var cmd = new SqlCommand(cmdText, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@MarketEntryID", oldEntry.MarketEntryID);
            cmd.Parameters.AddWithValue("@OldResourceID", oldEntry.ResourceID);
            cmd.Parameters.AddWithValue("@NewResourceID", updateEntry.ResourceID);
            cmd.Parameters.AddWithValue("@OldUnits", oldEntry.ResourceAmount);
            cmd.Parameters.AddWithValue("@NewUnits", updateEntry.ResourceAmount);

            try
            {
                conn.Open();
                result = cmd.ExecuteNonQuery();
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }


            return(result);
        }
예제 #10
0
 void clear_selected_entry()
 {
     if (selectedEntry != null)
     {
         set_edit_state(false);
         selectedEntry = null;
     }
 }
예제 #11
0
        public Market(SystemBody body, string code)
        {
            this.entries = new Dictionary <int, MarketEntry>();
            ulong systemId = body.SystemId;
            int   seed     = Math.Abs(CRC32.Compute(systemId.ToString() + code));

            //int seed = (int)(body.SystemBodyId | (int)((systemId >> 16) & 0xFFFFFFFF));

            Random rand = new Random(seed);

            double timeBase = DateTime.Now.Subtract(new DateTime(2011, 1, 1)).TotalHours;

            double pfluctuation = 1.5 + Math.Sin(timeBase / 2);
            double qfluctuation = 1.5 + Math.Cos(timeBase);


            foreach (var tGood in TradeGood.Goods)
            {
                double quantity;
                double baseQuantity = (double)tGood.BaseQuantity;

                //int overTech = (int)body.StarSystem.TechLevel - tGood.MinTechLevel;

                int overTech = 10;

                bool mainP = overTech > 10;

                if (tGood.MainOrigin.Count > 0)
                {
                    mainP &= tGood.MainOrigin.Contains(body.BodyType);
                }

                if (!mainP)
                {
                    quantity = rand.Next(0, (int)baseQuantity / 8);
                }
                else
                {
                    quantity = rand.Next((int)baseQuantity / 8, (int)baseQuantity * 2);
                    if (tGood.MinTechLevel > 0)
                    {
                        quantity *= 1 + (overTech * 0.1);
                    }
                }

                quantity *= qfluctuation;

                double actBasePrice = pfluctuation * tGood.BasePrice;

                double bQ        = quantity / baseQuantity;
                double f         = Math.Pow(3, (-(bQ - 1))) + 0.1;
                var    currPrice = f * actBasePrice;

                MarketEntry entry = new MarketEntry(tGood, (int)currPrice, actBasePrice, (int)quantity);

                this.entries.Add(tGood.TradeGoodId, entry);
            }
        }
예제 #12
0
        public static List <MarketEntry> RetrieveMarketEntriesByUser(int id)
        {
            var entries = new List <MarketEntry>();

            //connect
            var conn = DBConnection.GetDBConnection();

            // command text
            var cmdText = @"sp_select_market_entries_by_user";

            //command
            var cmd = new SqlCommand(cmdText, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@UserID", id);

            try
            {
                //open the connection
                conn.Open();
                //execute the command
                var reader = cmd.ExecuteReader();

                // check for return rows
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        var entry = new MarketEntry()
                        {
                            MarketEntryID       = reader.GetInt32(0),
                            CollectionEntryID   = reader.GetInt32(1),
                            MarketEntryStatusID = reader.GetString(2),
                            ResourceID          = reader.GetString(3),
                            ResourceAmount      = reader.GetInt32(4),
                            Active = reader.GetBoolean(5)
                        };
                        entries.Add(entry);
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }

            return(entries);
        }
예제 #13
0
        private void save_edits_btn_Click(object sender, EventArgs e)
        {
            if (selectedEntry != null)
            {
                if (newEntry)
                {
                    if (!exists((int)sortID.Value, marketName.Text))
                    {
                        update_selected_entry();
                        entries.Add(selectedEntry);
                        inserts.Add(new EntryKey(selectedEntry.SortID, selectedEntry.MarketName));
                        set_new_state(false);
                    }
                    else
                    {
                        MessageBox.Show("The Market sort_id / market name combination you have used already exists!\n\nPlease try another sort_id!", "Duplicate Warning", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                        return;
                    }
                }
                else if (editedEntry)
                {
                    MarketEntry entry = selectedEntry;

                    if (entry != null)
                    {
                        update_selected_entry();

                        //Need to update the stored entry
                        int storedIdx = entries.FindIndex(m => m.SortID == entry.SortID && m.MarketName == entry.MarketName);

                        if (storedIdx == -1)
                        {
                            MessageBox.Show("Failed to fetch the index of the stored entry!", "Stored Index Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                        else
                        {
                            entries[storedIdx] = entry;

                            updates.Add(new EntryKey(selectedEntry.SortID, selectedEntry.MarketName));
                            set_edit_state(false);
                        }
                    }
                    else
                    {
                        MessageBox.Show("Failed to locate the original market entry!", "Save Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return;
                    }
                }

                save_edits_btn.Enabled = false;
                ts_save_btn.Enabled    = true;
            }
        }
예제 #14
0
        void add_new_entry(MarketEntry entry)
        {
            // Tag this entry as being selected
            selectedEntry = entry;

            marketList.Items.Add(new ListViewItem()
            {
                Name = selected_key, Text = entry.ItemName
            });

            set_new_state(true);
        }
        public int UpdateMarketEntryStatus(MarketEntry marketEntry, string status)
        {
            int result = 0;

            try
            {
                result = MarketEntryAccessor.EditMarketEntryStatus(marketEntry, status);
            }
            catch (Exception)
            {
                throw;
            }


            return(result);
        }
        public int UpdateMarketEntry(MarketEntry updateEntry, MarketEntry oldEntry)
        {
            int result = 0;

            try
            {
                result = MarketEntryAccessor.EditMarketEntry(updateEntry, oldEntry);
            }
            catch (Exception)
            {
                throw;
            }


            return(result);
        }
        public int AddMarketEntry(MarketEntry entry)
        {
            int result = 0;

            try
            {
                result = MarketEntryAccessor.CreateMarketEntry(entry);
            }
            catch (Exception)
            {
                throw;
            }


            return(result);
        }
        public int AddMarketEntryPurchase(User user, MarketEntry marketEntry)
        {
            int result = 0;

            try
            {
                result = MarketEntryAccessor.CreateMarketEntryPurchase(user, marketEntry);
            }
            catch (Exception)
            {
                throw;
            }


            return(result);
        }
예제 #19
0
        public static MarketEntry RetrieveMarketEntryById(int id)
        {
            MarketEntry entry = null;

            //connect
            var conn = DBConnection.GetDBConnection();

            // command text
            var cmdText = @"sp_select_market_entry_by_id";

            //command
            var cmd = new SqlCommand(cmdText, conn);

            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.AddWithValue("@MarketEntryID", id);

            try
            {
                //open the connection
                conn.Open();
                //execute the command
                var reader = cmd.ExecuteReader();

                reader.Read();

                entry = new MarketEntry()
                {
                    MarketEntryID       = reader.GetInt32(0),
                    CollectionEntryID   = reader.GetInt32(1),
                    MarketEntryStatusID = reader.GetString(2),
                    ResourceID          = reader.GetString(3),
                    ResourceAmount      = reader.GetInt32(4),
                    Active = reader.GetBoolean(5)
                };
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                conn.Close();
            }

            return(entry);
        }
예제 #20
0
        async void process_deletes()
        {
            if (!await db.OpenConnection())
            {
                MessageBox.Show("Failed to open a connection to the database!", "SQL Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            int total    = inserts.Count;
            int progress = 0;

            progressBar.Maximum = total;

            for (int i = total - 1; i >= 0; i--)
            {
                EntryKey key = deletes[i];

                if (key != null)
                {
                    MarketEntry entry = entries.Find(m => m.SortID == key.SortID && m.MarketName == key.MarketName);

                    if (entry != null)
                    {
                        string cmd = marketDelete;

                        db.NewCommand(cmd);
                        db.AddParameter("@sort_id", entry.SortID, SqlDbType.Int);
                        db.AddParameter("@name", entry.MarketName, SqlDbType.VarChar);

                        await db.Execute();
                    }
                }

                inserts.RemoveAt(i);

                progress = total - i;

                if ((i * 100 / total) != ((i - 1) * 100 / total))
                {
                    progressBar.Value = progress;
                }
            }

            db.CloseConnection();

            reset_progress();
        }
예제 #21
0
        void clear_pending_entry()
        {
            marketList.Items.RemoveByKey(selected_key);

            newEntry      = false;
            selectedEntry = null;

            if (marketList.SelectedItems.Count > 0)
            {
                marketList.Items[marketList.SelectedItems[0].Index].Selected = true;
            }
            else if (marketList.Items.Count > 0)
            {
                marketList.Items[marketList.Items.Count - 1].Selected = true;
            }
            //TODO: else we should ask if the user wants to delete this market name
        }
 public ActionResult EditMarketEntry(UserMarketEntryViewModel uvm)
 {
     try
     {
         var oldMarketEntry    = ((MarketEntryDetails)(System.Web.HttpContext.Current.Session["editMarketEntry"])).MarketEntry;
         var updateMarketEntry = new MarketEntry
         {
             MarketEntryID  = oldMarketEntry.MarketEntryID,
             ResourceID     = uvm.Resource.ResourceID,
             ResourceAmount = uvm.Units.HasValue ? (int)uvm.Units : 0
         };
         _marketEntryManager.UpdateMarketEntry(updateMarketEntry, oldMarketEntry);
         return(RedirectToAction("Index"));
     }
     catch (Exception ex)
     {
         return(RedirectToAction("Index", "Error", new { message = ex.Message, stackTrace = ex.StackTrace }));
     }
 }
        public ActionResult Purchase(MarketEntryPurchaseViewModel pvm)
        {
            try
            {
                var userId = (int)System.Web.HttpContext.Current.Session["userID"];
                var user   = new User
                {
                    UserID = userId
                };
                var marketEntry = new MarketEntry
                {
                    MarketEntryID = pvm.MarketEntryDetails.MarketEntry.MarketEntryID
                };
                _marketEntryManager.AddMarketEntryPurchase(user, marketEntry);
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", "Error", new { message = ex.Message, stackTrace = ex.StackTrace }));
            }


            return(RedirectToAction("Index"));
        }
예제 #24
0
 public void Add(MarketEntry marketEntry)
 {
     _context.MarketEntries.Add(marketEntry);
 }
예제 #25
0
        private async void ts_load_btn_Click(object sender, EventArgs e)
        {
            if (((ToolStripButton)sender).Text == "Reload")
            {
                ts_market_list.SelectedIndex = -1;
                clear_selected_entry();
                clear(true);
            }

            ts_load_btn.Enabled = false;

            if (!await db.OpenConnection())
            {
                MessageBox.Show("Failed to connect to the Database!", "SQL Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            int count = await db.Execute("select count(*) from dbo.MarketResource", DB.Enums.DbCmdType.Scalar) ?? -1;

            if (count <= 0)
            {
                MessageBox.Show("No results can be loaded from the MarketResource table!", "Load Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                progressBar.Maximum = count;

                entries = new List <MarketEntry>(count);

                string cmd = (!useArena) ? loadSelect[0] : loadSelect[1];

                using (DbDataReader dbRdr = await db.Execute(cmd, DB.Enums.DbCmdType.Reader))
                {
                    int idx = 0;

                    while (dbRdr.Read())
                    {
                        MarketEntry entry = new MarketEntry()
                        {
                            SortID          = dbRdr.GetInt32(0),
                            MarketName      = dbRdr.GetString(1),
                            Code            = dbRdr.GetInt32(2),
                            ItemName        = dbRdr.GetString(3),
                            Price           = dbRdr.GetInt32(4),
                            PriceRatio      = dbRdr.GetDecimal(5),
                            HuntaholicPoint = dbRdr.GetInt32(6),
                            HuntaholicRatio = dbRdr.GetDecimal(7),
                        };

                        if (useArena)
                        {
                            entry.ArenaPoint = dbRdr.GetInt32(8);
                            entry.ArenaRatio = dbRdr.GetDecimal(9);
                        }

                        entries.Add(entry);

                        if ((idx * 100 / count) != ((idx - 1) * 100 / count))
                        {
                            progressBar.Value = idx;
                        }

                        idx++;
                    }

                    progressBar.Maximum = 100;
                    progressBar.Value   = 0;
                }
            }

            db.CloseConnection();

            if (entries == null || entries.Count == 0)
            {
                MessageBox.Show("No results loaded from the MarketResource table!", "Load Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            foreach (MarketEntry entry in entries)
            {
                if (!ts_market_list.Items.Contains(entry.MarketName))
                {
                    ts_market_list.Items.Add(entry.MarketName);
                }
            }

            if (ts_market_list.Items.Count > 0)
            {
                ts_load_btn.Text       = "Reload";
                ts_load_btn.Enabled    = true;
                ts_market_list.Enabled = true;
                ts_new_btn.Enabled     = true;
                addMarket_btn.Enabled  = true;
                remMarket_btn.Enabled  = true;
                marketList.Enabled     = true;
            }
        }
예제 #26
0
        //TODO: process_* should return false if they encounter error so execution does not continue

        async void process_inserts()
        {
            if (!await db.OpenConnection())
            {
                MessageBox.Show("Failed to open a connection to the database!", "SQL Connection Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }

            int total    = inserts.Count;
            int progress = 0;

            progressBar.Maximum = total;

            for (int i = total - 1; i >= 0; i--)
            {
                EntryKey key = inserts[i];

                if (key != null)
                {
                    MarketEntry entry = entries.Find(m => m.SortID == key.SortID && m.MarketName == key.MarketName);

                    if (entry != null)
                    {
                        string cmd = (!useArena) ? marketInsert[0] : marketInsert[1];

                        db.NewCommand(cmd);
                        db.AddParameter("@sort_id", entry.SortID, SqlDbType.Int);
                        db.AddParameter("@name", entry.MarketName, SqlDbType.VarChar);
                        db.AddParameter("@code", entry.Code, SqlDbType.Int);
                        db.AddParameter("@price_ratio", entry.PriceRatio, SqlDbType.Decimal);
                        db.AddParameter("@huntaholic_ratio", entry.HuntaholicRatio, SqlDbType.Decimal);

                        if (useArena)
                        {
                            db.AddParameter("@arena_ratio", entry.ArenaRatio, SqlDbType.Decimal);
                        }

                        await db.Execute();

                        cmd = (!useArena) ? itemUpdate[0] : itemUpdate[1];

                        db.NewCommand(cmd);
                        db.AddParameter("@price", entry.Price, SqlDbType.Int);
                        db.AddParameter("@huntaholic_point", entry.HuntaholicPoint, SqlDbType.Int);
                        db.AddParameter("@id", entry.Code, SqlDbType.Int);

                        if (useArena)
                        {
                            db.AddParameter("@arena_point", entry.ArenaPoint, SqlDbType.Int);
                        }

                        await db.Execute();
                    }
                }

                inserts.RemoveAt(i);

                progress = total - i;

                if ((i * 100 / total) != ((i - 1) * 100 / total))
                {
                    progressBar.Value = progress;
                }
            }

            db.CloseConnection();

            reset_progress();
        }
예제 #27
0
        async Task <MarketEntry> create_new_entry(int sort_id, string market_name)
        {
            MarketEntry entry = new MarketEntry(sort_id, market_name);

            DialogResult dlgResult = MessageBox.Show("Would you like to search for the item code by name?", "Input Required", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);

            if (dlgResult == DialogResult.Cancel)
            {
                return(null);
            }
            else if (dlgResult == DialogResult.Yes)
            {
                SearchResult result = await query_item_by_name();

                if (result != null)
                {
                    entry.ItemName        = result.Name;
                    entry.Code            = result.ID;
                    entry.Price           = result.Price;
                    entry.HuntaholicPoint = result.HuntaholicPoint;

                    if (useArena)
                    {
                        entry.ArenaPoint = result.ArenaPoint;
                    }
                }
            }
            else if (dlgResult == DialogResult.No)
            {
                int itemCode = 0;

                while (itemCode == 0)
                {
                    using (InputBox input = new InputBox("Please enter the item code", false))
                    {
                        if (input.ShowDialog(this) == DialogResult.OK)
                        {
                            if (int.TryParse(input.Value, out itemCode))
                            {
                                entry.Code = itemCode;
                            }
                            else
                            {
                                if (MessageBox.Show("You have enter an invalid item code!\n\nPlease try again.", "Invalid Code", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) == DialogResult.Cancel)
                                {
                                    break;
                                }
                            }
                        }
                    }
                }

                if (itemCode == 0)
                {
                    MessageBox.Show("Invalid Item Code!", "Invalid Code", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    entry.Code = itemCode;

                    SearchResult result = await queryItemInfo(itemCode);

                    if (result == null)
                    {
                        MessageBox.Show("Failed to item information from the database!", "SQL Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                    else
                    {
                        entry.ItemName        = result.Name;
                        entry.Price           = result.Price;
                        entry.HuntaholicPoint = result.HuntaholicPoint;

                        if (useArena)
                        {
                            entry.ArenaPoint = result.ArenaPoint;
                        }
                    }
                }
            }

            return(entry);
        }