-
Notifications
You must be signed in to change notification settings - Fork 0
/
shared.go
65 lines (58 loc) · 2.55 KB
/
shared.go
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package pkg
import (
contracts_serviceprovider "github.com/fluffy-bunny/grpcdotnetgo/pkg/contracts/serviceprovider"
services_BackgroundTasks "github.com/fluffy-bunny/grpcdotnetgo/pkg/services/backgroundtasks"
services_claimsprincipal "github.com/fluffy-bunny/grpcdotnetgo/pkg/services/claimsprincipal"
services_Logger "github.com/fluffy-bunny/grpcdotnetgo/pkg/services/logger"
services_metadatafilter "github.com/fluffy-bunny/grpcdotnetgo/pkg/services/metadatafilter"
services_request "github.com/fluffy-bunny/grpcdotnetgo/pkg/services/request"
services_serviceprovider "github.com/fluffy-bunny/grpcdotnetgo/pkg/services/serviceprovider"
services_timeutils "github.com/fluffy-bunny/grpcdotnetgo/pkg/services/timeutils"
services_uuid "github.com/fluffy-bunny/grpcdotnetgo/pkg/services/uuid"
di "github.com/fluffy-bunny/sarulabsdi"
_ "github.com/gogo/protobuf/gogoproto" // ensures that go mod vendor brings it down
)
const (
// SupportPackageIsVersion7 ...
SupportPackageIsVersion7 = true
)
// DotNetGoBuilder ...
type DotNetGoBuilder struct {
Builder *di.Builder
Container di.Container
}
// NewDotNetGoBuilder ...
func NewDotNetGoBuilder() (*DotNetGoBuilder, error) {
builder, err := di.NewBuilder(di.App, di.Request, "transient")
if err != nil {
return nil, err
}
return &DotNetGoBuilder{
Builder: builder,
}, nil
}
// AddDefaultService ...
func (dngbuilder *DotNetGoBuilder) AddDefaultService() {
builder := dngbuilder.Builder
services_claimsprincipal.AddScopedIClaimsPrincipal(builder)
services_request.AddScopedIRequest(builder)
services_request.AddScopedIItems(builder)
services_Logger.AddScopedILogger(builder)
services_Logger.AddSingletonILogger(builder)
services_BackgroundTasks.AddSingletonBackgroundTasks(builder)
services_metadatafilter.AddSingletonIMetadataFilterMiddlewareNil(builder)
services_serviceprovider.AddServiceProviders(builder)
services_timeutils.AddSingletonITime(builder)
services_timeutils.AddSingletonITimeUtils(builder)
services_timeutils.AddTimeNow(builder)
services_timeutils.AddTimeParse(builder)
services_uuid.AddSingletonIKSUID(builder)
}
// Build ...
func (dngbuilder *DotNetGoBuilder) Build() di.Container {
dngbuilder.Container = dngbuilder.Builder.Build()
serviceProvider := contracts_serviceprovider.GetISingletonServiceProviderFromContainer(dngbuilder.Container)
serviceProviderInternal := serviceProvider.(contracts_serviceprovider.ISingletonServiceProviderInternal)
serviceProviderInternal.SetContainer(dngbuilder.Container)
return dngbuilder.Container
}