private void PopulateOrders() { if (InvokeRequired) { // Insure this is called in a GUI friendly thread. Invoke((MethodInvoker) delegate { PopulateOrders(); }); return; } // Begin update. marketBuyersList.BeginUpdate(); marketSellersList.BeginUpdate(); // Clear list. marketBuyersList.Items.Clear(); marketSellersList.Items.Clear(); // Update region status. ShowUpdatingRegions(); // Get type. InvType type = marketTree.SelectedNode?.Tag as InvType; // Get region. RegionItem item = regionSelect.SelectedItem as RegionItem; if (item != null && type != null && item.regionID != 0) { PopulateOrders(type.typeID, item.regionID); } // Complete update. marketBuyersList.EndUpdate(); marketSellersList.EndUpdate(); }
public GenerateInvSetForm(InvType typeFP) { this.InitializeComponent(); this.invType = typeFP; this.para = new InvSplitPara(); if (typeFP == InvType.Special) { this.label1.Text = "汉字防伪开具专用发票设置"; this.label3.Text = "提示:此设置只对汉字防伪用户开具“清单行商品名称”为空的超过汉字防伪限制的专用发票单据起作用"; this.ckShow.Text = "在专用发票生成之前显示"; } else if (typeFP == InvType.Common) { this.label1.Text = "汉字防伪开具普通发票设置"; this.label3.Text = "提示:此设置只对汉字防伪用户开具“清单行商品名称”为空的超过汉字防伪限制的普通发票单据起作用"; this.ckShow.Text = "在普通发票生成之前显示"; } this.para.GetInvSplitPara(typeFP); this.rdForbidden.Checked = this.para.below7ForbiddenInv; this.rdSplit.Checked = this.para.below7Split; this.rdGenerlist.Checked = this.para.below7Generlist; this.rdForbidden2.Checked = this.para.above7ForbiddenInv; this.rdSplit2.Checked = this.para.above7Split; this.rdGenerlist2.Checked = this.para.above7Generlist; this.ckShow.Checked = this.para.ShowSetForm; if (WbjkEntry.RegFlag_ST || WbjkEntry.RegFlag_KT) { this.rdSplit2.Visible = false; } else if (WbjkEntry.RegFlag_JT) { this.rdGenerlist2.Visible = true; } }
internal Invitation(InvType invType, string invId, Participant inviter, int variant) { mInvitationType = invType; mInvitationId = invId; mInviter = inviter; mVariant = variant; }
public HsParam(string pName, object pValue, DataType pType, InvType invType) { paramName = pName; paramValue = pValue; paramType = pType; invokeType = invType; }
public SelectDanJuForFP(InvType fptype, int LeftInvCount) { this.fpType = fptype; this.Initialize(); this.aisinoDataGrid1.add_DataGridRowClickEvent(new EventHandler <DataGridRowEventArgs>(this.aisinoDataGrid1_DataGridRowClickEvent)); this.leftInvCount = LeftInvCount; }
public MarketTreeNode(InvType invType) { InvType = invType; Name = invType.TypeName; Id = InvType.TypeId; IsFocusable = true; }
public void Read(Stream s) { BinaryReader br = new BinaryReader(s); type = (InvType)br.ReadUInt32(); hash = br.ReadBytes(32); }
private void executeValidateOrderType(GridCellValidationEventArgs eventArgs) { if (eventArgs.Value == null) { eventArgs.IsValid = false; eventArgs.SetError("Invalid item."); return; } string value = eventArgs.Value.ToString(); InvType item = MarketTypes.SingleOrDefault(f => f.TypeName == value); if (item == null) { eventArgs.IsValid = false; eventArgs.SetError("Invalid item."); } else { if (Orders.SingleOrDefault(order => order.Order.TypeId == item.TypeId) != null) { eventArgs.IsValid = false; eventArgs.SetError("An order for this item already exists."); } else { ((OrderVm)eventArgs.Row).Order.TypeId = item.TypeId; ((OrderVm)eventArgs.Row).Order.InvType = item; } } }
private void UpdateAmounts(InvType type, InvAction action, MyPhysicalInventoryItem item) { InventoryItem storage = ItemDeltas.Find(x => x.Index == item.ItemId && x.TypeId == item.Content.TypeId && x.SubtypeId == item.Content.SubtypeId); if (storage == null) { ItemDeltas.Add(new InventoryItem() { TypeId = item.Content.TypeId, SubtypeId = item.Content.SubtypeId, Index = item.ItemId, InventoryType = type, Removed = (action == InvAction.Remove) ? item.Amount : 0, Added = (action == InvAction.Add) ? item.Amount : 0 }); } else if (action == InvAction.Add) { storage.Added += item.Amount; } else if (action == InvAction.Remove) { storage.Removed += item.Amount; } }
public AddOrdersEvent(InvType item, bool sellOrder = true, bool buyOrder = true) { Items = new List <InvType>(); SellOrder = sellOrder; BuyOrder = buyOrder; Items.Add(item); }
public async Task <IActionResult> AddOrEdit([Bind("TypeId,TypeName,UserName,UserIP,UserDate")] InvType invType) { UserDetails(); if (ModelState.IsValid) { if (!InvTypeExists(invType.TypeName)) { string typename = invType.TypeName; if (invType.TypeId == 0) { _context.Add(invType); addToast(); // triggers addToast } else { _context.Update(invType); editToast(); // triggers editToast } await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } else { warnToast(); // triggers warnToast } } return(View(invType)); }
public async Task <MarketBrowserItem> GetMarketDetails(MapRegion region, InvType invType) { EveMarketDataResponse <EmdItemOrders> orderResponse = await _eveMarketService.GetItemOrderAsync(region.RegionId, invType.TypeId).ConfigureAwait(false); var buyOrders = new List <MarketBrowserOrder>(); var sellOrders = new List <MarketBrowserOrder>(); foreach (EmdItemOrders.ItemOrderEntry order in orderResponse.Result.Orders) { MarketBrowserOrder marketBrowserOrder = ApiEntityMapper.Map(order, new MarketBrowserOrder()); if (order.OrderType == OrderType.Buy) { buyOrders.Add(marketBrowserOrder); } else { sellOrders.Add(marketBrowserOrder); } } CrestMarketHistory history = await _eveMarketService.GetMarketHistoryAsync(region.RegionId, invType.TypeId).ConfigureAwait(false); var marketHistory = history.Entries.Select(entry => ApiEntityMapper.Map(entry, new MarketHistoryAggregateEntry())).ToList(); var item = new MarketBrowserItem(invType, marketHistory, sellOrders, buyOrders, 7); return(item); }
public AisinoDataSet GetXSDJ(InvType fpType, int pagesize, int pageno) { Dictionary <string, object> dictionary = new Dictionary <string, object>(); string invTypeStr = CommonTool.GetInvTypeStr(fpType); dictionary.Add("DJZL", invTypeStr); return(this.baseDAO.querySQLDataSet("aisino.Fwkp.Wbjk.FPSCGetXSDJ", dictionary, pagesize, pageno)); }
internal Invitation(InvType invType, string invId, Participant inviter, int variant, long creationTime) { mInvitationType = invType; mInvitationId = invId; mInviter = inviter; mVariant = variant; mCreationTime = creationTime; }
public void ImportTxt(string Path, PriceType JGFS, InvType FPLX) { this.path = Path; base.Pricemode = JGFS; base.FaPiaomode = FPLX; XSDJ xSDJ = this.GetXSDJ(); base.SaveImport(xSDJ); }
private void btnSet_Click(object sender, EventArgs e) { try { InvType common = InvType.Common; if (this.radioBtnPTFP.Checked) { common = InvType.Common; IniRead.type = "c"; } else if (this.radioBtnZYFP.Checked) { common = InvType.Special; IniRead.type = "s"; } else if (this.radioBtnHYFP.Checked) { common = InvType.transportation; IniRead.type = "f"; } else if (this.radioBtnJDCFP.Checked) { common = InvType.vehiclesales; IniRead.type = "j"; } ExcelPassword password = new ExcelPassword(); password.ShowDialog(); if (password.DialogResult == DialogResult.Yes) { new ExcelSetForm(common).ShowDialog(); } else { base.Close(); return; } this.fileControl1.get_TextBoxFile().Text = PropValue.ExcelFile1Path; this.fileControl2.get_TextBoxFile().Text = PropValue.ExcelFile2Path; if (PropValue.SingleDoubleTable == "1") { this.label2.Visible = false; this.fileControl2.Visible = false; this.label1.Text = "传入路径"; } else if (PropValue.SingleDoubleTable == "2") { this.label2.Visible = true; this.fileControl2.Visible = true; this.label1.Text = "主表路径"; } } catch (Exception exception) { HandleException.HandleError(exception); } }
private void MarketTree_AfterSelect(object sender, TreeViewEventArgs e) { InvType type = e.Node.Tag as InvType; if (type != null) { typeNameLabel.Text = type.name; Image img = ImageManager.GetTypeImage(type.typeID, 64); typeImage.Image = img; } PopulateOrders(); }
public InvType(InvType baseType) : base(baseType) { MetaGroupId = baseType.MetaGroupId; Mass = baseType.Mass; Volume = baseType.Volume; Capacity = baseType.Capacity; PortionSize = baseType.PortionSize; RaceId = baseType.RaceId; BasePrice = baseType.BasePrice; MarketGroupId = baseType.MarketGroupId; GroupId = baseType.GroupId; }
public InventoryGUI(int type) { if (type == 0) //TODO: integrate inventory with inventory GUI and items { invType = InvType.Inventory; STACKLIMIT = 15; } else if (type == 1) { invType = InvType.Chest; STACKLIMIT = 1500; } }
public Inventory(int invSize = 1, InvType inventoryType = InvType.Container, IList <InvItem> startingInv = null) { maxSize = invSize; type = inventoryType; if (startingInv != null) { items = (List <InvItem>)startingInv; } else { items = new List <InvItem>(); } }
/// <summary> /// Inventory Types /// </summary> /// <returns><c>Bag</c> of items from the Inventory</returns> internal static Bag <InvType> Types() { var list = new IndexedList <InvType>(); foreach (invTypes type in Context.invTypes) { var item = new InvType { ID = type.typeID, Description = type.description.Clean(), IconID = type.iconID, MarketGroupID = type.marketGroupID, Name = type.typeName, RaceID = type.raceID }; if (type.basePrice.HasValue) { item.BasePrice = type.basePrice.Value; } if (type.capacity.HasValue) { item.Capacity = type.capacity.Value; } if (type.groupID.HasValue) { item.GroupID = type.groupID.Value; } if (type.mass.HasValue) { item.Mass = type.mass.Value; } if (type.published.HasValue) { item.Published = type.published.Value; } if (type.volume.HasValue) { item.Volume = type.volume.Value; } list.Items.Add(item); } return(new Bag <InvType>(list)); }
internal void WriteExcelResolverConfig(JiaGeType jg, InvType fapiao) { if (File.Exists(this.ExcelCRXmlPath)) { XmlDocument document = new XmlDocument(); document.Load(this.ExcelCRXmlPath); XmlNode node = document.DocumentElement.SelectSingleNode("ExcelJEandFP"); XmlNode node2 = node.SelectSingleNode("JinE"); XmlNode node3 = node.SelectSingleNode("FaPiao"); node2.InnerText = jg.ToString(); node3.InnerText = fapiao.ToString(); document.Save(this.ExcelCRXmlPath); } }
public ExcelForm(InvType type) { this.invtype = type; this.Initialize(); this.combobox.Visible = false; this.dataGridView1.DataSource = WenBenItem.Items(); this.file_1.add_onClickEnd(new FileControl.OnClickEnd(this, (IntPtr)this.file_1_onClickEnd)); this.file_2.add_onClickEnd(new FileControl.OnClickEnd(this, (IntPtr)this.file_2_onClickEnd)); this.dataGridView1.Controls.Add(this.combobox); this.combobox.SelectedIndexChanged += new EventHandler(this.combobox_SelectedIndexChanged); this.combobox.Validating += new CancelEventHandler(this.combobox_Validating); this.combobox.KeyUp += new KeyEventHandler(this.combobox_KeyUp); this.CheckInTableOneAndTwo(this.radioButton2.Checked); }
public Inventory(uint red, uint green, uint blue, uint yellow, InvType type, string key) { _type = type; if (type == InvType.Turret) { WHITE = new Gun(-1, 200, 1, "WhiteBullet", InvType.Turret); _CurrentGunType = GunType.WHITE; } else if (type == InvType.Player) { RED = new Gun((int)red, 100, 1, "RedBullet", InvType.Player, Vector2.UnitY, -Vector2.UnitY * 3); GREEN = new Gun((int)green, 200, 1, "GreenBullet", InvType.Player, Vector2.UnitY, -Vector2.UnitY * 3); BLUE = new Gun((int)blue, 300, 1, "BlueBullet", InvType.Player, Vector2.UnitY, -Vector2.UnitY * 3); WHITE = new Gun(-1, 200, 1, "WhiteBullet", InvType.Player, Vector2.UnitY, -Vector2.UnitY * 3); _CurrentGunType = GunType.WHITE; YELLOW = yellow; } else if (type == InvType.Gunner) { List<Vector2> offsets = new List<Vector2>(); switch (key) { case "graybulbwithsidegunthings": offsets.Add(new Vector2(0, -12)); offsets.Add(new Vector2(0, 8)); break; case "blueshipwithbulb": offsets.Add(new Vector2(0, -10)); offsets.Add(new Vector2(0, 8)); break; case "browntriangleship": offsets.Add(new Vector2(0, -10)); offsets.Add(new Vector2(0, 7)); break; } WHITE = new Gun(-1, 1000, 1, "EnemyBullet", InvType.Gunner, offsets.ToArray()); _CurrentGunType = GunType.WHITE; } else if (type == InvType.Cannon) { WHITE = new Gun(-1, 2500, 1, "", InvType.Cannon, new Vector2[] { }); _CurrentGunType = GunType.WHITE; } }
private GEntity _createInvItem(InvType invType) { switch (invType) { case InvType.Dispenser: return(new Dispenser(0, 0, 0)); case InvType.Mine: return(new Mine(0, 0, 0)); case InvType.Turret: return(new Turret(0, 0, 0)); } return(null); }
internal void WriteTxtResolverConfig(string strTxtpath, JiaGeType jg, InvType fapiao) { if (File.Exists(this.TxtWbcrXmlPath)) { XmlDocument document = new XmlDocument(); document.Load(this.TxtWbcrXmlPath); document.DocumentElement.SelectSingleNode("TxtJieXiPath").InnerText = strTxtpath; XmlNode node2 = document.DocumentElement.SelectSingleNode("JinEandFaPiao"); XmlNode node3 = node2.SelectSingleNode("JinE"); XmlNode node4 = node2.SelectSingleNode("FaPiao"); node3.InnerText = jg.ToString(); node4.InnerText = fapiao.ToString(); document.Save(this.TxtWbcrXmlPath); } }
public InvItem(InvNames name, string fullName, string description, Sprite sprite, int id, int price, int quantity, InvType type, InvSubtype subtype, EquipSlots slot, int rank, bool persist = false) { Name = name; FullName = fullName; Description = description; Sprite = sprite; ID = id; Price = price; Quantity = quantity; Type = type; Subtype = subtype; Slot = slot; Rank = rank; PersistAtZero = persist; }
private async Task LoadMarketDetails(MapRegion region, InvType invType) { if (region == null) { _eventAggregator.PublishOnUIThread(new StatusEvent(this, "Cannot load data: No region selected")); return; } if (invType == null) { _eventAggregator.PublishOnUIThread(new StatusEvent(this, "Cannot load data: No type selected")); return; } _eventAggregator.PublishOnUIThread(new StatusEvent(this, "Fetching market data...")); MarketBrowserData = await GetMarketDetails(region, invType).ConfigureAwait(false); _eventAggregator.PublishOnUIThread(new StatusEvent(this, "Market data loaded")); }
internal static string GetInvTypeStr(InvType FPType) { switch (FPType) { case InvType.Special: return("s"); case InvType.Common: return("c"); case InvType.transportation: return("f"); case InvType.vehiclesales: return("j"); } return("NaN"); }
public GenerateFP(InvType typeFP) { this.log = LogUtil.GetLogger <GenerateFP>(); this.fptkBLL = new FPTKdal(); this.billBL = SaleBillCtrl.Instance; this.generBL = GenerateInvoice.Instance; this.taxCard = TaxCardFactory.CreateTaxCard(); this.IsNewJDC = false; this.NPCType = 0; this.components = null; this.FPleftnum = 0; this.Initialize(); base.StartPosition = FormStartPosition.CenterScreen; this.fpType = typeFP; this.FPType_Card = (InvoiceType)this.fpType; this.djType = CommonTool.GetInvTypeStr(typeFP); this.lableFPZL.Text = ShowString.ShowFPZL(this.djType); this.FPleftnum = (int)this.taxCard.GetInvNumber(this.FPType_Card); }
public Gun(int ammunition, int interval, int power, string bulletTemplateTag, InvType type, params Vector2[] offsets) { Ammunition = ammunition; DefaultTemplate = bulletTemplateTag; Power = power; Interval = interval; Elapsed = 0; _Type = type; if (offsets.Length == 0) { GunOffsets.Add(Vector2.Zero); } else { foreach (Vector2 offset in offsets) { gunOffsets.Add(offset); } } }
public AisinoDataSet QueryXSDJ(string KeyWord, string Month, string DJtype, string CheckRule, int pagesize, int pageno) { string str = ""; Dictionary <string, object> dictionary = new Dictionary <string, object>(); dictionary.Add("key", KeyWord + "%"); dictionary.Add("DJYF", Month); dictionary.Add("DJZL", DJtype); dictionary.Add("JYGZ", CheckRule); string str2 = dictionary["JYGZ"].ToString(); if (str2 != null) { if (!(str2 == "s")) { if (str2 == "c") { InvType invType = CommonTool.GetInvType(DJtype); double num = TaxCardValue.GetInvLimit(DJtype) - 0.01; dictionary.Remove("ZDJE"); dictionary.Add("ZDJE", num); str = "aisino.Fwkp.Wbjk.CFQueryXSDJEx"; goto Label_00EA; } if (str2 == "x") { str = "aisino.Fwkp.Wbjk.CFQueryXSDJMutiSlv"; goto Label_00EA; } } else { str = "aisino.Fwkp.Wbjk.CFQueryXSDJAll"; goto Label_00EA; } } str = "aisino.Fwkp.Wbjk.CFQueryXSDJAll"; Label_00EA: return(this.baseDAO.querySQLDataSet(str, dictionary, pagesize, pageno)); }
private async Task LoadItem(InvType type) { _eventAggregator.PublishOnUIThread(new StatusEvent(this, "Processing trade details...")); if (type == null) { return; } setActualViewperiod(); Transactions = await _transactionDetailsService.GetTransactions(type, ActualViewStart, ActualViewEnd); if (Transactions.Any()) { Order order = await _transactionDetailsService.GetOrder(type).ConfigureAwait(false); TransactionAggregate = new TransactionAggregate(Transactions.GroupBy(t => t.TransactionDate.Date), type, order); } else { TransactionAggregate = new TransactionAggregate(); } _eventAggregator.PublishOnUIThread(new StatusEvent(this, "Trade details loaded")); }
private void cmbInvType_SelectedIndexChanged(object sender, EventArgs e) { if (this.cmbInvType.SelectedIndex == 0) { this.Input_InvType = InvType.Once; this.cmbRegCycleUnit.Enabled = false; this.txtRegAddInv.Enabled = false; this.txtOnceInv.Enabled = true; this.cmbAdjustRegInv.Enabled = false; this.txtAdjustRegInv.Enabled = false; } else if (this.cmbInvType.SelectedIndex == 1) { this.Input_InvType = InvType.Regular; this.cmbRegCycleUnit.Enabled = true; this.txtRegAddInv.Enabled = true; this.txtOnceInv.Enabled = false; this.cmbAdjustRegInv.Enabled = true; this.txtAdjustRegInv.Enabled = true; } else if (this.cmbInvType.SelectedIndex == 2) { this.Input_InvType = InvType.OnceAndRegular; this.cmbRegCycleUnit.Enabled = true; this.txtRegAddInv.Enabled = true; this.txtOnceInv.Enabled = true; this.cmbAdjustRegInv.Enabled = true; this.txtAdjustRegInv.Enabled = true; } else { // Do nothing. } }
/// <summary> /// Creates a custom inventory array of the specified type. /// </summary> /// <param name="type">inventory type</param> /// <returns>call success</returns> public bool CreateCustomInventoryArray(InvType type = InvType.All) { Trace.WriteLine(String.Format("Character:CreateCustomInventoryArray({0})", type.ToString())); return ExecuteMethod("CreateCustomInventoryArray", type.ToString().ToLower()); }
public InvVect(InvType type, Hash hash) { this.type = type; this.hash = hash; }
public void ProcessState() { XDocument invIgnore = XDocument.Load(Settings.Instance.Path + "\\InvIgnore.xml"); //items to ignore DirectMarketWindow marketWindow = Cache.Instance.DirectEve.Windows.OfType<DirectMarketWindow>().FirstOrDefault(); DirectMarketActionWindow sellWindow = Cache.Instance.DirectEve.Windows.OfType<DirectMarketActionWindow>().FirstOrDefault(w => w.IsSellAction); DirectReprocessingWindow reprorcessingWindow = Cache.Instance.DirectEve.Windows.OfType<DirectReprocessingWindow>().FirstOrDefault(); switch (_States.CurrentValueDumpState) { case ValueDumpState.Idle: case ValueDumpState.Done: break; case ValueDumpState.Begin: if (_form.RefineCheckBox.Checked && _form.cbxSell.Checked) { _form.cbxSell.Checked = false; _valueProcess = true; _States.CurrentValueDumpState = ValueDumpState.GetItems; } else if (_form.RefineCheckBox.Checked && _valueProcess) { _form.RefineCheckBox.Checked = false; _form.cbxSell.Checked = true; _valueProcess = false; _States.CurrentValueDumpState = ValueDumpState.GetItems; } else _States.CurrentValueDumpState = ValueDumpState.GetItems; break; case ValueDumpState.CheckMineralPrices: _currentMineral = _form.InvTypesById.Values.FirstOrDefault(i => i.Id != 27029 && i.GroupId == 18 && i.LastUpdate < DateTime.Now.AddHours(-4)); if (_currentMineral == null) { if (DateTime.Now.Subtract(_lastExecute).TotalSeconds > Time.Instance.Marketlookupdelay_seconds) { _States.CurrentValueDumpState = ValueDumpState.SaveMineralPrices; if (marketWindow != null) marketWindow.Close(); } } else _States.CurrentValueDumpState = ValueDumpState.GetMineralPrice; break; case ValueDumpState.GetMineralPrice: if (marketWindow == null) { if (DateTime.Now.Subtract(_lastExecute).TotalSeconds > Time.Instance.Marketlookupdelay_seconds) { Cache.Instance.DirectEve.ExecuteCommand(DirectCmd.OpenMarket); _lastExecute = DateTime.Now; } return; } if (marketWindow.DetailTypeId != _currentMineral.Id) { if (DateTime.Now.Subtract(_lastExecute).TotalSeconds < Time.Instance.Marketlookupdelay_seconds) return; Logging.Log("ValueDump", "Loading orders for " + _currentMineral.Name, Logging.White); marketWindow.LoadTypeId(_currentMineral.Id); _lastExecute = DateTime.Now; return; } if (marketWindow.BuyOrders.All(o => o.StationId != Cache.Instance.DirectEve.Session.StationId)) { _currentMineral.LastUpdate = DateTime.Now; Logging.Log("ValueDump", "No orders found for " + _currentMineral.Name, Logging.White); _States.CurrentValueDumpState = ValueDumpState.CheckMineralPrices; } // Take top 5 orders, average the buy price and consider that median-buy (it's not really median buy but its what we want) _currentMineral.MedianBuy = marketWindow.BuyOrders.Where(o => o.StationId == Cache.Instance.DirectEve.Session.StationId).OrderByDescending(o => o.Price).Take(5).Average(o => o.Price); _currentMineral.LastUpdate = DateTime.Now; _States.CurrentValueDumpState = ValueDumpState.CheckMineralPrices; Logging.Log("ValueDump", "Average price for " + _currentMineral.Name + " is " + _currentMineral.MedianBuy.Value.ToString("#,##0.00"), Logging.White); break; case ValueDumpState.SaveMineralPrices: Logging.Log("ValueDump", "Saving InvTypes.xml", Logging.White); XDocument xdoc = new XDocument(new XElement("invtypes")); foreach (InvType type in _form.InvTypesById.Values.OrderBy(i => i.Id)) if (xdoc.Root != null) xdoc.Root.Add(type.Save()); try { xdoc.Save(InvTypesPath); } catch (Exception ex) { Logging.Log("ValueDump", "Unable to save [" + InvTypesPath + "], is it a file permissions issue? Is the file open and locked? exception was [ " + ex.Message + "]", Logging.Orange); } _States.CurrentValueDumpState = ValueDumpState.Idle; break; case ValueDumpState.GetItems: if (!Cache.Instance.OpenItemsHangar("Valuedump")) return; Logging.Log("ValueDump", "Loading hangar items", Logging.White); // Clear out the old _form.Items.Clear(); List<DirectItem> hangarItems = Cache.Instance.ItemHangar.Items; if (hangarItems != null) _form.Items.AddRange(hangarItems.Where(i => i.ItemId > 0 && i.MarketGroupId > 0 && i.Quantity > 0).Select(i => new ItemCache(i, _form.RefineCheckBox.Checked))); _States.CurrentValueDumpState = ValueDumpState.UpdatePrices; break; case ValueDumpState.UpdatePrices: _form.ItemsToSell.Clear(); _form.ItemsToRefine.Clear(); _form.ItemsToSellUnsorted.Clear(); if (_form.cbxSell.Checked) { _form.ItemsToSellUnsorted.AddRange(_form.cbxUndersell.Checked ? _form.Items.Where(i => i.InvType != null) : _form.Items.Where( i => i.InvType != null && i.InvType.MinSell.HasValue)); _form.ItemsToSell = _form.ItemsToSellUnsorted.OrderBy(i => i.Name).ToList(); _States.CurrentValueDumpState = ValueDumpState.NextItem; } else if (_form.RefineCheckBox.Checked) { _form.ItemsToSellUnsorted.AddRange(_form.Items.Where(i => i.InvType != null && i.InvType.MaxBuy.HasValue)); _form.ItemsToSell = _form.ItemsToSellUnsorted.OrderBy(i => i.Name).ToList(); _States.CurrentValueDumpState = ValueDumpState.NextItem; } else _States.CurrentValueDumpState = ValueDumpState.Done; break; case ValueDumpState.NextItem: if (_form.ItemsToSell.Count == 0) { _States.CurrentValueDumpState = _form.ItemsToRefine.Count != 0 ? ValueDumpState.RefineItems : ValueDumpState.Done; break; } bool block = false; if (!_form.RefineCheckBox.Checked) Logging.Log("ValueDump", _form.ItemsToSell.Count + " items left to sell", Logging.White); _currentItem = _form.ItemsToSell[0]; _form.ItemsToSell.RemoveAt(0); // Do not sell containers if (_currentItem.GroupID == 448 || _currentItem.GroupID == 649) { Logging.Log("ValueDump", "Skipping " + _currentItem.Name, Logging.White); break; } // Do not sell items in invignore.xml if (invIgnore.Root != null) if (invIgnore.Root.Elements("invtype").Any(element => _currentItem.TypeId == (int)element.Attribute("id"))) { Logging.Log("ValueDump", "Skipping (block list) " + _currentItem.Name, Logging.White); block = true; } if (block) break; _States.CurrentValueDumpState = ValueDumpState.StartQuickSell; break; case ValueDumpState.StartQuickSell: if ((DateTime.Now.Subtract(_lastExecute).TotalSeconds < Cache.Instance.RandomNumber(1,3)) && _form.cbxSell.Checked) break; _lastExecute = DateTime.Now; DirectItem directItem = Cache.Instance.ItemHangar.Items.FirstOrDefault(i => i.ItemId == _currentItem.Id); if (directItem == null) { Logging.Log("ValueDump", "Item " + _currentItem.Name + " no longer exists in the hanger", Logging.White); break; } // Update Quantity _currentItem.QuantitySold = _currentItem.Quantity - directItem.Quantity; if (_form.cbxSell.Checked) { Logging.Log("ValueDump", "Starting QuickSell for " + _currentItem.Name, Logging.White); if (!directItem.QuickSell()) { _lastExecute = DateTime.Now.AddSeconds(-5); Logging.Log("ValueDump", "QuickSell failed for " + _currentItem.Name + ", retrying in 5 seconds", Logging.White); break; } _States.CurrentValueDumpState = ValueDumpState.WaitForSellWindow; } else { _States.CurrentValueDumpState = ValueDumpState.InspectRefinery; } break; case ValueDumpState.WaitForSellWindow: if (sellWindow == null || !sellWindow.IsReady || sellWindow.Item.ItemId != _currentItem.Id) break; // Mark as new execution _lastExecute = DateTime.Now; Logging.Log("ValueDump", "Inspecting sell order for " + _currentItem.Name, Logging.White); _States.CurrentValueDumpState = ValueDumpState.InspectOrder; break; case ValueDumpState.InspectOrder: // Let the order window stay open for random number if (DateTime.Now.Subtract(_lastExecute).TotalSeconds < Cache.Instance.RandomNumber(1, 3)) break; if (sellWindow != null && (!sellWindow.OrderId.HasValue || !sellWindow.Price.HasValue || !sellWindow.RemainingVolume.HasValue)) { Logging.Log("ValueDump", "No order available for " + _currentItem.Name, Logging.White); sellWindow.Cancel(); _States.CurrentValueDumpState = ValueDumpState.WaitingToFinishQuickSell; break; } if (sellWindow != null) { double price = sellWindow.Price.Value; int quantity = (int)Math.Min(_currentItem.Quantity - _currentItem.QuantitySold, sellWindow.RemainingVolume.Value); double totalPrice = quantity * price; const string otherPrices = " "; if (!_form.cbxUndersell.Checked) { if (_currentItem.InvType.MinSell != null) { double perc = _currentItem.InvType.MinSell.Value / price; double total = _currentItem.InvType.MinSell.Value * _currentItem.Quantity; // If percentage >= 130% and total price >= 1m isk then skip this item (we don't undersell) if (perc >= 1.4 && ((total - totalPrice) >= 2000000)) { Logging.Log("ValueDump", "Not underselling item " + _currentItem.Name + " [Min sell price: " + _currentItem.InvType.MinSell.Value.ToString("#,##0.00") + "][Sell price: " + price.ToString("#,##0.00") + "][" + perc.ToString("0%") + "]", Logging.White); sellWindow.Cancel(); _States.CurrentValueDumpState = ValueDumpState.WaitingToFinishQuickSell; break; } } } // Update quantity sold _currentItem.QuantitySold += quantity; // Update station price if (!_currentItem.StationBuy.HasValue) _currentItem.StationBuy = price; _currentItem.StationBuy = (_currentItem.StationBuy + price) / 2; Logging.Log("ValueDump", "Selling " + quantity + " of " + _currentItem.Name + " [Sell price: " + (price * quantity).ToString("#,##0.00") + "]" + otherPrices, Logging.White); } if (sellWindow != null) sellWindow.Accept(); // Re-queue to check again if (_currentItem.QuantitySold < _currentItem.Quantity) _form.ItemsToSell.Add(_currentItem); _lastExecute = DateTime.Now; _States.CurrentValueDumpState = ValueDumpState.WaitingToFinishQuickSell; break; case ValueDumpState.InspectRefinery: if (_currentItem.InvType.MaxBuy != null) { double priceR = _currentItem.InvType.MaxBuy.Value; int quantityR = _currentItem.Quantity; double totalPriceR = quantityR * priceR; int portions = quantityR / _currentItem.PortionSize; double refinePrice = _currentItem.RefineOutput.Any() ? _currentItem.RefineOutput.Sum(m => m.Quantity * m.InvType.MaxBuy ?? 0) * portions : 0; refinePrice *= (double)_form.RefineEfficiencyInput.Value / 100; if (refinePrice > totalPriceR || totalPriceR <= 1500000 || _currentItem.TypeId == 30497) { Logging.Log("ValueDump", "Refining gives a better price for item " + _currentItem.Name + " [Refine price: " + refinePrice.ToString("#,##0.00") + "][Sell price: " + totalPriceR.ToString("#,##0.00") + "]", Logging.White); // Add it to the refine list _form.ItemsToRefine.Add(_currentItem); } } /*else { Logging.Log("Selling gives a better price for item " + _currentItem.Name + " [Refine price: " + refinePrice.ToString("#,##0.00") + "][Sell price: " + totalPrice_r.ToString("#,##0.00") + "]"); }*/ _lastExecute = DateTime.Now; _States.CurrentValueDumpState = ValueDumpState.NextItem; break; case ValueDumpState.WaitingToFinishQuickSell: if (sellWindow == null || !sellWindow.IsReady || sellWindow.Item.ItemId != _currentItem.Id) { DirectWindow modal = Cache.Instance.DirectEve.Windows.FirstOrDefault(w => w.IsModal); if (modal != null) modal.Close(); _States.CurrentValueDumpState = ValueDumpState.NextItem; break; } break; case ValueDumpState.RefineItems: if (reprorcessingWindow == null) { if (DateTime.Now.Subtract(_lastExecute).TotalSeconds > Cache.Instance.RandomNumber(1, 3)) { IEnumerable<DirectItem> refineItems = Cache.Instance.ItemHangar.Items.Where(i => _form.ItemsToRefine.Any(r => r.Id == i.ItemId)); Cache.Instance.DirectEve.ReprocessStationItems(refineItems); _lastExecute = DateTime.Now; } return; } if (reprorcessingWindow.NeedsQuote) { if (DateTime.Now.Subtract(_lastExecute).TotalSeconds > Cache.Instance.RandomNumber(1, 3)) { reprorcessingWindow.GetQuotes(); _lastExecute = DateTime.Now; } return; } // Wait till we have a quote if (reprorcessingWindow.Quotes.Count == 0) { _lastExecute = DateTime.Now; return; } // Wait another 5 seconds to view the quote and then reprocess the stuff if (DateTime.Now.Subtract(_lastExecute).TotalSeconds > 5) { // TODO: We should wait for the items to appear in our hangar and then sell them... reprorcessingWindow.Reprocess(); _lastExecute = DateTime.Now; Logging.Log("Valuedump", "Waiting 17 second", Logging.White); _States.CurrentValueDumpState = ValueDumpState.WaitingToBack; } break; case ValueDumpState.WaitingToBack: if (DateTime.Now.Subtract(_lastExecute).TotalSeconds > 17 && _valueProcess) { _States.CurrentValueDumpState = _valueProcess ? ValueDumpState.Begin : ValueDumpState.Done; } break; } }