From f0e11d63790009ecb9ceca5caf5341dd9ca3cd0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9A=D1=83=D1=80=D0=BD=D0=B0=D1=82=20=D0=90=D0=BD=D0=B4?= =?UTF-8?q?=D1=80=D0=B5=D0=B9?= Date: Sat, 31 Jan 2026 16:11:36 +0300 Subject: [PATCH] first edit --- .gitattributes | 63 +++ .gitignore | 363 ++++++++++++++++++ XLIMS.CONTRACT/AssemblyInfo.cs | 10 + XLIMS.CONTRACT/IActivityViewModel.cs | 13 + XLIMS.CONTRACT/IDialogService.cs | 12 + XLIMS.CONTRACT/IGenericRepository.cs | 32 ++ XLIMS.CONTRACT/ILimsService.cs | 24 ++ XLIMS.CONTRACT/XLIMS.CONTRACT.csproj | 28 ++ XLIMS.CORE/AssemblyInfo.cs | 10 + XLIMS.CORE/Helpers/ClosePsv.cs | 116 ++++++ XLIMS.CORE/Helpers/Izv.cs | 106 +++++ XLIMS.CORE/Helpers/OpenPsv.cs | 124 ++++++ XLIMS.CORE/Helpers/Svid.cs | 87 +++++ XLIMS.CORE/Resources/CoreDictionary.xaml | 3 + XLIMS.CORE/Resources/DOCX/ClosePsv.docx | Bin 0 -> 32661 bytes XLIMS.CORE/Resources/DOCX/Izv.docx | Bin 0 -> 32461 bytes XLIMS.CORE/Resources/DOCX/OpenPsv.docx | Bin 0 -> 33858 bytes XLIMS.CORE/Resources/DOCX/Svid.docx | Bin 0 -> 32956 bytes XLIMS.CORE/ViewModels/MainViewModel.cs | 73 ++++ XLIMS.CORE/Windows/EditWindow.xaml | 42 ++ XLIMS.CORE/Windows/EditWindow.xaml.cs | 37 ++ XLIMS.CORE/Windows/MainWindow.xaml | 22 ++ XLIMS.CORE/Windows/MainWindow.xaml.cs | 42 ++ XLIMS.CORE/XLIMS.CORE.csproj | 28 ++ XLIMS.DATA/AssemblyInfo.cs | 10 + XLIMS.DATA/Models/BookSet.cs | 11 + XLIMS.DATA/Models/DataSet.cs | 35 ++ XLIMS.DATA/Models/DeviceSet.cs | 31 ++ XLIMS.DATA/Models/DivisionSet.cs | 23 ++ XLIMS.DATA/Models/DocumentSet.cs | 35 ++ XLIMS.DATA/Models/LimsdbContext.cs | 189 +++++++++ XLIMS.DATA/Models/PersonalSet.cs | 13 + XLIMS.DATA/Models/Spnmtp.cs | 13 + XLIMS.DATA/Models/Spoi.cs | 13 + XLIMS.DATA/Models/Tip.cs | 21 + XLIMS.DATA/Models/Tprz.cs | 21 + XLIMS.DATA/XLIMS.DATA.csproj | 85 ++++ XLIMS.DATA/appsettings.json | 5 + XLIMS.DEV/AssemblyInfo.cs | 10 + XLIMS.DEV/Resources/DevDictionary.xaml | 8 + XLIMS.DEV/ViewModels/DeviceViewModel.cs | 84 ++++ XLIMS.DEV/ViewModels/MainViewModel.cs | 48 +++ XLIMS.DEV/Views/DeviceView.xaml | 12 + XLIMS.DEV/Views/DeviceView.xaml.cs | 26 ++ XLIMS.DEV/Views/MainView.xaml | 8 + XLIMS.DEV/Views/MainView.xaml.cs | 26 ++ XLIMS.DEV/Windows/EditWindow.xaml | 42 ++ XLIMS.DEV/Windows/EditWindow.xaml.cs | 37 ++ XLIMS.DEV/XLIMS.DEV.csproj | 22 ++ XLIMS.MVVM/AssemblyInfo.cs | 10 + XLIMS.MVVM/Base/AsyncRelayCommand.cs | 112 ++++++ XLIMS.MVVM/Base/RelayCommand.cs | 89 +++++ XLIMS.MVVM/Base/ViewModelBase.cs | 25 ++ XLIMS.MVVM/Converters/BoolConverter.cs | 31 ++ .../CompositeCollectionConverter.cs | 35 ++ XLIMS.MVVM/Converters/DateConverter.cs | 25 ++ XLIMS.MVVM/Converters/ImageConverter.cs | 34 ++ XLIMS.MVVM/Converters/VisibilityConverter.cs | 32 ++ XLIMS.MVVM/XLIMS.MVVM.csproj | 10 + XLIMS.PSV/AssemblyInfo.cs | 10 + XLIMS.PSV/Resources/PsvDictionary.xaml | 16 + XLIMS.PSV/ViewModels/BadViewModel.cs | 141 +++++++ XLIMS.PSV/ViewModels/BrowseSerialViewModel.cs | 113 ++++++ XLIMS.PSV/ViewModels/BrowseTprzViewModel.cs | 179 +++++++++ XLIMS.PSV/ViewModels/DocPovViewModel.cs | 28 ++ XLIMS.PSV/ViewModels/GoodViewModel.cs | 192 +++++++++ XLIMS.PSV/ViewModels/MainViewModel.cs | 158 ++++++++ XLIMS.PSV/ViewModels/PsvViewModel.cs | 239 ++++++++++++ XLIMS.PSV/ViewModels/SideItemViewModel.cs | 45 +++ XLIMS.PSV/Views/BadView.xaml | 58 +++ XLIMS.PSV/Views/BadView.xaml.cs | 28 ++ XLIMS.PSV/Views/BrowseSerialView.xaml | 90 +++++ XLIMS.PSV/Views/BrowseSerialView.xaml.cs | 26 ++ XLIMS.PSV/Views/BrowseTprzView.xaml | 80 ++++ XLIMS.PSV/Views/BrowseTprzView.xaml.cs | 28 ++ XLIMS.PSV/Views/GoodView.xaml | 76 ++++ XLIMS.PSV/Views/GoodView.xaml.cs | 28 ++ XLIMS.PSV/Views/MainView.xaml | 151 ++++++++ XLIMS.PSV/Views/MainView.xaml.cs | 26 ++ XLIMS.PSV/Windows/EditWindow.xaml | 42 ++ XLIMS.PSV/Windows/EditWindow.xaml.cs | 37 ++ XLIMS.PSV/Windows/PsvWindow.xaml | 209 ++++++++++ XLIMS.PSV/Windows/PsvWindow.xaml.cs | 34 ++ XLIMS.PSV/XLIMS.PSV.csproj | 22 ++ XLIMS.SERVICES/AssemblyInfo.cs | 10 + XLIMS.SERVICES/DialogService.cs | 74 ++++ XLIMS.SERVICES/GenericRepository.cs | 115 ++++++ XLIMS.SERVICES/LimsService.cs | 49 +++ XLIMS.SERVICES/XLIMS.SERVICES.csproj | 40 ++ XLIMS.SERVICES/XLimsServicesDI.cs | 49 +++ XLIMS.SP/AssemblyInfo.cs | 10 + XLIMS.SP/Resources/SpDictionary.xaml | 20 + XLIMS.SP/ViewModels/BookViewModel.cs | 54 +++ XLIMS.SP/ViewModels/BooksViewModel.cs | 92 +++++ XLIMS.SP/ViewModels/DeviceViewModel.cs | 56 +++ XLIMS.SP/ViewModels/DivisionViewModel.cs | 54 +++ XLIMS.SP/ViewModels/DivisionsViewModel.cs | 91 +++++ XLIMS.SP/ViewModels/MainViewModel.cs | 41 ++ XLIMS.SP/ViewModels/PersonalViewModel.cs | 54 +++ XLIMS.SP/ViewModels/PersonalsViewModel.cs | 92 +++++ XLIMS.SP/ViewModels/SpnmtpViewModel.cs | 54 +++ XLIMS.SP/ViewModels/SpnmtpsViewModel.cs | 92 +++++ XLIMS.SP/ViewModels/SpoiViewModel.cs | 54 +++ XLIMS.SP/ViewModels/SpoisViewModel.cs | 91 +++++ XLIMS.SP/Views/BookView.xaml | 7 + XLIMS.SP/Views/BookView.xaml.cs | 26 ++ XLIMS.SP/Views/DivisionView.xaml | 8 + XLIMS.SP/Views/DivisionView.xaml.cs | 26 ++ XLIMS.SP/Views/MainView.xaml | 8 + XLIMS.SP/Views/MainView.xaml.cs | 26 ++ XLIMS.SP/Views/PersonalView.xaml | 8 + XLIMS.SP/Views/PersonalView.xaml.cs | 26 ++ XLIMS.SP/Views/SpnmtpView.xaml | 8 + XLIMS.SP/Views/SpnmtpView.xaml.cs | 26 ++ XLIMS.SP/Views/SpoiView.xaml | 8 + XLIMS.SP/Views/SpoiView.xaml.cs | 26 ++ XLIMS.SP/Windows/BooksWindow.xaml | 33 ++ XLIMS.SP/Windows/BooksWindow.xaml.cs | 26 ++ XLIMS.SP/Windows/DivisionsWindow.xaml | 33 ++ XLIMS.SP/Windows/DivisionsWindow.xaml.cs | 25 ++ XLIMS.SP/Windows/EditWindow.xaml | 42 ++ XLIMS.SP/Windows/EditWindow.xaml.cs | 37 ++ XLIMS.SP/Windows/PersonalsWindow.xaml | 33 ++ XLIMS.SP/Windows/PersonalsWindow.xaml.cs | 25 ++ XLIMS.SP/Windows/SpnmtpsWindow.xaml | 33 ++ XLIMS.SP/Windows/SpnmtpsWindow.xaml.cs | 25 ++ XLIMS.SP/Windows/SpoisWindow.xaml | 33 ++ XLIMS.SP/Windows/SpoisWindow.xaml.cs | 25 ++ XLIMS.SP/XLIMS.SP.csproj | 49 +++ XLIMS.TPRZ/AssemblyInfo.cs | 10 + XLIMS.TPRZ/Resources/TprzDictionary.xaml | 11 + XLIMS.TPRZ/ViewModels/MainViewModel.cs | 183 +++++++++ XLIMS.TPRZ/ViewModels/TipViewModel.cs | 84 ++++ XLIMS.TPRZ/ViewModels/TprzViewModel.cs | 61 +++ XLIMS.TPRZ/Views/MainView.xaml | 8 + XLIMS.TPRZ/Views/MainView.xaml.cs | 26 ++ XLIMS.TPRZ/Views/TipView.xaml | 16 + XLIMS.TPRZ/Views/TipView.xaml.cs | 26 ++ XLIMS.TPRZ/Views/TprzView.xaml | 8 + XLIMS.TPRZ/Views/TprzView.xaml.cs | 26 ++ XLIMS.TPRZ/Windows/EditWindow.xaml | 42 ++ XLIMS.TPRZ/Windows/EditWindow.xaml.cs | 37 ++ XLIMS.TPRZ/XLIMS.TPRZ.csproj | 25 ++ XLIMS.slnx | 12 + XLIMS/App.xaml | 8 + XLIMS/App.xaml.cs | 37 ++ XLIMS/AssemblyInfo.cs | 10 + XLIMS/XLIMS.csproj | 20 + 148 files changed, 6986 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 XLIMS.CONTRACT/AssemblyInfo.cs create mode 100644 XLIMS.CONTRACT/IActivityViewModel.cs create mode 100644 XLIMS.CONTRACT/IDialogService.cs create mode 100644 XLIMS.CONTRACT/IGenericRepository.cs create mode 100644 XLIMS.CONTRACT/ILimsService.cs create mode 100644 XLIMS.CONTRACT/XLIMS.CONTRACT.csproj create mode 100644 XLIMS.CORE/AssemblyInfo.cs create mode 100644 XLIMS.CORE/Helpers/ClosePsv.cs create mode 100644 XLIMS.CORE/Helpers/Izv.cs create mode 100644 XLIMS.CORE/Helpers/OpenPsv.cs create mode 100644 XLIMS.CORE/Helpers/Svid.cs create mode 100644 XLIMS.CORE/Resources/CoreDictionary.xaml create mode 100644 XLIMS.CORE/Resources/DOCX/ClosePsv.docx create mode 100644 XLIMS.CORE/Resources/DOCX/Izv.docx create mode 100644 XLIMS.CORE/Resources/DOCX/OpenPsv.docx create mode 100644 XLIMS.CORE/Resources/DOCX/Svid.docx create mode 100644 XLIMS.CORE/ViewModels/MainViewModel.cs create mode 100644 XLIMS.CORE/Windows/EditWindow.xaml create mode 100644 XLIMS.CORE/Windows/EditWindow.xaml.cs create mode 100644 XLIMS.CORE/Windows/MainWindow.xaml create mode 100644 XLIMS.CORE/Windows/MainWindow.xaml.cs create mode 100644 XLIMS.CORE/XLIMS.CORE.csproj create mode 100644 XLIMS.DATA/AssemblyInfo.cs create mode 100644 XLIMS.DATA/Models/BookSet.cs create mode 100644 XLIMS.DATA/Models/DataSet.cs create mode 100644 XLIMS.DATA/Models/DeviceSet.cs create mode 100644 XLIMS.DATA/Models/DivisionSet.cs create mode 100644 XLIMS.DATA/Models/DocumentSet.cs create mode 100644 XLIMS.DATA/Models/LimsdbContext.cs create mode 100644 XLIMS.DATA/Models/PersonalSet.cs create mode 100644 XLIMS.DATA/Models/Spnmtp.cs create mode 100644 XLIMS.DATA/Models/Spoi.cs create mode 100644 XLIMS.DATA/Models/Tip.cs create mode 100644 XLIMS.DATA/Models/Tprz.cs create mode 100644 XLIMS.DATA/XLIMS.DATA.csproj create mode 100644 XLIMS.DATA/appsettings.json create mode 100644 XLIMS.DEV/AssemblyInfo.cs create mode 100644 XLIMS.DEV/Resources/DevDictionary.xaml create mode 100644 XLIMS.DEV/ViewModels/DeviceViewModel.cs create mode 100644 XLIMS.DEV/ViewModels/MainViewModel.cs create mode 100644 XLIMS.DEV/Views/DeviceView.xaml create mode 100644 XLIMS.DEV/Views/DeviceView.xaml.cs create mode 100644 XLIMS.DEV/Views/MainView.xaml create mode 100644 XLIMS.DEV/Views/MainView.xaml.cs create mode 100644 XLIMS.DEV/Windows/EditWindow.xaml create mode 100644 XLIMS.DEV/Windows/EditWindow.xaml.cs create mode 100644 XLIMS.DEV/XLIMS.DEV.csproj create mode 100644 XLIMS.MVVM/AssemblyInfo.cs create mode 100644 XLIMS.MVVM/Base/AsyncRelayCommand.cs create mode 100644 XLIMS.MVVM/Base/RelayCommand.cs create mode 100644 XLIMS.MVVM/Base/ViewModelBase.cs create mode 100644 XLIMS.MVVM/Converters/BoolConverter.cs create mode 100644 XLIMS.MVVM/Converters/CompositeCollectionConverter.cs create mode 100644 XLIMS.MVVM/Converters/DateConverter.cs create mode 100644 XLIMS.MVVM/Converters/ImageConverter.cs create mode 100644 XLIMS.MVVM/Converters/VisibilityConverter.cs create mode 100644 XLIMS.MVVM/XLIMS.MVVM.csproj create mode 100644 XLIMS.PSV/AssemblyInfo.cs create mode 100644 XLIMS.PSV/Resources/PsvDictionary.xaml create mode 100644 XLIMS.PSV/ViewModels/BadViewModel.cs create mode 100644 XLIMS.PSV/ViewModels/BrowseSerialViewModel.cs create mode 100644 XLIMS.PSV/ViewModels/BrowseTprzViewModel.cs create mode 100644 XLIMS.PSV/ViewModels/DocPovViewModel.cs create mode 100644 XLIMS.PSV/ViewModels/GoodViewModel.cs create mode 100644 XLIMS.PSV/ViewModels/MainViewModel.cs create mode 100644 XLIMS.PSV/ViewModels/PsvViewModel.cs create mode 100644 XLIMS.PSV/ViewModels/SideItemViewModel.cs create mode 100644 XLIMS.PSV/Views/BadView.xaml create mode 100644 XLIMS.PSV/Views/BadView.xaml.cs create mode 100644 XLIMS.PSV/Views/BrowseSerialView.xaml create mode 100644 XLIMS.PSV/Views/BrowseSerialView.xaml.cs create mode 100644 XLIMS.PSV/Views/BrowseTprzView.xaml create mode 100644 XLIMS.PSV/Views/BrowseTprzView.xaml.cs create mode 100644 XLIMS.PSV/Views/GoodView.xaml create mode 100644 XLIMS.PSV/Views/GoodView.xaml.cs create mode 100644 XLIMS.PSV/Views/MainView.xaml create mode 100644 XLIMS.PSV/Views/MainView.xaml.cs create mode 100644 XLIMS.PSV/Windows/EditWindow.xaml create mode 100644 XLIMS.PSV/Windows/EditWindow.xaml.cs create mode 100644 XLIMS.PSV/Windows/PsvWindow.xaml create mode 100644 XLIMS.PSV/Windows/PsvWindow.xaml.cs create mode 100644 XLIMS.PSV/XLIMS.PSV.csproj create mode 100644 XLIMS.SERVICES/AssemblyInfo.cs create mode 100644 XLIMS.SERVICES/DialogService.cs create mode 100644 XLIMS.SERVICES/GenericRepository.cs create mode 100644 XLIMS.SERVICES/LimsService.cs create mode 100644 XLIMS.SERVICES/XLIMS.SERVICES.csproj create mode 100644 XLIMS.SERVICES/XLimsServicesDI.cs create mode 100644 XLIMS.SP/AssemblyInfo.cs create mode 100644 XLIMS.SP/Resources/SpDictionary.xaml create mode 100644 XLIMS.SP/ViewModels/BookViewModel.cs create mode 100644 XLIMS.SP/ViewModels/BooksViewModel.cs create mode 100644 XLIMS.SP/ViewModels/DeviceViewModel.cs create mode 100644 XLIMS.SP/ViewModels/DivisionViewModel.cs create mode 100644 XLIMS.SP/ViewModels/DivisionsViewModel.cs create mode 100644 XLIMS.SP/ViewModels/MainViewModel.cs create mode 100644 XLIMS.SP/ViewModels/PersonalViewModel.cs create mode 100644 XLIMS.SP/ViewModels/PersonalsViewModel.cs create mode 100644 XLIMS.SP/ViewModels/SpnmtpViewModel.cs create mode 100644 XLIMS.SP/ViewModels/SpnmtpsViewModel.cs create mode 100644 XLIMS.SP/ViewModels/SpoiViewModel.cs create mode 100644 XLIMS.SP/ViewModels/SpoisViewModel.cs create mode 100644 XLIMS.SP/Views/BookView.xaml create mode 100644 XLIMS.SP/Views/BookView.xaml.cs create mode 100644 XLIMS.SP/Views/DivisionView.xaml create mode 100644 XLIMS.SP/Views/DivisionView.xaml.cs create mode 100644 XLIMS.SP/Views/MainView.xaml create mode 100644 XLIMS.SP/Views/MainView.xaml.cs create mode 100644 XLIMS.SP/Views/PersonalView.xaml create mode 100644 XLIMS.SP/Views/PersonalView.xaml.cs create mode 100644 XLIMS.SP/Views/SpnmtpView.xaml create mode 100644 XLIMS.SP/Views/SpnmtpView.xaml.cs create mode 100644 XLIMS.SP/Views/SpoiView.xaml create mode 100644 XLIMS.SP/Views/SpoiView.xaml.cs create mode 100644 XLIMS.SP/Windows/BooksWindow.xaml create mode 100644 XLIMS.SP/Windows/BooksWindow.xaml.cs create mode 100644 XLIMS.SP/Windows/DivisionsWindow.xaml create mode 100644 XLIMS.SP/Windows/DivisionsWindow.xaml.cs create mode 100644 XLIMS.SP/Windows/EditWindow.xaml create mode 100644 XLIMS.SP/Windows/EditWindow.xaml.cs create mode 100644 XLIMS.SP/Windows/PersonalsWindow.xaml create mode 100644 XLIMS.SP/Windows/PersonalsWindow.xaml.cs create mode 100644 XLIMS.SP/Windows/SpnmtpsWindow.xaml create mode 100644 XLIMS.SP/Windows/SpnmtpsWindow.xaml.cs create mode 100644 XLIMS.SP/Windows/SpoisWindow.xaml create mode 100644 XLIMS.SP/Windows/SpoisWindow.xaml.cs create mode 100644 XLIMS.SP/XLIMS.SP.csproj create mode 100644 XLIMS.TPRZ/AssemblyInfo.cs create mode 100644 XLIMS.TPRZ/Resources/TprzDictionary.xaml create mode 100644 XLIMS.TPRZ/ViewModels/MainViewModel.cs create mode 100644 XLIMS.TPRZ/ViewModels/TipViewModel.cs create mode 100644 XLIMS.TPRZ/ViewModels/TprzViewModel.cs create mode 100644 XLIMS.TPRZ/Views/MainView.xaml create mode 100644 XLIMS.TPRZ/Views/MainView.xaml.cs create mode 100644 XLIMS.TPRZ/Views/TipView.xaml create mode 100644 XLIMS.TPRZ/Views/TipView.xaml.cs create mode 100644 XLIMS.TPRZ/Views/TprzView.xaml create mode 100644 XLIMS.TPRZ/Views/TprzView.xaml.cs create mode 100644 XLIMS.TPRZ/Windows/EditWindow.xaml create mode 100644 XLIMS.TPRZ/Windows/EditWindow.xaml.cs create mode 100644 XLIMS.TPRZ/XLIMS.TPRZ.csproj create mode 100644 XLIMS.slnx create mode 100644 XLIMS/App.xaml create mode 100644 XLIMS/App.xaml.cs create mode 100644 XLIMS/AssemblyInfo.cs create mode 100644 XLIMS/XLIMS.csproj diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..1ff0c42 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,63 @@ +############################################################################### +# Set default behavior to automatically normalize line endings. +############################################################################### +* text=auto + +############################################################################### +# Set default behavior for command prompt diff. +# +# This is need for earlier builds of msysgit that does not have it on by +# default for csharp files. +# Note: This is only used by command line +############################################################################### +#*.cs diff=csharp + +############################################################################### +# Set the merge driver for project and solution files +# +# Merging from the command prompt will add diff markers to the files if there +# are conflicts (Merging from VS is not affected by the settings below, in VS +# the diff markers are never inserted). Diff markers may cause the following +# file extensions to fail to load in VS. An alternative would be to treat +# these files as binary and thus will always conflict and require user +# intervention with every merge. To do so, just uncomment the entries below +############################################################################### +#*.sln merge=binary +#*.csproj merge=binary +#*.vbproj merge=binary +#*.vcxproj merge=binary +#*.vcproj merge=binary +#*.dbproj merge=binary +#*.fsproj merge=binary +#*.lsproj merge=binary +#*.wixproj merge=binary +#*.modelproj merge=binary +#*.sqlproj merge=binary +#*.wwaproj merge=binary + +############################################################################### +# behavior for image files +# +# image files are treated as binary by default. +############################################################################### +#*.jpg binary +#*.png binary +#*.gif binary + +############################################################################### +# diff behavior for common document formats +# +# Convert binary document formats to text before diffing them. This feature +# is only available from the command line. Turn it on by uncommenting the +# entries below. +############################################################################### +#*.doc diff=astextplain +#*.DOC diff=astextplain +#*.docx diff=astextplain +#*.DOCX diff=astextplain +#*.dot diff=astextplain +#*.DOT diff=astextplain +#*.pdf diff=astextplain +#*.PDF diff=astextplain +#*.rtf diff=astextplain +#*.RTF diff=astextplain diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9491a2f --- /dev/null +++ b/.gitignore @@ -0,0 +1,363 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.rsuser +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Mono auto generated files +mono_crash.* + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +[Ww][Ii][Nn]32/ +[Aa][Rr][Mm]/ +[Aa][Rr][Mm]64/ +bld/ +[Bb]in/ +[Oo]bj/ +[Oo]ut/ +[Ll]og/ +[Ll]ogs/ + +# Visual Studio 2015/2017 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# Visual Studio 2017 auto generated files +Generated\ Files/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUnit +*.VisualState.xml +TestResult.xml +nunit-*.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# Benchmark Results +BenchmarkDotNet.Artifacts/ + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ + +# ASP.NET Scaffolding +ScaffoldingReadMe.txt + +# StyleCop +StyleCopReport.xml + +# Files built by Visual Studio +*_i.c +*_p.c +*_h.h +*.ilk +*.meta +*.obj +*.iobj +*.pch +*.pdb +*.ipdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*_wpftmp.csproj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# Visual Studio Trace Files +*.e2e + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# AxoCover is a Code Coverage Tool +.axoCover/* +!.axoCover/settings.json + +# Coverlet is a free, cross platform Code Coverage Tool +coverage*.json +coverage*.xml +coverage*.info + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# Note: Comment the next line if you want to checkin your web deploy settings, +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# NuGet Symbol Packages +*.snupkg +# The packages folder can be ignored because of Package Restore +**/[Pp]ackages/* +# except build/, which is used as an MSBuild target. +!**/[Pp]ackages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/[Pp]ackages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt +*.appx +*.appxbundle +*.appxupload + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!?*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Including strong name files can present a security risk +# (https://github.com/github/gitignore/pull/2483#issue-259490424) +#*.snk + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm +ServiceFabricBackup/ +*.rptproj.bak + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings +*.rptproj.rsuser +*- [Bb]ackup.rdl +*- [Bb]ackup ([0-9]).rdl +*- [Bb]ackup ([0-9][0-9]).rdl + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# CodeRush personal settings +.cr/personal + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Tabs Studio +*.tss + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs + +# OpenCover UI analysis results +OpenCover/ + +# Azure Stream Analytics local run output +ASALocalRun/ + +# MSBuild Binary and Structured Log +*.binlog + +# NVidia Nsight GPU debugger configuration file +*.nvuser + +# MFractors (Xamarin productivity tool) working folder +.mfractor/ + +# Local History for Visual Studio +.localhistory/ + +# BeatPulse healthcheck temp database +healthchecksdb + +# Backup folder for Package Reference Convert tool in Visual Studio 2017 +MigrationBackup/ + +# Ionide (cross platform F# VS Code tools) working folder +.ionide/ + +# Fody - auto-generated XML schema +FodyWeavers.xsd \ No newline at end of file diff --git a/XLIMS.CONTRACT/AssemblyInfo.cs b/XLIMS.CONTRACT/AssemblyInfo.cs new file mode 100644 index 0000000..b0ec827 --- /dev/null +++ b/XLIMS.CONTRACT/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/XLIMS.CONTRACT/IActivityViewModel.cs b/XLIMS.CONTRACT/IActivityViewModel.cs new file mode 100644 index 0000000..ded0e9c --- /dev/null +++ b/XLIMS.CONTRACT/IActivityViewModel.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace XLIMS.CONTRACT +{ + public interface IActivityViewModel + { + string Title { get; } + object View { get; } + } + +} diff --git a/XLIMS.CONTRACT/IDialogService.cs b/XLIMS.CONTRACT/IDialogService.cs new file mode 100644 index 0000000..8323f03 --- /dev/null +++ b/XLIMS.CONTRACT/IDialogService.cs @@ -0,0 +1,12 @@ +namespace XLIMS.CONTRACT; + +public interface IDialogService +{ + void ShowDialog(TViewModel viewModel) where TViewModel : class; + + // Если нужны модальные окна с результатом: + bool? ShowDialog(TViewModel viewModel, out object? result) + where TViewModel : class; + //немодальные окна + void Show(TViewModel viewModel) where TViewModel : class; +} \ No newline at end of file diff --git a/XLIMS.CONTRACT/IGenericRepository.cs b/XLIMS.CONTRACT/IGenericRepository.cs new file mode 100644 index 0000000..7efa8d9 --- /dev/null +++ b/XLIMS.CONTRACT/IGenericRepository.cs @@ -0,0 +1,32 @@ +using System.Linq.Expressions; + +namespace XLIMS.CONTRACT +{ + // Интерфейс generic-репозитория + public interface IGenericRepository where TEntity : class + { + Task GetByIdAsync(int id); + Task> GetAllAsync(); + Task> WhereAsync(Expression> predicate); + IEnumerable Find(Expression> predicate); + Task> FindAsync(Expression> predicate); + + Task SingleOrDefaultAsync(Expression> predicate); + + Task AddAsync(TEntity entity); + Task AddRangeAsync(IEnumerable entities); + + Task UpdateAsync(TEntity entity); + Task UpdateRangeAsync(IEnumerable entities); + + Task RemoveAsync(TEntity entity); + Task RemoveRangeAsync(IEnumerable entities); + + Task CountAsync(Expression> predicate = null); + + event Action SetChanged; + + Task SaveChangesAsync(); + int SaveChanges(); + } +} \ No newline at end of file diff --git a/XLIMS.CONTRACT/ILimsService.cs b/XLIMS.CONTRACT/ILimsService.cs new file mode 100644 index 0000000..41ec828 --- /dev/null +++ b/XLIMS.CONTRACT/ILimsService.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Text; +using XLIMS.DATA.Models; + +namespace XLIMS.CONTRACT +{ + public interface ILimsService + { + IGenericRepository Books { get; } + IGenericRepository Datas { get; } + IGenericRepository Devices { get; } + IGenericRepository Divisions { get; } + IGenericRepository Documents { get; } + IGenericRepository Personals { get; } + IGenericRepository Spnmtps { get; } + IGenericRepository Spois { get; } + IGenericRepository Tips { get; } + IGenericRepository Tprzs { get; } + + Task SaveChangesAsync(); + int SaveChanges(); + } +} diff --git a/XLIMS.CONTRACT/XLIMS.CONTRACT.csproj b/XLIMS.CONTRACT/XLIMS.CONTRACT.csproj new file mode 100644 index 0000000..f396ea1 --- /dev/null +++ b/XLIMS.CONTRACT/XLIMS.CONTRACT.csproj @@ -0,0 +1,28 @@ + + + + net10.0-windows + enable + true + enable + + + + + + + + + + + + + + + + + + + + + diff --git a/XLIMS.CORE/AssemblyInfo.cs b/XLIMS.CORE/AssemblyInfo.cs new file mode 100644 index 0000000..b0ec827 --- /dev/null +++ b/XLIMS.CORE/AssemblyInfo.cs @@ -0,0 +1,10 @@ +using System.Windows; + +[assembly: ThemeInfo( + ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located + //(used if a resource is not found in the page, + // or application resource dictionaries) + ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located + //(used if a resource is not found in the page, + // app, or any theme specific resource dictionaries) +)] diff --git a/XLIMS.CORE/Helpers/ClosePsv.cs b/XLIMS.CORE/Helpers/ClosePsv.cs new file mode 100644 index 0000000..345f22c --- /dev/null +++ b/XLIMS.CORE/Helpers/ClosePsv.cs @@ -0,0 +1,116 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; + +namespace XLIMS.CORE.Helpers +{ + public class ClosePsv + { + #region Constructor + + public ClosePsv(DocViewModel document, XLAB7Repository repository, int copies = 0) + { + if (copies == 0) _copies = 1; + else _copies = copies; + _document = document; + _repository = repository; + _fi = new FileInfo(@"Resources\DOCX\ClosePsv.docx"); + _wordApp = new Microsoft.Office.Interop.Word.Application(); + _wordDocument = _wordApp.Documents.Open(_fi.FullName); + _table = _wordDocument.Tables[1]; + } + + #endregion //Constructor + + #region Fields + + private Microsoft.Office.Interop.Word.Application _wordApp; + private Microsoft.Office.Interop.Word.Document _wordDocument; + private object _wFalse = false; + private object _wTrue = true; + private object _missing = null; + private FileInfo _fi; + private DocViewModel _document; + private Table _table; + private int _copies; + private XLAB7Repository _repository; + #endregion //Fields + + #region Properties + + #endregion //Properties + + #region Mehtods + + private void Replace(string text, string replacementText) + { + Find find = _wordApp.Selection.Find; + find.Text = text; + find.Replacement.Text = replacementText; + find.Execute(FindText: Type.Missing, + MatchCase: false, + MatchWholeWord: false, + MatchWildcards: false, + MatchSoundsLike: Type.Missing, + MatchAllWordForms: false, + Forward: true, + Wrap: Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue, + Format: false, + ReplaceWith: Type.Missing, + Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll); + } + + public void Print() + { + + Replace("number", _document.Number); + Replace("div", _document.CurrentFRPD.NMFRPD); + Replace("date", ((DateTime)_document.Date).ToLongDateString()); + Replace("count", _document.AllEKZMK.Count.ToString()); + Replace("bad", _document.AllEKZMK.Count(o => o.GDN == false).ToString()); + Replace("good", _document.AllEKZMK.Count(o => o.GDN == true).ToString()); + Replace("person", _document.CurrentPRSNVY.PRFIO); + Replace("today", ((DateTime)_document.DateVY).ToLongDateString()); + var i = 2; + var n = 1; + foreach (var data in _document.AllGroupsEKZMK) + { + _table.Rows.Add(); + _table.Rows[i].Cells[1].Range.Text = n.ToString(); + _table.Rows[i].Cells[2].Range.Text = data.CurrentEKZMK.CurrentEKZ.IDTPRZNavigation.IDTIPSNavigation.IDSPNMTPNavigation.NMTP; + _table.Rows[i].Cells[3].Range.Text = data.CurrentEKZMK.CurrentEKZ.IDTPRZNavigation.IDTIPSNavigation.TP; + _table.Rows[i].Cells[4].Range.Text = data.CurrentEKZMK.CurrentEKZ.IDTPRZNavigation.DPZN; + if (data.GroupEKZMK.Count() > 3) + { + _table.Rows[i].Cells[5].Range.Text = data.GroupEKZMK.Count().ToString(); + } + else + { + foreach (var d in data.GroupEKZMK) + { + _table.Rows[i].Cells[5].Range.Text += d.CurrentEKZ.NNZV + ", "; + } + } + _table.Rows[i].Cells[6].Range.Text = data.Count.ToString(); + _table.Rows[i].Cells[7].Range.Text = data.GoodCount.ToString(); + _table.Rows[i].Cells[8].Range.Text = data.BadCount.ToString(); + try + { + _table.Rows[i].Cells[9].Range.Text = data.CurrentEKZMK.CurrentDMS.NND.ToString() + " от " + data.CurrentEKZMK.CurrentDMS.DTD.ToShortDateString(); + } + catch { } + + i++; + n++; + } + _wordDocument.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, _copies); + _wordDocument.Close(_wFalse); + _wordApp.Quit(); + } + #endregion //Mehtods + } +} diff --git a/XLIMS.CORE/Helpers/Izv.cs b/XLIMS.CORE/Helpers/Izv.cs new file mode 100644 index 0000000..3396436 --- /dev/null +++ b/XLIMS.CORE/Helpers/Izv.cs @@ -0,0 +1,106 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; + +namespace XLIMS.CORE.Helpers +{ + public class Izv + { + #region Constructor + + public Izv(DMS document, XLAB7Repository repository, int copies = 1) + { + _document = document; + _repository = repository; + _copies = copies; + _docs = _repository.GetDMS().Where(w => w.NND == _document.NND).ToList(); + _fi = new FileInfo(@"Resources\DOCX\Izv.docx"); + _wordApp = new Application(); + _wordDocument = _wordApp.Documents.Open(_fi.FullName); + } + #endregion //Constructor + + #region Fields + + private Application _wordApp; + private Microsoft.Office.Interop.Word.Document _wordDocument; + private object _wFalse = false; + private object _wTrue = true; + private object _missing = null; + private FileInfo _fi; + private DMS _document; + private List _docs; + private Table _table; + private int _copies; + private XLAB7Repository _repository; + #endregion //Fields + + #region Properties + + #endregion //Properties + + #region Mehtods + + private void Replace(string text, string replacementText) + { + Find find = _wordApp.Selection.Find; + find.Text = text; + find.Replacement.Text = replacementText; + find.Execute(FindText: Type.Missing, + MatchCase: false, + MatchWholeWord: false, + MatchWildcards: false, + MatchSoundsLike: Type.Missing, + MatchAllWordForms: false, + Forward: true, + Wrap: Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue, + Format: false, + ReplaceWith: Type.Missing, + Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll); + } + + public void Print() + { + var ekzmk = new List(); + foreach (var doc in _docs) + { + try + { + ekzmk.Add(_repository.GetEKZMK().Result.FirstOrDefault(f => f.IDEKZMK == doc.IDOD)); + } + catch { continue; } + } + Replace("number", _document.NND); + Replace("name", ekzmk.FirstOrDefault().IDEKZNavigation.IDTPRZNavigation.IDTIPSNavigation.IDSPNMTPNavigation.NMTP); + if (ekzmk.Count() > 3) + { + Replace("serial", ekzmk.Count().ToString()+" шт."); + } + else + { + string serials=string.Empty; + foreach (var d in ekzmk) + { + serials += d.IDEKZNavigation.NNZV+", "; + } + Replace("serial", serials); + } + Replace("type", ekzmk.FirstOrDefault().IDEKZNavigation.IDTPRZNavigation.IDTIPSNavigation.TP); + Replace("gr", ekzmk.FirstOrDefault().IDEKZNavigation.IDTPRZNavigation.IDTIPSNavigation.NNTPGR); + Replace("reason", ekzmk.FirstOrDefault().PRCHNPGDN); + Replace("method", ""); + Replace("dev", ekzmk.FirstOrDefault().IDEKZNavigation.IDFRPDVNavigation.NMFRPD); + Replace("person", ekzmk.FirstOrDefault().IDPRSNNavigation.PRFIO); + Replace("date", ((DateTime)ekzmk.FirstOrDefault().DTMKFK).ToLongDateString()); + + _wordDocument.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, _copies); + _wordDocument.Close(_wFalse); + _wordApp.Quit(); + } + #endregion //Mehtods + } +} diff --git a/XLIMS.CORE/Helpers/OpenPsv.cs b/XLIMS.CORE/Helpers/OpenPsv.cs new file mode 100644 index 0000000..8c33ba2 --- /dev/null +++ b/XLIMS.CORE/Helpers/OpenPsv.cs @@ -0,0 +1,124 @@ +using System; +using System.IO; + +namespace XLIMS.CORE.Helpers +{ + public class OpenPsv + { + #region Fields + + private readonly dynamic _wordApp; + private readonly dynamic _wordDocument; + private readonly dynamic _table; + + private readonly DocViewModel _document; + private readonly XLAB7Repository _repository; + private readonly int _copies; + + #endregion + + #region Constructor + + public OpenPsv(DocViewModel document, XLAB7Repository repository, int copies = 1) + { + _document = document ?? throw new ArgumentNullException(nameof(document)); + _repository = repository ?? throw new ArgumentNullException(nameof(repository)); + _copies = copies < 1 ? 1 : copies; + + var templatePath = Path.Combine("Resources", "DOCX", "OpenPsv.docx"); + + if (!File.Exists(templatePath)) + throw new FileNotFoundException("Шаблон Word не найден", templatePath); + + var wordType = Type.GetTypeFromProgID("Word.Application"); + if (wordType == null) + throw new InvalidOperationException("Microsoft Word не установлен"); + + _wordApp = Activator.CreateInstance(wordType); + _wordApp.Visible = false; + + _wordDocument = _wordApp.Documents.Open(templatePath); + + if (_wordDocument.Tables.Count < 1) + throw new InvalidOperationException("В документе отсутствует таблица"); + + _table = _wordDocument.Tables[1]; + } + + #endregion + + #region Methods + + private void Replace(string placeholder, string value) + { + dynamic range = _wordDocument.Content; + dynamic find = range.Find; + + find.ClearFormatting(); + find.Text = placeholder; + find.Replacement.ClearFormatting(); + find.Replacement.Text = value ?? string.Empty; + + find.Execute( + Replace: 2, // wdReplaceAll + Wrap: 1 // wdFindContinue + ); + } + + public void Print() + { + Replace("number", _document.Number); + Replace("div", _document.CurrentFRPD.NMFRPD); + Replace("date", ((DateTime)_document.Date).ToLongDateString()); + Replace("count", _document.AllEKZMK.Count.ToString()); + Replace("next", ((DateTime)_document.Date).AddDays(30).ToLongDateString()); + Replace("person", _document.CurrentPRSNPR.PRFIO); + + int rowIndex = 2; + int index = 1; + + foreach (var group in _document.AllGroupsEKZMK) + { + _table.Rows.Add(); + + _table.Cell(rowIndex, 1).Range.Text = index.ToString(); + _table.Cell(rowIndex, 2).Range.Text = + group.CurrentEKZMK.CurrentEKZ.IDTPRZNavigation + .IDTIPSNavigation.IDSPNMTPNavigation.NMTP; + + _table.Cell(rowIndex, 3).Range.Text = + group.CurrentEKZMK.CurrentEKZ.IDTPRZNavigation + .IDTIPSNavigation.TP; + + _table.Cell(rowIndex, 4).Range.Text = + group.CurrentEKZMK.CurrentEKZ.IDTPRZNavigation.DPZN; + + if (group.GroupEKZMK.Count() > 3) + { + _table.Cell(rowIndex, 5).Range.Text = + group.GroupEKZMK.Count().ToString(); + } + else + { + foreach (var item in group.GroupEKZMK) + { + _table.Cell(rowIndex, 5).Range.Text += + item.CurrentEKZ.NNZV + ", "; + } + } + + _table.Cell(rowIndex, 6).Range.Text = group.Count.ToString(); + _table.Cell(rowIndex, 9).Range.Text = group.CurrentEKZMK.DSEKZMK; + + rowIndex++; + index++; + } + + _wordDocument.PrintOut(Copies: _copies); + _wordDocument.Close(false); + _wordApp.Quit(); + } + + #endregion + } +} diff --git a/XLIMS.CORE/Helpers/Svid.cs b/XLIMS.CORE/Helpers/Svid.cs new file mode 100644 index 0000000..fb08427 --- /dev/null +++ b/XLIMS.CORE/Helpers/Svid.cs @@ -0,0 +1,87 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Media; + +namespace XLIMS.CORE.Helpers +{ + public class Svid + { + #region Constructor + + + public Svid(DMS document, XLAB7Repository repository, int copies = 1) + { + _copies = copies; + _document = document; + _repository = repository; + _fi = new FileInfo(@"Resources\DOCX\Svid.docx"); + _wordApp = new Application(); + _wordDocument = _wordApp.Documents.Open(_fi.FullName); + } + #endregion //Constructor + + #region Fields + + private Application _wordApp; + private Microsoft.Office.Interop.Word.Document _wordDocument; + private object _wFalse = false; + private object _wTrue = true; + private object _missing = null; + private FileInfo _fi; + private DMS _document; + private Table _table; + private int _copies; + private XLAB7Repository _repository; + #endregion //Fields + + #region Properties + + #endregion //Properties + + #region Mehtods + + private void Replace(string text, string replacementText) + { + Find find = _wordApp.Selection.Find; + find.Text = text; + find.Replacement.Text = replacementText; + find.Execute(FindText: Type.Missing, + MatchCase: false, + MatchWholeWord: false, + MatchWildcards: false, + MatchSoundsLike: Type.Missing, + MatchAllWordForms: false, + Forward: true, + Wrap: Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue, + Format: false, + ReplaceWith: Type.Missing, + Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll); + } + + public void Print() + { + var ekzmk = _repository.GetEKZMK().Result.FirstOrDefault(f => f.IDEKZMK == _document.IDOD); + Replace("number", _document.NND); + Replace("nextpovdate", ((DateTime)ekzmk.IDEKZNavigation.EKZMCP.FirstOrDefault().DTMKPLO).ToLongDateString()); + Replace("name", ekzmk.IDEKZNavigation.IDTPRZNavigation.IDTIPSNavigation.IDSPNMTPNavigation.NMTP); + Replace("serial", ekzmk.IDEKZNavigation.NNZV); + Replace("type", ekzmk.IDEKZNavigation.IDTPRZNavigation.IDTIPSNavigation.TP); + Replace("gr", ekzmk.IDEKZNavigation.IDTPRZNavigation.IDTIPSNavigation.NNTPGR); + Replace("method", ""); + Replace("temp", ekzmk.EKZMKFCTVL.FirstOrDefault(f=>f.IDSPIV==1000).ZNFCTVLMIN.ToString()); + Replace("hum", ekzmk.EKZMKFCTVL.FirstOrDefault(f => f.IDSPIV == 1002).ZNFCTVLMIN.ToString()); + Replace("press", ekzmk.EKZMKFCTVL.FirstOrDefault(f => f.IDSPIV == 1001).ZNFCTVLMIN.ToString()); + Replace("count", ""); + Replace("person", ekzmk.IDPRSNNavigation.PRFIO); + Replace("date", ((DateTime)ekzmk.DTMKFK).ToLongDateString()); + _wordDocument.PrintOut(Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, _copies); + _wordDocument.Close(_wFalse); + _wordApp.Quit(); + } + #endregion //Mehtods + } +} diff --git a/XLIMS.CORE/Resources/CoreDictionary.xaml b/XLIMS.CORE/Resources/CoreDictionary.xaml new file mode 100644 index 0000000..42f1cd1 --- /dev/null +++ b/XLIMS.CORE/Resources/CoreDictionary.xaml @@ -0,0 +1,3 @@ + + \ No newline at end of file diff --git a/XLIMS.CORE/Resources/DOCX/ClosePsv.docx b/XLIMS.CORE/Resources/DOCX/ClosePsv.docx new file mode 100644 index 0000000000000000000000000000000000000000..bb3085b1be4f6d0873cc8c19b2f4748866fc968c GIT binary patch literal 32661 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 F{{TAXjJ5y( literal 0 HcmV?d00001 diff --git a/XLIMS.CORE/Resources/DOCX/Izv.docx b/XLIMS.CORE/Resources/DOCX/Izv.docx new file mode 100644 index 0000000000000000000000000000000000000000..c471a02141efce24518e9e2c8dc8dfe7a9b10951 GIT binary patch literal 32461 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 literal 0 HcmV?d00001 diff --git a/XLIMS.CORE/Resources/DOCX/OpenPsv.docx b/XLIMS.CORE/Resources/DOCX/OpenPsv.docx new file mode 100644 index 0000000000000000000000000000000000000000..3ff1a3a7b357e1783d76a3f8f9bd9f3551e4650b GIT binary patch literal 33858 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%0AJBm7P)%Sk>y5{#iK)LT^H>X~2zV!K-_ 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 literal 0 HcmV?d00001 diff --git a/XLIMS.CORE/ViewModels/MainViewModel.cs b/XLIMS.CORE/ViewModels/MainViewModel.cs new file mode 100644 index 0000000..72882d1 --- /dev/null +++ b/XLIMS.CORE/ViewModels/MainViewModel.cs @@ -0,0 +1,73 @@ +using Microsoft.EntityFrameworkCore.ChangeTracking; +using Microsoft.Extensions.DependencyInjection; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Text; +using System.Windows; +using System.Windows.Input; +using XLIMS.CONTRACT; +using XLIMS.CORE.Windows; +using XLIMS.MVVM.Base; + +namespace XLIMS.CORE.ViewModels +{ + public class MainViewModel:ViewModelBase + { + #region Constructor + public MainViewModel(IServiceProvider serviceProvider) + { + _serviceProvider = serviceProvider; + + // Регистрация доступных activities + Activities.Add(serviceProvider.GetRequiredService()); + Activities.Add(serviceProvider.GetRequiredService()); + Activities.Add(serviceProvider.GetRequiredService()); + Activities.Add(serviceProvider.GetRequiredService()); + + // По умолчанию открываем первую + CurrentActivity = Activities.FirstOrDefault(); + + NavigateCommand = new RelayCommand(Navigate); + } + #endregion //Constructor + + #region Events + #endregion //Events + + #region Fields + public readonly IServiceProvider _serviceProvider; + #endregion //Fields + + #region Properties + public ObservableCollection Activities { get; } + = new ObservableCollection(); + + private IActivityViewModel _currentActivity; + public IActivityViewModel CurrentActivity + { + get => _currentActivity; + set + { + if (_currentActivity != value) + { + _currentActivity = value; + OnPropertyChanged(); + } + } + } + #endregion //Properties + + #region Methods + private void Navigate(IActivityViewModel vm) + { + if (vm != null) + CurrentActivity = vm; + } + #endregion //Methods + + #region Commands + public ICommand NavigateCommand { get; } + #endregion //Commands + } +} diff --git a/XLIMS.CORE/Windows/EditWindow.xaml b/XLIMS.CORE/Windows/EditWindow.xaml new file mode 100644 index 0000000..8b449e7 --- /dev/null +++ b/XLIMS.CORE/Windows/EditWindow.xaml @@ -0,0 +1,42 @@ + + + + + + + + + + +