예제 #1
0
        private void ExecutedTargetPlatformCommand(object sender, ExecutedRoutedEventArgs e)
        {
            var language = LocalizedStrings.ActiveLanguage;
            var platform = Environment.Is64BitProcess ? Platforms.x64 : Platforms.x86;

            var window = new TargetPlatformWindow();

            if (!window.ShowModal(this))
            {
                return;
            }

            if (window.SelectedLanguage == language && window.SelectedPlatform == platform)
            {
                return;
            }

            // temporarily set prev lang for display the followed message
            // and leave all text as is if user will not restart the app
            LocalizedStrings.ActiveLanguage = language;

            var result = new MessageBoxBuilder()
                         .Text(LocalizedStrings.Str2952Params.Put(TypeHelper.ApplicationName))
                         .Owner(this)
                         .Info()
                         .YesNo()
                         .Show();

            if (result == MessageBoxResult.Yes)
            {
                Application.Current.Restart();
            }
        }
        private void OK_Click(object sender, RoutedEventArgs e)
        {
            var exp = IndexEditor.Expression;

            var mbBuilder = new MessageBoxBuilder()
                            .Owner(this)
                            .Error();

            if (exp.HasErrors())
            {
                mbBuilder.Text(LocalizedStrings.Str1523Params.Put(exp.Error)).Show();
                return;
            }

            if (IndexSecurity.Id.IsEmpty())
            {
                var errorMsg = _validateId(SecurityId.Text) ?? SecurityId.ValidateId();
                if (!errorMsg.IsEmpty())
                {
                    mbBuilder.Text(errorMsg).Show();
                    return;
                }

                IndexSecurity.Id = SecurityId.Text;
            }

            IndexSecurity.Expression = IndexEditor.Text;

            DialogResult = true;
        }
예제 #3
0
        public override bool CanClose()
        {
            if (!IsChanged)
            {
                return(true);
            }

            var res = new MessageBoxBuilder()
                      .Owner(this)
                      .Caption(Title)
                      .Text(LocalizedStrings.Str3676Params.Put(Composition.Element.Name))
                      .Icon(MessageBoxImage.Question)
                      .Button(MessageBoxButton.YesNo)
                      .Show();

            if (res == MessageBoxResult.Yes)
            {
                ConfigManager.GetService <StrategiesRegistry>().Save(Composition);
            }
            else
            {
                ConfigManager.GetService <StrategiesRegistry>().Discard(Composition);
            }

            ResetIsChanged();

            return(true);
        }
예제 #4
0
        protected override void OnClosing(CancelEventArgs e)
        {
            if (_token != null)
            {
                if (Sync.IsEnabled)
                {
                    var result =
                        new MessageBoxBuilder()
                        .Text(LocalizedStrings.Str2928)
                        .Error()
                        .YesNo()
                        .Owner(this)
                        .Show();

                    if (result == MessageBoxResult.Yes)
                    {
                        StopSync();
                    }
                }

                e.Cancel = true;
            }

            base.OnClosing(e);
        }
		private void Ok_Click(object sender, RoutedEventArgs e)
		{
			var security = Security;

			var mbBuilder = new MessageBoxBuilder()
						.Owner(this)
						.Error();

			if (security.PriceStep == null)
			{
				mbBuilder.Text(LocalizedStrings.Str1546).Show();
				return;
			}

			if (security.Board == null)
			{
				mbBuilder.Text(LocalizedStrings.Str1547).Show();
				return;
			}

			if (security.Id.IsEmpty())
			{
				var errorMsg = _validateId(SecurityId.Text) ?? SecurityId.ValidateId();
				if (!errorMsg.IsEmpty())
				{
					mbBuilder.Text(errorMsg).Show();
					return;
				}

				security.Id = SecurityId.Text;
			}
			
			DialogResult = true;
			Close();
		}
예제 #6
0
        private void ResetSettings_Click(object sender, RoutedEventArgs e)
        {
            var res = new MessageBoxBuilder()
                      .Text(LocalizedStrings.Str2954Params.Put(TypeHelper.ApplicationName))
                      .Warning()
                      .Owner(this)
                      .YesNo()
                      .Show();

            if (res != MessageBoxResult.Yes)
            {
                return;
            }

            _isReseting = true;

            if (_dbFile != null)
            {
                File.Delete(_dbFile);
            }

            UserConfig.Instance.DeleteFiles();

            Close();

            Process.Start(Application.ResourceAssembly.Location);
        }
예제 #7
0
        private void RemoveCommand_OnExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            var item = (CompositionItem)e.Parameter;

            var res = new MessageBoxBuilder()
                      .Owner(this)
                      .Caption(Title)
                      .Text(LocalizedStrings.Str2884Params.Put(item.Element.Name))
                      .Button(MessageBoxButton.YesNo)
                      .Icon(MessageBoxImage.Question)
                      .Show();

            if (res != MessageBoxResult.Yes)
            {
                return;
            }

            var control = _layoutManager
                          .DockingControls
                          .OfType <DiagramEditorControl>()
                          .FirstOrDefault(c => c.Key.CompareIgnoreCase(item.Key));

            if (control != null)
            {
                control.ResetIsChanged();
                _layoutManager.CloseDocumentWindow(control);
            }

            _strategiesRegistry.Remove(item);
        }
        private void Ok_Click(object sender, RoutedEventArgs e)
        {
            var security = Security;

            var mbBuilder = new MessageBoxBuilder()
                            .Owner(this)
                            .Error();

            if (security.PriceStep == 0)
            {
                mbBuilder.Text(LocalizedStrings.Str1546).Show();
                return;
            }

            if (security.Board == null)
            {
                mbBuilder.Text(LocalizedStrings.Str1547).Show();
                return;
            }

            if (security.Id.IsEmpty())
            {
                var errorMsg = _validateId(SecurityId.Text) ?? SecurityId.ValidateId();
                if (!errorMsg.IsEmpty())
                {
                    mbBuilder.Text(errorMsg).Show();
                    return;
                }

                security.Id = SecurityId.Text;
            }

            DialogResult = true;
            Close();
        }
예제 #9
0
        private void ExecutedTargetPlatformCommand(object sender, ExecutedRoutedEventArgs e)
        {
            var window = new TargetPlatformWindow();

            if (!window.ShowModal(this))
            {
                return;
            }

            var message = window.AutoStart
                                ? LocalizedStrings.Str2952Params.Put(TypeHelper.ApplicationName, window.SelectedPlatform)
                                : LocalizedStrings.Str2953.Put(TypeHelper.ApplicationName);

            var result = new MessageBoxBuilder()
                         .Text(message)
                         .Owner(this)
                         .Info()
                         .YesNo()
                         .Show();

            if (result == MessageBoxResult.Yes)
            {
                Application.Current.Restart();
            }
        }
		protected override void OnClosing(CancelEventArgs e)
		{
			if (_token != null)
			{
				if (Sync.IsEnabled)
				{
					var result =
						new MessageBoxBuilder()
							.Text(LocalizedStrings.Str2928)
							.Error()
							.YesNo()
							.Owner(this)
							.Show();

					if (result == MessageBoxResult.Yes)
					{
						StopSync();
					}
				}

				e.Cancel = true;
			}

			base.OnClosing(e);
		}
예제 #11
0
		private void HandleException(Exception exception, bool isWpf)
		{
			try
			{
				exception.LogError();

				if (!isWpf)
					return;

				if (!_isInitialized)
				{
					if (MainWindow != null)
						_isInitialized = !MainWindow.GetValue<Window, VoidType, bool>("IsSourceWindowNull", null);
				}

				if (ShowExceptions)
				{
					var builder = new MessageBoxBuilder()
						.Text(exception.ToString())
						.Error();

					if (_isInitialized)
					{
						try
						{
							builder.Owner(Current.GetActiveOrMainWindow());
						}
						catch
						{
							builder.Owner(MainWindow);
						}
					}

					builder.Show();
				}

				if (!_isInitialized)
					Close();
			}
			catch (Exception e)
			{
				try
				{
					e.LogError();
				}
				catch (Exception e1)
				{
					// как последняя возможность вывести ошибки
					Trace.WriteLine(e);
					Trace.WriteLine(e1);
				}

				Close(); // в процессе показа диалога с ошибкой у нас ошибка - значит все совсем плохо.
			}
		}
예제 #12
0
        public HttpResponseMessage MergeFileChunks([FromBody] JObject data)
        {
            string fileName = data["fileName"].ToObject <string>();

            if (string.IsNullOrEmpty(fileName))
            {
                //Log a warning message
                Core.CoreContainers.LogsRepository.LogInfo($"Failed to upload a file uploaded by {RouteConfig.CurrentUser.UserName} because 'fileName' is not found", Core.Database.Logs.LogTrigger.Controllers);

                return(new HttpResponseMessage()
                {
                    StatusCode = System.Net.HttpStatusCode.InternalServerError
                });
            }

            string directoryName = $"{ConfigurationManager.AppSettings["PointsDatasetsCheckpointFolder"]}\\{RouteConfig.CurrentUser.UserName}\\{fileName}";

            if (!Directory.Exists(directoryName))
            {
                return new HttpResponseMessage()
                       {
                           StatusCode = System.Net.HttpStatusCode.InternalServerError
                       }
            }
            ;

            var chunksFiles = Directory.GetFiles(directoryName).OrderBy(file => file.Length).ThenBy(file => file);

            using (FileStream finalFile = new FileStream($"{directoryName}\\{ConfigurationManager.AppSettings["DataPointsSourceFileName"]}", FileMode.Create))
                foreach (var chunkFile in chunksFiles)
                {
                    using (FileStream fileChunk =
                               new FileStream(chunkFile, FileMode.Open))
                    {
                        fileChunk.CopyTo(finalFile);
                    }
                }

            //Log a warning message
            Core.CoreContainers.LogsRepository.LogInfo($"Merged chunks for file {directoryName}\\{fileName} uploaded by {RouteConfig.CurrentUser.UserName}", Core.Database.Logs.LogTrigger.Controllers);

            //TODO: handle an error if any problems are encountered
            new DomainInstance().UpdateDatasetStatus(fileName,
                                                     DatasetStatus.Uploaded,
                                                     RouteConfig.CurrentUser.Username);

            return(new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.OK,
                Content = new StringContent(MessageBoxBuilder.Create(TextDictionary.OverlayMFSuccesTitle,
                                                                     TextDictionary.OverlayMFSuccesText,
                                                                     true))
            });
        }
예제 #13
0
        private void ExecutedSaveSecurityCommand(object sender, ExecutedRoutedEventArgs e)
        {
            var entityRegistry = ConfigManager.GetService <IStudioEntityRegistry>();
            var security       = (Security)PropertyGrid.SelectedObject;

            if (_isNew)
            {
                var mbBuilder = new MessageBoxBuilder()
                                .Owner(this)
                                .Error();

                if (security.Code.IsEmpty())
                {
                    mbBuilder.Text(LocalizedStrings.Str1551).Show();
                    return;
                }

                if (security.Board == null)
                {
                    mbBuilder.Text(LocalizedStrings.Str1547).Show();
                    return;
                }

                if (security.PriceStep == null)
                {
                    mbBuilder.Text(LocalizedStrings.Str1546).Show();
                    return;
                }

                var id = new SecurityIdGenerator().GenerateId(security.Code, security.Board);

                if (entityRegistry.Securities.ReadById(id) != null)
                {
                    mbBuilder.Text(LocalizedStrings.Str3275Params.Put(id)).Show();
                    return;
                }

                security.Id = id;
            }
            else
            {
                security.CopyTo(SecurityPicker.SelectedSecurity);
                security = SecurityPicker.SelectedSecurity;
            }

            entityRegistry.Securities.Save(security);

            _isNew   = false;
            _changed = false;
        }
예제 #14
0
        public HttpResponseMessage CheckDatasetExistance([FromBody] JObject data)
        {
            string directoryName = $"{ConfigurationManager.AppSettings["PointsDatasetsCheckpointFolder"]}\\{RouteConfig.CurrentUser.UserName}\\{data["fileName"].ToObject<string>()}";

            bool directoryExists = Directory.Exists(directoryName);

            var response = new HttpResponseMessage()
            {
                Content = new StringContent(MessageBoxBuilder.Create(!directoryExists ? "Success" : TextDictionary.OverlayCDFailTitle,
                                                                     !directoryExists ? "Success"
                                                                                         : TextDictionary.OverlayCDFailText))
            };

            response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");

            return(response);
        }
        public HttpResponseMessage UploadGeoserverLayer([FromBody] JObject data)
        {
            DomainInstance handler = new DomainInstance();


            var insertResult = handler.CreateDataSet(
                datasetName: data["name"].ToObject <string>(),
                username: RouteConfig.CurrentUser.Username,
                pointsSource: PointsSource.Geoserver,
                serviceUrl: data["apiUrl"].ToObject <string>(),
                colorPaletteName: data["defaultColorPaletteName"].ToObject <string>(),
                colorPaletteUser: data["defaultColorPaletteUser"].ToObject <string>());


            if (insertResult == Domain.ViewModel.CreateDatasetResultCode.Ok)
            {
                handler.UpdateDatasetStatus(data["name"].ToObject <string>(),
                                            DatasetStatus.Generated,
                                            RouteConfig.CurrentUser.Username);

                return(new HttpResponseMessage()
                {
                    StatusCode = System.Net.HttpStatusCode.OK,
                    Content = new StringContent(MessageBoxBuilder.Create(TextDictionary.OverlayMFSuccesTitle,
                                                                         TextDictionary.OverlayMFSuccesText,
                                                                         true))
                });
            }

            //Log a warning message
            Core.CoreContainers.LogsRepository.LogWarning($"Failed to insert geoserver layer ( ({ insertResult.ToString()} ) with data provided: {data}", Core.Database.Logs.LogTrigger.Controllers);

            return(new HttpResponseMessage()
            {
                StatusCode = System.Net.HttpStatusCode.OK,
                Content = new StringContent(MessageBoxBuilder.Create(
                                                insertResult == Domain.ViewModel.CreateDatasetResultCode.GeoserverError ?
                                                TextDictionary.OverlayCDGeoserverFailTitle :
                                                TextDictionary.OverlayCDFailTitle,
                                                insertResult == Domain.ViewModel.CreateDatasetResultCode.GeoserverError ?
                                                string.Format(TextDictionary.OverlayCDGeoserverFailText, data["name"].ToObject <string>()) :
                                                TextDictionary.OverlayCDFailText))
            });
        }
예제 #16
0
        private void ImportBtn_OnClick(object sender, RoutedEventArgs e)
        {
            if (_worker.IsBusy)
            {
                _worker.CancelAsync();
            }
            else
            {
                var mbBuilder = new MessageBoxBuilder()
                                .Owner(this)
                                .Error();

                if (_settings.Path.IsEmpty())
                {
                    mbBuilder.Text(LocalizedStrings.Str2865).Show();
                    return;
                }

                if (!File.Exists(_settings.Path))
                {
                    mbBuilder.Text(LocalizedStrings.Str2866Params.Put(_settings.Path)).Show();
                    return;
                }

                var field = _fields.FirstOrDefault(f => f.IsRequired && f.Number == -1 && (f.DefaultValue == null || f.DefaultValue.Equals(string.Empty)));

                if (field != null)
                {
                    mbBuilder.Text(LocalizedStrings.Str2867Params.Put(field.Name)).Show();
                    return;
                }

                field = _fields.FirstOrDefault(f => f.Number > -1 && f.Type.IsEnum && f.Values.IsEmpty());

                if (field != null)
                {
                    mbBuilder.Text(LocalizedStrings.Str2868Params.Put(field.Name)).Show();
                    return;
                }

                _worker.RunWorkerAsync();
            }
        }
예제 #17
0
        private void RemoveCommand_OnExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            var item = (CompositionItem)e.Parameter;

            var res = new MessageBoxBuilder()
                      .Owner(this)
                      .Caption(Title)
                      .Text(LocalizedStrings.Str2884Params.Put(item.Element.Name))
                      .Button(MessageBoxButton.YesNo)
                      .Icon(MessageBoxImage.Question)
                      .Show();

            if (res != MessageBoxResult.Yes)
            {
                return;
            }

            _strategiesRegistry.Remove(item);
        }
        private void Ok_Click(object sender, RoutedEventArgs e)
        {
            var mbBuilder = new MessageBoxBuilder()
                            .Owner(this)
                            .Error();

            if (Values.Any(v => v.ValueFile.IsEmpty()))
            {
                mbBuilder.Text(LocalizedStrings.Str2832).Show();
                return;
            }

            if (Values.Any(v => v.ValueStockSharp == null))
            {
                mbBuilder.Text(LocalizedStrings.Str2833).Show();
                return;
            }

            DialogResult = true;
        }
		private void Ok_Click(object sender, RoutedEventArgs e)
		{
			var mbBuilder = new MessageBoxBuilder()
				.Owner(this)
				.Error();

			if (Values.Any(v => v.ValueFile.IsEmpty()))
			{
				mbBuilder.Text(LocalizedStrings.Str2832).Show();
				return;
			}

			if (Values.Any(v => v.ValueStockSharp == null))
			{
				mbBuilder.Text(LocalizedStrings.Str2833).Show();
				return;
			}

			DialogResult = true;
		}
예제 #20
0
        private void ResetSettingsCommand_OnExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            var res = new MessageBoxBuilder()
                      .Text(LocalizedStrings.Str2954Params.Put(TypeHelper.ApplicationName))
                      .Warning()
                      .Owner(this)
                      .YesNo()
                      .Show();

            if (res != MessageBoxResult.Yes)
            {
                return;
            }

            _isReseting = true;

            ConfigManager.GetService <LogManager>().Dispose();
            Directory.Delete(BaseApplication.AppDataPath, true);

            Application.Current.Restart();
        }
예제 #21
0
        private void OkCommandExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            var settings = Settings;

            //if (SettingsPanel.IsLocal == settings.UseLocal &&
            //	//SettingsPanel.IsAlphabetic == settings.IsAlphabetic &&
            //	(SettingsPanel.IsLocal ? SettingsPanel.Path : SettingsPanel.Address) == settings.Path &&
            //	SettingsPanel.Login == settings.Credentials.Login &&
            //	SettingsPanel.Password == settings.Credentials.Password)
            //{
            //	return;
            //}

            settings.UseLocal = SettingsPanel.IsLocal;
            //settings.IsAlphabetic = SettingsPanel.IsAlphabetic;
            settings.Path = SettingsPanel.IsLocal ? SettingsPanel.Path : SettingsPanel.Address;
            settings.Credentials.Login    = SettingsPanel.Login;
            settings.Credentials.Password = SettingsPanel.Password;

            if (SettingsPanel.IsLocal)
            {
                if (!Directory.Exists(settings.Path))
                {
                    var res = new MessageBoxBuilder()
                              .Owner(this)
                              .Text(LocalizedStrings.Str3263)
                              .Warning()
                              .YesNo()
                              .Show();

                    if (res != MessageBoxResult.Yes)
                    {
                        return;
                    }
                }
            }

            DialogResult = true;
            Close();
        }
예제 #22
0
        public HttpResponseMessage SaveColorsPalette(ColorMap colorMap)
        {
            DomainInstance handler = new DomainInstance();
            bool           success = handler.InsertColorPalette(RouteConfig.CurrentUser.Username, colorMap);


            var response = new HttpResponseMessage();

            response.Content = new StringContent(MessageBoxBuilder.Create(success ? TextDictionary.OverlayCPSuccesTitle
                                                                                 : TextDictionary.OverlayCPFailedTitle,
                                                                          success ? TextDictionary.OverlayCPSuccesText
                                                                                 : TextDictionary.OverlayCPFailedText,
                                                                          success));

            //Log a warning message if insert fails
            if (!success)
            {
                Core.CoreContainers.LogsRepository.LogWarning($"Failed to insert color palette { colorMap.Name } (main color criteria: { colorMap.MainColorCriteria }) for user {RouteConfig.CurrentUser.UserName}", Core.Database.Logs.LogTrigger.Controllers);
            }

            response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");

            return(response);
        }
		private void OkCommandExecuted(object sender, ExecutedRoutedEventArgs e)
		{
			var settings = Settings;

			//if (SettingsPanel.IsLocal == settings.UseLocal &&
			//	//SettingsPanel.IsAlphabetic == settings.IsAlphabetic &&
			//	(SettingsPanel.IsLocal ? SettingsPanel.Path : SettingsPanel.Address) == settings.Path &&
			//	SettingsPanel.Login == settings.Credentials.Login &&
			//	SettingsPanel.Password == settings.Credentials.Password)
			//{
			//	return;
			//}

			settings.UseLocal = SettingsPanel.IsLocal;
			//settings.IsAlphabetic = SettingsPanel.IsAlphabetic;
			settings.Path = SettingsPanel.IsLocal ? SettingsPanel.Path : SettingsPanel.Address;
			settings.Credentials.Login = SettingsPanel.Login;
			settings.Credentials.Password = SettingsPanel.Password;

			if (SettingsPanel.IsLocal)
			{
				if (!Directory.Exists(settings.Path))
				{
					var res = new MessageBoxBuilder()
						.Owner(this)
						.Text(LocalizedStrings.Str3263)
						.Warning()
						.YesNo()
						.Show();

					if (res != MessageBoxResult.Yes)
						return;
				}
			}

			DialogResult = true;
			Close();
		}
		private void Save(bool showErrorIfNoCode)
		{
			if (SecurityCode.IsEmpty() || Board == null)
			{
				if (!showErrorIfNoCode)
					return;

				new MessageBoxBuilder()
					.Owner(this)
					.Caption(LocalizedStrings.Str3220)
					.Text(LocalizedStrings.Str3221)
					.Warning()
					.Show();

				return;
			}

			var id = _idGenerator.GenerateId(SecurityCode, Board);
			var registry = ConfigManager.GetService<IStudioEntityRegistry>();
			var security = registry.Securities.ReadById(id);

			if (security != null && security.GetType() != SecurityType)
			{
				new MessageBoxBuilder()
					.Owner(this)
					.Caption(LocalizedStrings.Str3222)
					.Text(LocalizedStrings.Str3223Params.Put(security.Id, security.Type))
					.Error()
					.Show();

				return;
			}

			if (security != null)
			{
				if (security != Security)
				{
					var res = new MessageBoxBuilder()
						.Owner(this)
						.Caption(LocalizedStrings.Str3222)
						.Text(LocalizedStrings.Str3224Params.Put(security.Id))
						.Question()
						.YesNo()
						.Show();

					if (res != MessageBoxResult.Yes)
						return;
				}

				UpdateSecurity(security);
				registry.Securities.Save(security);

				Security = security;
			}
			else
			{
				security = Security;

				security.Id = id;
				security.Code = SecurityCode;
				security.Board = Board;

				UpdateSecurity(security);

				registry.Securities.Add(security);
				SecurityPicker.Securities.Add(security); //TODO индексы не приходят через событие registry.Securities.Added

				_bufferedChart
					.Elements
					.Select(e => _bufferedChart.GetSource(e))
					.OfType<CandleSeries>()
					.ForEach(series =>
					{
						series.Security.Id = id;
						series.Security.Code = SecurityCode;
						series.Security.Board = Board;
					});

				CanEdit = false;
				Title = id;

				RaiseChangedCommand();
			}

			_canSave = false;
		}
예제 #25
0
		private void RemoveCommand_OnExecuted(object sender, ExecutedRoutedEventArgs e)
		{
			var item = (CompositionItem)e.Parameter;

			var res = new MessageBoxBuilder()
				.Owner(this)
				.Caption(Title)
				.Text(LocalizedStrings.Str2884Params.Put(item.Element.Name))
				.Button(MessageBoxButton.YesNo)
				.Icon(MessageBoxImage.Question)
				.Show();

			if (res != MessageBoxResult.Yes)
				return;

			var control = _layoutManager
				.DockingControls
				.OfType<DiagramEditorControl>()
				.FirstOrDefault(c => c.Key.CompareIgnoreCase(item.Key));

			if (control != null)
			{
				control.ResetIsChanged();
				_layoutManager.CloseDocumentWindow(control);
			}

			_strategiesRegistry.Remove(item);
		}
		private void ApplyCommandExecuted(object sender, ExecutedRoutedEventArgs e)
		{
			var settings = SelectedSettings;

			if (SettingsPanel.IsLocal == settings.UseLocal &&
				//SettingsPanel.IsAlphabetic == settings.IsAlphabetic &&
				(SettingsPanel.IsLocal ? SettingsPanel.Path : SettingsPanel.Address) == settings.Path &&
			    SettingsPanel.Login == settings.Credentials.Login &&
			    SettingsPanel.Password == settings.Credentials.Password)
			{
				return;
			}

			settings.UseLocal = SettingsPanel.IsLocal;
			//settings.IsAlphabetic = SettingsPanel.IsAlphabetic;
			settings.Path = SettingsPanel.IsLocal ? SettingsPanel.Path : SettingsPanel.Address;
			settings.Credentials.Login = SettingsPanel.Login;
			settings.Credentials.Password = SettingsPanel.Password;

			if (SettingsPanel.IsLocal)
			{
				if (!Directory.Exists(settings.Path))
				{
					var res = new MessageBoxBuilder()
						.Owner(this)
						.Text(LocalizedStrings.Str3263)
						.Warning()
						.YesNo()
						.Show();

					if (res != MessageBoxResult.Yes)
						return;
				}
			}
			else
			{
				var wnd = new MarketDataConfirmWindow
				{
					SecurityTypes = new[]
					{
						SecurityTypes.Currency,
						SecurityTypes.Index,
						SecurityTypes.Stock,
						SecurityTypes.Future
					}
				};

				if (wnd.ShowModal(this))
				{
					_isCancelled = false;
					BusyIndicator.IsBusy = true;

					var progress = BusyIndicator.FindVisualChild<ProgressBar>();
                    var cancel = (Button)BusyIndicator.FindVisualChild<CancelButton>();

					var secTypes = wnd.SecurityTypes.ToArray();

					progress.Maximum = secTypes.Length;
					cancel.Click += (s1, e1) =>
					{
						_isCancelled = true;
						BusyIndicator.IsBusy = false;
					};

					new RefreshSecurities(settings, secTypes,
						() => _isCancelled,
						count => this.GuiAsync(() => progress.Value = count),
						count => this.GuiAsync(() =>
						{
							BusyIndicator.IsBusy = false;

							new MessageBoxBuilder()
								.Owner(this)
								.Text(LocalizedStrings.Str3264Params.Put(count))
								.Show();

							RefreshGrid();
						})).Process(this);
				}
			}

			ConfigManager.GetService<MarketDataSettingsCache>().Save();
		}
예제 #27
0
		private void OK_Click(object sender, RoutedEventArgs e)
		{
			var exp = IndexEditor.Expression;

			var mbBuilder = new MessageBoxBuilder()
				.Owner(this)
				.Error();

			if (exp.HasErrors())
			{
				mbBuilder.Text(LocalizedStrings.Str1523Params.Put(exp.Error)).Show();
				return;
			}

			if (IndexSecurity.Id.IsEmpty())
			{
				var errorMsg = _validateId(SecurityId.Text) ?? SecurityId.ValidateId();
				if (!errorMsg.IsEmpty())
				{
					mbBuilder.Text(errorMsg).Show();
					return;
				}

				IndexSecurity.Id = SecurityId.Text;
			}

			IndexSecurity.Expression = IndexEditor.Text;

			DialogResult = true;
		}
예제 #28
0
        private void ApplyCommandExecuted(object sender, ExecutedRoutedEventArgs e)
        {
            var settings = SelectedSettings;

            if (SettingsPanel.IsLocal == settings.UseLocal &&
                //SettingsPanel.IsAlphabetic == settings.IsAlphabetic &&
                (SettingsPanel.IsLocal ? SettingsPanel.Path : SettingsPanel.Address) == settings.Path &&
                SettingsPanel.Login == settings.Credentials.Login &&
                SettingsPanel.Password == settings.Credentials.Password)
            {
                return;
            }

            settings.UseLocal = SettingsPanel.IsLocal;
            //settings.IsAlphabetic = SettingsPanel.IsAlphabetic;
            settings.Path = SettingsPanel.IsLocal ? SettingsPanel.Path : SettingsPanel.Address;
            settings.Credentials.Login    = SettingsPanel.Login;
            settings.Credentials.Password = SettingsPanel.Password;

            if (SettingsPanel.IsLocal)
            {
                if (!Directory.Exists(settings.Path))
                {
                    var res = new MessageBoxBuilder()
                              .Owner(this)
                              .Text(LocalizedStrings.Str3263)
                              .Warning()
                              .YesNo()
                              .Show();

                    if (res != MessageBoxResult.Yes)
                    {
                        return;
                    }
                }
            }
            else
            {
                var wnd = new MarketDataConfirmWindow
                {
                    SecurityTypes = new[]
                    {
                        SecurityTypes.Currency,
                        SecurityTypes.Index,
                        SecurityTypes.Stock,
                        SecurityTypes.Future
                    }
                };

                if (wnd.ShowModal(this))
                {
                    BusyIndicator.IsBusy = true;

                    var progress = BusyIndicator.FindVisualChild <ProgressBar>();
                    var cancel   = (Button)BusyIndicator.FindVisualChild <StackPanel>().Children[2];

                    var secTypes = wnd.SecurityTypes.ToArray();

                    progress.Maximum = secTypes.Length;
                    cancel.Click    += (s1, e1) =>
                    {
                        _isCancelled         = true;
                        BusyIndicator.IsBusy = false;
                    };

                    new RefreshSecurities(settings, secTypes,
                                          () => _isCancelled,
                                          count => this.GuiAsync(() => progress.Value = count),
                                          count => this.GuiAsync(() =>
                    {
                        BusyIndicator.IsBusy = false;

                        new MessageBoxBuilder()
                        .Owner(this)
                        .Text(LocalizedStrings.Str3264Params.Put(count))
                        .Show();

                        RefreshGrid();
                    })).Process(this);
                }
            }

            ConfigManager.GetService <MarketDataSettingsCache>().Save();
        }
		public override bool CanClose()
		{
			if (!IsChanged)
				return true;

			var res = new MessageBoxBuilder()
				.Owner(this)
				.Caption(Title)
				.Text(LocalizedStrings.Str3676Params.Put(Composition.Element.Name))
				.Icon(MessageBoxImage.Question)
				.Button(MessageBoxButton.YesNo)
				.Show();

			if (res == MessageBoxResult.Yes)
				ConfigManager.GetService<StrategiesRegistry>().Save(Composition);
			else
				ConfigManager.GetService<StrategiesRegistry>().Discard(Composition);

			ResetIsChanged();

			return true;
		}
예제 #30
0
		private void ExecutedSaveSecurityCommand(object sender, ExecutedRoutedEventArgs e)
		{
			var entityRegistry = ConfigManager.GetService<IEntityRegistry>();
			var security = (Security)PropertyGrid.SelectedObject;

			if (_isNew)
			{
				var mbBuilder = new MessageBoxBuilder()
					.Owner(this)
					.Error();

				if (security.Code.IsEmpty())
				{
					mbBuilder.Text(LocalizedStrings.Str2923).Show();
					return;
				}

				if (security.Board == null)
				{
					mbBuilder.Text(LocalizedStrings.Str2926).Show();
					return;
				}

				if (security.PriceStep == null || security.PriceStep == 0)
				{
					mbBuilder.Text(LocalizedStrings.Str2925).Show();
					return;
				}

				if (security.VolumeStep == null || security.VolumeStep == 0)
				{
					mbBuilder.Text(LocalizedStrings.Str2924).Show();
					return;
				}

				var id = new SecurityIdGenerator().GenerateId(security.Code, security.Board);

				if (entityRegistry.Securities.ReadById(id) != null)
				{
					mbBuilder.Text(LocalizedStrings.Str2927Params.Put(id)).Show();
					return;
				}

				security.Id = id;
			}
			else
			{
				security.CopyTo(SecurityPicker.SelectedSecurity);
				security = SecurityPicker.SelectedSecurity;
			}

			entityRegistry.Securities.Save(security);

			_isNew = false;
			_changed = false;
		}
예제 #31
0
		private void ResetSettings_Click(object sender, RoutedEventArgs e)
		{
			var res = new MessageBoxBuilder()
						.Text(LocalizedStrings.Str2954)
						.Warning()
						.Owner(this)
						.YesNo()
						.Show();

			if (res != MessageBoxResult.Yes)
				return;

			_isReseting = true;

			if (_dbFile != null)
				File.Delete(_dbFile);

			UserConfig.Instance.DeleteFiles();

			Close();

			Process.Start(Application.ResourceAssembly.Location);
		}
예제 #32
0
		private void ExecutedTargetPlatformCommand(object sender, ExecutedRoutedEventArgs e)
		{
			var window = new TargetPlatformWindow();

			if (!window.ShowModal(this))
				return;

			var message = window.AutoStart
				? LocalizedStrings.Str2952Params.Put(TypeHelper.ApplicationName, window.SelectedPlatform)
				: LocalizedStrings.Str2953.Put(TypeHelper.ApplicationName);

			var result = new MessageBoxBuilder()
				.Text(message)
				.Owner(this)
				.Info()
				.YesNo()
				.Show();

			if (result == MessageBoxResult.Yes)
				Application.Current.Restart();
		}
예제 #33
0
        public void MessageBox()
        {
            var result = MessageBoxBuilder.Create("titlu", "mesaj");

            Assert.IsNotNull(result);
        }
예제 #34
0
        private void HandleException(Exception exception, bool isWpf)
        {
            try
            {
                exception.LogError();

                if (!isWpf)
                {
                    return;
                }

                if (!_isInitialized)
                {
                    if (MainWindow != null)
                    {
                        _isInitialized = !MainWindow.GetValue <Window, VoidType, bool>("IsSourceWindowNull", null);
                    }
                }

                if (ShowExceptions)
                {
                    var builder = new MessageBoxBuilder()
                                  .Text(exception.ToString())
                                  .Error();

                    if (_isInitialized)
                    {
                        try
                        {
                            builder.Owner(Current.GetActiveOrMainWindow());
                        }
                        catch
                        {
                            builder.Owner(MainWindow);
                        }
                    }

                    builder.Show();
                }

                if (!_isInitialized)
                {
                    Close();
                }
            }
            catch (Exception e)
            {
                try
                {
                    e.LogError();
                }
                catch (Exception e1)
                {
                    // как последняя возможность вывести ошибки
                    Trace.WriteLine(e);
                    Trace.WriteLine(e1);
                }

                Close();                 // в процессе показа диалога с ошибкой у нас ошибка - значит все совсем плохо.
            }
        }
예제 #35
0
		private void ExecutedTargetPlatformCommand(object sender, ExecutedRoutedEventArgs e)
		{
			var language = LocalizedStrings.ActiveLanguage;
			var platform = Environment.Is64BitProcess ? Platforms.x64 : Platforms.x86;

			var window = new TargetPlatformWindow();

			if (!window.ShowModal(this))
				return;

			if (window.SelectedLanguage == language && window.SelectedPlatform == platform)
				return;

			// temporarily set prev lang for display the followed message
			// and leave all text as is if user will not restart the app
			LocalizedStrings.ActiveLanguage = language;

			var result = new MessageBoxBuilder()
				.Text(LocalizedStrings.Str2952Params.Put(TypeHelper.ApplicationName))
				.Owner(this)
				.Info()
				.YesNo()
				.Show();

			if (result == MessageBoxResult.Yes)
				Application.Current.Restart();
		}
예제 #36
0
		private void ImportBtn_OnClick(object sender, RoutedEventArgs e)
		{
			if (_worker.IsBusy)
			{
				ImportBtn.IsEnabled = false;
				_worker.CancelAsync();
			}
			else
			{
				var mbBuilder = new MessageBoxBuilder()
					.Owner(this)
					.Error();

				if (_settings.Path.IsEmpty())
				{
					mbBuilder.Text(LocalizedStrings.Str2865).Show();
					return;
				}

				if (!File.Exists(_settings.Path))
				{
					mbBuilder.Text(LocalizedStrings.Str2866Params.Put(_settings.Path)).Show();
					return;
				}

				var field = _fields.FirstOrDefault(f => f.IsRequired && f.Number == -1 && (f.DefaultValue == null || f.DefaultValue.Equals(string.Empty)));

				if (field != null)
				{
					mbBuilder.Text(LocalizedStrings.Str2867Params.Put(field.DisplayName)).Show();
					return;
				}

				field = _fields.FirstOrDefault(f => f.Number > -1 && f.Type.IsEnum && f.Values.IsEmpty());

				if (field != null)
				{
					mbBuilder.Text(LocalizedStrings.Str2868Params.Put(field.DisplayName)).Show();
					return;
				}

				ImportBtn.IsEnabled = false;
				ImportBtnText.Text = LocalizedStrings.Str2890;

				_worker.RunWorkerAsync();
			}
		}
예제 #37
0
        private void Save(bool showErrorIfNoCode)
        {
            if (SecurityCode.IsEmpty() || Board == null)
            {
                if (!showErrorIfNoCode)
                {
                    return;
                }

                new MessageBoxBuilder()
                .Owner(this)
                .Caption(LocalizedStrings.Str3220)
                .Text(LocalizedStrings.Str3221)
                .Warning()
                .Show();

                return;
            }

            var id       = _idGenerator.GenerateId(SecurityCode, Board);
            var registry = ConfigManager.GetService <IStudioEntityRegistry>();
            var security = registry.Securities.ReadById(id);

            if (security != null && security.GetType() != SecurityType)
            {
                new MessageBoxBuilder()
                .Owner(this)
                .Caption(LocalizedStrings.Str3222)
                .Text(LocalizedStrings.Str3223Params.Put(security.Id, security.Type))
                .Error()
                .Show();

                return;
            }

            if (security != null)
            {
                if (security != Security)
                {
                    var res = new MessageBoxBuilder()
                              .Owner(this)
                              .Caption(LocalizedStrings.Str3222)
                              .Text(LocalizedStrings.Str3224Params.Put(security.Id))
                              .Question()
                              .YesNo()
                              .Show();

                    if (res != MessageBoxResult.Yes)
                    {
                        return;
                    }
                }

                UpdateSecurity(security);
                registry.Securities.Save(security);

                Security = security;
            }
            else
            {
                security = Security;

                security.Id    = id;
                security.Code  = SecurityCode;
                security.Board = Board;

                UpdateSecurity(security);

                registry.Securities.Add(security);
                SecurityPicker.Securities.Add(security);                 //TODO индексы не приходят через событие registry.Securities.Added

                _bufferedChart
                .Elements
                .Select(e => _bufferedChart.GetSource(e))
                .OfType <CandleSeries>()
                .ForEach(series =>
                {
                    series.Security.Id    = id;
                    series.Security.Code  = SecurityCode;
                    series.Security.Board = Board;
                });

                CanEdit = false;
                Title   = id;

                RaiseChangedCommand();
            }

            _canSave = false;
        }
예제 #38
0
		private void ChatControl_OnLoaded()
		{
			var client = Client;

			client.AuthorAdded += OnAuthorAdded;
			client.AuthorDeleted += OnAuthorDeleted;
			client.JoinAccepted += OnJoinAccepted;
			client.JoinRejected += OnJoinRejected;
			client.JoinSended += OnJoinSended;
			client.LoggedIn += OnLoggedIn;
			client.LoggedOut += OnLoggedOut;
			client.MessageCreated += OnMessageCreated;
			client.MessageUpdated += OnMessageUpdated;
			client.MessageDeleted += OnMessageDeleted;
			client.RoomCreated += OnRoomCreated;
			client.RoomDeleted += OnRoomDeleted;
			client.RoomUpdated += OnRoomUpdated;

			var cmdSvc = ConfigManager.GetService<IStudioCommandService>();

			cmdSvc.Register<LoggedInCommand>(this, false, cmd =>
			{
				IsEnabled = true;

				var rooms = _chatRooms.ToDictionary(i => i.Room, i => i);

				foreach (var room in client.AllRooms)
				{
					var item = rooms.TryGetValue(room);

					if (item != null)
					{
						rooms.Remove(room);
						continue;
					}
					
					item = new RoomItem(room);
					item.Users.AddRange(client.GetAuthors(room));
					_chatRooms.Add(item);
				}

				_chatRooms.RemoveRange(rooms.Values);
				UpdateTitle();
			});
			cmdSvc.Register<LoggedOutCommand>(this, false, cmd =>
			{
				IsEnabled = false;
				UpdateTitle();
			});

			IsEnabled = ConfigManager.GetService<AuthenticationClient>().IsLoggedIn;
			UpdateTitle();

			if (IsEnabled)
				return;

			var res = new MessageBoxBuilder()
					.Owner(this)
					.Text(LocalizedStrings.Str3207)
					.Warning()
					.YesNo()
					.Show();

			if (res == MessageBoxResult.Yes)
				cmdSvc.Process(this, new LogInCommand());
		}
 public MessageBoxBuilderTests()
 {
     _messageBox = new MessageBox(new ViewContext(), new Mock<IClientSideObjectWriterFactory>().Object);
     _builder = new MessageBoxBuilder(_messageBox);
 }
예제 #40
0
        private void ChatControl_OnLoaded()
        {
            var client = Client;

            client.AuthorAdded    += OnAuthorAdded;
            client.AuthorDeleted  += OnAuthorDeleted;
            client.JoinAccepted   += OnJoinAccepted;
            client.JoinRejected   += OnJoinRejected;
            client.JoinSended     += OnJoinSended;
            client.LoggedIn       += OnLoggedIn;
            client.LoggedOut      += OnLoggedOut;
            client.MessageCreated += OnMessageCreated;
            client.MessageUpdated += OnMessageUpdated;
            client.MessageDeleted += OnMessageDeleted;
            client.RoomCreated    += OnRoomCreated;
            client.RoomDeleted    += OnRoomDeleted;
            client.RoomUpdated    += OnRoomUpdated;

            var cmdSvc = ConfigManager.GetService <IStudioCommandService>();

            cmdSvc.Register <LoggedInCommand>(this, false, cmd =>
            {
                IsEnabled = true;

                var rooms = _chatRooms.ToDictionary(i => i.Room, i => i);

                foreach (var room in client.AllRooms)
                {
                    var item = rooms.TryGetValue(room);

                    if (item != null)
                    {
                        rooms.Remove(room);
                        continue;
                    }

                    item = new RoomItem(room);
                    item.Users.AddRange(client.GetAuthors(room));
                    _chatRooms.Add(item);
                }

                _chatRooms.RemoveRange(rooms.Values);
                UpdateTitle();
            });
            cmdSvc.Register <LoggedOutCommand>(this, false, cmd =>
            {
                IsEnabled = false;
                UpdateTitle();
            });

            IsEnabled = ConfigManager.GetService <AuthenticationClient>().IsLoggedIn;
            UpdateTitle();

            if (IsEnabled)
            {
                return;
            }

            var res = new MessageBoxBuilder()
                      .Owner(this)
                      .Text(LocalizedStrings.Str3207)
                      .Warning()
                      .YesNo()
                      .Show();

            if (res == MessageBoxResult.Yes)
            {
                cmdSvc.Process(this, new LogInCommand());
            }
        }