예제 #1
0
 public static EMMADataSet.IndustryJobsDataTable GetJobs()
 {
     EMMADataSet.IndustryJobsDataTable table = new EMMADataSet.IndustryJobsDataTable();
     lock (_tableAdapter)
     {
         _tableAdapter.Fill(table);
     }
     return table;
 }
예제 #2
0
        private void UpdateIndustryJobsFromXML(CharOrCorp corc, XmlDocument fileXML)
        {
            EMMADataSet.IndustryJobsDataTable jobsData = new EMMADataSet.IndustryJobsDataTable();

            try
            {
                XmlNodeList jobEntries = null;

                UpdateStatus(0, 1, "Getting industry jobs from file", "", false);
                jobEntries = EveAPI.GetResults(fileXML);
                UpdateStatus(1, 1, "", jobEntries.Count + " industry jobs found in file.", false);

                if (jobEntries != null && jobEntries.Count > 0)
                {
                    UpdateStatus(0, jobEntries.Count, "Processing jobs", "", false);

                    foreach (XmlNode jobEntry in jobEntries)
                    {
                        EMMADataSet.IndustryJobsRow jobRow = BuildIndustryJobRow(jobsData, jobEntry);
                        if (IndustryJobs.GetJob(jobsData, jobRow.ID))
                        {
                            // The job already exists in the database. Update if needed.
                            EMMADataSet.IndustryJobsRow oldJobRow = jobsData.FindByID(jobRow.ID);
                            if (oldJobRow.Completed != jobRow.Completed ||
                                oldJobRow.CompletedStatus != jobRow.CompletedStatus ||
                                oldJobRow.CompletedSuccessfully != jobRow.CompletedSuccessfully ||
                                oldJobRow.EndProductionTime.CompareTo(jobRow.EndProductionTime) != 0 ||
                                oldJobRow.PauseProductionTime.CompareTo(jobRow.PauseProductionTime) != 0)
                            {
                                oldJobRow.Completed = jobRow.Completed;
                                oldJobRow.CompletedStatus = jobRow.CompletedStatus;
                                oldJobRow.CompletedSuccessfully = jobRow.CompletedSuccessfully;
                                oldJobRow.EndProductionTime = jobRow.EndProductionTime;
                                oldJobRow.PauseProductionTime = jobRow.PauseProductionTime;
                            }
                            else
                            {
                                // No changes
                            }
                        }
                        else
                        {
                            // This is a new job. Add it to the database.
                            jobsData.AddIndustryJobsRow(jobRow);
                        }

                    }
                }

                if (jobsData != null && jobsData.Count > 0)
                {
                    IndustryJobs.Store(jobsData);
                }
            }
            catch (Exception ex)
            {
                EMMAException emmaEx = ex as EMMAException;
                if (emmaEx == null)
                {
                    // If we've caught a standard exception rather than an EMMA one then log it by creating a
                    // new exception.
                    // Note that we don't need to actually throw it..
                    emmaEx = new EMMAException(ExceptionSeverity.Error, "Error when adding industry jobs", ex);
                }

                SetLastAPIUpdateError(corc, APIDataType.IndustryJobs, ex.Message);
                UpdateStatus(-1, 0, "Error", ex.Message, true);
            }

            if (UpdateEvent != null)
            {
                UpdateEvent(this, new APIUpdateEventArgs(APIDataType.IndustryJobs,
                    corc == CharOrCorp.Char ? _charID : _corpID,
                    APIUpdateEventType.UpdateCompleted));
            }
        }