-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConfiguration.fs
45 lines (40 loc) · 1.22 KB
/
Configuration.fs
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
37
38
39
40
41
42
43
44
45
module Configuration
open System
open System.IO
open Microsoft.Extensions.Configuration
[<CLIMutable>]
type TemplatesConfiguration =
{ TemplatesFolder: string
Default: string
}
static member DefaultConfig =
{ TemplatesFolder = "./assets/templates/"
Default = "template.lbx"
}
[<CLIMutable>]
type PrintConfiguration =
{ Templates: TemplatesConfiguration
MediaName: string
Print: bool
EventDate: string
EventBriteAccessToken: string
ServiceBusConnection: string
ServiceBusQueue: string
}
static member DefaultConfig =
{
Templates = TemplatesConfiguration.DefaultConfig
MediaName = "2.4\" x 3.9\""
Print = false
EventDate = String.Empty
EventBriteAccessToken = String.Empty
ServiceBusConnection = String.Empty
ServiceBusQueue = String.Empty
}
let private cfgBuilder (file: string) =
ConfigurationBuilder()
.SetBasePath(AppContext.BaseDirectory)
.AddJsonFile(file)
.Build()
let cfg = PrintConfiguration.DefaultConfig
cfgBuilder("print-server.json").Bind(cfg)