Exemplo n.º 1
0
        public void RefreshCollections()
        {
            Tags.Clear();
            Instruments.Clear();

            using (var context = new MyDBContext())
            {
                Tags.AddRange(context.Tags.ToList());

                var im = new InstrumentRepository(context);
                Instruments.AddRange(im.FindInstruments().Result);
            }
        }
        private void DeleteInstrument()
        {
            if (selectedInstruments.Count == 0)
            {
                return;
            }

            if (selectedInstruments.Count == 1)
            {
                var inst             = selectedInstruments[0];
                MessageBoxResult res = MessageBox.Show(
                    $"Are you sure you want to delete {inst.Symbol} @ {inst.Datasource.Name}?",
                    "Delete", MessageBoxButton.YesNo);
                if (res == MessageBoxResult.No)
                {
                    return;
                }
            }
            else
            {
                MessageBoxResult res = MessageBox.Show(
                    $"Are you sure you want to delete {selectedInstruments.Count} instruments?",
                    "Delete", MessageBoxButton.YesNo);
                if (res == MessageBoxResult.No)
                {
                    return;
                }
            }

            List <Instrument> instruments = selectedInstruments.ToList();

            try
            {
                DbContext.Instruments.RemoveRange(instruments);
                Instruments.RemoveAll(instruments);
                DbContext.SaveChanges();
            }
            catch (Exception exception)
            {
                Logger.Error(() => $"Exception: {exception.InnerException?.InnerException?.Message}");
                MessageBox.Show($"Deleting Instrument was unsuccessful. Please see logs for more info.",
                                "Error", MessageBoxButton.OK);
                Instruments.AddRange(instruments);
            }
        }
Exemplo n.º 3
0
        private void CreateCommands()
        {
            Add = ReactiveCommand.Create(ExecuteAdd);

            //get existing jobs and tags/instruments
            Load = ReactiveCommand.CreateFromTask(async _ =>
            {
                var dataUpdateJobs        = _client.GetaDataUpdateJobs();
                var econReleaseUpdateJobs = _client.GetEconomicReleaseUpdateJobs();
                var dividendUpdateJobs    = _client.GetDividendUpdateJobs();
                var earningsUpdateJobs    = _client.GetEarningsUpdateJobs();
                var tags               = _client.GetTags();
                var instruments        = _client.GetInstruments();
                var econReleaseSources = _client.GetEconomicReleaseDataSources();
                var dividendSources    = _client.GetDividendDataSources();
                var earningsSources    = _client.GetEarningsDataSources();

                await Task.WhenAll(dataUpdateJobs, econReleaseUpdateJobs, dividendUpdateJobs,
                                   tags, instruments, econReleaseSources, dividendSources, earningsUpdateJobs, earningsSources).ConfigureAwait(false);

                var responses = new ApiResponse[] { dataUpdateJobs.Result, econReleaseUpdateJobs.Result, dividendUpdateJobs.Result, tags.Result, instruments.Result, econReleaseSources.Result, dividendSources.Result, earningsUpdateJobs.Result, earningsSources.Result };
                if (await responses.DisplayErrors(this, DialogCoordinator).ConfigureAwait(true))
                {
                    return(null);
                }

                Tags.AddRange(tags.Result.Result);
                Instruments.AddRange(instruments.Result.Result);
                EconomicReleaseDataSources.AddRange(econReleaseSources.Result.Result);
                DividendDataSources.AddRange(dividendSources.Result.Result);
                EarningsDataSources.AddRange(earningsSources.Result.Result);

                var jobs = new List <IJobSettings>();
                jobs.AddRange(dataUpdateJobs.Result.Result);
                jobs.AddRange(econReleaseUpdateJobs.Result.Result);
                jobs.AddRange(dividendUpdateJobs.Result.Result);
                jobs.AddRange(earningsUpdateJobs.Result.Result);

                return(jobs);
            });
            Load.Subscribe(jobs =>
            {
                if (jobs == null)
                {
                    return;
                }

                foreach (var job in jobs)
                {
                    Jobs.Add(GetJobViewModel(job));
                }
            });

            //Delete job
            var deleteCanExecute = this
                                   .WhenAnyValue(x => x.SelectedJob)
                                   .Select(x => x != null && !string.IsNullOrEmpty(x.PreChangeName));

            Delete = ReactiveCommand.CreateFromTask(async _ =>
            {
                //Give a dialog to confirm the deletion
                MessageDialogResult dialogResult = await DialogCoordinator.ShowMessageAsync(this,
                                                                                            "Delete Job",
                                                                                            string.Format("Are you sure you want to delete {0}?", SelectedJob.Name),
                                                                                            MessageDialogStyle.AffirmativeAndNegative);

                if (dialogResult != MessageDialogResult.Affirmative)
                {
                    return;
                }

                //If the name has changed but hasn't been saved, we change it back to be in sync with the server
                SelectedJob.Name = SelectedJob.PreChangeName;

                //Request deletion
                var response = await SelectedJob.Delete.Execute();
                if (await response.DisplayErrors(this, DialogCoordinator))
                {
                    return;
                }

                //if it was successful, remove the VM from the list
                Jobs.Remove(SelectedJob);
                SelectedJob = null;
            },
                                                    deleteCanExecute);
        }
Exemplo n.º 4
0
 public void AddInstruments(List <CalibrationInstrument> instruments, CurveTenor tenor)
 {
     Instruments.AddRange(instruments);
     InstrumentDictionary[tenor] = instruments;
 }