From 91ca4e5adf46806e7f76d7369c565e2fd6445186 Mon Sep 17 00:00:00 2001 From: he <10978375@qq.com> Date: Tue, 14 Feb 2023 16:12:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Reading/ShortcutKey/ShortcutKeyService.cs | 471 ++++++++++++------ 1 file changed, 327 insertions(+), 144 deletions(-) diff --git a/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs b/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs index 981c7566f..5aa64b748 100644 --- a/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs +++ b/IRaCIS.Core.Application/Service/Reading/ShortcutKey/ShortcutKeyService.cs @@ -9,165 +9,348 @@ using Microsoft.AspNetCore.Mvc; using IRaCIS.Core.Application.Interfaces; using IRaCIS.Core.Application.ViewModel; namespace IRaCIS.Core.Application.Service -{ - /// - /// 快捷键服务 - /// - [ApiExplorerSettings(GroupName = "Reading")] - public class ShortcutKeyService: BaseService +{ + /// + /// 快捷键服务 + /// + [ApiExplorerSettings(GroupName = "Reading")] + public class ShortcutKeyService : BaseService { private readonly IRepository _dictionaryRepository; private readonly IRepository _shortcutKeyRepository; - public ShortcutKeyService( - IRepository DictionaryRepository, - IRepository shortcutKeyRepository - ) - { - _dictionaryRepository = DictionaryRepository; - _shortcutKeyRepository = shortcutKeyRepository; - } - - - /// - /// 获取医生快捷键 - /// - /// - /// - [HttpPost] - public async Task> GetDoctorShortcutKey(DefaultShortcutKeyQuery inQuery) - { - var shortcutKeyList = await _shortcutKeyRepository.Where(x => x.ImageToolType == inQuery.ImageToolType) - .Where(x=>x.UserId==_userInfo.Id) - .ToListAsync(); - - var defaultshortcutKeyList = this.GetDefaultShortcutKey(); - - var shortcutKeydic = await _dictionaryRepository.Where(x => x.Parent.Code == "ShortcutKey") - .WhereIf(inQuery.ShortcutKeyEnum != null, x => x.Code == inQuery.ShortcutKeyEnum.ToString()).ToListAsync(); - - - List result = new List(); - - shortcutKeydic.OrderBy(x => x.ShowOrder).ForEach(x => - { - var key = shortcutKeyList.Where(y => y.ShortcutKeyEnum == int.Parse(x.Code)).FirstOrDefault(); - var defaultkey= defaultshortcutKeyList.Where(y => y.ShortcutKeyEnum == int.Parse(x.Code)).FirstOrDefault(); - var isnull = key == null; - - result.Add(new DefaultShortcutKeyView() - { - Id = x.Id, - ImageToolType = inQuery.ImageToolType, - ShortcutKeyEnum = int.Parse(x.Code), - Keyboardkey = isnull ? defaultkey.Keyboardkey : key.Keyboardkey, - AltKey = isnull ? false : key.AltKey, - CtrlKey = isnull ? false : key.CtrlKey, - MetaKey = isnull ? false : key.MetaKey, - ShiftKey = isnull ? false : key.ShiftKey, - Text = isnull ? defaultkey.Text : key.Text, - Code = isnull ? defaultkey.Code : key.Code, - }); - - }); - - - - return result; - } - - /// - /// 获取默认快捷键 - /// - /// - private List GetDefaultShortcutKey() + public ShortcutKeyService( + IRepository DictionaryRepository, + IRepository shortcutKeyRepository + ) { - List shortcutKeys = new List() { - new ShortcutKey (){ ShortcutKeyEnum=1,Keyboardkey="right",Text="right" }, - new ShortcutKey (){ ShortcutKeyEnum=2,Keyboardkey="left",Text="left"}, - new ShortcutKey (){ ShortcutKeyEnum=3,Keyboardkey="PageUp",Text="PageUp"}, - new ShortcutKey (){ ShortcutKeyEnum=4,Keyboardkey="pageDown",Text="pageDown"}, - new ShortcutKey (){ ShortcutKeyEnum=5,Keyboardkey="Up",Text="Up"}, - new ShortcutKey (){ ShortcutKeyEnum=6,Keyboardkey="Down",Text="Down"}, - new ShortcutKey (){ ShortcutKeyEnum=7,Keyboardkey="L",Text="L"}, - new ShortcutKey (){ ShortcutKeyEnum=8,Keyboardkey="R",Text="R"}, - new ShortcutKey (){ ShortcutKeyEnum=9,Keyboardkey="H",Text="H"}, - new ShortcutKey (){ ShortcutKeyEnum=10,Keyboardkey="V" ,Text="V"}, - new ShortcutKey (){ ShortcutKeyEnum=11,Keyboardkey="+" ,Text="+"}, - new ShortcutKey (){ ShortcutKeyEnum=12,Keyboardkey="-" ,Text="-"}, - new ShortcutKey (){ ShortcutKeyEnum=13,Keyboardkey="=" ,Text="="}, - new ShortcutKey (){ ShortcutKeyEnum=14,Keyboardkey="F" ,Text="F"}, - new ShortcutKey (){ ShortcutKeyEnum=15,Keyboardkey="S" ,Text="S"}, - new ShortcutKey (){ ShortcutKeyEnum=16,Keyboardkey="I" ,Text="I"}, - new ShortcutKey (){ ShortcutKeyEnum=17,Keyboardkey="C" ,Text="C"}, - new ShortcutKey (){ ShortcutKeyEnum=18,Keyboardkey="Space" ,Text="Space"}, - }; - - return shortcutKeys; + _dictionaryRepository = DictionaryRepository; + _shortcutKeyRepository = shortcutKeyRepository; + } - } + /// + /// 获取医生快捷键 + /// + /// + /// + [HttpPost] + public async Task> GetDoctorShortcutKey(DefaultShortcutKeyQuery inQuery) + { + var shortcutKeyList = await _shortcutKeyRepository.Where(x => x.ImageToolType == inQuery.ImageToolType) + .Where(x => x.UserId == _userInfo.Id) + .ToListAsync(); - /// - /// 重置为默认快捷键 - /// - /// - [HttpPost] - public async Task RestoreDefaultShortcutKey(RestoreDefaultShortcutKeyInDto inDto) - { - var shortcutKeys = GetDefaultShortcutKey(); - shortcutKeys.ForEach(x => { - x.UserId = _userInfo.Id; - }); + var defaultshortcutKeyList = this.GetDefaultShortcutKey(); - await _shortcutKeyRepository.BatchDeleteNoTrackingAsync(x => x.ImageToolType == inDto.ImageToolType && x.UserId == _userInfo.Id); + var shortcutKeydic = await _dictionaryRepository.Where(x => x.Parent.Code == "ShortcutKey") + .WhereIf(inQuery.ShortcutKeyEnum != null, x => x.Code == inQuery.ShortcutKeyEnum.ToString()).ToListAsync(); - await _shortcutKeyRepository.AddRangeAsync(shortcutKeys.Select(x => new ShortcutKey() - { - ImageToolType = inDto.ImageToolType, - Keyboardkey = x.Keyboardkey, - ShortcutKeyEnum = x.ShortcutKeyEnum, - UserId = _userInfo.Id, - AltKey = x.AltKey, - CtrlKey = x.CtrlKey, - MetaKey = x.MetaKey, - ShiftKey = x.ShiftKey, - Text = x.Text, - Code=x.Code, - })); - return await _shortcutKeyRepository.SaveChangesAsync(); - } + List result = new List(); - /// - /// 设置快捷键 - /// - /// - /// - [HttpPost] - public async Task SetShortcutKey(SetDefaultShortcutKey inDto) - { - await _shortcutKeyRepository.BatchDeleteNoTrackingAsync(x => x.ImageToolType == inDto.ImageToolType&&x.UserId==_userInfo.Id); + shortcutKeydic.OrderBy(x => x.ShowOrder).ForEach(x => + { + var key = shortcutKeyList.Where(y => y.ShortcutKeyEnum == int.Parse(x.Code)).FirstOrDefault(); + var defaultkey = defaultshortcutKeyList.Where(y => y.ShortcutKeyEnum == int.Parse(x.Code)).FirstOrDefault(); + var isnull = key == null; - await _shortcutKeyRepository.AddRangeAsync(inDto.ShortcutKeyList.Select(x => new ShortcutKey() - { - ImageToolType = inDto.ImageToolType, - Keyboardkey = x.Keyboardkey, - ShortcutKeyEnum = x.ShortcutKeyEnum, - UserId=_userInfo.Id, - AltKey=x.AltKey, - CtrlKey=x.CtrlKey, - MetaKey=x.MetaKey, - ShiftKey=x.ShiftKey, - Text=x.Text, - Code=x.Code, - })); + result.Add(new DefaultShortcutKeyView() + { + Id = x.Id, + ImageToolType = inQuery.ImageToolType, + ShortcutKeyEnum = int.Parse(x.Code), + Keyboardkey = isnull ? defaultkey.Keyboardkey : key.Keyboardkey, + AltKey = isnull ? false : key.AltKey, + CtrlKey = isnull ? false : key.CtrlKey, + MetaKey = isnull ? false : key.MetaKey, + ShiftKey = isnull ? false : key.ShiftKey, + Text = isnull ? defaultkey.Text : key.Text, + Code = isnull ? defaultkey.Code : key.Code, + }); - return await _shortcutKeyRepository.SaveChangesAsync(); - } + }); + + + + return result; + } + + /// + /// 获取默认快捷键 + /// + /// + private List GetDefaultShortcutKey() + { + List shortcutKeys = new List() { + new ShortcutKey (){ + + Keyboardkey= "ArrowLeft", + ShortcutKeyEnum = 1, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "←", + Code= "ArrowLeft" + }, new ShortcutKey (){ + + Keyboardkey= "ArrowRight", + ShortcutKeyEnum = 2, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "→", + Code= "ArrowRight" + }, new ShortcutKey (){ + + Keyboardkey= "PageUp", + ShortcutKeyEnum = 3, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "PageUp", + Code= "PageUp" + }, new ShortcutKey (){ + + Keyboardkey= "PageDown", + ShortcutKeyEnum = 4, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "PageDown", + Code= "PageDown" + }, new ShortcutKey (){ + + Keyboardkey= "ArrowUp", + ShortcutKeyEnum = 5, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "↑", + Code= "ArrowUp" + }, new ShortcutKey (){ + + Keyboardkey= "ArrowDown", + ShortcutKeyEnum = 6, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "↓", + Code= "ArrowDown" + }, new ShortcutKey (){ + + Keyboardkey= "l", + ShortcutKeyEnum = 7, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "L", + Code= "KeyL" + }, new ShortcutKey (){ + + Keyboardkey= "r", + ShortcutKeyEnum = 8, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "R", + Code= "KeyR" + }, new ShortcutKey (){ + + Keyboardkey= "h", + ShortcutKeyEnum = 9, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "H", + Code= "KeyH" + }, new ShortcutKey (){ + + Keyboardkey= "v", + ShortcutKeyEnum = 10, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "V", + Code= "KeyV" + }, new ShortcutKey (){ + + Keyboardkey= "+", + ShortcutKeyEnum = 11, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = true, + MetaKey = false, + Text= "+", + Code= "Equal" + }, new ShortcutKey (){ + + Keyboardkey= "-", + ShortcutKeyEnum = 12, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "-", + Code= "Minus" + }, new ShortcutKey (){ + + Keyboardkey= "=", + ShortcutKeyEnum = 13, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "=", + Code= "Equal" + }, new ShortcutKey (){ + + Keyboardkey= "f", + ShortcutKeyEnum = 14, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "F", + Code= "KeyF" + }, new ShortcutKey (){ + + Keyboardkey= "s", + ShortcutKeyEnum = 15, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "S", + Code= "KeyS" + }, new ShortcutKey (){ + + Keyboardkey= "i", + ShortcutKeyEnum = 16, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "I", + Code= "KeyI" + }, new ShortcutKey (){ + + Keyboardkey= "c", + ShortcutKeyEnum = 17, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "C", + Code= "KeyC" + }, new ShortcutKey (){ + + Keyboardkey= "", + ShortcutKeyEnum = 18, + ImageToolType= 0, + AltKey = false, + CtrlKey = false, + ShiftKey = false, + MetaKey = false, + Text= "Space", + Code= "Space" + }, }; + + + return shortcutKeys; + + + } + + + /// + /// 重置为默认快捷键 + /// + /// + [HttpPost] + public async Task RestoreDefaultShortcutKey(RestoreDefaultShortcutKeyInDto inDto) + { + var shortcutKeys = GetDefaultShortcutKey(); + shortcutKeys.ForEach(x => + { + x.UserId = _userInfo.Id; + }); + + await _shortcutKeyRepository.BatchDeleteNoTrackingAsync(x => x.ImageToolType == inDto.ImageToolType && x.UserId == _userInfo.Id); + + await _shortcutKeyRepository.AddRangeAsync(shortcutKeys.Select(x => new ShortcutKey() + { + ImageToolType = inDto.ImageToolType, + Keyboardkey = x.Keyboardkey, + ShortcutKeyEnum = x.ShortcutKeyEnum, + UserId = _userInfo.Id, + AltKey = x.AltKey, + CtrlKey = x.CtrlKey, + MetaKey = x.MetaKey, + ShiftKey = x.ShiftKey, + Text = x.Text, + Code = x.Code, + })); + + return await _shortcutKeyRepository.SaveChangesAsync(); + } + + /// + /// 设置快捷键 + /// + /// + /// + [HttpPost] + public async Task SetShortcutKey(SetDefaultShortcutKey inDto) + { + await _shortcutKeyRepository.BatchDeleteNoTrackingAsync(x => x.ImageToolType == inDto.ImageToolType && x.UserId == _userInfo.Id); + + await _shortcutKeyRepository.AddRangeAsync(inDto.ShortcutKeyList.Select(x => new ShortcutKey() + { + ImageToolType = inDto.ImageToolType, + Keyboardkey = x.Keyboardkey, + ShortcutKeyEnum = x.ShortcutKeyEnum, + UserId = _userInfo.Id, + AltKey = x.AltKey, + CtrlKey = x.CtrlKey, + MetaKey = x.MetaKey, + ShiftKey = x.ShiftKey, + Text = x.Text, + Code = x.Code, + })); + + return await _shortcutKeyRepository.SaveChangesAsync(); + } - } -} + } +}