private void LoadProfile(Profile profile)
		{
			if (profile == null)
				throw new Exception("Profile is null (most likely file is corrupted).");

			_profile = profile;

			if (ConfigurationViewModel != null)
			{
				ConfigurationViewModel.ConfigurationUpdated -= OnConfigurationChanged;
				foreach (var sessionViewModel in SessionViewModels)
					sessionViewModel.SessionUpdated -= OnConfigurationChanged;
			}

			ConfigurationViewModel = new ConfigurationViewModel(profile.Configuration);
			ConfigurationViewModel.ConfigurationUpdated += OnConfigurationChanged;

			SessionViewModels.Clear();
			foreach (var session in profile.Sessions)
			{
				var sessionViewModel = new SessionViewModel(session, profile.Configuration, profile.DefaultValues);
				sessionViewModel.SessionUpdated += OnConfigurationChanged;
				SessionViewModels.Add(sessionViewModel);
			}

			ActiveSessionViewModel = SessionViewModels.FirstOrDefault(s => s.Active) ?? SessionViewModels.First();

			NewDps = new ValueCorrectionViewModel(ValueType.Double);
			HasUnsavedChanges = false;
		}
示例#2
0
		public static double CalculateDps(Profile profile)
		{
			return CalculateDps(profile.ActiveSession, profile.Configuration);
		}
示例#3
0
		public static ConfigurationCorrection FindHighestDpsCorrection(Profile profile, Session session)
		{
			var budget = profile.Configuration.Budget;
			return FindHighestDpsCorrection(session, profile.Configuration.Clone(), new ConfigurationCorrection(), budget, budget/10, budget);
		}
示例#4
0
		public static ConfigurationCorrection FindHighestDpsCorrection(Profile profile, int budget)
		{
			return FindHighestDpsCorrection(profile.ActiveSession, profile.Configuration.Clone(), new ConfigurationCorrection(), budget, budget / 10, budget);
		}
示例#5
0
		public static ConfigurationCorrection FindHighestDpsCorrection(Profile profile)
		{
			return FindHighestDpsCorrection(profile, profile.Configuration.Budget);
		}