/
NewSessionExecutor.cs
36 lines (28 loc) · 1.2 KB
/
NewSessionExecutor.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
namespace Winium.StoreApps.Driver.CommandExecutors
{
#region
using Newtonsoft.Json;
using Winium.StoreApps.Common;
using Winium.StoreApps.Driver.Automator;
#endregion
internal class NewSessionExecutor : CommandExecutorBase
{
#region Methods
protected override string DoImpl()
{
// It is easier to reparse desired capabilities as JSON instead of re-mapping keys to attributes and calling type conversions,
// so we will take possible one time performance hit by serializing Dictionary and deserializing it as Capabilities object
var serializedCapability =
JsonConvert.SerializeObject(this.ExecutedCommand.Parameters["desiredCapabilities"]);
this.Automator.ActualCapabilities = Capabilities.CapabilitiesFromJsonString(serializedCapability);
this.Automator.InitializeApp();
if (this.Automator.ActualCapabilities.AutoLaunch)
{
this.Automator.Deployer.Launch();
this.Automator.ConnectToApp();
}
return this.JsonResponse(ResponseStatus.Success, this.Automator.ActualCapabilities);
}
#endregion
}
}