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); } } }
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); } } }
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); }
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); }
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); }
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); }
void clear_selected_entry() { if (selectedEntry != null) { set_edit_state(false); selectedEntry = null; } }
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); } }
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); }
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; } }
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); }
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); }
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(); }
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")); }
public void Add(MarketEntry marketEntry) { _context.MarketEntries.Add(marketEntry); }
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; } }
//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(); }
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); }