1
0
Fork 0
mirror of https://github.com/hawkeye-stan/msfs-popout-panel-manager.git synced 2024-10-16 14:10:45 +00:00
msfs-popout-panel-manager/Orchestration/ProfileOrchestrator.cs

54 lines
1.9 KiB
C#
Raw Normal View History

2022-07-23 19:23:32 +00:00
using MSFSPopoutPanelManager.Shared;
2022-08-02 15:51:28 +00:00
using System.Linq;
2022-07-23 19:23:32 +00:00
namespace MSFSPopoutPanelManager.Orchestration
{
public class ProfileOrchestrator : ObservableObject
{
internal ProfileData ProfileData { get; set; }
2022-08-02 15:51:28 +00:00
internal FlightSimData FlightSimData { get; set; }
2022-07-23 19:23:32 +00:00
public void AddProfile(string profileName, int copyProfileId)
{
if (copyProfileId == -1)
ProfileData.AddProfile(profileName);
else
ProfileData.AddProfile(profileName, copyProfileId);
2022-08-02 15:51:28 +00:00
// Automatically bind aircraft
var boundProfile = ProfileData.Profiles.FirstOrDefault(p => p.BindingAircrafts.Any(p => p == FlightSimData.CurrentMsfsAircraft));
if (boundProfile == null && FlightSimData.HasCurrentMsfsAircraft)
{
ProfileData.ActiveProfile.BindingAircrafts.Add(FlightSimData.CurrentMsfsAircraft);
ProfileData.WriteProfiles();
ProfileData.RefreshProfile();
}
2022-07-23 19:23:32 +00:00
}
public void DeleteActiveProfile()
{
if (ProfileData.ActiveProfile != null)
ProfileData.DeleteProfile(ProfileData.ActiveProfile.ProfileId);
}
public void ChangeProfile(int profileId)
{
if (ProfileData != null)
ProfileData.UpdateActiveProfile(profileId);
}
2022-08-01 23:21:42 +00:00
public void AddProfileBinding(string bindingAircraft)
2022-07-23 19:23:32 +00:00
{
2022-08-13 06:14:49 +00:00
if (ProfileData.ActiveProfile != null && bindingAircraft != null)
2022-08-01 23:21:42 +00:00
ProfileData.AddProfileBinding(bindingAircraft, ProfileData.ActiveProfile.ProfileId);
2022-07-23 19:23:32 +00:00
}
2022-08-01 23:21:42 +00:00
public void DeleteProfileBinding(string bindingAircraft)
2022-07-23 19:23:32 +00:00
{
2022-08-13 06:14:49 +00:00
if (ProfileData.ActiveProfile != null && bindingAircraft != null)
2022-08-01 23:21:42 +00:00
ProfileData.DeleteProfileBinding(bindingAircraft, ProfileData.ActiveProfile.ProfileId);
2022-07-23 19:23:32 +00:00
}
}
}