예제 #1
0
        /// <summary>
        /// Try to update this order with a serialization object from the API.
        /// </summary>
        /// <param name="src"></param>
        /// <param name="issuedFor">Whether the order was issued for a corporation or a
        /// character.</param>
        /// <param name="endedOrders"></param>
        /// <returns></returns>
        internal bool TryImport(EsiOrderListItem src, IssuedFor issuedFor,
                                ICollection <MarketOrder> endedOrders)
        {
            // Note that, before a match is found, all orders have been marked for deletion:
            // m_markedForDeletion == true
            // Checks whether ID is the same (IDs can be recycled ?)
            if (!MatchesWith(src))
            {
                return(false);
            }
            // Prevent deletion
            MarkedForDeletion = false;
            // Update infos (if ID is the same it may have been modified either by the market
            // or by the user [modify order] so we update the orders info that are changeable)
            if (IsModified(src))
            {
                if (Item != null)
                {
                    // If it is a buy order, escrow may have changed
                    var buyOrder = this as BuyOrder;
                    if (src.IsBuyOrder && buyOrder != null)
                    {
                        buyOrder.Escrow = src.Escrow;
                    }
                    UnitaryPrice    = src.UnitaryPrice;
                    RemainingVolume = src.RemainingVolume;
                    Issued          = src.Issued;
                }
                LastStateChange = DateTime.UtcNow;
                m_state         = OrderState.Modified;
            }
            else if (m_state == OrderState.Modified)
            {
                LastStateChange = DateTime.UtcNow;
                m_state         = OrderState.Active;
            }
            // Order is from a serialized object, so populate the missing info
            if (Item == null)
            {
                PopulateOrderInfo(src, issuedFor);
            }
            OrderState state = GetState(src);

            if (m_state == OrderState.Modified || state == m_state)
            {
                return(true);
            }
            // It has either expired or fulfilled
            m_state         = state;
            LastStateChange = DateTime.UtcNow;
            // Should we notify it to the user?
#if false
            // CCP does not actually report any orders with this status any longer
            if (state == OrderState.Expired || state == OrderState.Fulfilled)
            {
                endedOrders.Add(this);
            }
#endif
            return(true);
        }
예제 #2
0
        /// <summary>
        /// Populates the serialization object job with the info from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        private void PopulateJobInfo(SerializableJobListItem src)
        {
            ID             = src.JobID;
            InstallerID    = src.InstallerID;
            InstalledItem  = StaticBlueprints.GetBlueprintByID(src.BlueprintTypeID);
            Runs           = src.Runs;
            SolarSystem    = StaticGeography.GetSolarSystemByID(src.SolarSystemID);
            Cost           = src.Cost;
            Probability    = src.Probability;
            SuccessfulRuns = src.SuccessfulRuns;
            //InstalledTime = src.InstallTime;
            //InstalledME = src.InstalledItemMaterialLevel;
            //InstalledPE = src.InstalledItemProductivityLevel;
            StartDate = src.StartDate;
            EndDate   = src.EndDate;
            PauseDate = src.PauseDate;
            IssuedFor = src.IssuedFor;
            m_installedItemLocationID = src.StationID;

            UpdateInstallation();

            if (Enum.IsDefined(typeof(BlueprintActivity), src.ActivityID))
            {
                Activity = (BlueprintActivity)Enum.ToObject(typeof(BlueprintActivity), src.ActivityID);
            }

            OutputItem = GetOutputItem(src.ProductTypeID);

            //if (Enum.IsDefined(typeof(BlueprintType), src.InstalledItemCopy))
            //    BlueprintType = (BlueprintType)Enum.ToObject(typeof(BlueprintType), src.InstalledItemCopy);
        }
예제 #3
0
        private IssuedFor AdjustIssuer(IssuedFor issuedFor, EsiOrderListItem srcOrder)
        {
            var         orderFor          = issuedFor;
            const ulong MARKET_ORDER_MASK = (ulong)ESIAPICharacterMethods.MarketOrders;

            // Orders in corporation endpoint are unconditionally for corp, the character
            // endpoint has a special field since *some* are for corp, why...
            if (srcOrder.IsCorporation)
            {
                orderFor = IssuedFor.Corporation;
            }
            // Exclude corporation orders made by a monitored character with ESI market
            // order tracking turned on
            if (issuedFor == IssuedFor.Corporation)
            {
                // Find matching character identity, if any
                var issuer = EveMonClient.CharacterIdentities.FirstOrDefault(character =>
                                                                             character.CharacterID == srcOrder.IssuedBy);
                // If the character is monitored and has access mask to market
                if (issuer != null && (issuer.CCPCharacter?.Monitored ?? false) && issuer.
                    ESIKeys.Any(key => (key.AccessMask & MARKET_ORDER_MASK) != 0UL))
                {
                    orderFor = IssuedFor.None;
                }
            }
            return(orderFor);
        }
예제 #4
0
        /// <summary>
        /// Imports an enumeration of API objects.
        /// </summary>
        /// <param name="src">The enumeration of serializable jobs from the API.</param>
        /// <param name="issuedFor">Whether these jobs were issued for the corporation or
        /// character.</param>
        internal void Import(IEnumerable <EsiJobListItem> src, IssuedFor issuedFor)
        {
            // Mark all jobs for deletion, jobs found in the API will be unmarked
            foreach (IndustryJob job in Items)
            {
                job.MarkedForDeletion = true;
            }
            var newJobs = new LinkedList <IndustryJob>();
            var now     = DateTime.UtcNow;

            // Import the jobs from the API
            foreach (EsiJobListItem job in src)
            {
                DateTime limit = job.EndDate.AddDays(IndustryJob.MaxEndedDays);
                // For jobs which are not yet ended, or are active and not ready (active is
                // defined as having an empty completion date), and are not already in list
                if (limit >= now || (job.CompletedDate == DateTime.MinValue && job.Status !=
                                     CCPJobCompletedStatus.Ready) && !Items.Any(x => x.TryImport(job, issuedFor,
                                                                                                 m_ccpCharacter)))
                {
                    // Only add jobs with valid items
                    var ij = new IndustryJob(job, issuedFor);
                    if (ij.InstalledItem != null && ij.OutputItem != null)
                    {
                        newJobs.AddLast(ij);
                    }
                }
            }
            // Add the items that are no longer marked for deletion
            newJobs.AddRange(Items.Where(x => !x.MarkedForDeletion));
            // Replace the old list with the new one
            Items.Clear();
            Items.AddRange(newJobs);
        }
예제 #5
0
        /// <summary>
        /// Populates the serialization object job with the info from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <param name="issuedFor">Whether this jobs was issued for the corporation or
        /// character.</param>
        /// <param name="character">The character owning this job.</param>
        private void PopulateJobInfo(EsiJobListItem src, IssuedFor issuedFor,
                                     CCPCharacter character = null)
        {
            ID                        = src.JobID;
            InstallerID               = src.InstallerID;
            InstalledItem             = StaticBlueprints.GetBlueprintByID(src.BlueprintTypeID);
            Runs                      = src.Runs;
            Cost                      = src.Cost;
            Probability               = src.Probability;
            SuccessfulRuns            = src.SuccessfulRuns;
            StartDate                 = src.StartDate;
            EndDate                   = src.EndDate;
            PauseDate                 = src.PauseDate;
            IssuedFor                 = issuedFor;
            m_installedItemLocationID = src.FacilityID;

            UpdateLocation(character);
            UpdateInstallation(character);

            if (Enum.IsDefined(typeof(BlueprintActivity), src.ActivityID))
            {
                Activity = (BlueprintActivity)Enum.ToObject(typeof(BlueprintActivity),
                                                            src.ActivityID);
            }

            OutputItem = GetOutputItem(src.ProductTypeID);
        }
예제 #6
0
        /// <summary>
        /// Constructor from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <param name="issuedFor">Whether this jobs was issued for the corporation or
        /// character.</param>
        /// <exception cref="System.ArgumentNullException">src</exception>
        internal IndustryJob(EsiJobListItem src, IssuedFor issuedFor)
        {
            src.ThrowIfNull(nameof(src));

            PopulateJobInfo(src, issuedFor);
            State           = GetState(src);
            LastStateChange = DateTime.UtcNow;
            ActiveJobState  = GetActiveJobState();
        }
예제 #7
0
        /// <summary>
        /// Imports an enumeration of API objects.
        /// </summary>
        /// <param name="src">The orders to import.</param>
        /// <param name="issuedFor">Whether the orders were issued for a character or
        /// corporation.</param>
        /// <param name="ended">The location to place ended orders.</param>
        /// <returns>The list of expired orders.</returns>
        internal void Import(IEnumerable <EsiOrderListItem> src, IssuedFor issuedFor,
                             ICollection <MarketOrder> ended)
        {
            var now = DateTime.UtcNow;

            // Mark all orders for deletion
            // If they are found again on the API feed, they will not be deleted and those set
            // as ignored will be left as ignored
            foreach (var order in Items)
            {
                order.MarkedForDeletion = true;
            }
            var newOrders = new List <MarketOrder>(Items.Count);

            foreach (var srcOrder in src)
            {
                var limit = srcOrder.Issued.AddDays(srcOrder.Duration + MarketOrder.
                                                    MaxExpirationDays);
                var orderFor = AdjustIssuer(issuedFor, srcOrder);
                if (limit >= now && orderFor != IssuedFor.None && !Items.Any(x => x.TryImport(
                                                                                 srcOrder, orderFor, ended)))
                {
                    // New order
                    if (srcOrder.IsBuyOrder)
                    {
                        var order = new BuyOrder(srcOrder, orderFor, m_character);
                        if (order.Item != null)
                        {
                            newOrders.Add(order);
                        }
                    }
                    else
                    {
                        var order = new SellOrder(srcOrder, orderFor, m_character);
                        if (order.Item != null)
                        {
                            newOrders.Add(order);
                        }
                    }
                }
            }
            // Add the items that are no longer marked for deletion
            foreach (var order in Items)
            {
                if (order.MarkedForDeletion)
                {
                    ended.Add(order);
                }
                else
                {
                    newOrders.Add(order);
                }
            }
            Items.Clear();
            Items.AddRange(newOrders);
        }
예제 #8
0
        /// <summary>
        /// Constructor from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <param name="issuedFor">Whether the order was issued for a corporation or a
        /// character.</param>
        /// <param name="character">The owning character.</param>
        /// <exception cref="System.ArgumentNullException">src</exception>
        protected MarketOrder(EsiOrderListItem src, IssuedFor issuedFor,
                              CCPCharacter character)
        {
            src.ThrowIfNull(nameof(src));

            PopulateOrderInfo(src, issuedFor);
            LastStateChange = DateTime.UtcNow;
            m_character     = character;
            m_state         = GetState(src);
        }
예제 #9
0
        /// <summary>
        /// Imports an enumeration of API objects.
        /// </summary>
        /// <param name="src">The orders to import.</param>
        /// <param name="issuedFor">Whether the orders were issued for a character or
        /// corporation.</param>
        /// <param name="ended">The location to place ended orders.</param>
        /// <returns>The list of expired orders.</returns>
        internal void Import(IEnumerable <EsiOrderListItem> src, IssuedFor issuedFor,
                             ICollection <MarketOrder> ended)
        {
            var now = DateTime.UtcNow;

            // Mark all orders for deletion
            // If they are found again on the API feed, they will not be deleted and those set
            // as ignored will be left as ignored
            foreach (MarketOrder order in Items)
            {
                order.MarkedForDeletion = true;
            }
            var newOrders = new LinkedList <MarketOrder>();

            foreach (EsiOrderListItem srcOrder in src)
            {
                var limit = srcOrder.Issued.AddDays(srcOrder.Duration + MarketOrder.
                                                    MaxExpirationDays);
                var orderFor = issuedFor;
                // Orders in corporation endpoint are unconditionally for corp, the character
                // endpoint has a special field since *some* are for corp, why...
                if (srcOrder.IsCorporation)
                {
                    orderFor = IssuedFor.Corporation;
                }
                if (limit >= now && !Items.Any(x => x.TryImport(srcOrder, orderFor, ended)))
                {
                    // New order
                    if (srcOrder.IsBuyOrder)
                    {
                        BuyOrder order = new BuyOrder(srcOrder, orderFor, m_character);
                        if (order.Item != null)
                        {
                            newOrders.AddLast(order);
                        }
                    }
                    else
                    {
                        SellOrder order = new SellOrder(srcOrder, orderFor, m_character);
                        if (order.Item != null)
                        {
                            newOrders.AddLast(order);
                        }
                    }
                }
            }
            // Add the items that are no longer marked for deletion
            newOrders.AddRange(Items.Where(x => !x.MarkedForDeletion));
            Items.Clear();
            Items.AddRange(newOrders);
        }
예제 #10
0
 /// <summary>
 /// Constructor from the API.
 /// </summary>
 /// <param name="src"></param>
 protected MarketOrder(SerializableOrderListItem src)
 {
     m_state           = GetState(src);
     m_orderID         = src.OrderID;
     m_itemID          = src.ItemID;
     m_item            = StaticItems.GetItemByID(src.ItemID);
     m_station         = GetStationByID(src.StationID);
     m_unitaryPrice    = src.UnitaryPrice;
     m_initialVolume   = src.InitialVolume;
     m_remainingVolume = src.RemainingVolume;
     m_lastStateChange = DateTime.UtcNow;
     m_minVolume       = src.MinVolume;
     m_duration        = src.Duration;
     m_issued          = src.Issued;
     m_issuedFor       = src.IssuedFor;
 }
예제 #11
0
 /// <summary>
 /// Constructor from the API.
 /// </summary>
 /// <param name="src"></param>
 protected MarketOrder(SerializableOrderListItem src)
 {
     m_state = GetState(src);
     m_orderID = src.OrderID;
     m_itemID = src.ItemID;
     m_item = StaticItems.GetItemByID(src.ItemID);
     m_station = GetStationByID(src.StationID);
     m_unitaryPrice = src.UnitaryPrice;
     m_initialVolume = src.InitialVolume;
     m_remainingVolume = src.RemainingVolume;
     m_lastStateChange = DateTime.UtcNow;
     m_minVolume = src.MinVolume;
     m_duration = src.Duration;
     m_issued = src.Issued;
     m_issuedFor = src.IssuedFor;
 }
예제 #12
0
 /// <summary>
 /// Constructor from an object deserialized from the settings file.
 /// </summary>
 /// <param name="src"></param>
 protected MarketOrder(SerializableOrderBase src)
 {
     Ignored = src.Ignored;
     m_orderID = src.OrderID;
     m_state = src.State;
     m_itemID = GetItemID(src);
     m_item = GetItem(src);
     m_station = GetStationByID(src.StationID);
     m_unitaryPrice = src.UnitaryPrice;
     m_initialVolume = src.InitialVolume;
     m_remainingVolume = src.RemainingVolume;
     m_lastStateChange = src.LastStateChange;
     m_minVolume = src.MinVolume;
     m_duration = src.Duration;
     m_issued = src.Issued;
     m_issuedFor = (src.IssuedFor == IssuedFor.None ? IssuedFor.Character : src.IssuedFor);
 }
예제 #13
0
 /// <summary>
 /// Constructor from an object deserialized from the settings file.
 /// </summary>
 /// <param name="src"></param>
 protected MarketOrder(SerializableOrderBase src)
 {
     Ignored           = src.Ignored;
     m_orderID         = src.OrderID;
     m_state           = src.State;
     m_itemID          = GetItemID(src);
     m_item            = GetItem(src);
     m_station         = GetStationByID(src.StationID);
     m_unitaryPrice    = src.UnitaryPrice;
     m_initialVolume   = src.InitialVolume;
     m_remainingVolume = src.RemainingVolume;
     m_lastStateChange = src.LastStateChange;
     m_minVolume       = src.MinVolume;
     m_duration        = src.Duration;
     m_issued          = src.Issued;
     m_issuedFor       = (src.IssuedFor == IssuedFor.None ? IssuedFor.Character : src.IssuedFor);
 }
예제 #14
0
        /// <summary>
        /// Try to update this job with a serialization object from the API.
        /// </summary>
        /// <param name="src">The serializable source.</param>
        /// <param name="issuedFor">Whether this jobs was issued for the corporation or
        /// character.</param>
        /// <param name="character">The character owning this job.</param>
        /// <returns>True if import sucessful otherwise, false.</returns>
        internal bool TryImport(EsiJobListItem src, IssuedFor issuedFor, CCPCharacter character)
        {
            bool matches = MatchesWith(src);

            // Note that, before a match is found, all jobs have been marked for deletion:
            // m_markedForDeletion == true
            if (matches)
            {
                MarkedForDeletion = false;
                // Update information (if ID is the same it may have been modified)
                if (IsModified(src))
                {
                    // Job is from a serialized object, so populate the missing info
                    if (InstalledItem == null)
                    {
                        PopulateJobInfo(src, issuedFor);
                    }
                    else
                    {
                        EndDate   = src.EndDate;
                        PauseDate = src.PauseDate;
                    }
                    State = (PauseDate == DateTime.MinValue) ? JobState.Active : JobState.
                            Paused;
                    ActiveJobState  = GetActiveJobState();
                    LastStateChange = DateTime.UtcNow;
                }
                // Job is from a serialized object, so populate the missing info
                if (InstalledItem == null)
                {
                    PopulateJobInfo(src, issuedFor, character);
                }
                var state = GetState(src);
                if (state != State)
                {
                    State           = state;
                    LastStateChange = DateTime.UtcNow;
                }
            }
            return(matches);
        }
예제 #15
0
        /// <summary>
        /// Constructor.
        /// </summary>
        public CharacterContractsList()
        {
            InitializeComponent();

            lvContracts.Hide();
            lvContracts.AllowColumnReorder = true;
            lvContracts.Columns.Clear();

            m_showIssuedFor = IssuedFor.All;

            showDetailsToolStripMenuItem.Font = FontFactory.GetFont("Segoe UI", 9F, FontStyle.Bold);
            noContractsLabel.Font             = FontFactory.GetFont("Tahoma", 11.25F, FontStyle.Bold);

            ListViewHelper.EnableDoubleBuffer(lvContracts);

            lvContracts.ColumnClick        += lvContracts_ColumnClick;
            lvContracts.ColumnWidthChanged += lvContracts_ColumnWidthChanged;
            lvContracts.ColumnReordered    += lvContracts_ColumnReordered;
            lvContracts.MouseDown          += listView_MouseDown;
            lvContracts.MouseMove          += listView_MouseMove;
            lvContracts.MouseLeave         += listView_MouseLeave;
        }
예제 #16
0
 /// <summary>
 /// Constructor from the API.
 /// </summary>
 /// <param name="src"></param>
 internal IndustryJob(SerializableJobListItem src)
 {
     m_state               = GetState(src);
     m_jobID               = src.JobID;
     m_installedItemID     = src.InstalledItemTypeID;
     m_installedItem       = StaticBlueprints.GetBlueprintByID(src.InstalledItemTypeID);
     m_outputItemID        = src.OutputTypeID;
     m_outputItem          = GetOutputItem(src.OutputTypeID);
     m_runs                = src.Runs;
     m_activity            = (BlueprintActivity)Enum.ToObject(typeof(BlueprintActivity), src.ActivityID);
     m_blueprintType       = (BlueprintType)Enum.ToObject(typeof(BlueprintType), src.InstalledItemCopy);
     m_installation        = GetInstallation(src.OutputLocationID);
     m_solarSystem         = StaticGeography.GetSystem(src.SolarSystemID);
     m_installedTime       = src.InstallTime;
     m_installedItemME     = src.InstalledItemMaterialLevel;
     m_installedItemPE     = src.InstalledItemProductivityLevel;
     m_beginProductionTime = src.BeginProductionTime;
     m_endProductionTime   = src.EndProductionTime;
     m_pauseProductionTime = src.PauseProductionTime;
     m_lastStateChange     = DateTime.UtcNow;
     m_issuedFor           = src.IssuedFor;
     m_activeJobState      = GetActiveJobState();
 }
예제 #17
0
 /// <summary>
 /// Constructor from the API.
 /// </summary>
 /// <param name="src"></param>
 internal IndustryJob(SerializableJobListItem src)
 {
     m_state = GetState(src);
     m_jobID = src.JobID;
     m_installedItemID = src.InstalledItemTypeID;
     m_installedItem = StaticBlueprints.GetBlueprintByID(src.InstalledItemTypeID);
     m_outputItemID = src.OutputTypeID;
     m_outputItem = GetOutputItem(src.OutputTypeID);
     m_runs = src.Runs;
     m_activity = (BlueprintActivity) Enum.ToObject(typeof (BlueprintActivity), src.ActivityID);
     m_blueprintType = (BlueprintType) Enum.ToObject(typeof (BlueprintType), src.InstalledItemCopy);
     m_installation = GetInstallation(src.OutputLocationID);
     m_solarSystem = StaticGeography.GetSystem(src.SolarSystemID);
     m_installedTime = src.InstallTime;
     m_installedItemME = src.InstalledItemMaterialLevel;
     m_installedItemPE = src.InstalledItemProductivityLevel;
     m_beginProductionTime = src.BeginProductionTime;
     m_endProductionTime = src.EndProductionTime;
     m_pauseProductionTime = src.PauseProductionTime;
     m_lastStateChange = DateTime.UtcNow;
     m_issuedFor = src.IssuedFor;
     m_activeJobState = GetActiveJobState();
 }
예제 #18
0
        /// <summary>
        /// Populates the serialization object order with the info from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        /// <param name="ownerID">The owner of this order.</param>
        /// <param name="issuedFor">Whether the order was issued for a corporation or a
        /// character.</param>
        private void PopulateOrderInfo(EsiOrderListItem src, IssuedFor issuedFor)
        {
            OwnerID         = src.IssuedBy;
            ID              = src.OrderID;
            Item            = StaticItems.GetItemByID(src.ItemID);
            UnitaryPrice    = src.UnitaryPrice;
            InitialVolume   = src.InitialVolume;
            RemainingVolume = src.RemainingVolume;
            MinVolume       = src.MinVolume;
            Duration        = src.Duration;
            Issued          = src.Issued;
            IssuedFor       = issuedFor;
            m_stationID     = src.StationID;
            UpdateStation();

            var buyOrder = this as BuyOrder;

            if (src.IsBuyOrder && buyOrder != null)
            {
                buyOrder.Escrow = src.Escrow;
                buyOrder.Range  = src.Range;
            }
        }
예제 #19
0
 /// <summary>
 /// Constructor from an object deserialized from the settings file.
 /// </summary>
 /// <param name="src"></param>
 internal IndustryJob(SerializableJob src)
 {
     m_ignored             = src.Ignored;
     m_jobID               = src.JobID;
     m_state               = src.State;
     m_installedItemID     = src.InstalledItemID;
     m_installedItem       = StaticBlueprints.GetBlueprintByID(src.InstalledItemID);
     m_outputItemID        = src.OutputItemID;
     m_outputItem          = GetOutputItem(src.OutputItemID);
     m_runs                = src.Runs;
     m_activity            = src.Activity;
     m_blueprintType       = src.BlueprintType;
     m_installation        = src.ItemLocation;
     m_solarSystem         = StaticGeography.GetSystem(src.SolarSystemID);
     m_installedTime       = src.InstalledTime;
     m_installedItemME     = src.InstalledItemME;
     m_installedItemPE     = src.InstalledItemPE;
     m_beginProductionTime = src.BeginProductionTime;
     m_endProductionTime   = src.EndProductionTime;
     m_pauseProductionTime = src.PauseProductionTime;
     m_lastStateChange     = src.LastStateChange;
     m_issuedFor           = src.IssuedFor;
     m_activeJobState      = GetActiveJobState();
 }
예제 #20
0
 /// <summary>
 /// Constructor from the API.
 /// </summary>
 /// <param name="src">The source.</param>
 /// <param name="issuedFor">Whether the order was issued for a corporation or a
 /// character.</param>
 internal SellOrder(EsiOrderListItem src, IssuedFor issuedFor, CCPCharacter character)
     : base(src, issuedFor, character)
 {
 }
예제 #21
0
        /// <summary>
        /// Add the queried jobs to a list.
        /// </summary>
        /// <param name="result"></param>
        /// <param name="jobsAdded"></param>
        /// <param name="issuedFor"></param>
        /// <returns>True if jobs get added, false otherwise</returns>
        private bool AddJobs(APIResult<SerializableAPIIndustryJobs> result, bool jobsAdded, IssuedFor issuedFor)
        {
            // Add orders if there isn't an error
            if (result.HasError)
                return false;

            // Check to see if other market
            // orders have been added before
            if (!jobsAdded)
                m_jobs.Clear();

            // Add jobs in list
            result.Result.Jobs.ForEach(x => x.IssuedFor = issuedFor);
            m_jobs.AddRange(result.Result.Jobs);

            return true;
        }
예제 #22
0
 /// <summary>
 /// Constructor from the API.
 /// </summary>
 /// <param name="src">The source.</param>
 /// <param name="issuedFor">Whether the order was issued for a corporation or a
 /// character.</param>
 internal BuyOrder(EsiOrderListItem src, IssuedFor issuedFor, CCPCharacter character)
     : base(src, issuedFor, character)
 {
     Escrow = src.Escrow;
     Range  = src.Range;
 }
예제 #23
0
        /// <summary>
        /// Populates the serialization object job with the info from the API.
        /// </summary>
        /// <param name="src">The source.</param>
        private void PopulateJobInfo(SerializableJobListItem src)
        {
            ID = src.JobID;
            InstallerID = src.InstallerID;
            InstalledItem = StaticBlueprints.GetBlueprintByID(src.BlueprintTypeID);
            Runs = src.Runs;
            SolarSystem = StaticGeography.GetSolarSystemByID(src.SolarSystemID);
            Cost = src.Cost;
            Probability = src.Probability;
            SuccessfulRuns = src.SuccessfulRuns;
            //InstalledTime = src.InstallTime;
            //InstalledME = src.InstalledItemMaterialLevel;
            //InstalledPE = src.InstalledItemProductivityLevel;
            StartDate = src.StartDate;
            EndDate = src.EndDate;
            PauseDate = src.PauseDate;
            IssuedFor = src.IssuedFor;
            m_installedItemLocationID = src.StationID;

            UpdateInstallation();

            if (Enum.IsDefined(typeof(BlueprintActivity), src.ActivityID))
                Activity = (BlueprintActivity)Enum.ToObject(typeof(BlueprintActivity), src.ActivityID);

            OutputItem = GetOutputItem(src.ProductTypeID);

            //if (Enum.IsDefined(typeof(BlueprintType), src.InstalledItemCopy))
            //    BlueprintType = (BlueprintType)Enum.ToObject(typeof(BlueprintType), src.InstalledItemCopy);
        }
예제 #24
0
 /// <summary>
 /// Constructor from an object deserialized from the settings file.
 /// </summary>
 /// <param name="src"></param>
 internal IndustryJob(SerializableJob src)
 {
     m_ignored = src.Ignored;
     m_jobID = src.JobID;
     m_state = src.State;
     m_installedItemID = src.InstalledItemID;
     m_installedItem = StaticBlueprints.GetBlueprintByID(src.InstalledItemID);
     m_outputItemID = src.OutputItemID;
     m_outputItem = GetOutputItem(src.OutputItemID);
     m_runs = src.Runs;
     m_activity = src.Activity;
     m_blueprintType = src.BlueprintType;
     m_installation = src.ItemLocation;
     m_solarSystem = StaticGeography.GetSystem(src.SolarSystemID);
     m_installedTime = src.InstalledTime;
     m_installedItemME = src.InstalledItemME;
     m_installedItemPE = src.InstalledItemPE;
     m_beginProductionTime = src.BeginProductionTime;
     m_endProductionTime = src.EndProductionTime;
     m_pauseProductionTime = src.PauseProductionTime;
     m_lastStateChange = src.LastStateChange;
     m_issuedFor = src.IssuedFor;
     m_activeJobState = GetActiveJobState();
 }