first commit
This commit is contained in:
commit
cb72cb6ed6
BIN
.vs/Clienty/DesignTimeBuild/.dtbcache.v2
Normal file
BIN
.vs/Clienty/DesignTimeBuild/.dtbcache.v2
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.vs/Clienty/v17/.futdcache.v2
Normal file
BIN
.vs/Clienty/v17/.futdcache.v2
Normal file
Binary file not shown.
BIN
.vs/Clienty/v17/.suo
Normal file
BIN
.vs/Clienty/v17/.suo
Normal file
Binary file not shown.
157
.vs/Clienty/v17/DocumentLayout.backup.json
Normal file
157
.vs/Clienty/v17/DocumentLayout.backup.json
Normal file
@ -0,0 +1,157 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\addedit.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\addedit.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\addedit.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\addedit.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\models\\client.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\models\\client.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\models\\gender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\models\\gender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 3,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "AddEdit.axaml",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\AddEdit.axaml",
|
||||
"RelativeDocumentMoniker": "Clienty\\AddEdit.axaml",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\AddEdit.axaml",
|
||||
"RelativeToolTip": "Clienty\\AddEdit.axaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2025-05-07T01:09:59.58Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "AddEdit.axaml.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\AddEdit.axaml.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\AddEdit.axaml.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\AddEdit.axaml.cs",
|
||||
"RelativeToolTip": "Clienty\\AddEdit.axaml.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAB4AAAAQAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-07T01:09:59.021Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "Gender.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Models\\Gender.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\Models\\Gender.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Models\\Gender.cs",
|
||||
"RelativeToolTip": "Clienty\\Models\\Gender.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-07T00:51:41.31Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "Client.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Models\\Client.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\Models\\Client.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Models\\Client.cs",
|
||||
"RelativeToolTip": "Clienty\\Models\\Client.cs",
|
||||
"ViewState": "AgIAABQAAAAAAAAAAAAswA8AAAAdAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-02T23:50:33.285Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "Helper.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Helper.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\Helper.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Helper.cs",
|
||||
"RelativeToolTip": "Clienty\\Helper.cs",
|
||||
"ViewState": "AgIAAAYAAAAAAAAAAAAAABgAAAALAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-02T22:16:47.589Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"Title": "MainWindow.axaml",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\MainWindow.axaml",
|
||||
"RelativeDocumentMoniker": "Clienty\\MainWindow.axaml",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\MainWindow.axaml",
|
||||
"RelativeToolTip": "Clienty\\MainWindow.axaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2025-04-26T17:09:12.47Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "MainWindow.axaml.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\MainWindow.axaml.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\MainWindow.axaml.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\MainWindow.axaml.cs",
|
||||
"RelativeToolTip": "Clienty\\MainWindow.axaml.cs",
|
||||
"ViewState": "AgIAABcAAAAAAAAAAAAgwB8AAAAcAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-04-26T17:09:08.505Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"DockedWidth": 73,
|
||||
"SelectedChildIndex": -1,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:1:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
161
.vs/Clienty/v17/DocumentLayout.json
Normal file
161
.vs/Clienty/v17/DocumentLayout.json
Normal file
@ -0,0 +1,161 @@
|
||||
{
|
||||
"Version": 1,
|
||||
"WorkspaceRootPath": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\",
|
||||
"Documents": [
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\addedit.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\addedit.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\models\\client.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\models\\client.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\models\\gender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\models\\gender.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\mainwindow.axaml.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\addedit.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\addedit.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
|
||||
},
|
||||
{
|
||||
"AbsoluteMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|f:\\clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\clienty\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}",
|
||||
"RelativeMoniker": "D:0:0:{2B1735C4-837F-441F-95C9-52D10387902A}|Clienty\\Clienty.csproj|solutionrelative:clienty\\mainwindow.axaml||{6D5344A2-2FCD-49DE-A09D-6A14FD1B1224}"
|
||||
}
|
||||
],
|
||||
"DocumentGroupContainers": [
|
||||
{
|
||||
"Orientation": 0,
|
||||
"VerticalTabListWidth": 256,
|
||||
"DocumentGroups": [
|
||||
{
|
||||
"DockedWidth": 200,
|
||||
"SelectedChildIndex": 3,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 5,
|
||||
"Title": "AddEdit.axaml",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\AddEdit.axaml",
|
||||
"RelativeDocumentMoniker": "Clienty\\AddEdit.axaml",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\AddEdit.axaml",
|
||||
"RelativeToolTip": "Clienty\\AddEdit.axaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2025-05-07T01:09:59.58Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 0,
|
||||
"Title": "AddEdit.axaml.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\AddEdit.axaml.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\AddEdit.axaml.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\AddEdit.axaml.cs",
|
||||
"RelativeToolTip": "Clienty\\AddEdit.axaml.cs",
|
||||
"ViewState": "AgIAAA8AAAAAAAAAAADwvx4AAAAQAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-07T01:09:59.021Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 2,
|
||||
"Title": "Gender.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Models\\Gender.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\Models\\Gender.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Models\\Gender.cs",
|
||||
"RelativeToolTip": "Clienty\\Models\\Gender.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-07T00:51:41.31Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 1,
|
||||
"Title": "Client.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Models\\Client.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\Models\\Client.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Models\\Client.cs",
|
||||
"RelativeToolTip": "Clienty\\Models\\Client.cs",
|
||||
"ViewState": "AgIAABQAAAAAAAAAAAAswA8AAAAdAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-02T23:50:33.285Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 3,
|
||||
"Title": "Helper.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Helper.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\Helper.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\Helper.cs",
|
||||
"RelativeToolTip": "Clienty\\Helper.cs",
|
||||
"ViewState": "AgIAAAYAAAAAAAAAAAAAABgAAAALAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-05-02T22:16:47.589Z",
|
||||
"EditorCaption": ""
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 6,
|
||||
"Title": "MainWindow.axaml",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\MainWindow.axaml",
|
||||
"RelativeDocumentMoniker": "Clienty\\MainWindow.axaml",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\MainWindow.axaml",
|
||||
"RelativeToolTip": "Clienty\\MainWindow.axaml",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003549|",
|
||||
"WhenOpened": "2025-04-26T17:09:12.47Z"
|
||||
},
|
||||
{
|
||||
"$type": "Document",
|
||||
"DocumentIndex": 4,
|
||||
"Title": "MainWindow.axaml.cs",
|
||||
"DocumentMoniker": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\MainWindow.axaml.cs",
|
||||
"RelativeDocumentMoniker": "Clienty\\MainWindow.axaml.cs",
|
||||
"ToolTip": "F:\\Clienty \u2014 \u043A\u043E\u043F\u0438\u044F\\Clienty\\MainWindow.axaml.cs",
|
||||
"RelativeToolTip": "Clienty\\MainWindow.axaml.cs",
|
||||
"ViewState": "AgIAAAAAAAAAAAAAAAAAAFkAAAAQAAAAAAAAAA==",
|
||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||
"WhenOpened": "2025-04-26T17:09:08.505Z",
|
||||
"EditorCaption": ""
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"DockedWidth": 73,
|
||||
"SelectedChildIndex": -1,
|
||||
"Children": [
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:1:0:{d212f56b-c48a-434c-a121-1c5d80b59b9f}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{d78612c7-9962-4b83-95d9-268046dad23a}"
|
||||
},
|
||||
{
|
||||
"$type": "Bookmark",
|
||||
"Name": "ST:0:0:{34e76e81-ee4a-11d0-ae2e-00a0c90fffc3}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
BIN
.vs/ProjectEvaluation/clienty.metadata.v9.bin
Normal file
BIN
.vs/ProjectEvaluation/clienty.metadata.v9.bin
Normal file
Binary file not shown.
BIN
.vs/ProjectEvaluation/clienty.projects.v9.bin
Normal file
BIN
.vs/ProjectEvaluation/clienty.projects.v9.bin
Normal file
Binary file not shown.
BIN
.vs/ProjectEvaluation/clienty.strings.v9.bin
Normal file
BIN
.vs/ProjectEvaluation/clienty.strings.v9.bin
Normal file
Binary file not shown.
25
Clienty.sln
Normal file
25
Clienty.sln
Normal file
@ -0,0 +1,25 @@
|
||||
|
||||
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||
# Visual Studio Version 17
|
||||
VisualStudioVersion = 17.14.35906.104 d17.14
|
||||
MinimumVisualStudioVersion = 10.0.40219.1
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Clienty", "Clienty\Clienty.csproj", "{2B1735C4-837F-441F-95C9-52D10387902A}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Release|Any CPU = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{2B1735C4-837F-441F-95C9-52D10387902A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2B1735C4-837F-441F-95C9-52D10387902A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2B1735C4-837F-441F-95C9-52D10387902A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2B1735C4-837F-441F-95C9-52D10387902A}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {A7858E6A-A55F-4D2B-BBCA-E599D6BA89DE}
|
||||
EndGlobalSection
|
||||
EndGlobal
|
129
Clienty/AddEdit.axaml
Normal file
129
Clienty/AddEdit.axaml
Normal file
@ -0,0 +1,129 @@
|
||||
<Window xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d"
|
||||
d:DesignWidth="400"
|
||||
d:DesignHeight="500"
|
||||
x:Class="Clienty.AddEdit"
|
||||
x:CompileBindings="False"
|
||||
Title="Addedit"
|
||||
SizeToContent="WidthAndHeight"
|
||||
MinWidth="400">
|
||||
|
||||
<Grid Margin="20">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
<!-- Main Form -->
|
||||
<Grid Grid.Row="1"
|
||||
RowDefinitions="Auto,Auto,Auto,Auto,Auto,Auto,Auto,Auto"
|
||||
ColumnDefinitions="Auto,*"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Top">
|
||||
|
||||
<!-- First Name -->
|
||||
<TextBlock Text="Имя:"
|
||||
Grid.Row="0" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,10,10"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1"
|
||||
x:Name="FirstNameTextBox"
|
||||
Text="{Binding Firstname}"
|
||||
MinWidth="200"
|
||||
Margin="0,0,0,10"/>
|
||||
|
||||
<!-- Last Name -->
|
||||
<TextBlock Text="Фамилия:"
|
||||
Grid.Row="1" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,10,10"/>
|
||||
<TextBox Grid.Row="1" Grid.Column="1"
|
||||
Text="{Binding Lastname}"
|
||||
x:Name="LastNameTextBox"
|
||||
MinWidth="200"
|
||||
Margin="0,0,0,10"/>
|
||||
|
||||
<!-- Patronymic -->
|
||||
<TextBlock Text="Отчество:"
|
||||
Grid.Row="2" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,10,10"/>
|
||||
<TextBox Grid.Row="2" Grid.Column="1"
|
||||
Text="{Binding Patronymic}"
|
||||
MinWidth="200"
|
||||
x:Name="PatronymicTextBox"
|
||||
Margin="0,0,0,10"/>
|
||||
|
||||
<!-- Birth Date -->
|
||||
<TextBlock Text="Дата рождения:"
|
||||
Grid.Row="3" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,10,10"/>
|
||||
<DatePicker x:Name="BirthDateDataPicker"
|
||||
Grid.Row="3" Grid.Column="1"
|
||||
MinWidth="200"
|
||||
Margin="0,0,0,10"/>
|
||||
|
||||
<!-- Registration Date -->
|
||||
<TextBlock Text="Дата регистрации:"
|
||||
Grid.Row="4" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,10,10"/>
|
||||
<DatePicker x:Name="RegDateDataPicker"
|
||||
Grid.Row="4" Grid.Column="1"
|
||||
MinWidth="200"
|
||||
Margin="0,0,0,10"/>
|
||||
|
||||
<!-- Gender -->
|
||||
<TextBlock Text="Пол:"
|
||||
Grid.Row="5" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,10,10"/>
|
||||
<ComboBox x:Name="GenderCombobox"
|
||||
Grid.Row="5" Grid.Column="1"
|
||||
MinWidth="200"
|
||||
DisplayMemberBinding="{Binding Name}"
|
||||
Margin="0,0,0,10"/>
|
||||
|
||||
<!-- Email -->
|
||||
<TextBlock Text="Почта:"
|
||||
Grid.Row="6" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,10,10"/>
|
||||
<TextBox Grid.Row="6" Grid.Column="1"
|
||||
Text="{Binding Email}"
|
||||
x:Name="EmailtextBox"
|
||||
MinWidth="200"
|
||||
Margin="0,0,0,10"/>
|
||||
|
||||
<!-- Phone -->
|
||||
<TextBlock Text="Телефон:"
|
||||
Grid.Row="7" Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
Margin="0,0,10,10"/>
|
||||
<TextBox Grid.Row="7" Grid.Column="1"
|
||||
Text="{Binding Phone}"
|
||||
x:Name="PhoneTextBox"
|
||||
MinWidth="200"
|
||||
Margin="0,0,0,10"/>
|
||||
</Grid>
|
||||
|
||||
<!-- Buttons -->
|
||||
<StackPanel Grid.Row="2"
|
||||
Orientation="Horizontal"
|
||||
HorizontalAlignment="Center"
|
||||
Spacing="10"
|
||||
Margin="0,20,0,0">
|
||||
<Button Content="Сохранить"
|
||||
Width="120"
|
||||
Click="Button_Click"/>
|
||||
<Button Content="Отмена"
|
||||
Width="120"
|
||||
/>
|
||||
</StackPanel>
|
||||
</Grid>
|
||||
</Window>
|
64
Clienty/AddEdit.axaml.cs
Normal file
64
Clienty/AddEdit.axaml.cs
Normal file
@ -0,0 +1,64 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Markup.Xaml;
|
||||
using Clienty.Models;
|
||||
using System;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
|
||||
namespace Clienty;
|
||||
|
||||
public partial class AddEdit : Window
|
||||
{
|
||||
public AddEdit()
|
||||
{
|
||||
InitializeComponent();
|
||||
GenderCombobox.ItemsSource = Helper.DBcontext.Genders.ToList();
|
||||
int Index = -1;
|
||||
}
|
||||
|
||||
private void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
|
||||
{
|
||||
try
|
||||
{
|
||||
Client newClient = new Client();
|
||||
|
||||
// Assign new ID
|
||||
newClient.Id = Helper.DBcontext.Clients.Count() + 1;
|
||||
|
||||
// Assign basic fields from input controls
|
||||
newClient.Firstname = FirstNameTextBox.Text;
|
||||
newClient.Lastname = LastNameTextBox.Text;
|
||||
newClient.Patronymic = PatronymicTextBox.Text;
|
||||
newClient.Email = EmailtextBox.Text;
|
||||
newClient.Phone = PhoneTextBox.Text;
|
||||
|
||||
// Convert DatePicker to DateOnly
|
||||
if (BirthDateDataPicker.SelectedDate.HasValue)
|
||||
newClient.Birthday = DateOnly.FromDateTime(BirthDateDataPicker.SelectedDate.Value.DateTime);
|
||||
|
||||
// Convert DatePicker to DateTime (Registration Date)
|
||||
if (RegDateDataPicker.SelectedDate.HasValue)
|
||||
newClient.Registrationdate = RegDateDataPicker.SelectedDate.Value.DateTime;
|
||||
else
|
||||
newClient.Registrationdate = DateTime.Now; // fallback default
|
||||
|
||||
// Assign Gender
|
||||
if (GenderCombobox.SelectedItem is Gender selectedGender)
|
||||
newClient.Gendercode = selectedGender.Code;
|
||||
|
||||
// Save to DB
|
||||
Helper.DBcontext.Clients.Add(newClient);
|
||||
Helper.DBcontext.SaveChanges();
|
||||
|
||||
// Go back to main window
|
||||
Close();
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
10
Clienty/App.axaml
Normal file
10
Clienty/App.axaml
Normal file
@ -0,0 +1,10 @@
|
||||
<Application xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
x:Class="Clienty.App"
|
||||
RequestedThemeVariant="Default">
|
||||
<!-- "Default" ThemeVariant follows system theme variant. "Dark" or "Light" are other available options. -->
|
||||
|
||||
<Application.Styles>
|
||||
<FluentTheme />
|
||||
</Application.Styles>
|
||||
</Application>
|
24
Clienty/App.axaml.cs
Normal file
24
Clienty/App.axaml.cs
Normal file
@ -0,0 +1,24 @@
|
||||
using Avalonia;
|
||||
using Avalonia.Controls.ApplicationLifetimes;
|
||||
using Avalonia.Markup.Xaml;
|
||||
|
||||
namespace Clienty
|
||||
{
|
||||
public partial class App : Application
|
||||
{
|
||||
public override void Initialize()
|
||||
{
|
||||
AvaloniaXamlLoader.Load(this);
|
||||
}
|
||||
|
||||
public override void OnFrameworkInitializationCompleted()
|
||||
{
|
||||
if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
|
||||
{
|
||||
desktop.MainWindow = new MainWindow();
|
||||
}
|
||||
|
||||
base.OnFrameworkInitializationCompleted();
|
||||
}
|
||||
}
|
||||
}
|
28
Clienty/Clienty.csproj
Normal file
28
Clienty/Clienty.csproj
Normal file
@ -0,0 +1,28 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<BuiltInComInteropSupport>true</BuiltInComInteropSupport>
|
||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||
<AvaloniaUseCompiledBindingsByDefault>true</AvaloniaUseCompiledBindingsByDefault>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia" Version="11.0.10" />
|
||||
<PackageReference Include="Avalonia.Desktop" Version="11.0.10" />
|
||||
<PackageReference Include="Avalonia.Themes.Fluent" Version="11.0.10" />
|
||||
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.0.10" />
|
||||
<PackageReference Include="MessageBox.Avalonia" Version="3.1.5" />
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.8.0" />
|
||||
|
||||
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
|
||||
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.0.10" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.4" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.4">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="9.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
363
Clienty/Context/User19Context.cs
Normal file
363
Clienty/Context/User19Context.cs
Normal file
@ -0,0 +1,363 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Clienty.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace Clienty.Context;
|
||||
|
||||
public partial class User19Context : DbContext
|
||||
{
|
||||
public User19Context()
|
||||
{
|
||||
}
|
||||
|
||||
public User19Context(DbContextOptions<User19Context> options)
|
||||
: base(options)
|
||||
{
|
||||
}
|
||||
|
||||
public virtual DbSet<Client> Clients { get; set; }
|
||||
|
||||
public virtual DbSet<Clientservice> Clientservices { get; set; }
|
||||
|
||||
public virtual DbSet<Documentbyservice> Documentbyservices { get; set; }
|
||||
|
||||
public virtual DbSet<Gender> Genders { get; set; }
|
||||
|
||||
public virtual DbSet<Manufacturer> Manufacturers { get; set; }
|
||||
|
||||
public virtual DbSet<Product> Products { get; set; }
|
||||
|
||||
public virtual DbSet<Productphoto> Productphotos { get; set; }
|
||||
|
||||
public virtual DbSet<Productsale> Productsales { get; set; }
|
||||
|
||||
public virtual DbSet<Service> Services { get; set; }
|
||||
|
||||
public virtual DbSet<Servicephoto> Servicephotos { get; set; }
|
||||
|
||||
public virtual DbSet<Tag> Tags { get; set; }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. You can avoid scaffolding the connection string by using the Name= syntax to read it from configuration - see https://go.microsoft.com/fwlink/?linkid=2131148. For more guidance on storing connection strings, see https://go.microsoft.com/fwlink/?LinkId=723263.
|
||||
=> optionsBuilder.UseNpgsql("Host=45.67.56.214;Port=5454;Password=oplwLVnn;Database=user19;Username=user19");
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.Entity<Client>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("client_pkey");
|
||||
|
||||
entity.ToTable("client", "task16-09");
|
||||
|
||||
entity.HasIndex(e => e.Gendercode, "IX_client_gendercode");
|
||||
|
||||
entity.Property(e => e.Id).HasColumnName("id");
|
||||
entity.Property(e => e.Birthday).HasColumnName("birthday");
|
||||
entity.Property(e => e.Email)
|
||||
.HasMaxLength(255)
|
||||
.HasColumnName("email");
|
||||
entity.Property(e => e.Firstname)
|
||||
.HasMaxLength(50)
|
||||
.HasColumnName("firstname");
|
||||
entity.Property(e => e.Gendercode)
|
||||
.HasMaxLength(1)
|
||||
.HasColumnName("gendercode");
|
||||
entity.Property(e => e.Lastname)
|
||||
.HasMaxLength(50)
|
||||
.HasColumnName("lastname");
|
||||
entity.Property(e => e.Patronymic)
|
||||
.HasMaxLength(50)
|
||||
.HasColumnName("patronymic");
|
||||
entity.Property(e => e.Phone)
|
||||
.HasMaxLength(20)
|
||||
.HasColumnName("phone");
|
||||
entity.Property(e => e.Photopath)
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnName("photopath");
|
||||
entity.Property(e => e.Registrationdate)
|
||||
.HasColumnType("timestamp(6) without time zone")
|
||||
.HasColumnName("registrationdate");
|
||||
|
||||
entity.HasOne(d => d.GendercodeNavigation).WithMany(p => p.Clients)
|
||||
.HasForeignKey(d => d.Gendercode)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_client_gender");
|
||||
|
||||
entity.HasMany(d => d.Tags).WithMany(p => p.Clients)
|
||||
.UsingEntity<Dictionary<string, object>>(
|
||||
"Tagofclient",
|
||||
r => r.HasOne<Tag>().WithMany()
|
||||
.HasForeignKey("Tagid")
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("tagofclient_tag_fk"),
|
||||
l => l.HasOne<Client>().WithMany()
|
||||
.HasForeignKey("Clientid")
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_tagofclient_client"),
|
||||
j =>
|
||||
{
|
||||
j.HasKey("Clientid", "Tagid").HasName("tagofclient_pkey");
|
||||
j.ToTable("tagofclient", "task16-09");
|
||||
j.HasIndex(new[] { "Tagid" }, "IX_tagofclient_tagid");
|
||||
j.IndexerProperty<int>("Clientid").HasColumnName("clientid");
|
||||
j.IndexerProperty<int>("Tagid").HasColumnName("tagid");
|
||||
});
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Clientservice>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("clientservice_pkey");
|
||||
|
||||
entity.ToTable("clientservice", "task16-09");
|
||||
|
||||
entity.HasIndex(e => e.Clientid, "IX_clientservice_clientid");
|
||||
|
||||
entity.HasIndex(e => e.Serviceid, "IX_clientservice_serviceid");
|
||||
|
||||
entity.Property(e => e.Id).HasColumnName("id");
|
||||
entity.Property(e => e.Clientid).HasColumnName("clientid");
|
||||
entity.Property(e => e.Comment).HasColumnName("comment");
|
||||
entity.Property(e => e.Serviceid).HasColumnName("serviceid");
|
||||
entity.Property(e => e.Starttime)
|
||||
.HasColumnType("timestamp(6) without time zone")
|
||||
.HasColumnName("starttime");
|
||||
|
||||
entity.HasOne(d => d.Client).WithMany(p => p.Clientservices)
|
||||
.HasForeignKey(d => d.Clientid)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_clientservice_client");
|
||||
|
||||
entity.HasOne(d => d.Service).WithMany(p => p.Clientservices)
|
||||
.HasForeignKey(d => d.Serviceid)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("clientservice_service_fk");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Documentbyservice>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("documentbyservice_pkey");
|
||||
|
||||
entity.ToTable("documentbyservice", "task16-09");
|
||||
|
||||
entity.HasIndex(e => e.Clientserviceid, "IX_documentbyservice_clientserviceid");
|
||||
|
||||
entity.Property(e => e.Id).HasColumnName("id");
|
||||
entity.Property(e => e.Clientserviceid).HasColumnName("clientserviceid");
|
||||
entity.Property(e => e.Documentpath)
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnName("documentpath");
|
||||
|
||||
entity.HasOne(d => d.Clientservice).WithMany(p => p.Documentbyservices)
|
||||
.HasForeignKey(d => d.Clientserviceid)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_documentbyservice_clientservice");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Gender>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Code).HasName("gender_pkey");
|
||||
|
||||
entity.ToTable("gender", "task16-09");
|
||||
|
||||
entity.Property(e => e.Code)
|
||||
.HasMaxLength(1)
|
||||
.ValueGeneratedNever()
|
||||
.HasColumnName("code");
|
||||
entity.Property(e => e.Name)
|
||||
.HasMaxLength(10)
|
||||
.HasColumnName("name");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Manufacturer>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("manufacturer_pkey");
|
||||
|
||||
entity.ToTable("manufacturer", "task16-09");
|
||||
|
||||
entity.Property(e => e.Id).HasColumnName("id");
|
||||
entity.Property(e => e.Name)
|
||||
.HasMaxLength(100)
|
||||
.HasColumnName("name");
|
||||
entity.Property(e => e.Startdate).HasColumnName("startdate");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Product>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("product_pkey");
|
||||
|
||||
entity.ToTable("product", "task16-09");
|
||||
|
||||
entity.HasIndex(e => e.Manufacturerid, "IX_product_manufacturerid");
|
||||
|
||||
entity.Property(e => e.Id).HasColumnName("id");
|
||||
entity.Property(e => e.Cost)
|
||||
.HasPrecision(19, 4)
|
||||
.HasColumnName("cost");
|
||||
entity.Property(e => e.Description).HasColumnName("description");
|
||||
entity.Property(e => e.Isactive).HasColumnName("isactive");
|
||||
entity.Property(e => e.Mainimagepath)
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnName("mainimagepath");
|
||||
entity.Property(e => e.Manufacturerid).HasColumnName("manufacturerid");
|
||||
entity.Property(e => e.Title)
|
||||
.HasMaxLength(100)
|
||||
.HasColumnName("title");
|
||||
|
||||
entity.HasOne(d => d.Manufacturer).WithMany(p => p.Products)
|
||||
.HasForeignKey(d => d.Manufacturerid)
|
||||
.HasConstraintName("fk_product_manufacturer");
|
||||
|
||||
entity.HasMany(d => d.Attachedproducts).WithMany(p => p.Mainproducts)
|
||||
.UsingEntity<Dictionary<string, object>>(
|
||||
"Attachedproduct",
|
||||
r => r.HasOne<Product>().WithMany()
|
||||
.HasForeignKey("Attachedproductid")
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_attachedproduct_product1"),
|
||||
l => l.HasOne<Product>().WithMany()
|
||||
.HasForeignKey("Mainproductid")
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_attachedproduct_product"),
|
||||
j =>
|
||||
{
|
||||
j.HasKey("Mainproductid", "Attachedproductid").HasName("attachedproduct_pkey");
|
||||
j.ToTable("attachedproduct", "task16-09");
|
||||
j.HasIndex(new[] { "Attachedproductid" }, "IX_attachedproduct_attachedproductid");
|
||||
j.IndexerProperty<int>("Mainproductid").HasColumnName("mainproductid");
|
||||
j.IndexerProperty<int>("Attachedproductid").HasColumnName("attachedproductid");
|
||||
});
|
||||
|
||||
entity.HasMany(d => d.Mainproducts).WithMany(p => p.Attachedproducts)
|
||||
.UsingEntity<Dictionary<string, object>>(
|
||||
"Attachedproduct",
|
||||
r => r.HasOne<Product>().WithMany()
|
||||
.HasForeignKey("Mainproductid")
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_attachedproduct_product"),
|
||||
l => l.HasOne<Product>().WithMany()
|
||||
.HasForeignKey("Attachedproductid")
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_attachedproduct_product1"),
|
||||
j =>
|
||||
{
|
||||
j.HasKey("Mainproductid", "Attachedproductid").HasName("attachedproduct_pkey");
|
||||
j.ToTable("attachedproduct", "task16-09");
|
||||
j.HasIndex(new[] { "Attachedproductid" }, "IX_attachedproduct_attachedproductid");
|
||||
j.IndexerProperty<int>("Mainproductid").HasColumnName("mainproductid");
|
||||
j.IndexerProperty<int>("Attachedproductid").HasColumnName("attachedproductid");
|
||||
});
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Productphoto>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("productphoto_pkey");
|
||||
|
||||
entity.ToTable("productphoto", "task16-09");
|
||||
|
||||
entity.HasIndex(e => e.Productid, "IX_productphoto_productid");
|
||||
|
||||
entity.Property(e => e.Id).HasColumnName("id");
|
||||
entity.Property(e => e.Photopath)
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnName("photopath");
|
||||
entity.Property(e => e.Productid).HasColumnName("productid");
|
||||
|
||||
entity.HasOne(d => d.Product).WithMany(p => p.Productphotos)
|
||||
.HasForeignKey(d => d.Productid)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_productphoto_product");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Productsale>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("productsale_pkey");
|
||||
|
||||
entity.ToTable("productsale", "task16-09");
|
||||
|
||||
entity.HasIndex(e => e.Clientserviceid, "IX_productsale_clientserviceid");
|
||||
|
||||
entity.HasIndex(e => e.Productid, "IX_productsale_productid");
|
||||
|
||||
entity.Property(e => e.Id).HasColumnName("id");
|
||||
entity.Property(e => e.Clientserviceid).HasColumnName("clientserviceid");
|
||||
entity.Property(e => e.Productid).HasColumnName("productid");
|
||||
entity.Property(e => e.Quantity).HasColumnName("quantity");
|
||||
entity.Property(e => e.Saledate)
|
||||
.HasColumnType("timestamp(6) without time zone")
|
||||
.HasColumnName("saledate");
|
||||
|
||||
entity.HasOne(d => d.Clientservice).WithMany(p => p.Productsales)
|
||||
.HasForeignKey(d => d.Clientserviceid)
|
||||
.HasConstraintName("fk_productsale_clientservice");
|
||||
|
||||
entity.HasOne(d => d.Product).WithMany(p => p.Productsales)
|
||||
.HasForeignKey(d => d.Productid)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_productsale_product");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Service>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("service_pkey");
|
||||
|
||||
entity.ToTable("service", "task16-09");
|
||||
|
||||
entity.Property(e => e.Id).HasColumnName("id");
|
||||
entity.Property(e => e.Cost)
|
||||
.HasPrecision(19, 4)
|
||||
.HasColumnName("cost");
|
||||
entity.Property(e => e.Description).HasColumnName("description");
|
||||
entity.Property(e => e.Discount).HasColumnName("discount");
|
||||
entity.Property(e => e.Durationinseconds).HasColumnName("durationinseconds");
|
||||
entity.Property(e => e.Mainimagepath)
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnName("mainimagepath");
|
||||
entity.Property(e => e.Title)
|
||||
.HasMaxLength(100)
|
||||
.HasColumnName("title");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Servicephoto>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("servicephoto_pkey");
|
||||
|
||||
entity.ToTable("servicephoto", "task16-09");
|
||||
|
||||
entity.HasIndex(e => e.Serviceid, "IX_servicephoto_serviceid");
|
||||
|
||||
entity.Property(e => e.Id).HasColumnName("id");
|
||||
entity.Property(e => e.Photopath)
|
||||
.HasMaxLength(1000)
|
||||
.HasColumnName("photopath");
|
||||
entity.Property(e => e.Serviceid).HasColumnName("serviceid");
|
||||
|
||||
entity.HasOne(d => d.Service).WithMany(p => p.Servicephotos)
|
||||
.HasForeignKey(d => d.Serviceid)
|
||||
.OnDelete(DeleteBehavior.ClientSetNull)
|
||||
.HasConstraintName("fk_servicephoto_service");
|
||||
});
|
||||
|
||||
modelBuilder.Entity<Tag>(entity =>
|
||||
{
|
||||
entity.HasKey(e => e.Id).HasName("tag_pkey");
|
||||
|
||||
entity.ToTable("tag", "task16-09");
|
||||
|
||||
entity.Property(e => e.Id)
|
||||
.ValueGeneratedNever()
|
||||
.HasColumnName("id");
|
||||
entity.Property(e => e.Color)
|
||||
.HasMaxLength(8)
|
||||
.IsFixedLength()
|
||||
.HasColumnName("color");
|
||||
entity.Property(e => e.Title)
|
||||
.HasMaxLength(30)
|
||||
.HasColumnName("title");
|
||||
});
|
||||
|
||||
OnModelCreatingPartial(modelBuilder);
|
||||
}
|
||||
|
||||
partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
|
||||
}
|
27
Clienty/Helper.cs
Normal file
27
Clienty/Helper.cs
Normal file
@ -0,0 +1,27 @@
|
||||
using Clienty.Context;
|
||||
using Clienty.Models;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Clienty
|
||||
{
|
||||
public static class Helper
|
||||
{
|
||||
public static User19Context DBcontext = new User19Context();
|
||||
|
||||
public static List<Client> allClients
|
||||
{
|
||||
get => DBcontext.Clients.Include(a => a.GendercodeNavigation).ToList();
|
||||
}
|
||||
public static List<Client> ClientList = allClients;
|
||||
|
||||
//public static string Kolichestvo
|
||||
//{
|
||||
// get => $"{all}"
|
||||
//}
|
||||
}
|
||||
}
|
65
Clienty/MainWindow.axaml
Normal file
65
Clienty/MainWindow.axaml
Normal file
@ -0,0 +1,65 @@
|
||||
<Window xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
|
||||
x:Class="Clienty.MainWindow"
|
||||
x:CompileBindings="False"
|
||||
Title="Clienty">
|
||||
<DockPanel>
|
||||
<Grid ColumnDefinitions="*, *, *" DockPanel.Dock="Top">
|
||||
<TextBox Watermark="Поиск" Margin="5" HorizontalAlignment="Stretch" Grid.Column="0" TextChanged="TextBox_TextChanged" Name="SearchClient" />
|
||||
<ComboBox Margin="5" PlaceholderText="Пол:" HorizontalAlignment="Stretch" Grid.Column="1" SelectionChanged="ComboBox_SelectionChanged" Name="FiltrPoPolu">
|
||||
</ComboBox>
|
||||
<ComboBox PlaceholderText="Отсортировать по:" Grid.Column="2" SelectionChanged="ComboBox_SelectionChanged_1" Name="FiltVsyakoe" Margin="5" HorizontalAlignment="Stretch">
|
||||
</ComboBox>
|
||||
</Grid>
|
||||
<Grid ColumnDefinitions="*, *, *, *" DockPanel.Dock="Bottom">
|
||||
<Button Grid.Column="0" Margin="5" Name="Dobavit" Click="Button_Click" Content="Добавить клиента"/>
|
||||
<TextBlock Name="Kolich" Margin="5" Grid.Column="1"/>
|
||||
|
||||
</Grid>
|
||||
<Border BorderThickness="1" BorderBrush="">
|
||||
<ListBox Name="Listbox">
|
||||
<ListBox.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<Border Tag="{Binding Id}" DoubleTapped="Border_DoubleTapped" Background="#FFFFE1" BorderBrush="DarkOrange" BorderThickness="1" Margin="5">
|
||||
<Grid ColumnDefinitions="350, 350">
|
||||
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" >
|
||||
<StackPanel Spacing="5" Orientation="Horizontal" Grid.Column="0">
|
||||
<TextBlock Text="{Binding Firstname}" />
|
||||
<TextBlock Text="{Binding Lastname}" />
|
||||
<TextBlock Text="{Binding Patronymic}" />
|
||||
</StackPanel>
|
||||
<StackPanel Spacing="5" Orientation="Horizontal">
|
||||
<TextBlock Text="Дата рождения:"/>
|
||||
<TextBlock Text="{Binding Birthday}"/>
|
||||
</StackPanel>
|
||||
<StackPanel Spacing="5" Orientation="Horizontal">
|
||||
<TextBlock Text="Дата регистрации:"/>
|
||||
<TextBlock Text="{Binding Registrationdate }"/>
|
||||
</StackPanel>
|
||||
<StackPanel >
|
||||
<TextBlock Text="{Binding Email }"/>
|
||||
</StackPanel>
|
||||
<StackPanel >
|
||||
<TextBlock Text="{Binding Phone}"/>
|
||||
</StackPanel>
|
||||
<StackPanel Spacing="5" Orientation="Horizontal">
|
||||
<TextBlock Text="Пол:"/>
|
||||
<TextBlock Text="{Binding Gender}"/>
|
||||
</StackPanel>
|
||||
</StackPanel>
|
||||
|
||||
<Border Grid.Column="2" Width="100" Height="100" BorderBrush="DarkOrange" BorderThickness="2" >
|
||||
<Image Source="{Binding Image}" />
|
||||
</Border>
|
||||
</Grid>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
</ListBox.ItemTemplate>
|
||||
</ListBox>
|
||||
</Border>
|
||||
|
||||
</DockPanel>
|
||||
</Window>
|
114
Clienty/MainWindow.axaml.cs
Normal file
114
Clienty/MainWindow.axaml.cs
Normal file
@ -0,0 +1,114 @@
|
||||
using Avalonia.Controls;
|
||||
using Clienty.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Clienty
|
||||
{
|
||||
public partial class MainWindow : Window
|
||||
{
|
||||
List<Client> filteredClientList = new List<Client>();
|
||||
public MainWindow()
|
||||
{
|
||||
InitializeComponent();
|
||||
Listbox.ItemsSource = Helper.ClientList;
|
||||
|
||||
// Список для ComboBox "Пол"
|
||||
List<string> polList = new List<string>
|
||||
{
|
||||
"По умолчанию",
|
||||
"мужчины",
|
||||
"женщины"
|
||||
};
|
||||
FiltrPoPolu.ItemsSource = polList;
|
||||
|
||||
// Список для ComboBox "Отсортировать по"
|
||||
List<string> sortList = new List<string>
|
||||
{
|
||||
"в алфавитном порядке",
|
||||
"по дате регистрации"
|
||||
};
|
||||
FiltVsyakoe.ItemsSource = sortList;
|
||||
}
|
||||
|
||||
|
||||
private void TextBox_TextChanged(object? sender, Avalonia.Controls.TextChangedEventArgs e)
|
||||
{
|
||||
Change();
|
||||
}
|
||||
|
||||
private void ComboBox_SelectionChanged(object? sender, Avalonia.Controls.SelectionChangedEventArgs e)
|
||||
{
|
||||
Change();
|
||||
}
|
||||
|
||||
private void ComboBox_SelectionChanged_1(object? sender, Avalonia.Controls.SelectionChangedEventArgs e)
|
||||
{
|
||||
Change();
|
||||
}
|
||||
|
||||
public void Change()
|
||||
{
|
||||
try
|
||||
{
|
||||
filteredClientList = Helper.ClientList;
|
||||
// search
|
||||
if (!string.IsNullOrEmpty(SearchClient.Text) || !string.IsNullOrWhiteSpace(SearchClient.Text))
|
||||
{
|
||||
var searchText = SearchClient.Text.ToLower().Trim();
|
||||
filteredClientList = string.IsNullOrWhiteSpace(searchText)
|
||||
? Helper.ClientList.ToList() // Если нет текста, показываем всех клиентов
|
||||
: Helper.ClientList.Where(c =>
|
||||
c.Firstname.ToLower().Contains(searchText) ||
|
||||
c.Lastname.ToLower().Contains(searchText) ||
|
||||
(c.Patronymic != null && c.Patronymic.ToLower().Contains(searchText)) ||
|
||||
(c.Email != null && c.Email.ToLower().Contains(searchText)) ||
|
||||
c.Phone.Contains(searchText)
|
||||
).ToList();
|
||||
|
||||
}
|
||||
|
||||
// sort
|
||||
switch (FiltVsyakoe.SelectedIndex)
|
||||
{
|
||||
case 0:
|
||||
filteredClientList = filteredClientList.OrderBy(c => c.Lastname).ToList();
|
||||
break;
|
||||
case 1:
|
||||
filteredClientList = filteredClientList.OrderBy(c => c.Registrationdate).ToList();
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
// filter
|
||||
if (FiltrPoPolu.SelectedIndex > 0)
|
||||
{
|
||||
var selectedGender = FiltrPoPolu.SelectedIndex > 0 && FiltrPoPolu.SelectedItem.ToString() == "мужчины" ? 1 : 2;
|
||||
filteredClientList = filteredClientList.Where(c => c.Gendercode == selectedGender.ToString().ToCharArray()[0]).ToList();
|
||||
}
|
||||
Listbox.ItemsSource = filteredClientList;
|
||||
|
||||
|
||||
}
|
||||
catch
|
||||
{
|
||||
return;
|
||||
}
|
||||
//Kolich.Text =
|
||||
}
|
||||
|
||||
private async void Button_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
|
||||
{
|
||||
await new AddEdit().ShowDialog(this);
|
||||
Change();
|
||||
}
|
||||
|
||||
private async void Border_DoubleTapped(object? sender, Avalonia.Input.TappedEventArgs e)
|
||||
{
|
||||
//var clientId = int.Parse(((sender as Border).Tag as string));
|
||||
//await new AddEdit(clientId).ShowDialog(this);
|
||||
//Change();
|
||||
}
|
||||
}
|
||||
}
|
53
Clienty/Models/Client.cs
Normal file
53
Clienty/Models/Client.cs
Normal file
@ -0,0 +1,53 @@
|
||||
using Avalonia.Media.Imaging;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Client
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Firstname { get; set; } = null!;
|
||||
|
||||
public string Lastname { get; set; } = null!;
|
||||
|
||||
public string? Patronymic { get; set; }
|
||||
|
||||
public DateOnly? Birthday { get; set; }
|
||||
|
||||
public DateTime Registrationdate { get; set; }
|
||||
|
||||
public string? Email { get; set; }
|
||||
|
||||
public string Phone { get; set; } = null!;
|
||||
|
||||
public char Gendercode { get; set; }
|
||||
|
||||
public string Gender { get => Helper.DBcontext.Genders.ToList().FirstOrDefault(r => r.Code == Gendercode).Name; }
|
||||
|
||||
public string? Photopath { get; set; }
|
||||
|
||||
public Bitmap? Image
|
||||
{
|
||||
get
|
||||
{
|
||||
try
|
||||
{
|
||||
return new Bitmap(Environment.CurrentDirectory + "/" + Photopath);
|
||||
}
|
||||
catch
|
||||
{
|
||||
return null;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public virtual ICollection<Clientservice> Clientservices { get; set; } = new List<Clientservice>();
|
||||
|
||||
public virtual Gender GendercodeNavigation { get; set; } = null!;
|
||||
|
||||
public virtual ICollection<Tag> Tags { get; set; } = new List<Tag>();
|
||||
}
|
25
Clienty/Models/Clientservice.cs
Normal file
25
Clienty/Models/Clientservice.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Clientservice
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public int Clientid { get; set; }
|
||||
|
||||
public int Serviceid { get; set; }
|
||||
|
||||
public DateTime Starttime { get; set; }
|
||||
|
||||
public string? Comment { get; set; }
|
||||
|
||||
public virtual Client Client { get; set; } = null!;
|
||||
|
||||
public virtual ICollection<Documentbyservice> Documentbyservices { get; set; } = new List<Documentbyservice>();
|
||||
|
||||
public virtual ICollection<Productsale> Productsales { get; set; } = new List<Productsale>();
|
||||
|
||||
public virtual Service Service { get; set; } = null!;
|
||||
}
|
15
Clienty/Models/Documentbyservice.cs
Normal file
15
Clienty/Models/Documentbyservice.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Documentbyservice
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public int Clientserviceid { get; set; }
|
||||
|
||||
public string Documentpath { get; set; } = null!;
|
||||
|
||||
public virtual Clientservice Clientservice { get; set; } = null!;
|
||||
}
|
13
Clienty/Models/Gender.cs
Normal file
13
Clienty/Models/Gender.cs
Normal file
@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Gender
|
||||
{
|
||||
public char Code { get; set; }
|
||||
|
||||
public string? Name { get; set; }
|
||||
|
||||
public virtual ICollection<Client> Clients { get; set; } = new List<Client>();
|
||||
}
|
15
Clienty/Models/Manufacturer.cs
Normal file
15
Clienty/Models/Manufacturer.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Manufacturer
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Name { get; set; } = null!;
|
||||
|
||||
public DateOnly? Startdate { get; set; }
|
||||
|
||||
public virtual ICollection<Product> Products { get; set; } = new List<Product>();
|
||||
}
|
31
Clienty/Models/Product.cs
Normal file
31
Clienty/Models/Product.cs
Normal file
@ -0,0 +1,31 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Product
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Title { get; set; } = null!;
|
||||
|
||||
public decimal Cost { get; set; }
|
||||
|
||||
public string? Description { get; set; }
|
||||
|
||||
public string? Mainimagepath { get; set; }
|
||||
|
||||
public int Isactive { get; set; }
|
||||
|
||||
public int? Manufacturerid { get; set; }
|
||||
|
||||
public virtual Manufacturer? Manufacturer { get; set; }
|
||||
|
||||
public virtual ICollection<Productphoto> Productphotos { get; set; } = new List<Productphoto>();
|
||||
|
||||
public virtual ICollection<Productsale> Productsales { get; set; } = new List<Productsale>();
|
||||
|
||||
public virtual ICollection<Product> Attachedproducts { get; set; } = new List<Product>();
|
||||
|
||||
public virtual ICollection<Product> Mainproducts { get; set; } = new List<Product>();
|
||||
}
|
15
Clienty/Models/Productphoto.cs
Normal file
15
Clienty/Models/Productphoto.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Productphoto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public int Productid { get; set; }
|
||||
|
||||
public string Photopath { get; set; } = null!;
|
||||
|
||||
public virtual Product Product { get; set; } = null!;
|
||||
}
|
21
Clienty/Models/Productsale.cs
Normal file
21
Clienty/Models/Productsale.cs
Normal file
@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Productsale
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public DateTime Saledate { get; set; }
|
||||
|
||||
public int Productid { get; set; }
|
||||
|
||||
public int Quantity { get; set; }
|
||||
|
||||
public int? Clientserviceid { get; set; }
|
||||
|
||||
public virtual Clientservice? Clientservice { get; set; }
|
||||
|
||||
public virtual Product Product { get; set; } = null!;
|
||||
}
|
25
Clienty/Models/Service.cs
Normal file
25
Clienty/Models/Service.cs
Normal file
@ -0,0 +1,25 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Service
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Title { get; set; } = null!;
|
||||
|
||||
public decimal Cost { get; set; }
|
||||
|
||||
public int Durationinseconds { get; set; }
|
||||
|
||||
public string? Description { get; set; }
|
||||
|
||||
public double? Discount { get; set; }
|
||||
|
||||
public string? Mainimagepath { get; set; }
|
||||
|
||||
public virtual ICollection<Clientservice> Clientservices { get; set; } = new List<Clientservice>();
|
||||
|
||||
public virtual ICollection<Servicephoto> Servicephotos { get; set; } = new List<Servicephoto>();
|
||||
}
|
15
Clienty/Models/Servicephoto.cs
Normal file
15
Clienty/Models/Servicephoto.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Servicephoto
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public int Serviceid { get; set; }
|
||||
|
||||
public string Photopath { get; set; } = null!;
|
||||
|
||||
public virtual Service Service { get; set; } = null!;
|
||||
}
|
15
Clienty/Models/Tag.cs
Normal file
15
Clienty/Models/Tag.cs
Normal file
@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Clienty.Models;
|
||||
|
||||
public partial class Tag
|
||||
{
|
||||
public int Id { get; set; }
|
||||
|
||||
public string Title { get; set; } = null!;
|
||||
|
||||
public string Color { get; set; } = null!;
|
||||
|
||||
public virtual ICollection<Client> Clients { get; set; } = new List<Client>();
|
||||
}
|
22
Clienty/Program.cs
Normal file
22
Clienty/Program.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using System;
|
||||
using Avalonia;
|
||||
|
||||
namespace Clienty
|
||||
{
|
||||
internal class Program
|
||||
{
|
||||
// Initialization code. Don't use any Avalonia, third-party APIs or any
|
||||
// SynchronizationContext-reliant code before AppMain is called: things aren't initialized
|
||||
// yet and stuff might break.
|
||||
[STAThread]
|
||||
public static void Main(string[] args) => BuildAvaloniaApp()
|
||||
.StartWithClassicDesktopLifetime(args);
|
||||
|
||||
// Avalonia configuration, don't remove; also used by visual designer.
|
||||
public static AppBuilder BuildAvaloniaApp()
|
||||
=> AppBuilder.Configure<App>()
|
||||
.UsePlatformDetect()
|
||||
.WithInterFont()
|
||||
.LogToTrace();
|
||||
}
|
||||
}
|
18
Clienty/app.manifest
Normal file
18
Clienty/app.manifest
Normal file
@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
|
||||
<!-- This manifest is used on Windows only.
|
||||
Don't remove it as it might cause problems with window transparency and embedded controls.
|
||||
For more details visit https://learn.microsoft.com/en-us/windows/win32/sbscs/application-manifests -->
|
||||
<assemblyIdentity version="1.0.0.0" name="Clienty.Desktop"/>
|
||||
|
||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||
<application>
|
||||
<!-- A list of the Windows versions that this application has been tested on
|
||||
and is designed to work with. Uncomment the appropriate elements
|
||||
and Windows will automatically select the most compatible environment. -->
|
||||
|
||||
<!-- Windows 10 -->
|
||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />
|
||||
</application>
|
||||
</compatibility>
|
||||
</assembly>
|
BIN
Clienty/bin/Debug/net8.0/Avalonia.Base.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Base.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Controls.ColorPicker.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Controls.ColorPicker.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Controls.DataGrid.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Controls.DataGrid.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Controls.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Controls.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.DesignerSupport.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.DesignerSupport.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Desktop.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Desktop.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Diagnostics.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Diagnostics.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Dialogs.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Dialogs.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Fonts.Inter.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Fonts.Inter.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.FreeDesktop.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.FreeDesktop.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Markup.Xaml.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Markup.Xaml.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Markup.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Markup.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Metal.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Metal.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.MicroCom.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.MicroCom.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Native.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Native.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.OpenGL.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.OpenGL.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Remote.Protocol.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Remote.Protocol.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Skia.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Skia.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Themes.Fluent.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Themes.Fluent.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Themes.Simple.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Themes.Simple.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.Win32.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.Win32.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.X11.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.X11.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Avalonia.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Avalonia.dll
Normal file
Binary file not shown.
2190
Clienty/bin/Debug/net8.0/Clienty.deps.json
Normal file
2190
Clienty/bin/Debug/net8.0/Clienty.deps.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
Clienty/bin/Debug/net8.0/Clienty.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Clienty.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Clienty.exe
Normal file
BIN
Clienty/bin/Debug/net8.0/Clienty.exe
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Clienty.pdb
Normal file
BIN
Clienty/bin/Debug/net8.0/Clienty.pdb
Normal file
Binary file not shown.
14
Clienty/bin/Debug/net8.0/Clienty.runtimeconfig.json
Normal file
14
Clienty/bin/Debug/net8.0/Clienty.runtimeconfig.json
Normal file
@ -0,0 +1,14 @@
|
||||
{
|
||||
"runtimeOptions": {
|
||||
"tfm": "net8.0",
|
||||
"framework": {
|
||||
"name": "Microsoft.NETCore.App",
|
||||
"version": "8.0.0"
|
||||
},
|
||||
"configProperties": {
|
||||
"System.Reflection.NullabilityInfoContext.IsSupported": true,
|
||||
"System.Runtime.InteropServices.BuiltInComInterop.IsSupported": true,
|
||||
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
|
||||
}
|
||||
}
|
||||
}
|
BIN
Clienty/bin/Debug/net8.0/ColorTextBlock.Avalonia.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/ColorTextBlock.Avalonia.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/DialogHost.Avalonia.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/DialogHost.Avalonia.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/HarfBuzzSharp.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/HarfBuzzSharp.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Humanizer.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Humanizer.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Markdown.Avalonia.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Markdown.Avalonia.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/MicroCom.Runtime.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/MicroCom.Runtime.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.Bcl.AsyncInterfaces.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.Build.Locator.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.Build.Locator.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.CodeAnalysis.CSharp.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.CodeAnalysis.CSharp.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.CodeAnalysis.Scripting.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.CodeAnalysis.Scripting.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.CodeAnalysis.Workspaces.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.CodeAnalysis.Workspaces.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.CodeAnalysis.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.CodeAnalysis.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.EntityFrameworkCore.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.EntityFrameworkCore.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.Extensions.Caching.Memory.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.Extensions.Caching.Memory.dll
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.Extensions.Logging.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.Extensions.Logging.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.Extensions.Options.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.Extensions.Options.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Microsoft.Extensions.Primitives.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Microsoft.Extensions.Primitives.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Mono.TextTemplating.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Mono.TextTemplating.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/MsBox.Avalonia.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/MsBox.Avalonia.dll
Normal file
Binary file not shown.
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/Npgsql.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/Npgsql.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/SkiaSharp.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/SkiaSharp.dll
Normal file
Binary file not shown.
BIN
Clienty/bin/Debug/net8.0/System.CodeDom.dll
Normal file
BIN
Clienty/bin/Debug/net8.0/System.CodeDom.dll
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user