-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathServiceStackVueSpaCreate.cs
More file actions
49 lines (41 loc) · 1.71 KB
/
ServiceStackVueSpaCreate.cs
File metadata and controls
49 lines (41 loc) · 1.71 KB
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
using FullStackAI.ServiceStack.VueSpa.Helper;
using FullStackAI.Stack;
namespace FullStackAI.ServiceStack.VueSpa;
public class ServiceStackVueSpaCreate : StackCommunication
{
private readonly string _vueProjectPath;
public ServiceStackVueSpaCreate(StackType type, string projectPath, string vueProjectPath) : base(type, projectPath)
{
_vueProjectPath = vueProjectPath;
}
public override IStackWriter GetStackView()
{
var gen = new CreateVueGenerator(CreateCreateEndPointOptions.FromType(Type.InnerType));
var component = gen.Create();
var inlineComponent = gen.CreateInline();
var name = Type.InnerType.Name;
return new ServiceStackStackViewWriter
{
ViewFile = new StackFile(component.Render(),
$"{_vueProjectPath}{Path.DirectorySeparatorChar}{name}{Path.DirectorySeparatorChar}{name}.vue"),
InlineFile = new StackFile(inlineComponent.Render(),
$"{_vueProjectPath}{Path.DirectorySeparatorChar}{name}{Path.DirectorySeparatorChar}{name}.vue"),
Name = name
};
}
public override IStackWriter GetStackEndPoint()
{
var createEndPoint = new ServiceStackCreateEndPoint(ServiceStackCreateEndPointOptions.FromType(Type.InnerType));
return new ServiceStackStackEndPointWriter
{
ClassFileContents = createEndPoint.Create(),
RequestObjectFileContents = createEndPoint.CreateRequestClass(),
ResponseObjectFileContents = createEndPoint.CreateResponseType(),
FileFolder = ProjectPath
};
}
public override IStackWriter GetStackMessageQueue()
{
throw new NotImplementedException();
}
}