diff --git a/.gitignore b/.gitignore index d4dc94e..cb14307 100644 --- a/.gitignore +++ b/.gitignore @@ -4,5 +4,6 @@ */bin/* */obj/* *.csproj.user +*.DotSettings.user *.suo .vs diff --git a/.idea/.idea.VAR.Toolbox/.idea/.gitignore b/.idea/.idea.VAR.Toolbox/.idea/.gitignore new file mode 100644 index 0000000..60335c0 --- /dev/null +++ b/.idea/.idea.VAR.Toolbox/.idea/.gitignore @@ -0,0 +1,13 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Rider ignored files +/contentModel.xml +/.idea.VAR.Json.iml +/modules.xml +/projectSettingsUpdater.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/.idea.VAR.Toolbox/.idea/dictionaries/VAR.xml b/.idea/.idea.VAR.Toolbox/.idea/dictionaries/VAR.xml new file mode 100644 index 0000000..eb7f3d6 --- /dev/null +++ b/.idea/.idea.VAR.Toolbox/.idea/dictionaries/VAR.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/.idea/.idea.VAR.Toolbox/.idea/encodings.xml b/.idea/.idea.VAR.Toolbox/.idea/encodings.xml new file mode 100644 index 0000000..df87cf9 --- /dev/null +++ b/.idea/.idea.VAR.Toolbox/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/.idea.VAR.Toolbox/.idea/indexLayout.xml b/.idea/.idea.VAR.Toolbox/.idea/indexLayout.xml new file mode 100644 index 0000000..7b08163 --- /dev/null +++ b/.idea/.idea.VAR.Toolbox/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.VAR.Toolbox/.idea/vcs.xml b/.idea/.idea.VAR.Toolbox/.idea/vcs.xml new file mode 100644 index 0000000..d117f4e --- /dev/null +++ b/.idea/.idea.VAR.Toolbox/.idea/vcs.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/VAR.Toolbox.TestPlugin/FrmTestPlugin.cs b/VAR.Toolbox.TestPlugin/FrmTestPlugin.cs index a55c0a4..0a0243a 100644 --- a/VAR.Toolbox.TestPlugin/FrmTestPlugin.cs +++ b/VAR.Toolbox.TestPlugin/FrmTestPlugin.cs @@ -10,8 +10,8 @@ namespace VAR.Toolbox.TestPlugin InitializeComponent(); } - public string ToolName { get { return "Test"; } } + public string ToolName => "Test"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; } -} +} \ No newline at end of file diff --git a/VAR.Toolbox.TestPlugin/Notes.md b/VAR.Toolbox.TestPlugin/Notes.md index 5f428e5..26123d4 100644 --- a/VAR.Toolbox.TestPlugin/Notes.md +++ b/VAR.Toolbox.TestPlugin/Notes.md @@ -3,11 +3,12 @@ * Build as class library. * Add reference to ```VAR.Toolbox``` for interface declarations and utilities. * Use the interfaces to extend functionality: - * ```IToolForm```: Tool window. - * ```IToolPanel```: Tool panels in the main window. Try to fit all on 200px width. - * ```ITextCoder```: Text codification clases. - * ```IProxyCmdExecutor```: Proxy command executors, mainly for remote executions. + * ```IToolForm```: Tool window. + * ```IToolPanel```: Tool panels in the main window. Try to fit all on 200px width. + * ```ITextCoder```: Text codification clases. + * ```IProxyCmdExecutor```: Proxy command executors, mainly for remote executions. ## Usage -Put the generated assembly near ```VAR.Toolbox.exe``` it will load as plug-ins any assembly that starts with ```VAR.Toolbox``` \ No newline at end of file +Put the generated assembly near ```VAR.Toolbox.exe``` it will load as plug-ins any assembly that starts +with ```VAR.Toolbox``` \ No newline at end of file diff --git a/VAR.Toolbox.TestPlugin/Properties/AssemblyInfo.cs b/VAR.Toolbox.TestPlugin/Properties/AssemblyInfo.cs index a046fc6..613b15a 100644 --- a/VAR.Toolbox.TestPlugin/Properties/AssemblyInfo.cs +++ b/VAR.Toolbox.TestPlugin/Properties/AssemblyInfo.cs @@ -32,4 +32,4 @@ using System.Runtime.InteropServices; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] \ No newline at end of file diff --git a/VAR.Toolbox.TestPlugin/VAR.Toolbox.TestPlugin.csproj b/VAR.Toolbox.TestPlugin/VAR.Toolbox.TestPlugin.csproj index f673a4b..fe971ba 100644 --- a/VAR.Toolbox.TestPlugin/VAR.Toolbox.TestPlugin.csproj +++ b/VAR.Toolbox.TestPlugin/VAR.Toolbox.TestPlugin.csproj @@ -9,9 +9,10 @@ Properties VAR.Toolbox.TestPlugin VAR.Toolbox.TestPlugin - v4.7.2 + v4.8 512 true + true diff --git a/VAR.Toolbox.sln.DotSettings b/VAR.Toolbox.sln.DotSettings new file mode 100644 index 0000000..f33e393 --- /dev/null +++ b/VAR.Toolbox.sln.DotSettings @@ -0,0 +1,63 @@ + + NotRequired + True + True + TOGETHER_SAME_LINE + True + True + False + True + True + True + OneStep + OneStep + True + UseVarWhenEvident + UseVarWhenEvident + AES + AM + AUX + BPP + DC + DES + EPM + GDI + ID + IP + RECT + RGB + SCART + SPDIF + SQL + SRCCOPY + TCP + URL + USB + VAR + WMIC + YRYBY + False + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb"><ExtraRule Prefix="T" Suffix="" Style="AaBb_AaBb" /></Policy> + <Policy Inspect="True" Prefix="I" Suffix="" Style="AaBb_AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb_AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="aaBb_AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /> + <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb_AaBb" /> + <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb_AaBb" /> + <Policy Inspect="True" Prefix="_" Suffix="" Style="aaBb_AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb" /> + <Policy Inspect="True" Prefix="" Suffix="" Style="AaBb_AaBb" /> + True + True + True + True + True + True + True + True + \ No newline at end of file diff --git a/VAR.Toolbox/Code/BaseFactory.cs b/VAR.Toolbox/Code/BaseFactory.cs index 41eee61..4e30748 100644 --- a/VAR.Toolbox/Code/BaseFactory.cs +++ b/VAR.Toolbox/Code/BaseFactory.cs @@ -6,7 +6,8 @@ namespace VAR.Toolbox.Code { public abstract class BaseFactory where T : INamed { - private static Dictionary _dictTypes = null; + // ReSharper disable once StaticMemberInGenericType + private static Dictionary _dictTypes; private static Dictionary GetDict() { @@ -37,8 +38,10 @@ namespace VAR.Toolbox.Code Dictionary dict = GetDict(); if (dict.ContainsKey(name) == false) { - throw new NotImplementedException(string.Format("Cant create {1} with this name: {0}", name, typeof(T).Name)); + throw new NotImplementedException(string.Format("Cant create {1} with this name: {0}", name, + typeof(T).Name)); } + Type type = dict[name]; T instance = (T)Activator.CreateInstance(type); @@ -55,10 +58,13 @@ namespace VAR.Toolbox.Code { return (T)(object)null; } + if (dict.ContainsKey(name) == false) { - throw new NotImplementedException(string.Format("Cant create {1} with this config: {0}", config, typeof(T).Name)); + throw new NotImplementedException(string.Format("Cant create {1} with this config: {0}", config, + typeof(T).Name)); } + Type type = dict[name]; T instance = (T)Activator.CreateInstance(type, new object[] { nextConfig }); @@ -70,4 +76,4 @@ namespace VAR.Toolbox.Code { string Name { get; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/CameraControlProperty.cs b/VAR.Toolbox/Code/DirectShow/CameraControlProperty.cs index 7ccb10e..f859903 100644 --- a/VAR.Toolbox/Code/DirectShow/CameraControlProperty.cs +++ b/VAR.Toolbox/Code/DirectShow/CameraControlProperty.cs @@ -11,26 +11,32 @@ /// Pan control. /// Pan = 0, + /// /// Tilt control. /// Tilt, + /// /// Roll control. /// Roll, + /// /// Zoom control. /// Zoom, + /// /// Exposure control. /// Exposure, + /// /// Iris control. /// Iris, + /// /// Focus control. /// @@ -47,13 +53,15 @@ /// No control flag. /// None = 0x0, + /// /// Auto control Flag. /// Auto = 0x0001, + /// /// Manual control Flag. /// Manual = 0x0002 } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IAMCameraControl.cs b/VAR.Toolbox/Code/DirectShow/IAMCameraControl.cs index a88ce2a..efe81ed 100644 --- a/VAR.Toolbox/Code/DirectShow/IAMCameraControl.cs +++ b/VAR.Toolbox/Code/DirectShow/IAMCameraControl.cs @@ -1,6 +1,5 @@ namespace VAR.Toolbox.Code.DirectShow { - using System; using System.Runtime.InteropServices; /// @@ -8,15 +7,15 @@ /// or shutter speed. To obtain this interface, query the filter that controls the camera. /// [ComImport, - Guid("C6E13370-30AC-11d0-A18C-00A0C9118956"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("C6E13370-30AC-11d0-A18C-00A0C9118956"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IAMCameraControl { /// /// Gets the range and default value of a specified camera property. /// /// - /// Specifies the property to query. + /// Specifies the property to query. /// Receives the minimum value of the property. /// Receives the maximum value of the property. /// Receives the step size for the property. @@ -27,47 +26,47 @@ /// [PreserveSig] int GetRange( - [In] CameraControlProperty Property, + [In] CameraControlProperty property, [Out] out int pMin, [Out] out int pMax, [Out] out int pSteppingDelta, [Out] out int pDefault, [Out] out CameraControlFlags pCapsFlags - ); + ); /// /// Sets a specified property on the camera. /// /// - /// Specifies the property to set. + /// Specifies the property to set. /// Specifies the new value of the property. - /// Specifies the desired control setting, as a member of the CameraControlFlags enumeration. + /// Specifies the desired control setting, as a member of the CameraControlFlags enumeration. /// /// Return's HRESULT error code. /// [PreserveSig] int Set( - [In] CameraControlProperty Property, + [In] CameraControlProperty property, [In] int lValue, - [In] CameraControlFlags Flags - ); + [In] CameraControlFlags flags + ); /// /// Gets the current setting of a camera property. /// /// - /// Specifies the property to retrieve. + /// Specifies the property to retrieve. /// Receives the value of the property. - /// Receives a member of the CameraControlFlags enumeration. + /// Receives a member of the CameraControlFlags enumeration. /// The returned value indicates whether the setting is controlled manually or automatically. /// /// Return's HRESULT error code. /// [PreserveSig] int Get( - [In] CameraControlProperty Property, + [In] CameraControlProperty property, [Out] out int lValue, - [Out] out CameraControlFlags Flags - ); + [Out] out CameraControlFlags flags + ); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IAMCrossbar.cs b/VAR.Toolbox/Code/DirectShow/IAMCrossbar.cs index d824a92..18a129c 100644 --- a/VAR.Toolbox/Code/DirectShow/IAMCrossbar.cs +++ b/VAR.Toolbox/Code/DirectShow/IAMCrossbar.cs @@ -1,6 +1,5 @@ #pragma warning disable IDE1006 -using System; using System.Runtime.InteropServices; namespace VAR.Toolbox.Code.DirectShow @@ -9,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow /// The IAMCrossbar interface routes signals from an analog or digital source to a video capture filter. /// [ComImport, System.Security.SuppressUnmanagedCodeSecurity, - Guid("C6E13380-30AC-11D0-A18C-00A0C9118956"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("C6E13380-30AC-11D0-A18C-00A0C9118956"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IAMCrossbar { /// @@ -79,4 +78,4 @@ namespace VAR.Toolbox.Code.DirectShow [Out] out int pinIndexRelated, [Out] out PhysicalConnectorType physicalType); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IAMStreamConfig.cs b/VAR.Toolbox/Code/DirectShow/IAMStreamConfig.cs index f8230dd..c6d0024 100644 --- a/VAR.Toolbox/Code/DirectShow/IAMStreamConfig.cs +++ b/VAR.Toolbox/Code/DirectShow/IAMStreamConfig.cs @@ -1,6 +1,5 @@ namespace VAR.Toolbox.Code.DirectShow { - using System; using System.Runtime.InteropServices; /// @@ -9,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("C6E13340-30AC-11d0-A18C-00A0C9118956"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("C6E13340-30AC-11d0-A18C-00A0C9118956"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IAMStreamConfig { /// @@ -60,8 +59,10 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int GetStreamCaps( [In] int index, - [Out, MarshalAs(UnmanagedType.LPStruct)] out AMMediaType mediaType, - [In, MarshalAs(UnmanagedType.LPStruct)] VideoStreamConfigCaps streamConfigCaps - ); + [Out, MarshalAs(UnmanagedType.LPStruct)] + out AMMediaType mediaType, + [In, MarshalAs(UnmanagedType.LPStruct)] + VideoStreamConfigCaps streamConfigCaps + ); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IAMVideoControl.cs b/VAR.Toolbox/Code/DirectShow/IAMVideoControl.cs index d183d59..2873575 100644 --- a/VAR.Toolbox/Code/DirectShow/IAMVideoControl.cs +++ b/VAR.Toolbox/Code/DirectShow/IAMVideoControl.cs @@ -9,8 +9,8 @@ /// /// [ComImport, - Guid("6A2E0670-28E4-11D0-A18c-00A0C9118956"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("6A2E0670-28E4-11D0-A18c-00A0C9118956"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IAMVideoControl { /// @@ -101,4 +101,4 @@ [Out] out int listSize, [Out] out IntPtr frameRate); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IBaseFilter.cs b/VAR.Toolbox/Code/DirectShow/IBaseFilter.cs index 0491d97..a5cefec 100644 --- a/VAR.Toolbox/Code/DirectShow/IBaseFilter.cs +++ b/VAR.Toolbox/Code/DirectShow/IBaseFilter.cs @@ -9,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("56A86895-0AD4-11CE-B03A-0020AF0BA770"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("56A86895-0AD4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IBaseFilter { // --- IPersist Methods @@ -19,12 +19,12 @@ namespace VAR.Toolbox.Code.DirectShow /// Returns the class identifier (CLSID) for the component object. /// /// - /// Points to the location of the CLSID on return. + /// Points to the location of the CLSID on return. /// /// Return's HRESULT error code. /// [PreserveSig] - int GetClassID([Out] out Guid ClassID); + int GetClassID([Out] out Guid classID); // --- IMediaFilter Methods @@ -151,4 +151,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int QueryVendorInfo([Out, MarshalAs(UnmanagedType.LPWStr)] out string vendorInfo); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/ICaptureGraphBuilder2.cs b/VAR.Toolbox/Code/DirectShow/ICaptureGraphBuilder2.cs index 1354f5b..54eb61d 100644 --- a/VAR.Toolbox/Code/DirectShow/ICaptureGraphBuilder2.cs +++ b/VAR.Toolbox/Code/DirectShow/ICaptureGraphBuilder2.cs @@ -1,3 +1,5 @@ +// ReSharper disable IdentifierTypo + namespace VAR.Toolbox.Code.DirectShow { using System; @@ -8,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("93E5A4E0-2D50-11d2-ABFA-00A0C9C6E38D"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface ICaptureGraphBuilder2 { /// @@ -48,14 +50,15 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int SetOutputFileName( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid type, + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid type, [In, MarshalAs(UnmanagedType.LPWStr)] string fileName, [Out] out IBaseFilter baseFilter, [Out] out IntPtr fileSinkFilter - ); + ); /// - /// Searche the graph for a specified interface, starting from a specified filter. + /// Search the graph for a specified interface, starting from a specified filter. /// /// /// GUID that specifies the search criteria. @@ -68,12 +71,16 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int FindInterface( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid category, - [In, MarshalAs(UnmanagedType.LPStruct)] Guid type, + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid category, + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid type, [In] IBaseFilter baseFilter, - [In, MarshalAs(UnmanagedType.LPStruct)] Guid interfaceID, - [Out, MarshalAs(UnmanagedType.IUnknown)] out object retInterface - ); + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid interfaceID, + [Out, MarshalAs(UnmanagedType.IUnknown)] + out object retInterface + ); /// /// Connect an output pin on a source filter to a rendering filter, optionally through a compression filter. @@ -89,12 +96,15 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int RenderStream( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid category, - [In, MarshalAs(UnmanagedType.LPStruct)] Guid mediaType, - [In, MarshalAs(UnmanagedType.IUnknown)] object source, + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid category, + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid mediaType, + [In, MarshalAs(UnmanagedType.IUnknown)] + object source, [In] IBaseFilter compressor, [In] IBaseFilter renderer - ); + ); /// /// Set the start and stop times for one or more streams of captured data. @@ -114,14 +124,17 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int ControlStream( - [In, MarshalAs(UnmanagedType.LPStruct)] Guid category, - [In, MarshalAs(UnmanagedType.LPStruct)] Guid mediaType, - [In, MarshalAs(UnmanagedType.Interface)] IBaseFilter filter, + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid category, + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid mediaType, + [In, MarshalAs(UnmanagedType.Interface)] + IBaseFilter filter, [In] long start, [In] long stop, [In] short startCookie, [In] short stopCookie - ); + ); /// /// Preallocate a capture file to a specified size. @@ -136,7 +149,7 @@ namespace VAR.Toolbox.Code.DirectShow int AllocCapFile( [In, MarshalAs(UnmanagedType.LPWStr)] string fileName, [In] long size - ); + ); /// /// Copy the valid media data from a capture file. @@ -155,7 +168,7 @@ namespace VAR.Toolbox.Code.DirectShow [In, MarshalAs(UnmanagedType.LPWStr)] string newFileName, [In, MarshalAs(UnmanagedType.Bool)] bool allowEscAbort, [In] IntPtr callback - ); + ); /// /// @@ -173,13 +186,17 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int FindPin( - [In, MarshalAs(UnmanagedType.IUnknown)] object source, + [In, MarshalAs(UnmanagedType.IUnknown)] + object source, [In] PinDirection pinDirection, - [In, MarshalAs(UnmanagedType.LPStruct)] Guid category, - [In, MarshalAs(UnmanagedType.LPStruct)] Guid mediaType, + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid category, + [In, MarshalAs(UnmanagedType.LPStruct)] + Guid mediaType, [In, MarshalAs(UnmanagedType.Bool)] bool unconnected, [In] int index, - [Out, MarshalAs(UnmanagedType.Interface)] out IPin pin - ); + [Out, MarshalAs(UnmanagedType.Interface)] + out IPin pin + ); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/ICreateDevEnum.cs b/VAR.Toolbox/Code/DirectShow/ICreateDevEnum.cs index fbe1357..87598ab 100644 --- a/VAR.Toolbox/Code/DirectShow/ICreateDevEnum.cs +++ b/VAR.Toolbox/Code/DirectShow/ICreateDevEnum.cs @@ -10,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("29840822-5B84-11D0-BD3B-00A0C911CE86"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("29840822-5B84-11D0-BD3B-00A0C911CE86"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface ICreateDevEnum { /// @@ -27,4 +27,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int CreateClassEnumerator([In] ref Guid type, [Out] out IEnumMoniker enumMoniker, [In] int flags); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IEnumFilters.cs b/VAR.Toolbox/Code/DirectShow/IEnumFilters.cs index bbbfcb6..472ddf5 100644 --- a/VAR.Toolbox/Code/DirectShow/IEnumFilters.cs +++ b/VAR.Toolbox/Code/DirectShow/IEnumFilters.cs @@ -1,6 +1,5 @@ namespace VAR.Toolbox.Code.DirectShow { - using System; using System.Runtime.InteropServices; /// @@ -9,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("56A86893-0AD4-11CE-B03A-0020AF0BA770"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("56A86893-0AD4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IEnumFilters { /// @@ -25,7 +24,8 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int Next([In] int cFilters, - [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] IBaseFilter[] filters, + [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] + IBaseFilter[] filters, [Out] out int filtersFetched); /// @@ -61,4 +61,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int Clone([Out] out IEnumFilters enumFilters); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IEnumPins.cs b/VAR.Toolbox/Code/DirectShow/IEnumPins.cs index d258a40..429bffa 100644 --- a/VAR.Toolbox/Code/DirectShow/IEnumPins.cs +++ b/VAR.Toolbox/Code/DirectShow/IEnumPins.cs @@ -1,6 +1,5 @@ namespace VAR.Toolbox.Code.DirectShow { - using System; using System.Runtime.InteropServices; /// @@ -8,8 +7,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("56A86892-0AD4-11CE-B03A-0020AF0BA770"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("56A86892-0AD4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IEnumPins { /// @@ -24,7 +23,8 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int Next([In] int cPins, - [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] IPin[] pins, + [Out, MarshalAs(UnmanagedType.LPArray, SizeParamIndex = 0)] + IPin[] pins, [Out] out int pinsFetched); /// @@ -58,4 +58,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int Clone([Out] out IEnumPins enumPins); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IFileSourceFilter.cs b/VAR.Toolbox/Code/DirectShow/IFileSourceFilter.cs index 474b50e..12dc8c4 100644 --- a/VAR.Toolbox/Code/DirectShow/IFileSourceFilter.cs +++ b/VAR.Toolbox/Code/DirectShow/IFileSourceFilter.cs @@ -1,6 +1,5 @@ namespace VAR.Toolbox.Code.DirectShow { - using System; using System.Runtime.InteropServices; /// @@ -8,8 +7,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("56A868A6-0Ad4-11CE-B03A-0020AF0BA770"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("56A868A6-0Ad4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IFileSourceFilter { /// @@ -23,7 +22,8 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int Load([In, MarshalAs(UnmanagedType.LPWStr)] string fileName, - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType); + [In, MarshalAs(UnmanagedType.LPStruct)] + AMMediaType mediaType); /// /// Retrieves the current file. @@ -36,6 +36,7 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int GetCurFile([Out, MarshalAs(UnmanagedType.LPWStr)] out string fileName, - [Out, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType); + [Out, MarshalAs(UnmanagedType.LPStruct)] + AMMediaType mediaType); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IFilterGraph.cs b/VAR.Toolbox/Code/DirectShow/IFilterGraph.cs index 1cf6046..6c854c7 100644 --- a/VAR.Toolbox/Code/DirectShow/IFilterGraph.cs +++ b/VAR.Toolbox/Code/DirectShow/IFilterGraph.cs @@ -9,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("56A8689F-0AD4-11CE-B03A-0020AF0BA770"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("56A8689F-0AD4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IFilterGraph { /// @@ -70,7 +70,9 @@ namespace VAR.Toolbox.Code.DirectShow /// Return's HRESULT error code. /// [PreserveSig] - int ConnectDirect([In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType); + int ConnectDirect([In] IPin pinOut, [In] IPin pinIn, + [In, MarshalAs(UnmanagedType.LPStruct)] + AMMediaType mediaType); /// /// Breaks the existing pin connection and reconnects it to the same pin. @@ -103,4 +105,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int SetDefaultSyncSource(); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IFilterGraph2.cs b/VAR.Toolbox/Code/DirectShow/IFilterGraph2.cs index 3cd3301..def6515 100644 --- a/VAR.Toolbox/Code/DirectShow/IFilterGraph2.cs +++ b/VAR.Toolbox/Code/DirectShow/IFilterGraph2.cs @@ -10,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("36B73882-C2C8-11CF-8B46-00805F6CEF60"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("36B73882-C2C8-11CF-8B46-00805F6CEF60"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IFilterGraph2 { // --- IFilterGraph Methods @@ -73,7 +73,9 @@ namespace VAR.Toolbox.Code.DirectShow /// Return's HRESULT error code. /// [PreserveSig] - int ConnectDirect([In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType); + int ConnectDirect([In] IPin pinOut, [In] IPin pinIn, + [In, MarshalAs(UnmanagedType.LPStruct)] + AMMediaType mediaType); /// /// Breaks the existing pin connection and reconnects it to the same pin. @@ -226,8 +228,9 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int ReconnectEx( [In] IPin pin, - [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType - ); + [In, MarshalAs(UnmanagedType.LPStruct)] + AMMediaType mediaType + ); /// /// Render an output pin, with an option to use existing renderers only. @@ -244,7 +247,6 @@ namespace VAR.Toolbox.Code.DirectShow [In] IPin outputPin, [In] int flags, [In] IntPtr context - ); - + ); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IGraphBuilder.cs b/VAR.Toolbox/Code/DirectShow/IGraphBuilder.cs index b2a6c8d..6384c1f 100644 --- a/VAR.Toolbox/Code/DirectShow/IGraphBuilder.cs +++ b/VAR.Toolbox/Code/DirectShow/IGraphBuilder.cs @@ -8,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("56A868A9-0AD4-11CE-B03A-0020AF0BA770"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("56A868A9-0AD4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IGraphBuilder { // --- IFilterGraph Methods @@ -71,7 +71,9 @@ namespace VAR.Toolbox.Code.DirectShow /// Return's HRESULT error code. /// [PreserveSig] - int ConnectDirect([In] IPin pinOut, [In] IPin pinIn, [In, MarshalAs(UnmanagedType.LPStruct)] AMMediaType mediaType); + int ConnectDirect([In] IPin pinOut, [In] IPin pinIn, + [In, MarshalAs(UnmanagedType.LPStruct)] + AMMediaType mediaType); /// /// Breaks the existing pin connection and reconnects it to the same pin. @@ -188,4 +190,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int ShouldOperationContinue(); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IMediaControl.cs b/VAR.Toolbox/Code/DirectShow/IMediaControl.cs index d28385a..c09143b 100644 --- a/VAR.Toolbox/Code/DirectShow/IMediaControl.cs +++ b/VAR.Toolbox/Code/DirectShow/IMediaControl.cs @@ -1,6 +1,5 @@ #pragma warning disable IDE1006 -using System; using System.Runtime.InteropServices; namespace VAR.Toolbox.Code.DirectShow @@ -11,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("56A868B1-0AD4-11CE-B03A-0020AF0BA770"), - InterfaceType(ComInterfaceType.InterfaceIsDual)] + Guid("56A868B1-0AD4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsDual)] internal interface IMediaControl { /// @@ -47,7 +46,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// /// Duration of the time-out, in milliseconds, or INFINITE to specify an infinite time-out. - /// Ìariable that receives a member of the FILTER_STATE enumeration. + /// Variable that receives a member of the FILTER_STATE enumeration. /// /// Return's HRESULT error code. /// @@ -87,7 +86,8 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int get_FilterCollection( - [Out, MarshalAs(UnmanagedType.IDispatch)] out object collection); + [Out, MarshalAs(UnmanagedType.IDispatch)] + out object collection); /// /// Retrieves a collection of all the filters listed in the registry. @@ -99,7 +99,8 @@ namespace VAR.Toolbox.Code.DirectShow /// [PreserveSig] int get_RegFilterCollection( - [Out, MarshalAs(UnmanagedType.IDispatch)] out object collection); + [Out, MarshalAs(UnmanagedType.IDispatch)] + out object collection); /// /// Pauses the filter graph, allowing filters to queue data, and then stops the filter graph. @@ -110,4 +111,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int StopWhenReady(); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IMediaEventEx.cs b/VAR.Toolbox/Code/DirectShow/IMediaEventEx.cs index d9cd1a9..ba9d2c6 100644 --- a/VAR.Toolbox/Code/DirectShow/IMediaEventEx.cs +++ b/VAR.Toolbox/Code/DirectShow/IMediaEventEx.cs @@ -8,8 +8,8 @@ /// filter graph's default handling of events. /// [ComVisible(true), ComImport, - Guid("56a868c0-0ad4-11ce-b03a-0020af0ba770"), - InterfaceType(ComInterfaceType.InterfaceIsDual)] + Guid("56a868c0-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType(ComInterfaceType.InterfaceIsDual)] internal interface IMediaEventEx { /// @@ -34,7 +34,8 @@ /// Return's HRESULT error code. /// [PreserveSig] - int GetEvent([Out, MarshalAs(UnmanagedType.I4)] out DsEvCode lEventCode, [Out] out IntPtr lParam1, [Out] out IntPtr lParam2, int msTimeout); + int GetEvent([Out, MarshalAs(UnmanagedType.I4)] out DsEvCode lEventCode, [Out] out IntPtr lParam1, + [Out] out IntPtr lParam2, int msTimeout); /// /// Waits for the filter graph to render all available data. @@ -85,14 +86,14 @@ /// Registers a window to process event notifications. /// /// - /// Handle to the window, or to stop receiving event messages. + /// Handle to the window, or to stop receiving event messages. /// Window message to be passed as the notification. /// Value to be passed as the lParam parameter for the lMsg message. /// /// Return's HRESULT error code. /// [PreserveSig] - int SetNotifyWindow(IntPtr hwnd, int lMsg, IntPtr lInstanceData); + int SetNotifyWindow(IntPtr hWnd, int lMsg, IntPtr lInstanceData); /// /// Enables or disables event notifications. @@ -116,4 +117,4 @@ [PreserveSig] int GetNotifyFlags(out int lplNoNotifyFlags); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IMediaFilter.cs b/VAR.Toolbox/Code/DirectShow/IMediaFilter.cs index 7df8231..262d6ca 100644 --- a/VAR.Toolbox/Code/DirectShow/IMediaFilter.cs +++ b/VAR.Toolbox/Code/DirectShow/IMediaFilter.cs @@ -1,3 +1,5 @@ +// ReSharper disable IdentifierTypo + namespace VAR.Toolbox.Code.DirectShow { using System; @@ -9,8 +11,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, System.Security.SuppressUnmanagedCodeSecurity, - Guid("56a86899-0ad4-11ce-b03a-0020af0ba770"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("56a86899-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IMediaFilter : IPersist { #region IPersist Methods @@ -87,5 +89,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int GetSyncSource([Out] out IReferenceClock pClock); } -} - +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IPersist.cs b/VAR.Toolbox/Code/DirectShow/IPersist.cs index c42bdbc..e54c0b6 100644 --- a/VAR.Toolbox/Code/DirectShow/IPersist.cs +++ b/VAR.Toolbox/Code/DirectShow/IPersist.cs @@ -8,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow /// handler to use in the client process, as it is used in the default implementation of marshaling. /// [ComImport, - Guid("0000010c-0000-0000-C000-000000000046"), - InterfaceType(ComInterfaceType.InterfaceIsDual)] + Guid("0000010c-0000-0000-C000-000000000046"), + InterfaceType(ComInterfaceType.InterfaceIsDual)] internal interface IPersist { /// @@ -20,4 +20,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int GetClassID([Out] out Guid pClassID); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IPin.cs b/VAR.Toolbox/Code/DirectShow/IPin.cs index 9353888..1dd954f 100644 --- a/VAR.Toolbox/Code/DirectShow/IPin.cs +++ b/VAR.Toolbox/Code/DirectShow/IPin.cs @@ -8,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("56A86891-0AD4-11CE-B03A-0020AF0BA770"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("56A86891-0AD4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IPin { /// @@ -181,4 +181,4 @@ namespace VAR.Toolbox.Code.DirectShow long stop, double rate); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IPropertyBag.cs b/VAR.Toolbox/Code/DirectShow/IPropertyBag.cs index 668e4c9..d5cacf8 100644 --- a/VAR.Toolbox/Code/DirectShow/IPropertyBag.cs +++ b/VAR.Toolbox/Code/DirectShow/IPropertyBag.cs @@ -9,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("55272A00-42CB-11CE-8135-00AA004BB851"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("55272A00-42CB-11CE-8135-00AA004BB851"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IPropertyBag { /// @@ -26,7 +26,8 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int Read( [In, MarshalAs(UnmanagedType.LPWStr)] string propertyName, - [In, Out, MarshalAs(UnmanagedType.Struct)] ref object pVar, + [In, Out, MarshalAs(UnmanagedType.Struct)] + ref object pVar, [In] IntPtr pErrorLog); /// @@ -43,4 +44,4 @@ namespace VAR.Toolbox.Code.DirectShow [In, MarshalAs(UnmanagedType.LPWStr)] string propertyName, [In, MarshalAs(UnmanagedType.Struct)] ref object pVar); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IReferenceClock.cs b/VAR.Toolbox/Code/DirectShow/IReferenceClock.cs index 805e1e2..16d2fda 100644 --- a/VAR.Toolbox/Code/DirectShow/IReferenceClock.cs +++ b/VAR.Toolbox/Code/DirectShow/IReferenceClock.cs @@ -1,3 +1,6 @@ +// ReSharper disable CommentTypo +// ReSharper disable IdentifierTypo + namespace VAR.Toolbox.Code.DirectShow { using System; @@ -11,8 +14,8 @@ namespace VAR.Toolbox.Code.DirectShow /// retrieve the current reference time, or to request notification of an elapsed time. /// [ComImport, System.Security.SuppressUnmanagedCodeSecurity, - Guid("56a86897-0ad4-11ce-b03a-0020af0ba770"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("56a86897-0ad4-11ce-b03a-0020af0ba770"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface IReferenceClock { /// @@ -73,4 +76,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int Unadvise([In] int dwAdviseCookie); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/ISampleGrabber.cs b/VAR.Toolbox/Code/DirectShow/ISampleGrabber.cs index 2069d68..1f39087 100644 --- a/VAR.Toolbox/Code/DirectShow/ISampleGrabber.cs +++ b/VAR.Toolbox/Code/DirectShow/ISampleGrabber.cs @@ -9,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("6B652FFF-11FE-4FCE-92AD-0266B5D7C78F"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("6B652FFF-11FE-4FCE-92AD-0266B5D7C78F"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface ISampleGrabber { /// @@ -93,4 +93,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int SetCallback(ISampleGrabberCB callback, int whichMethodToCallback); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/ISampleGrabberCB.cs b/VAR.Toolbox/Code/DirectShow/ISampleGrabberCB.cs index 536faab..1cd5930 100644 --- a/VAR.Toolbox/Code/DirectShow/ISampleGrabberCB.cs +++ b/VAR.Toolbox/Code/DirectShow/ISampleGrabberCB.cs @@ -8,8 +8,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("0579154A-2B53-4994-B0D0-E773148EFF85"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("0579154A-2B53-4994-B0D0-E773148EFF85"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface ISampleGrabberCB { /// @@ -25,7 +25,7 @@ namespace VAR.Toolbox.Code.DirectShow int SampleCB(double sampleTime, IntPtr sample); /// - /// Callback method that receives a pointer to the sample bufferþ + /// Callback method that receives a pointer to the sample buffer /// /// /// Starting time of the sample, in seconds. @@ -37,4 +37,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int BufferCB(double sampleTime, IntPtr buffer, int bufferLen); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/ISpecifyPropertyPages.cs b/VAR.Toolbox/Code/DirectShow/ISpecifyPropertyPages.cs index b77a721..2416cc9 100644 --- a/VAR.Toolbox/Code/DirectShow/ISpecifyPropertyPages.cs +++ b/VAR.Toolbox/Code/DirectShow/ISpecifyPropertyPages.cs @@ -1,6 +1,7 @@ +// ReSharper disable CommentTypo + namespace VAR.Toolbox.Code.DirectShow { - using System; using System.Runtime.InteropServices; /// @@ -8,8 +9,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("B196B28B-BAB4-101A-B69C-00AA00341D07"), - InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] + Guid("B196B28B-BAB4-101A-B69C-00AA00341D07"), + InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] internal interface ISpecifyPropertyPages { /// @@ -26,4 +27,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int GetPages(out CAUUID pPages); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/IVideoWindow.cs b/VAR.Toolbox/Code/DirectShow/IVideoWindow.cs index a28a530..cc62277 100644 --- a/VAR.Toolbox/Code/DirectShow/IVideoWindow.cs +++ b/VAR.Toolbox/Code/DirectShow/IVideoWindow.cs @@ -10,8 +10,8 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComImport, - Guid("56A868B4-0AD4-11CE-B03A-0020AF0BA770"), - InterfaceType(ComInterfaceType.InterfaceIsDual)] + Guid("56A868B4-0AD4-11CE-B03A-0020AF0BA770"), + InterfaceType(ComInterfaceType.InterfaceIsDual)] internal interface IVideoWindow { /// @@ -95,7 +95,7 @@ namespace VAR.Toolbox.Code.DirectShow /// Queries whether the video renderer automatically shows the video window when it receives video data. /// /// - /// REceives window auto show flag. + /// Receives window auto show flag. /// /// Return's HRESULT error code. /// @@ -257,7 +257,7 @@ namespace VAR.Toolbox.Code.DirectShow int get_Height(out int height); /// - /// Specifies a parent window for the video windowþ + /// Specifies a parent window for the video window /// /// /// Specifies a handle to the parent window. @@ -268,7 +268,7 @@ namespace VAR.Toolbox.Code.DirectShow int put_Owner(IntPtr owner); /// - /// Retrieves the video window's parent window, if anyþ + /// Retrieves the video window's parent window, if any /// /// /// Parent window's handle. @@ -360,7 +360,7 @@ namespace VAR.Toolbox.Code.DirectShow /// Forwards a message to the video window. /// /// - /// Handle to the window. + /// Handle to the window. /// Specifies the message. /// Message parameter. /// Message parameter. @@ -368,10 +368,10 @@ namespace VAR.Toolbox.Code.DirectShow /// Return's HRESULT error code. /// [PreserveSig] - int NotifyOwnerMessage(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam); + int NotifyOwnerMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam); /// - /// Sets the position of the video windowþ + /// Sets the position of the video window /// /// /// Specifies the x-coordinate, in pixels. @@ -458,4 +458,4 @@ namespace VAR.Toolbox.Code.DirectShow [PreserveSig] int IsCursorHidden([Out, MarshalAs(UnmanagedType.Bool)] out bool hideCursor); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/PhysicalConnectorType.cs b/VAR.Toolbox/Code/DirectShow/PhysicalConnectorType.cs index f4fc0d3..0ab4acb 100644 --- a/VAR.Toolbox/Code/DirectShow/PhysicalConnectorType.cs +++ b/VAR.Toolbox/Code/DirectShow/PhysicalConnectorType.cs @@ -1,4 +1,6 @@ -namespace VAR.Toolbox.Code.DirectShow +// ReSharper disable CommentTypo + +namespace VAR.Toolbox.Code.DirectShow { /// /// Specifies the physical type of pin (audio or video). @@ -10,62 +12,77 @@ /// connection type should not be changed (input) or was not determined (output). /// Default = 0, + /// /// Specifies a tuner pin for video. /// VideoTuner = 1, + /// /// Specifies a composite pin for video. /// VideoComposite, + /// /// Specifies an S-Video (Y/C video) pin. /// VideoSVideo, + /// /// Specifies an RGB pin for video. /// VideoRGB, + /// /// Specifies a YRYBY (Y, R–Y, B–Y) pin for video. /// VideoYRYBY, + /// /// Specifies a serial digital pin for video. /// VideoSerialDigital, + /// /// Specifies a parallel digital pin for video. /// VideoParallelDigital, + /// /// Specifies a SCSI (Small Computer System Interface) pin for video. /// VideoSCSI, + /// /// Specifies an AUX (auxiliary) pin for video. /// VideoAUX, + /// /// Specifies an IEEE 1394 pin for video. /// Video1394, + /// /// Specifies a USB (Universal Serial Bus) pin for video. /// VideoUSB, + /// /// Specifies a video decoder pin. /// VideoDecoder, + /// /// Specifies a video encoder pin. /// VideoEncoder, + /// /// Specifies a SCART (Peritel) pin for video. /// VideoSCART, + /// /// Not used. /// @@ -75,41 +92,50 @@ /// Specifies a tuner pin for audio. /// AudioTuner = 4096, + /// /// Specifies a line pin for audio. /// AudioLine, + /// /// Specifies a microphone pin. /// AudioMic, + /// /// Specifies an AES/EBU (Audio Engineering Society/European Broadcast Union) digital pin for audio. /// AudioAESDigital, + /// /// Specifies an S/PDIF (Sony/Philips Digital Interface Format) digital pin for audio. /// AudioSPDIFDigital, + /// /// Specifies a SCSI pin for audio. /// AudioSCSI, + /// /// Specifies an AUX pin for audio. /// AudioAUX, + /// /// Specifies an IEEE 1394 pin for audio. /// Audio1394, + /// /// Specifies a USB pin for audio. /// AudioUSB, + /// /// Specifies an audio decoder pin. /// AudioDecoder } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/Structures.cs b/VAR.Toolbox/Code/DirectShow/Structures.cs index 1e7cc6b..0cfd452 100644 --- a/VAR.Toolbox/Code/DirectShow/Structures.cs +++ b/VAR.Toolbox/Code/DirectShow/Structures.cs @@ -1,3 +1,7 @@ +// ReSharper disable IdentifierTypo +// ReSharper disable CommentTypo +// ReSharper disable InconsistentNaming + namespace VAR.Toolbox.Code.DirectShow { using System; @@ -31,7 +35,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false), - StructLayout(LayoutKind.Sequential)] + StructLayout(LayoutKind.Sequential)] internal class AMMediaType : IDisposable { /// @@ -47,14 +51,12 @@ namespace VAR.Toolbox.Code.DirectShow /// /// If true, samples are of a fixed size. /// - [MarshalAs(UnmanagedType.Bool)] - public bool FixedSizeSamples = true; + [MarshalAs(UnmanagedType.Bool)] public bool FixedSizeSamples = true; /// /// If true, samples are compressed using temporal (interframe) compression. /// - [MarshalAs(UnmanagedType.Bool)] - public bool TemporalCompression; + [MarshalAs(UnmanagedType.Bool)] public bool TemporalCompression; /// /// Size of the sample in bytes. For compressed data, the value can be zero. @@ -131,7 +133,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false), - StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)] + StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)] internal struct PinInfo { /// @@ -153,7 +155,7 @@ namespace VAR.Toolbox.Code.DirectShow // FILTER_INFO [ComVisible(false), - StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)] + StructLayout(LayoutKind.Sequential, Pack = 1, CharSet = CharSet.Unicode)] internal struct FilterInfo { /// @@ -175,7 +177,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false), - StructLayout(LayoutKind.Sequential)] + StructLayout(LayoutKind.Sequential)] internal struct VideoInfoHeader { /// @@ -216,7 +218,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false), - StructLayout(LayoutKind.Sequential)] + StructLayout(LayoutKind.Sequential)] internal struct VideoInfoHeader2 { /// @@ -285,7 +287,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false), - StructLayout(LayoutKind.Sequential, Pack = 2)] + StructLayout(LayoutKind.Sequential, Pack = 2)] internal struct BitmapInfoHeader { /// @@ -351,7 +353,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false), - StructLayout(LayoutKind.Sequential)] + StructLayout(LayoutKind.Sequential)] internal struct RECT { /// @@ -382,7 +384,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false), - StructLayout(LayoutKind.Sequential)] + StructLayout(LayoutKind.Sequential)] internal struct CAUUID { /// @@ -421,17 +423,18 @@ namespace VAR.Toolbox.Code.DirectShow internal enum DsEvCode { None, - Complete = 0x01, // EC_COMPLETE - DeviceLost = 0x1F, // EC_DEVICE_LOST + Complete = 0x01, // EC_COMPLETE + DeviceLost = 0x1F, // EC_DEVICE_LOST //(...) not yet interested in other events } [Flags, ComVisible(false)] internal enum AnalogVideoStandard { - None = 0x00000000, // This is a digital sensor - NTSC_M = 0x00000001, // 75 IRE Setup - NTSC_M_J = 0x00000002, // Japan, 0 IRE Setup + // ReSharper disable InconsistentNaming + None = 0x00000000, // This is a digital sensor + NTSC_M = 0x00000001, // 75 IRE Setup + NTSC_M_J = 0x00000002, // Japan, 0 IRE Setup NTSC_433 = 0x00000004, PAL_B = 0x00000010, PAL_D = 0x00000020, @@ -449,7 +452,9 @@ namespace VAR.Toolbox.Code.DirectShow SECAM_K1 = 0x00020000, SECAM_L = 0x00040000, SECAM_L1 = 0x00080000, - PAL_N_COMBO = 0x00100000 // Argentina + + PAL_N_COMBO = 0x00100000 // Argentina + // ReSharper restore InconsistentNaming } [Flags, ComVisible(false)] @@ -462,7 +467,7 @@ namespace VAR.Toolbox.Code.DirectShow } [StructLayout(LayoutKind.Sequential), ComVisible(false)] - internal class VideoStreamConfigCaps // VIDEO_STREAM_CONFIG_CAPS + internal class VideoStreamConfigCaps // VIDEO_STREAM_CONFIG_CAPS { public Guid Guid; public AnalogVideoStandard VideoStandard; @@ -507,4 +512,4 @@ namespace VAR.Toolbox.Code.DirectShow /// State_Running } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/Tools.cs b/VAR.Toolbox/Code/DirectShow/Tools.cs index 3fbec75..1a0c22c 100644 --- a/VAR.Toolbox/Code/DirectShow/Tools.cs +++ b/VAR.Toolbox/Code/DirectShow/Tools.cs @@ -20,24 +20,20 @@ namespace VAR.Toolbox.Code.DirectShow /// /// Returns filter's pin. /// - public static IPin GetPin(IBaseFilter filter, PinDirection dir, int num) + private static IPin GetPin(IBaseFilter filter, PinDirection dir, int num) { IPin[] pin = new IPin[1]; - IEnumPins pinsEnum = null; // enum filter pins - if (filter.EnumPins(out pinsEnum) == 0) + if (filter.EnumPins(out IEnumPins pinsEnum) == 0) { - PinDirection pinDir; - int n; - try { // get next pin - while (pinsEnum.Next(1, pin, out n) == 0) + while (pinsEnum.Next(1, pin, out int _) == 0) { // query pin`s direction - pin[0].QueryDirection(out pinDir); + pin[0].QueryDirection(out PinDirection pinDir); if (pinDir == dir) { @@ -55,6 +51,7 @@ namespace VAR.Toolbox.Code.DirectShow Marshal.ReleaseComObject(pinsEnum); } } + return null; } @@ -86,4 +83,4 @@ namespace VAR.Toolbox.Code.DirectShow return GetPin(filter, PinDirection.Output, num); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/DirectShow/Uuids.cs b/VAR.Toolbox/Code/DirectShow/Uuids.cs index 87ae20f..ede9f07 100644 --- a/VAR.Toolbox/Code/DirectShow/Uuids.cs +++ b/VAR.Toolbox/Code/DirectShow/Uuids.cs @@ -1,3 +1,8 @@ +// ReSharper disable CommentTypo + +// ReSharper disable IdentifierTypo +// ReSharper disable InconsistentNaming + namespace VAR.Toolbox.Code.DirectShow { using System; @@ -7,7 +12,7 @@ namespace VAR.Toolbox.Code.DirectShow /// DirectShow class IDs. /// [ComVisible(false)] - static internal class Clsid + internal static class Clsid { /// /// System device enumerator. @@ -57,7 +62,6 @@ namespace VAR.Toolbox.Code.DirectShow public static readonly Guid NullRenderer = new Guid(0xC1F400A4, 0x3F08, 0x11d3, 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03, 0x9E, 0x37); - } /// @@ -65,7 +69,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false)] - static internal class FormatType + internal static class FormatType { /// /// VideoInfo. @@ -91,7 +95,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false)] - static internal class MediaType + internal static class MediaType { /// /// Video. @@ -144,7 +148,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false)] - static internal class MediaSubType + internal static class MediaSubType { /// /// YUY2 (packed 4:2:2). @@ -260,7 +264,7 @@ namespace VAR.Toolbox.Code.DirectShow /// /// [ComVisible(false)] - static internal class PinCategory + internal static class PinCategory { /// /// Capture pin. @@ -279,7 +283,6 @@ namespace VAR.Toolbox.Code.DirectShow /// public static readonly Guid Preview = new Guid(0xfb6c4282, 0x0353, 0x11d1, 0x90, 0x5f, 0x00, 0x00, 0xc0, 0xcc, 0x16, 0xba); - } /// @@ -324,4 +327,4 @@ namespace VAR.Toolbox.Code.DirectShow public static readonly Guid AudioCompressorCategory = new Guid(0x33D9A761, 0x90C8, 0x11D0, 0xBD, 0x43, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/EventDispatcher.cs b/VAR.Toolbox/Code/EventDispatcher.cs index b3b0c31..8163065 100644 --- a/VAR.Toolbox/Code/EventDispatcher.cs +++ b/VAR.Toolbox/Code/EventDispatcher.cs @@ -5,7 +5,7 @@ namespace VAR.Toolbox.Code { public static class EventDispatcher { - private static List _eventListeners = null; + private static List _eventListeners; private static IEnumerable GetEventListeners() { @@ -19,8 +19,7 @@ namespace VAR.Toolbox.Code _eventListeners = new List(); foreach (Type eventListener in eventListeners) { - IEventListener eventListenerInstance = Activator.CreateInstance(eventListener) as IEventListener; - if (eventListenerInstance != null) + if (Activator.CreateInstance(eventListener) is IEventListener eventListenerInstance) { _eventListeners.Add(eventListenerInstance); } @@ -37,6 +36,5 @@ namespace VAR.Toolbox.Code eventListener.ProcessEvent(eventName, eventData); } } - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/HexUtils.cs b/VAR.Toolbox/Code/HexUtils.cs index 9937ec1..4facf01 100644 --- a/VAR.Toolbox/Code/HexUtils.cs +++ b/VAR.Toolbox/Code/HexUtils.cs @@ -7,13 +7,16 @@ namespace VAR.Toolbox.Code { public static byte[] HexStringToBytes(string input) { - int[] hexValues = new int[] { + int[] hexValues = new int[] + { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }; + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F + }; if (input.Length % 2 == 1) { - throw new Exception("Unenven number of hex digits"); + throw new Exception("Uneven number of hex digits"); } + byte[] bytes = new byte[input.Length / 2]; int count = input.Length; for (int x = 0, i = 0; i < count; i += 2, x += 1) @@ -21,7 +24,7 @@ namespace VAR.Toolbox.Code bytes[x] = (byte)( hexValues[Char.ToUpper(input[i + 0]) - '0'] << 4 | hexValues[Char.ToUpper(input[i + 1]) - '0'] - ); + ); } return bytes; @@ -38,7 +41,8 @@ namespace VAR.Toolbox.Code sbOutput.Append(HexAlphabet[(b >> 4)]); sbOutput.Append(HexAlphabet[(b & 0xF)]); } + return sbOutput.ToString(); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/IEventListener.cs b/VAR.Toolbox/Code/IEventListener.cs index f8452b1..dc1ee2d 100644 --- a/VAR.Toolbox/Code/IEventListener.cs +++ b/VAR.Toolbox/Code/IEventListener.cs @@ -1,13 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace VAR.Toolbox.Code +namespace VAR.Toolbox.Code { public interface IEventListener { void ProcessEvent(string eventName, object eventData); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/IOutputHandler.cs b/VAR.Toolbox/Code/IOutputHandler.cs index efa2702..7bc5e21 100644 --- a/VAR.Toolbox/Code/IOutputHandler.cs +++ b/VAR.Toolbox/Code/IOutputHandler.cs @@ -4,4 +4,4 @@ { void OutputLine(string line); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/Logger.cs b/VAR.Toolbox/Code/Logger.cs index 71822ba..b84cd18 100644 --- a/VAR.Toolbox/Code/Logger.cs +++ b/VAR.Toolbox/Code/Logger.cs @@ -6,19 +6,18 @@ namespace VAR.Toolbox.Code public class Logger { /// - /// Obtiene el StreamWritter de salida + /// Obtiene el StreamWriter de salida /// /// - private static StreamWriter GetOutputStreamWritter() + private static StreamWriter GetOutputStreamWriter() { try { - string location = System.Reflection.Assembly.GetEntryAssembly().Location; + string location = System.Reflection.Assembly.GetEntryAssembly()?.Location; string path = Path.GetDirectoryName(location); string filenameWithoutExtension = Path.GetFileNameWithoutExtension(location); - string fileOut = string.Format("{0}/{1}.{2}.txt", path, filenameWithoutExtension, - DateTime.UtcNow.ToString("yyyy-MM")); + string fileOut = $"{path}/{filenameWithoutExtension}.{DateTime.UtcNow:yyyy-MM}.txt"; return File.AppendText(fileOut); } catch (Exception) @@ -28,10 +27,10 @@ namespace VAR.Toolbox.Code } /// - /// Cierra el StreamWritter de salida + /// Cierra el StreamWriter de salida /// /// The stream. - private static void CloseOutputStreamWritter(StreamWriter stream) + private static void CloseOutputStreamWriter(StreamWriter stream) { if (stream != null) { @@ -50,6 +49,7 @@ namespace VAR.Toolbox.Code { stream.WriteLine(line); } + Console.Out.WriteLine(line); } @@ -61,14 +61,17 @@ namespace VAR.Toolbox.Code { try { - StreamWriter outStream = GetOutputStreamWritter(); + StreamWriter outStream = GetOutputStreamWriter(); WriteLine(outStream, string.Empty); - WriteLine(outStream, string.Format("---------------------------- {0} -----------------------", text)); - WriteLine(outStream, string.Format("\\- Date: {0}", DateTime.UtcNow.ToString("s"))); + WriteLine(outStream, $"---------------------------- {text} -----------------------"); + WriteLine(outStream, $"\\- Date: {DateTime.UtcNow:s}"); WriteLine(outStream, string.Empty); - CloseOutputStreamWritter(outStream); + CloseOutputStreamWriter(outStream); + } + catch (Exception) + { + /* Nom Nom Nom */ } - catch (Exception) { /* Nom Nom Nom */} } /// @@ -79,38 +82,45 @@ namespace VAR.Toolbox.Code { try { - StreamWriter outStream = GetOutputStreamWritter(); - WriteLine(outStream, string.Format("{0} -- {1}", DateTime.UtcNow.ToString("s"), text)); - CloseOutputStreamWritter(outStream); + StreamWriter outStream = GetOutputStreamWriter(); + WriteLine(outStream, $"{DateTime.UtcNow:s} -- {text}"); + CloseOutputStreamWriter(outStream); + } + catch (Exception) + { + /* Nom Nom Nom */ } - catch (Exception) { /* Nom Nom Nom */} } /// - /// Logea una excepcion + /// Logea una excepción /// /// The Exception. public static void Log(Exception ex) { try { - StreamWriter outStream = GetOutputStreamWritter(); + StreamWriter outStream = GetOutputStreamWriter(); WriteLine(outStream, string.Empty); - WriteLine(outStream, string.Format("!!!!!!!!!!!!!!!!!!!!!!!!!!!! {0} !!!!!!!!!!!!!!!!!!!!!!!", "Exception")); - WriteLine(outStream, string.Format("\\- Date: {0}", DateTime.UtcNow.ToString("s"))); + WriteLine(outStream, + "!!!!!!!!!!!!!!!!!!!!!!!!!!!! Exception !!!!!!!!!!!!!!!!!!!!!!!"); + WriteLine(outStream, $"\\- Date: {DateTime.UtcNow:s}"); WriteLine(outStream, string.Empty); Exception exAux = ex; while (exAux != null) { - WriteLine(outStream, string.Format("Message: {0}", exAux.Message)); - WriteLine(outStream, string.Format("Stacktrace: {0}", exAux.StackTrace)); + WriteLine(outStream, $"Message: {exAux.Message}"); + WriteLine(outStream, $"Stacktrace: {exAux.StackTrace}"); exAux = exAux.InnerException; } - CloseOutputStreamWritter(outStream); - } - catch (Exception) { /* Nom Nom Nom */} - } + CloseOutputStreamWriter(outStream); + } + catch (Exception) + { + /* Nom Nom Nom */ + } + } } } \ No newline at end of file diff --git a/VAR.Toolbox/Code/Mouse.cs b/VAR.Toolbox/Code/Mouse.cs index 8fd46c1..ce0fab0 100644 --- a/VAR.Toolbox/Code/Mouse.cs +++ b/VAR.Toolbox/Code/Mouse.cs @@ -39,14 +39,17 @@ namespace VAR.Toolbox.Code { input.Data.Mouse.Flags = down ? User32.MOUSEEVENTF_LEFTDOWN : User32.MOUSEEVENTF_LEFTUP; } + if (button == MouseButtons.Middle) { input.Data.Mouse.Flags = down ? User32.MOUSEEVENTF_MIDDLEDOWN : User32.MOUSEEVENTF_MIDDLEUP; } + if (button == MouseButtons.Right) { input.Data.Mouse.Flags = down ? User32.MOUSEEVENTF_RIGHTDOWN : User32.MOUSEEVENTF_RIGHTUP; } + User32.INPUT[] inputs = new User32.INPUT[] { input }; if (User32.SendInput(1, inputs, Marshal.SizeOf(typeof(User32.INPUT))) == 0) throw new Exception(); diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/IProxyCmdExecutor.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/IProxyCmdExecutor.cs index 86dc772..c21e0bf 100644 --- a/VAR.Toolbox/Code/ProxyCmdExecutors/IProxyCmdExecutor.cs +++ b/VAR.Toolbox/Code/ProxyCmdExecutors/IProxyCmdExecutor.cs @@ -4,4 +4,4 @@ { bool ExecuteCmd(string cmd, IOutputHandler outputHandler); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorDummy.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorDummy.cs index e21d3cc..f4c0b95 100644 --- a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorDummy.cs +++ b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorDummy.cs @@ -2,7 +2,8 @@ { public class ProxyCmdExecutorDummy : IProxyCmdExecutor { - public string Name { get { return "Dummy"; } } + private readonly string _config; + public string Name => "Dummy"; public ProxyCmdExecutorDummy(string config) { @@ -10,12 +11,14 @@ { throw new System.ArgumentNullException(nameof(config)); } + + _config = config; } public bool ExecuteCmd(string cmdString, IOutputHandler outputHandler) { - outputHandler.OutputLine(string.Format("DummyExecution: {0}", cmdString)); + outputHandler.OutputLine($"DummyExecution: {cmdString} | {_config}"); return true; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorFactory.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorFactory.cs index 26637a1..3fcd970 100644 --- a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorFactory.cs +++ b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorFactory.cs @@ -1,6 +1,4 @@ namespace VAR.Toolbox.Code.ProxyCmdExecutors { - public class ProxyCmdExecutorFactory : BaseFactory - { - } -} + public class ProxyCmdExecutorFactory : BaseFactory { } +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorThroughSQLServer.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorThroughSQLServer.cs index a9b5c35..66d9b6f 100644 --- a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorThroughSQLServer.cs +++ b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorThroughSQLServer.cs @@ -5,9 +5,9 @@ namespace VAR.Toolbox.Code.ProxyCmdExecutors { public class ProxyCmdExecutorThroughSQLServer : IProxyCmdExecutor { - public string Name { get { return "SqlServer"; } } + public string Name => "SqlServer"; - private readonly string _connectionString = null; + private readonly string _connectionString; public ProxyCmdExecutorThroughSQLServer(string connectionString) { @@ -27,8 +27,9 @@ namespace VAR.Toolbox.Code.ProxyCmdExecutors string output = Convert.ToString(reader[0]); outputHandler.OutputLine(output); } + cnx.Close(); return true; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorWMIC.cs b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorWMIC.cs index eb893c6..f109937 100644 --- a/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorWMIC.cs +++ b/VAR.Toolbox/Code/ProxyCmdExecutors/ProxyCmdExecutorWMIC.cs @@ -4,7 +4,7 @@ namespace VAR.Toolbox.Code.ProxyCmdExecutors { public class ProxyCmdExecutorWMIC : IProxyCmdExecutor { - public string Name { get { return "WMIC"; } } + public string Name => "WMIC"; private readonly string _configWMIC; @@ -15,7 +15,8 @@ namespace VAR.Toolbox.Code.ProxyCmdExecutors public bool ExecuteCmd(string cmd, IOutputHandler outputHandler) { - string parameters = string.Format(" /node:\"{0}\" process call create \"cmd.exe /c \\\"{1}\\\"\"", _configWMIC.Replace("\"", "\\\""), cmd.Replace("\"", "\\\"")); + string parameters = string.Format(" /node:\"{0}\" process call create \"cmd.exe /c \\\"{1}\\\"\"", + _configWMIC.Replace("\"", "\\\""), cmd.Replace("\"", "\\\"")); Process process = new Process(); process.StartInfo.UseShellExecute = false; process.StartInfo.RedirectStandardOutput = true; diff --git a/VAR.Toolbox/Code/ReflectionUtils.cs b/VAR.Toolbox/Code/ReflectionUtils.cs index 711de6c..5ab041a 100644 --- a/VAR.Toolbox/Code/ReflectionUtils.cs +++ b/VAR.Toolbox/Code/ReflectionUtils.cs @@ -17,6 +17,5 @@ namespace VAR.Toolbox.Code interfaceType.IsAssignableFrom(x) && true); } - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/Screenshooter.cs b/VAR.Toolbox/Code/Screenshoter.cs similarity index 95% rename from VAR.Toolbox/Code/Screenshooter.cs rename to VAR.Toolbox/Code/Screenshoter.cs index 82a10c0..07b4468 100644 --- a/VAR.Toolbox/Code/Screenshooter.cs +++ b/VAR.Toolbox/Code/Screenshoter.cs @@ -6,7 +6,7 @@ using VAR.Toolbox.Code.Windows; namespace VAR.Toolbox.Code { - public class Screenshooter + public static class Screenshoter { public static Bitmap CaptureScreen(Bitmap bmp = null) { @@ -17,7 +17,7 @@ namespace VAR.Toolbox.Code int screenHeight = SystemInformation.VirtualScreen.Height; // Create a bitmap of the appropriate size to receive the screenshot. - if (bmp == null || bmp?.Width != screenWidth || bmp?.Height != screenHeight) + if (bmp == null || bmp.Width != screenWidth || bmp.Height != screenHeight) { bmp = new Bitmap(screenWidth, screenHeight); } @@ -27,6 +27,7 @@ namespace VAR.Toolbox.Code { g.CopyFromScreen(screenLeft, screenTop, 0, 0, bmp.Size); } + return bmp; } @@ -76,8 +77,5 @@ namespace VAR.Toolbox.Code return img; } - - - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/TextCoders/ITextCoder.cs b/VAR.Toolbox/Code/TextCoders/ITextCoder.cs index a316b86..cfaeb63 100644 --- a/VAR.Toolbox/Code/TextCoders/ITextCoder.cs +++ b/VAR.Toolbox/Code/TextCoders/ITextCoder.cs @@ -7,4 +7,4 @@ string Encode(string input, string key); string Decode(string input, string key); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderBase64Ascii.cs b/VAR.Toolbox/Code/TextCoders/TextCoderBase64Ascii.cs index 9479c85..3af03c6 100644 --- a/VAR.Toolbox/Code/TextCoders/TextCoderBase64Ascii.cs +++ b/VAR.Toolbox/Code/TextCoders/TextCoderBase64Ascii.cs @@ -5,9 +5,9 @@ namespace VAR.Toolbox.Code.TextCoders { public class TextCoderBase64ToAscii : ITextCoder { - public string Name { get { return "Base64ToAscii"; } } + public string Name => "Base64ToAscii"; - public bool NeedsKey { get { return false; } } + public bool NeedsKey => false; public string Decode(string input, string key) { @@ -23,4 +23,4 @@ namespace VAR.Toolbox.Code.TextCoders return returnValue; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderBase64Utf8.cs b/VAR.Toolbox/Code/TextCoders/TextCoderBase64Utf8.cs index 761ba3f..6fbc42c 100644 --- a/VAR.Toolbox/Code/TextCoders/TextCoderBase64Utf8.cs +++ b/VAR.Toolbox/Code/TextCoders/TextCoderBase64Utf8.cs @@ -5,9 +5,9 @@ namespace VAR.Toolbox.Code.TextCoders { public class TextCoderBase64ToUtf8 : ITextCoder { - public string Name { get { return "Base64ToUtf8"; } } + public string Name => "Base64ToUtf8"; - public bool NeedsKey { get { return false; } } + public bool NeedsKey => false; public string Decode(string input, string key) { @@ -23,4 +23,4 @@ namespace VAR.Toolbox.Code.TextCoders return returnValue; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderFactory.cs b/VAR.Toolbox/Code/TextCoders/TextCoderFactory.cs index 5404e7b..b1c6530 100644 --- a/VAR.Toolbox/Code/TextCoders/TextCoderFactory.cs +++ b/VAR.Toolbox/Code/TextCoders/TextCoderFactory.cs @@ -1,6 +1,4 @@ namespace VAR.Toolbox.Code.TextCoders { - public class TextCoderFactory : BaseFactory - { - } -} + public class TextCoderFactory : BaseFactory { } +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderHexToAscii.cs b/VAR.Toolbox/Code/TextCoders/TextCoderHexToAscii.cs index c866e5c..a89e1db 100644 --- a/VAR.Toolbox/Code/TextCoders/TextCoderHexToAscii.cs +++ b/VAR.Toolbox/Code/TextCoders/TextCoderHexToAscii.cs @@ -4,9 +4,9 @@ namespace VAR.Toolbox.Code.TextCoders { public class TextCoderHexToAscii : ITextCoder { - public string Name { get { return "HexToAscii"; } } + public string Name => "HexToAscii"; - public bool NeedsKey { get { return false; } } + public bool NeedsKey => false; public string Decode(string input, string key) { @@ -20,6 +20,5 @@ namespace VAR.Toolbox.Code.TextCoders byte[] toEncodeAsBytes = Encoding.ASCII.GetBytes(input); return HexUtils.BytesToHexString(toEncodeAsBytes); } - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/TextCoders/TextCoderHexToUtf8.cs b/VAR.Toolbox/Code/TextCoders/TextCoderHexToUtf8.cs index e71d999..ba14d81 100644 --- a/VAR.Toolbox/Code/TextCoders/TextCoderHexToUtf8.cs +++ b/VAR.Toolbox/Code/TextCoders/TextCoderHexToUtf8.cs @@ -4,9 +4,9 @@ namespace VAR.Toolbox.Code.TextCoders { public class TextCoderHexToUtf8 : ITextCoder { - public string Name { get { return "HexToUtf8"; } } + public string Name => "HexToUtf8"; - public bool NeedsKey { get { return false; } } + public bool NeedsKey => false; public string Decode(string input, string key) { @@ -21,4 +21,4 @@ namespace VAR.Toolbox.Code.TextCoders return HexUtils.BytesToHexString(toEncodeAsBytes); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/WebServicesUtils.cs b/VAR.Toolbox/Code/WebServicesUtils.cs index 830e203..8b95903 100644 --- a/VAR.Toolbox/Code/WebServicesUtils.cs +++ b/VAR.Toolbox/Code/WebServicesUtils.cs @@ -7,11 +7,14 @@ using System.Threading.Tasks; namespace VAR.Toolbox.Code { - public class WebServicesUtils + public static class WebServicesUtils { private static readonly CookieContainer _cookieJar = new CookieContainer(); - public static string CallApi(string urlService, string urlApiMethod, Dictionary prms, object content, CookieContainer cookieJar = null, string stringContent = null, Dictionary customHeaders = null, string verb = "POST", bool disableCertificateValidation = false) + public static string CallApi(string urlService, string urlApiMethod, Dictionary parameters, + object content, CookieContainer cookieJar = null, string stringContent = null, + Dictionary customHeaders = null, string verb = "POST", + bool disableCertificateValidation = false) { if (urlService?.StartsWith("!") == true) { @@ -20,11 +23,12 @@ namespace VAR.Toolbox.Code } if (cookieJar == null) { cookieJar = _cookieJar; } + try { var sbRequestUrl = new StringBuilder(); sbRequestUrl.Append(urlService); - if (urlService.EndsWith("/") && urlApiMethod.StartsWith("/")) + if (urlService != null && urlService.EndsWith("/") && urlApiMethod.StartsWith("/")) { sbRequestUrl.Append(urlApiMethod.Substring(1)); } @@ -32,23 +36,19 @@ namespace VAR.Toolbox.Code { sbRequestUrl.Append(urlApiMethod); } - if (prms != null) + + if (parameters != null) { - foreach (KeyValuePair pair in prms) + foreach (KeyValuePair pair in parameters) { - if (pair.Value == null) - { - sbRequestUrl.AppendFormat("&{0}={1}", pair.Key, string.Empty); - } - else - { - sbRequestUrl.AppendFormat("&{0}={1}", pair.Key, HttpServer.HttpUtility.UrlEncode(pair.Value)); - } + sbRequestUrl.AppendFormat("&{0}={1}", pair.Key, + pair.Value == null ? string.Empty : HttpServer.HttpUtility.UrlEncode(pair.Value)); } } + if (sbRequestUrl.Length > 2048) { - throw new Exception(string.Format("CallApi: Request URL longer than 2048: url: \"{0}\"", sbRequestUrl.ToString())); + throw new Exception($"CallApi: Request URL longer than 2048: url: \"{sbRequestUrl}\""); } var http = (HttpWebRequest)WebRequest.Create(new Uri(sbRequestUrl.ToString())); @@ -56,7 +56,8 @@ namespace VAR.Toolbox.Code #if UNIFIKAS_COMMONS if (disableCertificateValidation) { - http.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => { return true; }; + http.ServerCertificateValidationCallback = + (sender, certificate, chain, sslPolicyErrors) => { return true; }; } #else if (disableCertificateValidation) @@ -83,6 +84,7 @@ namespace VAR.Toolbox.Code { parsedContent = stringContent; } + UTF8Encoding encoding = new UTF8Encoding(); byte[] bytes = encoding.GetBytes(parsedContent); @@ -97,40 +99,47 @@ namespace VAR.Toolbox.Code responseTask.Wait(); WebResponse response = responseTask.Result; var stream = response.GetResponseStream(); + if (stream == null) { return null; } + var sr = new StreamReader(stream); return sr.ReadToEnd(); } catch (Exception ex) { + // ReSharper disable once PossibleIntendedRethrow throw ex; } } - public static string CallSoapMethod(string url, string method, Dictionary parms, string namespaceUrl = "http://tempuri.org", ICredentials credentials = null) + public static string CallSoapMethod(string url, string method, Dictionary parameters, + string namespaceUrl = "http://tempuri.org", ICredentials credentials = null) { // Los servicios SOAP se llaman siempre a través de HTTP. if (url.ToLower().StartsWith("https://")) { - url = string.Format("http://{0}", url.Substring("https://".Length)); + url = $"http://{url.Substring("https://".Length)}"; } // Construir petición var sbData = new StringBuilder(); sbData.AppendFormat(""); - sbData.AppendFormat(""); + sbData.AppendFormat( + ""); sbData.AppendFormat(""); sbData.AppendFormat("<{0} xmlns=\"{1}\">", method, namespaceUrl); - foreach (KeyValuePair parm in parms) + foreach (KeyValuePair parameter in parameters) { - if (parm.Value != null && !(parm.Value is DBNull)) + if (parameter.Value != null && !(parameter.Value is DBNull)) { - sbData.AppendFormat("<{0}>{1}", parm.Key, parm.Value); + sbData.AppendFormat("<{0}>{1}", parameter.Key, parameter.Value); } else { - sbData.AppendFormat("<{0} i:nil=\"true\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" />", parm.Key); + sbData.AppendFormat("<{0} i:nil=\"true\" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" />", + parameter.Key); } } + sbData.AppendFormat("", method); sbData.AppendFormat(""); sbData.AppendFormat(""); @@ -138,22 +147,20 @@ namespace VAR.Toolbox.Code byte[] postData = Encoding.UTF8.GetBytes(sbData.ToString()); // Realizar petición - var client = new System.Net.WebClient(); + var client = new WebClient(); if (credentials != null) { client.Credentials = credentials; } + client.Headers.Add("Accept", "text/xml"); client.Headers.Add("Accept-Charset", "UTF-8"); client.Headers.Add("Content-Type", "text/xml; charset=UTF-8"); - if (namespaceUrl.ToLower().StartsWith("http")) - { - client.Headers.Add("SOAPAction", string.Format("\"{0}/{1}\"", namespaceUrl, method)); - } - else - { - client.Headers.Add("SOAPAction", string.Format("\"{0}:{1}\"", namespaceUrl, method)); - } + client.Headers.Add("SOAPAction", + namespaceUrl.ToLower().StartsWith("http") + ? $"\"{namespaceUrl}/{method}\"" + : $"\"{namespaceUrl}:{method}\""); + byte[] data; try { @@ -161,11 +168,11 @@ namespace VAR.Toolbox.Code } catch (Exception ex) { - throw new Exception(string.Format("Failure calling SoapService: URL: {0}", url), ex); + throw new Exception($"Failure calling SoapService: URL: {url}", ex); } - string strData = System.Text.Encoding.UTF8.GetString(data); + + string strData = Encoding.UTF8.GetString(data); return strData; } - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/Webcam.cs b/VAR.Toolbox/Code/Webcam.cs index 7af0374..45fac1a 100644 --- a/VAR.Toolbox/Code/Webcam.cs +++ b/VAR.Toolbox/Code/Webcam.cs @@ -1,5 +1,7 @@ #pragma warning disable IDE0018 #pragma warning disable IDE0059 +// ReSharper disable SuspiciousTypeConversion.Global +// ReSharper disable ConvertToAutoProperty using System; using System.Collections.Generic; @@ -10,26 +12,23 @@ using System.Runtime.InteropServices.ComTypes; using VAR.Toolbox.Code.DirectShow; using VAR.Toolbox.Code.Windows; + namespace VAR.Toolbox.Code { public class Webcam { #region Declarations - private readonly IFilterGraph2 graph; - private readonly ICaptureGraphBuilder2 capture; - private readonly IMediaControl control; - private readonly IBaseFilter sourceFilter; - private readonly IBaseFilter samplegrabberfilter; - private readonly IBaseFilter nullrenderer; + private readonly IMediaControl _control; + private readonly IBaseFilter _sourceFilter; + private readonly IBaseFilter _sampleGrabberFilter; + private readonly IBaseFilter _nullRenderer; - private readonly Grabber grabber; + private readonly int _width; + private readonly int _height; + private readonly int _bpp; - private readonly int width = 0; - private readonly int height = 0; - private readonly int bpp = 0; - - private bool active = false; + private bool _active; private static Dictionary _deviceDescriptions; @@ -37,11 +36,13 @@ namespace VAR.Toolbox.Code #region Properties - public int Width { get { return width; } } - public int Height { get { return height; } } - public int BPP { get { return bpp; } } + public int Width => _width; - public bool Active { get { return active; } } + public int Height => _height; + + public int BPP => _bpp; + + public bool Active => _active; #endregion Properties @@ -49,33 +50,29 @@ namespace VAR.Toolbox.Code public Webcam(string monikerString) { - int result; - - graph = CreateInstanceFromClsid(Clsid.FilterGraph); - capture = CreateInstanceFromClsid(Clsid.CaptureGraphBuilder2); - control = (IMediaControl)graph; + IFilterGraph2 graph = CreateInstanceFromClsid(Clsid.FilterGraph); + ICaptureGraphBuilder2 capture = CreateInstanceFromClsid(Clsid.CaptureGraphBuilder2); + _control = (IMediaControl)graph; capture.SetFiltergraph((IGraphBuilder)graph); - IBindCtx bindCtx = null; - IMoniker moniker = null; - int n = 0; - if (Win32.CreateBindCtx(0, out bindCtx) != 0) + if (Win32.CreateBindCtx(0, out IBindCtx bindCtx) != 0) { throw new Exception("Failed to create binding context"); } - if (Win32.MkParseDisplayName(bindCtx, monikerString, ref n, out moniker) != 0) + + if (Win32.MkParseDisplayName(bindCtx, monikerString, ref n, out IMoniker moniker) != 0) { throw new Exception("Failed to create binding moniker"); } - graph.AddSourceFilterForMoniker(moniker, bindCtx, monikerString, out sourceFilter); + graph.AddSourceFilterForMoniker(moniker, bindCtx, monikerString, out _sourceFilter); - samplegrabberfilter = CreateInstanceFromClsid(Clsid.SampleGrabber); - graph.AddFilter(samplegrabberfilter, string.Format("SampleGrabber {0}", monikerString)); + _sampleGrabberFilter = CreateInstanceFromClsid(Clsid.SampleGrabber); + graph.AddFilter(_sampleGrabberFilter, $"SampleGrabber {monikerString}"); - ISampleGrabber sampleGrabber = (ISampleGrabber)samplegrabberfilter; + ISampleGrabber sampleGrabber = (ISampleGrabber)_sampleGrabberFilter; // Set media type AMMediaType mediaType = new AMMediaType @@ -85,15 +82,16 @@ namespace VAR.Toolbox.Code }; sampleGrabber.SetMediaType(mediaType); - grabber = new Grabber(this); - result = sampleGrabber.SetCallback(grabber, 1); + var grabber = new Grabber(this); + int result = sampleGrabber.SetCallback(grabber, 1); if (result < 0) throw new Exception("Failure creating Webcam device"); //set the null renderer - nullrenderer = CreateInstanceFromClsid(Clsid.NullRenderer); - graph.AddFilter(nullrenderer, string.Format("NullRenderer {0}", monikerString)); + _nullRenderer = CreateInstanceFromClsid(Clsid.NullRenderer); + graph.AddFilter(_nullRenderer, $"NullRenderer {monikerString}"); - result = capture.RenderStream(PinCategory.Preview, MediaType.Video, sourceFilter, samplegrabberfilter, nullrenderer); + result = capture.RenderStream(PinCategory.Preview, MediaType.Video, _sourceFilter, _sampleGrabberFilter, + _nullRenderer); if (result < 0) throw new Exception("Failure creating Webcam device"); AMMediaType queryMediaType = new AMMediaType(); @@ -102,14 +100,15 @@ namespace VAR.Toolbox.Code { if (queryMediaType.FormatType == FormatType.VideoInfo) { - VideoInfoHeader videoInfo = (VideoInfoHeader)Marshal.PtrToStructure(queryMediaType.FormatPtr, typeof(VideoInfoHeader)); - width = videoInfo.BmiHeader.Width; - height = videoInfo.BmiHeader.Height; - bpp = videoInfo.BmiHeader.BitCount; + VideoInfoHeader videoInfo = + (VideoInfoHeader)Marshal.PtrToStructure(queryMediaType.FormatPtr, typeof(VideoInfoHeader)); + _width = videoInfo.BmiHeader.Width; + _height = videoInfo.BmiHeader.Height; + _bpp = videoInfo.BmiHeader.BitCount; } } - control.Run(); + _control.Run(); Stop(); } @@ -119,41 +118,37 @@ namespace VAR.Toolbox.Code public void Start() { - control.Run(); - int result; - result = nullrenderer.Run(0); + _control.Run(); + int result = _nullRenderer.Run(0); if (result < 0) throw new Exception("Webcam Start failure"); - result = samplegrabberfilter.Run(0); + result = _sampleGrabberFilter.Run(0); if (result < 0) throw new Exception("Webcam Start failure"); - result = sourceFilter.Run(0); + result = _sourceFilter.Run(0); if (result < 0) throw new Exception("Webcam Start failure"); - active = true; + _active = true; } public void Stop() { - int result; - result = sourceFilter.Stop(); + int result = _sourceFilter.Stop(); if (result < 0) throw new Exception("Webcam Stop failure"); - result = samplegrabberfilter.Stop(); + result = _sampleGrabberFilter.Stop(); if (result < 0) throw new Exception("Webcam Stop failure"); - result = nullrenderer.Stop(); + result = _nullRenderer.Stop(); if (result < 0) throw new Exception("Webcam Stop failure"); - control.Stop(); - active = false; + _control.Stop(); + _active = false; } public static Dictionary ListDevices() { if (_deviceDescriptions != null) { return _deviceDescriptions; } - int result; Dictionary devices = new Dictionary(); ICreateDevEnum devEnum = CreateInstanceFromClsid(Clsid.SystemDeviceEnum); - IEnumMoniker enumMon = null; Guid category = FilterCategory.VideoInputDevice; - result = devEnum.CreateClassEnumerator(ref category, out enumMon, 0); + int result = devEnum.CreateClassEnumerator(ref category, out IEnumMoniker enumMon, 0); if (result != 0) throw new ApplicationException("No devices of the category"); @@ -175,6 +170,7 @@ namespace VAR.Toolbox.Code Marshal.ReleaseComObject(devMoniker[0]); devMoniker[0] = null; } + _deviceDescriptions = devices; Marshal.ReleaseComObject(devEnum); @@ -202,8 +198,7 @@ namespace VAR.Toolbox.Code // private static string GetMonikerString(IMoniker moniker) { - string str; - moniker.GetDisplayName(null, null, out str); + moniker.GetDisplayName(null, null, out string str); return str; } @@ -213,14 +208,13 @@ namespace VAR.Toolbox.Code private static string GetMonikerName(IMoniker moniker) { Object bagObj = null; - IPropertyBag bag = null; try { Guid bagId = typeof(IPropertyBag).GUID; // get property bag of the moniker moniker.BindToStorage(null, null, ref bagId, out bagObj); - bag = (IPropertyBag)bagObj; + IPropertyBag bag = (IPropertyBag)bagObj; // read FriendlyName object val = ""; @@ -242,11 +236,9 @@ namespace VAR.Toolbox.Code finally { // release all COM objects - bag = null; if (bagObj != null) { Marshal.ReleaseComObject(bagObj); - bagObj = null; } } } @@ -267,7 +259,7 @@ namespace VAR.Toolbox.Code { private readonly Webcam _parent; - private readonly Bitmap[] _frames = null; + private readonly Bitmap[] _frames; private readonly int _numFrames = 10; private int _currentFrameIndex = -1; @@ -281,11 +273,13 @@ namespace VAR.Toolbox.Code { _currentFrameIndex = (_currentFrameIndex + 1) % _numFrames; Bitmap currentBitmap = _frames[_currentFrameIndex]; - if (currentBitmap == null || currentBitmap?.Width != _parent.width || currentBitmap?.Height != _parent.height) + if (currentBitmap == null || currentBitmap.Width != _parent._width || + currentBitmap.Height != _parent._height) { - currentBitmap = new Bitmap(_parent.width, _parent.height, PixelFormat.Format24bppRgb); + currentBitmap = new Bitmap(_parent._width, _parent._height, PixelFormat.Format24bppRgb); _frames[_currentFrameIndex] = currentBitmap; } + return currentBitmap; } @@ -299,12 +293,12 @@ namespace VAR.Toolbox.Code if (_parent.NewFrame != null) { // create new image - Bitmap _image = GetNextFrame(); - Rectangle _imageRect = new Rectangle(0, 0, _parent.width, _parent.height); + Bitmap image = GetNextFrame(); + Rectangle imageRect = new Rectangle(0, 0, _parent._width, _parent._height); // lock bitmap data - BitmapData imageData = _image.LockBits( - _imageRect, + BitmapData imageData = image.LockBits( + imageRect, ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb); @@ -314,10 +308,10 @@ namespace VAR.Toolbox.Code unsafe { - byte* dst = (byte*)imageData.Scan0.ToPointer() + dstStride * (_parent.height - 1); + byte* dst = (byte*)imageData.Scan0.ToPointer() + dstStride * (_parent._height - 1); byte* src = (byte*)buffer.ToPointer(); - for (int y = 0; y < _parent.height; y++) + for (int y = 0; y < _parent._height; y++) { Win32.memcpy(dst, src, srcStride); dst -= dstStride; @@ -326,10 +320,10 @@ namespace VAR.Toolbox.Code } // unlock bitmap data - _image.UnlockBits(imageData); + image.UnlockBits(imageData); // notify parent - _parent.NewFrame?.Invoke(this, _image); + _parent.NewFrame?.Invoke(this, image); } return 0; @@ -338,4 +332,4 @@ namespace VAR.Toolbox.Code #endregion Grabber } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/Windows/GDI32.cs b/VAR.Toolbox/Code/Windows/GDI32.cs index bc88d66..b74ab73 100644 --- a/VAR.Toolbox/Code/Windows/GDI32.cs +++ b/VAR.Toolbox/Code/Windows/GDI32.cs @@ -11,16 +11,21 @@ namespace VAR.Toolbox.Code.Windows public static extern bool BitBlt(IntPtr hObject, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hObjectSource, int nXSrc, int nYSrc, int dwRop); + [DllImport("gdi32.dll")] public static extern IntPtr CreateCompatibleBitmap(IntPtr hDC, int nWidth, int nHeight); + [DllImport("gdi32.dll")] public static extern IntPtr CreateCompatibleDC(IntPtr hDC); + [DllImport("gdi32.dll")] public static extern bool DeleteDC(IntPtr hDC); + [DllImport("gdi32.dll")] public static extern bool DeleteObject(IntPtr hObject); + [DllImport("gdi32.dll")] public static extern IntPtr SelectObject(IntPtr hDC, IntPtr hObject); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/Windows/User32.cs b/VAR.Toolbox/Code/Windows/User32.cs index 70b1b04..54c77e8 100644 --- a/VAR.Toolbox/Code/Windows/User32.cs +++ b/VAR.Toolbox/Code/Windows/User32.cs @@ -2,6 +2,11 @@ using System.Runtime.InteropServices; using System.Text; +// ReSharper disable InconsistentNaming +// ReSharper disable MemberCanBePrivate.Global +// ReSharper disable FieldCanBeMadeReadOnly.Global +// ReSharper disable IdentifierTypo + namespace VAR.Toolbox.Code.Windows { public static class User32 @@ -23,14 +28,11 @@ namespace VAR.Toolbox.Code.Windows [StructLayout(LayoutKind.Explicit)] public struct MOUSEKEYBDHARDWAREINPUT { - [FieldOffset(0)] - public HARDWAREINPUT Hardware; + [FieldOffset(0)] public HARDWAREINPUT Hardware; - [FieldOffset(0)] - public KEYBDINPUT Keyboard; + [FieldOffset(0)] public KEYBDINPUT Keyboard; - [FieldOffset(0)] - public MOUSEINPUT Mouse; + [FieldOffset(0)] public MOUSEINPUT Mouse; } /// @@ -93,7 +95,7 @@ namespace VAR.Toolbox.Code.Windows [DllImport("User32.dll")] public static extern int SendInput(int nInputs, INPUT[] pInputs, int cbSize); - // + /// /// Struct representing a point. /// [StructLayout(LayoutKind.Sequential)] @@ -111,18 +113,16 @@ namespace VAR.Toolbox.Code.Windows public static extern bool GetCursorPos(out POINT lpPoint); [DllImport("User32.dll")] - public static extern Boolean SetCursorPos(UInt32 X, UInt32 Y); + public static extern Boolean SetCursorPos(UInt32 x, UInt32 y); [StructLayout(LayoutKind.Sequential)] public struct LASTINPUTINFO { public static readonly int SizeOf = Marshal.SizeOf(typeof(LASTINPUTINFO)); - [MarshalAs(UnmanagedType.U4)] - public UInt32 cbSize; + [MarshalAs(UnmanagedType.U4)] public UInt32 cbSize; - [MarshalAs(UnmanagedType.U4)] - public UInt32 dwTime; + [MarshalAs(UnmanagedType.U4)] public UInt32 dwTime; } [DllImport("user32.dll")] @@ -139,7 +139,7 @@ namespace VAR.Toolbox.Code.Windows public const int HT_CAPTION = 0x2; [DllImport("user32.dll")] - public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam); + public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam); [DllImport("user32.dll")] public static extern bool ReleaseCapture(); @@ -177,14 +177,15 @@ namespace VAR.Toolbox.Code.Windows public static string GetActiveWindowTitle() { - const int nChars = 256; - StringBuilder Buff = new StringBuilder(nChars); + const int NChars = 256; + StringBuilder buff = new StringBuilder(NChars); IntPtr handle = GetForegroundWindow(); - if (GetWindowText(handle, Buff, nChars) > 0) + if (GetWindowText(handle, buff, NChars) > 0) { - return Buff.ToString(); + return buff.ToString(); } + return null; } } diff --git a/VAR.Toolbox/Code/Windows/Win32.cs b/VAR.Toolbox/Code/Windows/Win32.cs index 21bdd06..eaf9ac3 100644 --- a/VAR.Toolbox/Code/Windows/Win32.cs +++ b/VAR.Toolbox/Code/Windows/Win32.cs @@ -4,6 +4,10 @@ using System; using System.Runtime.InteropServices; using System.Runtime.InteropServices.ComTypes; +// ReSharper disable IdentifierTypo +// ReSharper disable StringLiteralTypo +// ReSharper disable CommentTypo + namespace VAR.Toolbox.Code.Windows { public static class Win32 @@ -21,7 +25,7 @@ namespace VAR.Toolbox.Code.Windows /// [DllImport("ole32.dll")] public static extern - int CreateBindCtx(int reserved, out IBindCtx ppbc); + int CreateBindCtx(int reserved, out IBindCtx ppbc); /// /// Converts a string into a moniker that identifies the object named by the string. @@ -37,8 +41,8 @@ namespace VAR.Toolbox.Code.Windows /// [DllImport("ole32.dll", CharSet = CharSet.Unicode)] public static extern - int MkParseDisplayName(IBindCtx pbc, string szUserName, - ref int pchEaten, out IMoniker ppmk); + int MkParseDisplayName(IBindCtx pbc, string szUserName, + ref int pchEaten, out IMoniker ppmk); /// /// Copy a block of memory. @@ -51,7 +55,7 @@ namespace VAR.Toolbox.Code.Windows /// Return's the value of dst - pointer to destination. /// [DllImport("ntdll.dll", CallingConvention = CallingConvention.Cdecl)] - public static unsafe extern int memcpy( + public static extern unsafe int memcpy( byte* dst, byte* src, int count); @@ -81,7 +85,7 @@ namespace VAR.Toolbox.Code.Windows int y, [MarshalAs(UnmanagedType.LPWStr)] string caption, int cObjects, - [MarshalAs( UnmanagedType.Interface, ArraySubType = UnmanagedType.IUnknown )] + [MarshalAs(UnmanagedType.Interface, ArraySubType = UnmanagedType.IUnknown)] ref object ppUnk, int cPages, IntPtr lpPageClsID, @@ -90,7 +94,8 @@ namespace VAR.Toolbox.Code.Windows IntPtr lpvReserved); [DllImport("PowrProf.dll")] - public static extern Boolean SetSuspendState(Boolean Hibernate, Boolean ForceCritical, Boolean DisableWakeEvent); + public static extern Boolean + SetSuspendState(Boolean hibernate, Boolean forceCritical, Boolean disableWakeEvent); public static uint GetLastInputTime() { @@ -104,6 +109,7 @@ namespace VAR.Toolbox.Code.Windows uint lastInputTick = lastInputInfo.dwTime; idleTime = envTicks - lastInputTick; } + return ((idleTime > 0) ? (idleTime / 1000) : 0); } } diff --git a/VAR.Toolbox/Code/WorkLog/IWorkLogImporter.cs b/VAR.Toolbox/Code/WorkLog/IWorkLogImporter.cs index 8174fdd..3897b13 100644 --- a/VAR.Toolbox/Code/WorkLog/IWorkLogImporter.cs +++ b/VAR.Toolbox/Code/WorkLog/IWorkLogImporter.cs @@ -8,4 +8,4 @@ namespace VAR.Toolbox.Code.WorkLog List Import(Form form); bool Export(List items, Form form); } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/WorkLog/VARTextWorkLogImporter.cs b/VAR.Toolbox/Code/WorkLog/VARTextWorkLogImporter.cs index a834ebd..8882d88 100644 --- a/VAR.Toolbox/Code/WorkLog/VARTextWorkLogImporter.cs +++ b/VAR.Toolbox/Code/WorkLog/VARTextWorkLogImporter.cs @@ -10,7 +10,7 @@ namespace VAR.Toolbox.Code.WorkLog { public class VARTextWorkLogImporter : IWorkLogImporter { - public string Name { get { return "VARText"; } } + public string Name => "VARText"; //TODO: VARTextWorkLogImporter: Export WorkLigItem.Tags public bool Export(List items, Form form) @@ -23,6 +23,7 @@ namespace VAR.Toolbox.Code.WorkLog { File.Delete(saveFileDialog.FileName); } + using (StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName)) { DateTime lastDateTime = DateTime.MinValue; @@ -30,30 +31,33 @@ namespace VAR.Toolbox.Code.WorkLog List itemsOrdered = items.OrderBy(x => x.DateStart).ToList(); foreach (WorkLogItem item in itemsOrdered) { - int weekOfYear = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(item.DateStart, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); + int weekOfYear = CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(item.DateStart, + CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); if (weekOfYear != lastWeekOfYear) { streamWriter.WriteLine(); streamWriter.WriteLine(); - streamWriter.WriteLine(string.Format("--- {0:0000}-{1:00}-{2:00}", item.DateStart.Year, item.DateStart.Month, item.DateStart.Day)); + streamWriter.WriteLine("--- {0:0000}-{1:00}-{2:00}", item.DateStart.Year, item.DateStart.Month, + item.DateStart.Day); lastWeekOfYear = weekOfYear; } + if (lastDateTime.Day != item.DateStart.Day) { streamWriter.WriteLine(); lastDateTime = item.DateStart; } - streamWriter.WriteLine(string.Format("{0:00}_{1:00}_{2:00} - {3:00}_{4:00}_{5:00} {6}", - item.DateStart.Day, item.DateStart.Hour, item.DateStart.Minute, - item.DateEnd.Day, item.DateEnd.Hour, item.DateEnd.Minute, - item.Activity)); + streamWriter.WriteLine("{0:00}_{1:00}_{2:00} - {3:00}_{4:00}_{5:00} {6}", item.DateStart.Day, + item.DateStart.Hour, item.DateStart.Minute, item.DateEnd.Day, item.DateEnd.Hour, + item.DateEnd.Minute, item.Activity); if (string.IsNullOrEmpty(item.Description) == false) { - streamWriter.WriteLine(string.Format(" {0}", item.Description)); + streamWriter.WriteLine($" {item.Description}"); } } } + return true; } @@ -82,14 +86,13 @@ namespace VAR.Toolbox.Code.WorkLog { string strDate = lineAux.Substring(4); string[] strDateParts = strDate.Split('-'); - if (strDateParts.Length >= 3 && strDateParts[0].Length == 4 && strDateParts[1].Length == 2 && strDateParts[2].Length == 2) + if (strDateParts.Length >= 3 && strDateParts[0].Length == 4 && strDateParts[1].Length == 2 && + strDateParts[2].Length == 2) { - currentDateStart = new DateTime(Convert.ToInt32(strDateParts[0]), Convert.ToInt32(strDateParts[1]), Convert.ToInt32(strDateParts[2]), 0, 0, 0); - } - else - { - continue; + currentDateStart = new DateTime(Convert.ToInt32(strDateParts[0]), + Convert.ToInt32(strDateParts[1]), Convert.ToInt32(strDateParts[2]), 0, 0, 0); } + else { } } else if (lineAux.StartsWith("--")) { @@ -97,7 +100,6 @@ namespace VAR.Toolbox.Code.WorkLog { currentWorkLog.Description += lineAux + "\n"; } - continue; } else { @@ -108,8 +110,10 @@ namespace VAR.Toolbox.Code.WorkLog { currentWorkLog.Description += lineAux + "\n"; } + continue; } + int startDay = Convert.ToInt32(match.Groups[1].Value); int startHour = Convert.ToInt32(match.Groups[2].Value); int startMinute = Convert.ToInt32(match.Groups[3].Value); @@ -138,4 +142,4 @@ namespace VAR.Toolbox.Code.WorkLog return workLog; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/WorkLog/WorkLogImporterFactory.cs b/VAR.Toolbox/Code/WorkLog/WorkLogImporterFactory.cs index 41ceaf8..4ff2e18 100644 --- a/VAR.Toolbox/Code/WorkLog/WorkLogImporterFactory.cs +++ b/VAR.Toolbox/Code/WorkLog/WorkLogImporterFactory.cs @@ -1,6 +1,4 @@ namespace VAR.Toolbox.Code.WorkLog { - public class WorkLogImporterFactory : BaseFactory - { - } -} + public class WorkLogImporterFactory : BaseFactory { } +} \ No newline at end of file diff --git a/VAR.Toolbox/Code/WorkLog/WorkLogItem.cs b/VAR.Toolbox/Code/WorkLog/WorkLogItem.cs index bddcb2b..b9de119 100644 --- a/VAR.Toolbox/Code/WorkLog/WorkLogItem.cs +++ b/VAR.Toolbox/Code/WorkLog/WorkLogItem.cs @@ -12,7 +12,7 @@ namespace VAR.Toolbox.Code.WorkLog public bool Overlaps(WorkLogItem other) { - return (other.DateEnd < this.DateStart || other.DateStart > this.DateEnd) == false; + return (other.DateEnd < DateStart || other.DateStart > DateEnd) == false; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/CButton.cs b/VAR.Toolbox/Controls/CButton.cs index 62b133c..0410d81 100644 --- a/VAR.Toolbox/Controls/CButton.cs +++ b/VAR.Toolbox/Controls/CButton.cs @@ -4,16 +4,16 @@ using System.Windows.Forms; namespace VAR.Toolbox.Controls { - public class CButton : System.Windows.Forms.Button + public class CButton : Button { - private Brush _foreColorBrush; - private Brush _foreColorDisableBrush; - private Brush _backColorBrush; - private Brush _backColorOverBrush; - private Brush _backColorDownBrush; + private readonly Brush _foreColorBrush; + private readonly Brush _foreColorDisableBrush; + private readonly Brush _backColorBrush; + private readonly Brush _backColorOverBrush; + private readonly Brush _backColorDownBrush; - private bool _mouseIsDown = false; - private bool _mouseIsOver = false; + private bool _mouseIsDown; + private bool _mouseIsOver; public CButton() { @@ -47,15 +47,9 @@ namespace VAR.Toolbox.Controls if (mevent.Button != MouseButtons.None) { Rectangle r = ClientRectangle; - if (!r.Contains(mevent.X, mevent.Y)) - { - _mouseIsDown = false; - } - else - { - _mouseIsDown = true; - } + _mouseIsDown = r.Contains(mevent.X, mevent.Y); } + base.OnMouseMove(mevent); } @@ -71,7 +65,8 @@ namespace VAR.Toolbox.Controls base.OnMouseUp(mevent); } - private StringFormat _stringFormat = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }; + private readonly StringFormat _stringFormat = new StringFormat + { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center }; protected override void OnPaint(PaintEventArgs pevent) { @@ -84,14 +79,7 @@ namespace VAR.Toolbox.Controls } else { - if (_mouseIsOver) - { - pevent.Graphics.FillRectangle(_backColorOverBrush, rectangle); - } - else - { - pevent.Graphics.FillRectangle(_backColorBrush, rectangle); - } + pevent.Graphics.FillRectangle(_mouseIsOver ? _backColorOverBrush : _backColorBrush, rectangle); } } else @@ -99,8 +87,8 @@ namespace VAR.Toolbox.Controls pevent.Graphics.FillRectangle(_backColorBrush, rectangle); } - pevent.Graphics.DrawString(Text, Font, Enabled ? _foreColorBrush : _foreColorDisableBrush, rectangle, _stringFormat); + pevent.Graphics.DrawString(Text, Font, Enabled ? _foreColorBrush : _foreColorDisableBrush, rectangle, + _stringFormat); } - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/CComboBox.cs b/VAR.Toolbox/Controls/CComboBox.cs index 69a6e2e..8784ecb 100644 --- a/VAR.Toolbox/Controls/CComboBox.cs +++ b/VAR.Toolbox/Controls/CComboBox.cs @@ -3,14 +3,19 @@ using System.Windows.Forms; namespace VAR.Toolbox.Controls { - public class CComboBox : System.Windows.Forms.ComboBox + public class CComboBox : ComboBox { public CComboBox() + { + InitializeComponent(); + } + + private void InitializeComponent() { BackColor = Color.FromArgb(255, 0, 0, 0); ForeColor = Color.FromArgb(255, 192, 192, 192); - FlatStyle = System.Windows.Forms.FlatStyle.Flat; + FlatStyle = FlatStyle.Flat; } protected override void OnPaint(PaintEventArgs pevent) @@ -19,4 +24,4 @@ namespace VAR.Toolbox.Controls pevent.Graphics.FillRectangle(Brushes.CadetBlue, rectangle); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/CDateTimePicker.cs b/VAR.Toolbox/Controls/CDateTimePicker.cs index f196c08..89ff547 100644 --- a/VAR.Toolbox/Controls/CDateTimePicker.cs +++ b/VAR.Toolbox/Controls/CDateTimePicker.cs @@ -5,9 +5,14 @@ namespace VAR.Toolbox.Controls public class CDateTimePicker : System.Windows.Forms.DateTimePicker { public CDateTimePicker() + { + InitializeComponent(); + } + + private void InitializeComponent() { BackColor = Color.DarkSlateGray; ForeColor = Color.Gray; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/CGroupBox.cs b/VAR.Toolbox/Controls/CGroupBox.cs index ceafd90..aa8fea3 100644 --- a/VAR.Toolbox/Controls/CGroupBox.cs +++ b/VAR.Toolbox/Controls/CGroupBox.cs @@ -3,26 +3,31 @@ using System.Windows.Forms; namespace VAR.Toolbox.Controls { - public class CGroupBox : System.Windows.Forms.GroupBox + public class CGroupBox : GroupBox { public CGroupBox() + { + InitializeComponent(); + } + + private void InitializeComponent() { BackColor = Color.FromArgb(255, 32, 32, 32); ForeColor = Color.FromArgb(255, 192, 192, 192); BorderColor = Color.FromArgb(255, 64, 64, 64); - FlatStyle = System.Windows.Forms.FlatStyle.Flat; + FlatStyle = FlatStyle.Flat; } private Color _borderColor = Color.Black; public Color BorderColor { - get { return this._borderColor; } - set { this._borderColor = value; } + get => _borderColor; + set => _borderColor = value; } - private SolidBrush _brushBackColor = null; - private SolidBrush _brushForeColor = null; + private SolidBrush _brushBackColor; + private SolidBrush _brushForeColor; protected override void OnPaint(PaintEventArgs e) { @@ -30,6 +35,7 @@ namespace VAR.Toolbox.Controls { _brushBackColor = new SolidBrush(BackColor); } + if (_brushForeColor == null || _brushForeColor.Color != ForeColor) { _brushForeColor = new SolidBrush(ForeColor); @@ -50,4 +56,4 @@ namespace VAR.Toolbox.Controls e.Graphics.DrawString(Text, Font, _brushForeColor, textRect); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/CSplitContainer.cs b/VAR.Toolbox/Controls/CSplitContainer.cs index e169486..c8c7d4b 100644 --- a/VAR.Toolbox/Controls/CSplitContainer.cs +++ b/VAR.Toolbox/Controls/CSplitContainer.cs @@ -5,9 +5,14 @@ namespace VAR.Toolbox.Controls public class CSplitContainer : System.Windows.Forms.SplitContainer { public CSplitContainer() + { + InitializeComponent(); + } + + private void InitializeComponent() { BackColor = Color.FromArgb(255, 32, 32, 32); ForeColor = Color.FromArgb(255, 192, 192, 192); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/ControlsUtils.cs b/VAR.Toolbox/Controls/ControlsUtils.cs index 3ece0f2..ba0ae66 100644 --- a/VAR.Toolbox/Controls/ControlsUtils.cs +++ b/VAR.Toolbox/Controls/ControlsUtils.cs @@ -23,8 +23,8 @@ namespace VAR.Toolbox.Controls if (control.InvokeRequired) { control.Invoke(new SetControlPropertyThreadSafeDelegate - (SetControlPropertyThreadSafe), - new object[] { control, propertyName, propertyValue }); + (SetControlPropertyThreadSafe), + new[] { control, propertyName, propertyValue }); } else { @@ -33,8 +33,8 @@ namespace VAR.Toolbox.Controls BindingFlags.SetProperty, null, control, - new object[] { propertyValue }); + new[] { propertyValue }); } } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/CtrImageViewer.cs b/VAR.Toolbox/Controls/CtrImageViewer.cs index 7f6e88f..5e4341a 100644 --- a/VAR.Toolbox/Controls/CtrImageViewer.cs +++ b/VAR.Toolbox/Controls/CtrImageViewer.cs @@ -8,7 +8,7 @@ namespace VAR.Toolbox.Controls { #region Declarations - private Image _imageShow = null; + private Image _imageShow; #endregion @@ -16,7 +16,8 @@ namespace VAR.Toolbox.Controls public Image ImageShow { - get { return _imageShow; } + // ReSharper disable once InconsistentlySynchronizedField + get => _imageShow; set { lock (this) @@ -32,6 +33,11 @@ namespace VAR.Toolbox.Controls #region Control life cycle public CtrImageViewer() + { + InitializeComponent(); + } + + private void InitializeComponent() { BackColor = Color.Black; } @@ -46,7 +52,7 @@ namespace VAR.Toolbox.Controls { base.OnResize(e); //Redraw(null); - this.Invalidate(); + Invalidate(); } #endregion @@ -59,11 +65,12 @@ namespace VAR.Toolbox.Controls { return; } + lock (_imageShow) { if (graph == null) { - graph = this.CreateGraphics(); + graph = CreateGraphics(); } // Calcular dimensiones a dibujar y centrar @@ -71,7 +78,7 @@ namespace VAR.Toolbox.Controls int imgDrawHeight; float imgDrawX = 0; float imgDrawY = 0; - float relation = (float)_imageShow.Width / (float)_imageShow.Height; + float relation = _imageShow.Width / (float)_imageShow.Height; if (relation > 0) { // Imagen mas ancha que alta @@ -110,6 +117,5 @@ namespace VAR.Toolbox.Controls } #endregion - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/CtrOutput.cs b/VAR.Toolbox/Controls/CtrOutput.cs index d626b8b..5ee0c55 100644 --- a/VAR.Toolbox/Controls/CtrOutput.cs +++ b/VAR.Toolbox/Controls/CtrOutput.cs @@ -16,6 +16,7 @@ namespace VAR.Toolbox.Controls { public string Text { get; set; } public object Data { get; set; } + public override string ToString() { return Text; @@ -62,6 +63,7 @@ namespace VAR.Toolbox.Controls CopyToClipboard(); return true; } + return base.ProcessCmdKey(ref msg, keyData); } @@ -80,6 +82,7 @@ namespace VAR.Toolbox.Controls { sbText.AppendLine(item.Text); } + if (sbText.Length > 0) { Clipboard.SetText(sbText.ToString()); @@ -99,7 +102,7 @@ namespace VAR.Toolbox.Controls } } - private bool _updated = false; + private bool _updated; private readonly List _pendingOutput = new List(); private void UpdatePosition() @@ -112,6 +115,7 @@ namespace VAR.Toolbox.Controls { _listBox.Items.Add(item); } + _pendingOutput.Clear(); _listBox.ResumeLayout(); @@ -124,10 +128,12 @@ namespace VAR.Toolbox.Controls } [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] - private static extern IntPtr SendMessage(HandleRef hWnd, Int32 Msg, IntPtr wParam, IntPtr lParam); + private static extern IntPtr SendMessage(HandleRef hWnd, Int32 msg, IntPtr wParam, IntPtr lParam); private static void EnableRepaint(HandleRef handle, bool enable) { + // ReSharper disable once InconsistentNaming + // ReSharper disable once IdentifierTypo const int WM_SETREDRAW = 0x000B; SendMessage(handle, WM_SETREDRAW, new IntPtr(enable ? 1 : 0), IntPtr.Zero); } @@ -161,6 +167,7 @@ namespace VAR.Toolbox.Controls public string GetCurrentText() { if (_listBox.SelectedItems.Count == 0) { return null; } + OutputItem item = (OutputItem)_listBox.SelectedItems[0]; return item?.Text; } @@ -168,8 +175,9 @@ namespace VAR.Toolbox.Controls public object GetCurrentData() { if (_listBox.SelectedItems.Count == 0) { return null; } + OutputItem item = (OutputItem)_listBox.SelectedItems[0]; return item?.Data; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/Frame.cs b/VAR.Toolbox/Controls/Frame.cs index db8ba23..c130fb9 100644 --- a/VAR.Toolbox/Controls/Frame.cs +++ b/VAR.Toolbox/Controls/Frame.cs @@ -6,10 +6,16 @@ namespace VAR.Toolbox.Controls { public Frame() { - Font = new System.Drawing.Font(Font.Name, ControlsUtils.GetFontSize(this, 8.25f), Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont); + InitializeComponent(); + } + + private void InitializeComponent() + { + Font = new Font(Font.Name, ControlsUtils.GetFontSize(this, 8.25f), Font.Style, Font.Unit, + Font.GdiCharSet, Font.GdiVerticalFont); AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; BackColor = Color.FromArgb(255, 32, 32, 32); ForeColor = Color.FromArgb(255, 192, 192, 192); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/ListBoxMonospace.cs b/VAR.Toolbox/Controls/ListBoxMonospace.cs index 770baca..a253cdd 100644 --- a/VAR.Toolbox/Controls/ListBoxMonospace.cs +++ b/VAR.Toolbox/Controls/ListBoxMonospace.cs @@ -6,6 +6,11 @@ namespace VAR.Toolbox.Controls public class ListBoxMonospace : ListBox { public ListBoxMonospace() + { + InitializeComponent(); + } + + private void InitializeComponent() { FormattingEnabled = true; Font = new Font("Consolas", ControlsUtils.GetFontSize(this, 9)); @@ -17,17 +22,17 @@ namespace VAR.Toolbox.Controls protected override void OnMouseWheel(MouseEventArgs e) { - (e as HandledMouseEventArgs).Handled = true; - const int rows = 5; + ((HandledMouseEventArgs)e).Handled = true; + const int Rows = 5; if (e.Delta > 0) { - if (TopIndex < rows) { TopIndex = 0; } - else { TopIndex -= rows; } + if (TopIndex < Rows) { TopIndex = 0; } + else { TopIndex -= Rows; } } else { - TopIndex += rows; + TopIndex += Rows; } } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/ListBoxNormal.cs b/VAR.Toolbox/Controls/ListBoxNormal.cs index df5c2b9..5c3a544 100644 --- a/VAR.Toolbox/Controls/ListBoxNormal.cs +++ b/VAR.Toolbox/Controls/ListBoxNormal.cs @@ -6,6 +6,11 @@ namespace VAR.Toolbox.Controls public class ListBoxNormal : ListBox { public ListBoxNormal() + { + InitializeComponent(); + } + + private void InitializeComponent() { FormattingEnabled = true; Font = new Font("Microsoft Sans Serif", ControlsUtils.GetFontSize(this, 8.25f)); @@ -16,17 +21,17 @@ namespace VAR.Toolbox.Controls protected override void OnMouseWheel(MouseEventArgs e) { - (e as HandledMouseEventArgs).Handled = true; - const int rows = 5; + ((HandledMouseEventArgs)e).Handled = true; + const int Rows = 5; if (e.Delta > 0) { - if (TopIndex < rows) { TopIndex = 0; } - else { TopIndex -= rows; } + if (TopIndex < Rows) { TopIndex = 0; } + else { TopIndex -= Rows; } } else { - TopIndex += rows; + TopIndex += Rows; } } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/SubFrame.cs b/VAR.Toolbox/Controls/SubFrame.cs index ce77dd7..aa0ec4d 100644 --- a/VAR.Toolbox/Controls/SubFrame.cs +++ b/VAR.Toolbox/Controls/SubFrame.cs @@ -6,10 +6,16 @@ namespace VAR.Toolbox.Controls { public SubFrame() { - Font = new System.Drawing.Font(Font.Name, ControlsUtils.GetFontSize(this, 8.25f), Font.Style, Font.Unit, Font.GdiCharSet, Font.GdiVerticalFont); + InitializeComponent(); + } + + private void InitializeComponent() + { + Font = new Font(Font.Name, ControlsUtils.GetFontSize(this, 8.25f), Font.Style, Font.Unit, + Font.GdiCharSet, Font.GdiVerticalFont); AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; BackColor = Color.FromArgb(255, 32, 32, 32); ForeColor = Color.FromArgb(255, 192, 192, 192); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/TextBoxMonospace.cs b/VAR.Toolbox/Controls/TextBoxMonospace.cs index 020b0f5..6228b2a 100644 --- a/VAR.Toolbox/Controls/TextBoxMonospace.cs +++ b/VAR.Toolbox/Controls/TextBoxMonospace.cs @@ -6,6 +6,11 @@ namespace VAR.Toolbox.Controls public class TextBoxMonospace : TextBox { public TextBoxMonospace() + { + InitializeComponent(); + } + + private void InitializeComponent() { Font = new Font("Consolas", ControlsUtils.GetFontSize(this, 9.0f)); BackColor = Color.FromArgb(255, 0, 0, 0); @@ -13,4 +18,4 @@ namespace VAR.Toolbox.Controls BorderStyle = BorderStyle.FixedSingle; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Controls/TextBoxNormal.cs b/VAR.Toolbox/Controls/TextBoxNormal.cs index b650a5b..7fc7612 100644 --- a/VAR.Toolbox/Controls/TextBoxNormal.cs +++ b/VAR.Toolbox/Controls/TextBoxNormal.cs @@ -6,6 +6,11 @@ namespace VAR.Toolbox.Controls public class TextBoxNormal : TextBox { public TextBoxNormal() + { + InitializeComponent(); + } + + private void InitializeComponent() { Font = new Font("Microsoft Sans Serif", ControlsUtils.GetFontSize(this, 8.25f)); BackColor = Color.FromArgb(255, 0, 0, 0); @@ -13,4 +18,4 @@ namespace VAR.Toolbox.Controls BorderStyle = BorderStyle.FixedSingle; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Images/toolbox.svg b/VAR.Toolbox/Images/toolbox.svg index 9541c7c..da55612 100644 --- a/VAR.Toolbox/Images/toolbox.svg +++ b/VAR.Toolbox/Images/toolbox.svg @@ -2,234 +2,234 @@ - - - - - - - - - - - - - - - - - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="64" + height="64" + viewBox="0 0 16.933333 16.933334" + version="1.1" + id="svg8" + inkscape:export-filename="C:\Users\valen\source.coffebreak\VAR.Toolbox\VAR.Toolbox\Images\Toolbox.png" + inkscape:export-xdpi="96.000008" + inkscape:export-ydpi="96.000008" + inkscape:version="0.92.1 r15371" + sodipodi:docname="toolbox.svg"> + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VAR.Toolbox/Program.cs b/VAR.Toolbox/Program.cs index 8c87c0e..ae806e2 100644 --- a/VAR.Toolbox/Program.cs +++ b/VAR.Toolbox/Program.cs @@ -23,8 +23,11 @@ namespace VAR.Toolbox string executingAssemblyPath = Assembly.GetExecutingAssembly().Location; string dirName = Path.GetDirectoryName(executingAssemblyPath); string execName = Path.GetFileNameWithoutExtension(executingAssemblyPath); - string[] assemblyPaths = Directory.GetFiles(dirName, string.Format("{0}*.dll", execName)); - foreach (string assemblyPath in assemblyPaths) { AssemblyLoadFull(assemblyPath); } + if (dirName != null) + { + string[] assemblyPaths = Directory.GetFiles(dirName, $"{execName}*.dll"); + foreach (string assemblyPath in assemblyPaths) { AssemblyLoadFull(assemblyPath); } + } Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); @@ -45,19 +48,25 @@ namespace VAR.Toolbox Application.Exit(); } - private static Assembly AssemblyLoadFull(string fullPath, List allAssemblyNames = null) + private static void AssemblyLoadFull(string fullPath, List allAssemblyNames = null) { if (allAssemblyNames == null) { allAssemblyNames = AppDomain.CurrentDomain.GetAssemblies().Select(a => a.GetName().Name).ToList(); } + Assembly asm = null; try { asm = Assembly.LoadFrom(fullPath); } - catch (Exception) { } - if (asm == null) { return null; } + catch (Exception) + { + // ignored + } + + if (asm == null) { return; } + allAssemblyNames.Add(asm.GetName().Name); // Load dependencies @@ -67,13 +76,10 @@ namespace VAR.Toolbox { if (allAssemblyNames.Contains(asmName.Name) == false) { - string fullPathAux = string.Format("{0}/{1}.dll", dirPath, asmName.Name); - Assembly asmAux = AssemblyLoadFull(fullPathAux, allAssemblyNames); + string fullPathAux = $"{dirPath}/{asmName.Name}.dll"; + AssemblyLoadFull(fullPathAux, allAssemblyNames); } } - - return asm; } - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/Properties/AssemblyInfo.cs b/VAR.Toolbox/Properties/AssemblyInfo.cs index 8bd70bc..abb6cd7 100644 --- a/VAR.Toolbox/Properties/AssemblyInfo.cs +++ b/VAR.Toolbox/Properties/AssemblyInfo.cs @@ -12,4 +12,4 @@ using System.Runtime.InteropServices; [assembly: ComVisible(false)] [assembly: Guid("e8dab98d-4fd0-4d40-b29a-62b4c2fca4d7")] -[assembly: AssemblyVersion("1.0.0.*")] +[assembly: AssemblyVersion("1.0.0.*")] \ No newline at end of file diff --git a/VAR.Toolbox/UI/FrmDialogString.cs b/VAR.Toolbox/UI/FrmDialogString.cs index 7f90e08..fafcc55 100644 --- a/VAR.Toolbox/UI/FrmDialogString.cs +++ b/VAR.Toolbox/UI/FrmDialogString.cs @@ -11,20 +11,20 @@ namespace VAR.Toolbox.UI public string Title { - get { return base.Text; } - set { Text = value; } + get => base.Text; + set => Text = value; } public string Description { - get { return lblDescription.Text; } - set { lblDescription.Text = value; } + get => lblDescription.Text; + set => lblDescription.Text = value; } public string Value { - get { return txtValue.Text; } - set { txtValue.Text = value; } + get => txtValue.Text; + set => txtValue.Text = value; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/FrmListBoxDialog.cs b/VAR.Toolbox/UI/FrmListBoxDialog.cs index ddd91f7..892c935 100644 --- a/VAR.Toolbox/UI/FrmListBoxDialog.cs +++ b/VAR.Toolbox/UI/FrmListBoxDialog.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using System.Windows.Forms; using VAR.Toolbox.Controls; @@ -13,20 +14,17 @@ namespace VAR.Toolbox.UI public string Title { - get { return base.Text; } - set { Text = value; } + get => base.Text; + set => Text = value; } public void LoadItems(List items) { lsbItems.Items.Clear(); - lsbItems.Items.AddRange(items.ToArray()); + lsbItems.Items.AddRange(items.ToArray()); } - public string Value - { - get { return (lsbItems.SelectedItem as string) ?? string.Empty; } - } + public string Value => (lsbItems.SelectedItem as string) ?? string.Empty; private void lsbItems_SelectedIndexChanged(object sender, System.EventArgs e) { @@ -34,4 +32,4 @@ namespace VAR.Toolbox.UI Close(); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/FrmToolbox.cs b/VAR.Toolbox/UI/FrmToolbox.cs index cecffc3..f72404e 100644 --- a/VAR.Toolbox/UI/FrmToolbox.cs +++ b/VAR.Toolbox/UI/FrmToolbox.cs @@ -5,7 +5,6 @@ using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; - using VAR.Toolbox.Code; using VAR.Toolbox.Code.Windows; using VAR.Toolbox.Controls; @@ -16,14 +15,14 @@ namespace VAR.Toolbox.UI { #region Declarations - private bool _closing = false; + private bool _closing; - private Label lblToolbox; - private CButton btnExit; + private Label _lblToolbox; + private CButton _btnExit; - private NotifyIcon niTray = null; + private NotifyIcon _niTray; - private static FrmToolbox _currentInstance = null; + private static FrmToolbox _currentInstance; #endregion Declarations @@ -39,7 +38,7 @@ namespace VAR.Toolbox.UI { Icon ico = Icon.ExtractAssociatedIcon(Application.ExecutablePath); Icon = ico; - niTray.Icon = ico; + _niTray.Icon = ico; } protected override void OnFormClosing(FormClosingEventArgs e) @@ -74,7 +73,7 @@ namespace VAR.Toolbox.UI if (dialogResult == DialogResult.Yes) { _closing = true; - niTray.Visible = false; + _niTray.Visible = false; CloseChildWindows(); Close(); } @@ -102,18 +101,18 @@ namespace VAR.Toolbox.UI private void InitializeDynamicComponents() { SuspendLayout(); - const int toolSpacing = 5; - const int toolWidth = 200; - const int windowSpacing = 10; - int nextYLocation = 0; + const int ToolSpacing = 5; + const int ToolWidth = 200; + const int WindowSpacing = 10; // Get list of ToolForms Type iToolForm = typeof(IToolForm); IEnumerable toolFormTypes = ReflectionUtils.GetTypesOfInterface(iToolForm); Dictionary dictToolFormTypes = toolFormTypes.ToDictionary(t => { - IToolForm toolForm = System.Runtime.Serialization.FormatterServices.GetUninitializedObject(t) as IToolForm; - return toolForm.ToolName; + IToolForm toolForm = + System.Runtime.Serialization.FormatterServices.GetUninitializedObject(t) as IToolForm; + return toolForm?.ToolName ?? t.Name; }); // Get list of ToolPanels @@ -121,27 +120,28 @@ namespace VAR.Toolbox.UI IEnumerable toolPanelTypes = ReflectionUtils.GetTypesOfInterface(iToolPanel).OrderBy(t => t.Name); // lblToolbox - lblToolbox = new Label + _lblToolbox = new Label { Anchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right), - Font = new Font(Font.FontFamily, ControlsUtils.GetFontSize(this, 27.75F), FontStyle.Bold, GraphicsUnit.Point, 0), - Location = new Point(windowSpacing, windowSpacing), + Font = new Font(Font.FontFamily, ControlsUtils.GetFontSize(this, 27.75F), FontStyle.Bold, + GraphicsUnit.Point, 0), + Location = new Point(WindowSpacing, WindowSpacing), Margin = new Padding(0, 0, 0, 0), Name = "lblToolbox", - Size = new Size(toolWidth * 2 + toolSpacing, 50), + Size = new Size(ToolWidth * 2 + ToolSpacing, 50), TabIndex = 6, Text = "Toolbox", TextAlign = ContentAlignment.MiddleCenter }; - lblToolbox.MouseDown += DragWindow_MouseDown; - nextYLocation = lblToolbox.Location.Y + lblToolbox.Size.Height + windowSpacing; + _lblToolbox.MouseDown += DragWindow_MouseDown; + int nextYLocation = _lblToolbox.Location.Y + _lblToolbox.Size.Height + WindowSpacing; // Tool buttons int idxButton = 0; - int xStartButtons = windowSpacing; - int xStepButtons = toolWidth + toolSpacing; + int xStartButtons = WindowSpacing; + int xStepButtons = ToolWidth + ToolSpacing; int yStartButtons = nextYLocation; - int yStepButtons = 40 + toolSpacing; + int yStepButtons = 40 + ToolSpacing; IEnumerable> sortedToolForms = dictToolFormTypes.OrderBy(p => p.Key); foreach (KeyValuePair p in sortedToolForms) { @@ -150,15 +150,15 @@ namespace VAR.Toolbox.UI CButton btn = new CButton { Location = new Point(x, y), - Name = string.Format("btn{0}", p.Key), - Size = new Size(toolWidth, 40), + Name = $"btn{p.Key}", + Size = new Size(ToolWidth, 40), TabIndex = idxButton, Text = p.Key, }; btn.Click += (s, e) => { CreateWindow(p.Value); }; Controls.Add(btn); - nextYLocation = btn.Location.Y + btn.Size.Height + windowSpacing; + nextYLocation = btn.Location.Y + btn.Size.Height + WindowSpacing; idxButton++; } @@ -166,48 +166,51 @@ namespace VAR.Toolbox.UI // Tool panels int idxPanel = 0; int yStartPanels = nextYLocation; - int xStartPanels = windowSpacing; + int xStartPanels = WindowSpacing; int xNextPanels = xStartPanels; foreach (Type t in toolPanelTypes) { ContainerControl pnl = Activator.CreateInstance(t) as ContainerControl; if (pnl == null) { continue; } + pnl.Location = new Point(xNextPanels, yStartPanels); Controls.Add(pnl); - int tempNextYLocation = pnl.Location.Y + pnl.Size.Height + windowSpacing; + int tempNextYLocation = pnl.Location.Y + pnl.Size.Height + WindowSpacing; if (nextYLocation < tempNextYLocation) { nextYLocation = tempNextYLocation; } - xNextPanels = pnl.Location.X + pnl.Size.Width + toolSpacing; + + xNextPanels = pnl.Location.X + pnl.Size.Width + ToolSpacing; if ((idxPanel % 2) == 1) { yStartPanels = nextYLocation; xNextPanels = xStartPanels; } + idxPanel++; } // btnExit - btnExit = new CButton + _btnExit = new CButton { Anchor = ((AnchorStyles.Bottom | AnchorStyles.Left) - | AnchorStyles.Right), - Location = new Point(windowSpacing, nextYLocation), + | AnchorStyles.Right), + Location = new Point(WindowSpacing, nextYLocation), Name = "btnExit", - Size = new Size(toolWidth * 2 + toolSpacing, 40), + Size = new Size(ToolWidth * 2 + ToolSpacing, 40), TabIndex = 7, Text = "Exit", }; - btnExit.Click += BtnExit_Click; - nextYLocation = btnExit.Location.Y + btnExit.Size.Height + windowSpacing; + _btnExit.Click += BtnExit_Click; + nextYLocation = _btnExit.Location.Y + _btnExit.Size.Height + WindowSpacing; // FrmToolbox ClientSize = new Size(425, nextYLocation); - Controls.Add(btnExit); - Controls.Add(lblToolbox); + Controls.Add(_btnExit); + Controls.Add(_lblToolbox); FormBorderStyle = FormBorderStyle.Fixed3D; MaximizeBox = false; Name = "FrmToolbox"; @@ -219,12 +222,12 @@ namespace VAR.Toolbox.UI ResumeLayout(false); // niTray - niTray = new NotifyIcon + _niTray = new NotifyIcon { Text = "VAR.Toolbox", Visible = true }; - niTray.MouseClick += NiTray_MouseClick; + _niTray.MouseClick += NiTray_MouseClick; ResumeLayout(); @@ -234,21 +237,22 @@ namespace VAR.Toolbox.UI #region Window handling - private Form CreateWindow(Type type) + private void CreateWindow(Type type) { var frm = Activator.CreateInstance(type) as Form; if (frm == null) { - return null; + return; } + _forms.Add(frm); frm.FormClosing += FrmChild_FormClosing; if ((frm as IToolForm)?.HasIcon == false) { frm.Icon = Icon; } + frm.Show(); - return frm; } private readonly List
_forms = new List(); @@ -263,7 +267,7 @@ namespace VAR.Toolbox.UI CloseChildWindows(); } - private bool _wasMinimized = false; + private bool _wasMinimized; private void FrmToolbox_Resize(object sender, EventArgs e) { @@ -272,6 +276,7 @@ namespace VAR.Toolbox.UI _wasMinimized = true; HideChildWindows(); } + if (FormWindowState.Normal == WindowState && _wasMinimized) { _wasMinimized = false; @@ -312,6 +317,7 @@ namespace VAR.Toolbox.UI { List list = new List(); if (_currentInstance == null) { return list; } + foreach (Form frm in _currentInstance._forms) { if (frm is T) @@ -319,10 +325,10 @@ namespace VAR.Toolbox.UI list.Add((T)(object)frm); } } + return list; } #endregion Window handling - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/IToolForm.cs b/VAR.Toolbox/UI/IToolForm.cs index 8e6101b..473a370 100644 --- a/VAR.Toolbox/UI/IToolForm.cs +++ b/VAR.Toolbox/UI/IToolForm.cs @@ -5,4 +5,4 @@ string ToolName { get; } bool HasIcon { get; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/IToolPanel.cs b/VAR.Toolbox/UI/IToolPanel.cs index a5b0fed..65adfed 100644 --- a/VAR.Toolbox/UI/IToolPanel.cs +++ b/VAR.Toolbox/UI/IToolPanel.cs @@ -1,6 +1,4 @@ namespace VAR.Toolbox.UI { - public interface IToolPanel - { - } -} + public interface IToolPanel { } +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/FrmCoder.Designer.cs b/VAR.Toolbox/UI/Tools/FrmCoder.Designer.cs index 930c6c8..cca8d09 100644 --- a/VAR.Toolbox/UI/Tools/FrmCoder.Designer.cs +++ b/VAR.Toolbox/UI/Tools/FrmCoder.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class FrmCoder { diff --git a/VAR.Toolbox/UI/Tools/FrmCoder.cs b/VAR.Toolbox/UI/Tools/FrmCoder.cs index 5d0665d..e308c7a 100644 --- a/VAR.Toolbox/UI/Tools/FrmCoder.cs +++ b/VAR.Toolbox/UI/Tools/FrmCoder.cs @@ -1,25 +1,26 @@ using System; +using System.Linq; using System.Windows.Forms; using VAR.Toolbox.Code.TextCoders; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class FrmCoder : Frame, IToolForm { - public string ToolName { get { return "Coder"; } } + public string ToolName => "Coder"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; public FrmCoder() { InitializeComponent(); - cboCode.Items.AddRange(TextCoderFactory.GetNames()); + cboCode.Items.AddRange(TextCoderFactory.GetNames().ToArray()); cboCode.SelectedIndex = 1; } - private ITextCoder _coder = null; + private ITextCoder _coder; private void BtnDecode_Click(object sender, EventArgs e) { @@ -32,6 +33,7 @@ namespace VAR.Toolbox.UI { MessageBox.Show(ex.Message); } + txtOutput.Text = output; } @@ -46,14 +48,13 @@ namespace VAR.Toolbox.UI { MessageBox.Show(ex.Message); } + txtOutput.Text = output; } private void BtnSwap_Click(object sender, EventArgs e) { - string temp = txtOutput.Text; - txtOutput.Text = txtInput.Text; - txtInput.Text = temp; + (txtOutput.Text, txtInput.Text) = (txtInput.Text, txtOutput.Text); } private void CboCode_SelectedIndexChanged(object sender, EventArgs e) @@ -63,4 +64,4 @@ namespace VAR.Toolbox.UI txtKey.Enabled = _coder.NeedsKey; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/FrmCover.cs b/VAR.Toolbox/UI/Tools/FrmCover.cs index 515ed48..60f70e0 100644 --- a/VAR.Toolbox/UI/Tools/FrmCover.cs +++ b/VAR.Toolbox/UI/Tools/FrmCover.cs @@ -5,7 +5,7 @@ using VAR.Toolbox.Code; using VAR.Toolbox.Code.Windows; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public class FrmCover : Frame { @@ -14,14 +14,19 @@ namespace VAR.Toolbox.UI private readonly Random _rnd = new Random(); private readonly Timer _timer = new Timer(); - private readonly uint _mouseX = 0; - private readonly uint _mouseY = 0; + private uint _mouseX; + private uint _mouseY; #endregion Declarations #region Form life cycle public FrmCover() + { + InitializeComponent(); + } + + private void InitializeComponent() { Mouse.GetPosition(out _mouseX, out _mouseY); @@ -47,6 +52,7 @@ namespace VAR.Toolbox.UI { r = Rectangle.Union(r, s.Bounds); } + Top = r.Top; Left = r.Left; Width = r.Width; @@ -91,7 +97,11 @@ namespace VAR.Toolbox.UI (_rnd.Next() % 11) - 5, (_rnd.Next() % 11) - 5); } - catch (Exception) { } // ignore exceptions moving mouse + catch (Exception) + { + // ignored exceptions moving mouse + } + _timer.Stop(); _timer.Start(); } diff --git a/VAR.Toolbox/UI/Tools/FrmIPScan.Designer.cs b/VAR.Toolbox/UI/Tools/FrmIPScan.Designer.cs index f8adcde..bbddd2a 100644 --- a/VAR.Toolbox/UI/Tools/FrmIPScan.Designer.cs +++ b/VAR.Toolbox/UI/Tools/FrmIPScan.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class FrmIPScan { diff --git a/VAR.Toolbox/UI/Tools/FrmIPScan.cs b/VAR.Toolbox/UI/Tools/FrmIPScan.cs index 2e0e9ab..3edcc6c 100644 --- a/VAR.Toolbox/UI/Tools/FrmIPScan.cs +++ b/VAR.Toolbox/UI/Tools/FrmIPScan.cs @@ -6,13 +6,13 @@ using System.Threading; using System.Windows.Forms; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class FrmIPScan : Frame, IToolForm { - public string ToolName { get { return "IPScan"; } } + public string ToolName => "IPScan"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; public FrmIPScan() { @@ -24,19 +24,20 @@ namespace VAR.Toolbox.UI private void FrmIPScan_Disposed(object sender, EventArgs e) { - running = false; + _running = false; } private void PrintStatus(string status) { if (lblStatus.IsDisposed) { return; } + if (lblStatus.InvokeRequired) { - lblStatus.Invoke((MethodInvoker)(() => { lblStatus.Text = string.Format("Status: {0}", status); })); + lblStatus.Invoke((MethodInvoker)(() => { lblStatus.Text = $"Status: {status}"; })); } else { - lblStatus.Text = string.Format("Status: {0}", status); + lblStatus.Text = $"Status: {status}"; Application.DoEvents(); } } @@ -44,6 +45,7 @@ namespace VAR.Toolbox.UI private void Control_SetEnabled(Control ctrl, bool enabled) { if (ctrl.IsDisposed) { return; } + if (ctrl.InvokeRequired) { ctrl.Invoke((MethodInvoker)(() => { ctrl.Enabled = enabled; })); @@ -63,23 +65,23 @@ namespace VAR.Toolbox.UI private void BtnStop_Click(object sender, EventArgs e) { - running = false; + _running = false; } - private bool running = false; + private bool _running; private void IPScan(string ipBase) { Control_SetEnabled(btnScan, false); - running = true; - ctrOutput.AddLine(string.Format("IPScan started at {0}", DateTime.UtcNow.ToString("s"))); - for (int i = 1; i < 255 && running; i++) + _running = true; + ctrOutput.AddLine($"IPScan started at {DateTime.UtcNow:s}"); + for (int i = 1; i < 255 && _running; i++) { string ip = ipBase + i.ToString(); - PrintStatus(string.Format("Scanning {0}", ip)); + PrintStatus($"Scanning {ip}"); Ping p = new Ping(); PingReply pingReply = p.Send(ip, 100); - if (pingReply.Status == IPStatus.Success) + if (pingReply != null && pingReply.Status == IPStatus.Success) { string name = "?"; try @@ -88,14 +90,16 @@ namespace VAR.Toolbox.UI name = hostEntry.HostName; } catch (SocketException) { } - ctrOutput.AddLine(string.Format("{0} ({1}) is up: ({2} ms)", ip, name, pingReply.RoundtripTime)); + + ctrOutput.AddLine($"{ip} ({name}) is up: ({pingReply.RoundtripTime} ms)"); } + Application.DoEvents(); } + PrintStatus("Idle"); - ctrOutput.AddLine(string.Format("IPScan ended at {0}", DateTime.UtcNow.ToString("s"))); + ctrOutput.AddLine($"IPScan ended at {DateTime.UtcNow:s}"); Control_SetEnabled(btnScan, true); } - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/FrmNetworkInfo.Designer.cs b/VAR.Toolbox/UI/Tools/FrmNetworkInfo.Designer.cs index 30a6e7f..de0618e 100644 --- a/VAR.Toolbox/UI/Tools/FrmNetworkInfo.Designer.cs +++ b/VAR.Toolbox/UI/Tools/FrmNetworkInfo.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class FrmNetworkInfo { diff --git a/VAR.Toolbox/UI/Tools/FrmNetworkInfo.cs b/VAR.Toolbox/UI/Tools/FrmNetworkInfo.cs index 8270701..cb5b8c6 100644 --- a/VAR.Toolbox/UI/Tools/FrmNetworkInfo.cs +++ b/VAR.Toolbox/UI/Tools/FrmNetworkInfo.cs @@ -7,13 +7,13 @@ using System.Text; using System.Windows.Forms; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class FrmNetworkInfo : Frame, IToolForm { - public string ToolName { get { return "NetworkInfo"; } } + public string ToolName => "NetworkInfo"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; public FrmNetworkInfo() { @@ -39,6 +39,7 @@ namespace VAR.Toolbox.UI { var listItem = ddlNetworkInterfaces.SelectedItem as ListItem; if (listItem == null) { return; } + RefreshInterface(listItem.ID); } @@ -59,9 +60,11 @@ namespace VAR.Toolbox.UI { found = true; if (it.Text != nic.Description) { it.Text = nic.Description; } + break; } } + if (found == false) { ddlNetworkInterfaces.Items.Add(new ListItem { ID = nic.Id, Text = nic.Description }); @@ -69,7 +72,7 @@ namespace VAR.Toolbox.UI } } - private string _networkInterfaceId = null; + private string _networkInterfaceId; private void RefreshInterface() { @@ -92,16 +95,23 @@ namespace VAR.Toolbox.UI private void RefreshInterface(NetworkInterface nic) { if (txtID.Text != nic.Id) { txtID.Text = nic.Id; } + if (txtName.Text != nic.Name) { txtName.Text = nic.Name; } + string status = nic.OperationalStatus.ToString(); if (txtStatus.Text != status) { txtStatus.Text = status; } + string speed = FormatNetworkSpeedUnits(nic.Speed); if (txtSpeed.Text != speed) { txtSpeed.Text = speed; } + if (txtDescription.Text != nic.Description) { txtDescription.Text = nic.Description; } + string strInterface = nic.NetworkInterfaceType.ToString(); if (txtInterface.Text != strInterface) { txtInterface.Text = strInterface; } + string strMac = FormatPhysicalAddress(nic.GetPhysicalAddress().GetAddressBytes()); if (txtMAC.Text != strMac) { txtMAC.Text = strMac; } + StringBuilder sbIPs = new StringBuilder(); IPInterfaceProperties ipInterfaceProperties = nic.GetIPProperties(); sbIPs.AppendLine("****** IPs *****"); @@ -109,18 +119,21 @@ namespace VAR.Toolbox.UI { sbIPs.AppendLine(uniAddress.Address.ToString()); } + sbIPs.AppendLine(); sbIPs.AppendLine("****** Gateways *****"); foreach (GatewayIPAddressInformation gwAddress in ipInterfaceProperties.GatewayAddresses) { sbIPs.AppendLine(gwAddress.Address.ToString()); } + sbIPs.AppendLine(); sbIPs.AppendLine("****** DNSs *****"); foreach (IPAddress dnsAddress in ipInterfaceProperties.DnsAddresses) { sbIPs.AppendLine(dnsAddress.ToString()); } + string strIPs = sbIPs.ToString(); if (txtIPs.Text != strIPs) { txtIPs.Text = strIPs; } } @@ -128,39 +141,44 @@ namespace VAR.Toolbox.UI private static string FormatNetworkSpeedUnits(long speed) { - decimal dSpeed; if (speed < 1000) { - return string.Format("{0}bps", speed); + return $"{speed}bps"; } - dSpeed = speed / (decimal)1000; + + decimal dSpeed = speed / (decimal)1000; if (dSpeed < 1000) { - return string.Format("{0}kbps", Math.Round(dSpeed, 2)); + return $"{Math.Round(dSpeed, 2)}kbps"; } + dSpeed /= 1000; if (dSpeed < 1000) { - return string.Format("{0}mbps", Math.Round(dSpeed, 2)); + return $"{Math.Round(dSpeed, 2)}mbps"; } + dSpeed /= 1000; if (dSpeed < 1000) { - return string.Format("{0}gbps", Math.Round(dSpeed, 2)); + return $"{Math.Round(dSpeed, 2)}gbps"; } + dSpeed /= 1000; - return string.Format("{0}tbps", Math.Round(dSpeed, 2)); + return $"{Math.Round(dSpeed, 2)}tbps"; } private static string FormatPhysicalAddress(byte[] address) { - StringBuilder sbAddres = new StringBuilder(); + StringBuilder sbAddress = new StringBuilder(); foreach (byte b in address) { - if (sbAddres.Length > 0) { sbAddres.Append(":"); } - sbAddres.AppendFormat("{0:X2}", b); + if (sbAddress.Length > 0) { sbAddress.Append(":"); } + + sbAddress.AppendFormat("{0:X2}", b); } - return sbAddres.ToString(); + + return sbAddress.ToString(); } } @@ -169,8 +187,9 @@ namespace VAR.Toolbox.UI public string Text { get; set; } public string ID { get; set; } - public override string ToString() { return Text; } - + public override string ToString() + { + return Text; + } } -} - +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/FrmProxyCmd.Designer.cs b/VAR.Toolbox/UI/Tools/FrmProxyCmd.Designer.cs index bb7d091..fa5ad6f 100644 --- a/VAR.Toolbox/UI/Tools/FrmProxyCmd.Designer.cs +++ b/VAR.Toolbox/UI/Tools/FrmProxyCmd.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class FrmProxyCmd { diff --git a/VAR.Toolbox/UI/Tools/FrmProxyCmd.cs b/VAR.Toolbox/UI/Tools/FrmProxyCmd.cs index fc2a9d4..5a7ac18 100644 --- a/VAR.Toolbox/UI/Tools/FrmProxyCmd.cs +++ b/VAR.Toolbox/UI/Tools/FrmProxyCmd.cs @@ -2,19 +2,20 @@ using System; using System.Collections.Generic; +using System.Linq; using System.Threading; using System.Windows.Forms; using VAR.Toolbox.Code; using VAR.Toolbox.Code.ProxyCmdExecutors; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class FrmProxyCmd : Frame, IOutputHandler, IToolForm { - public string ToolName { get { return "ProxyCmd"; } } + public string ToolName => "ProxyCmd"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; #region Declarations @@ -45,6 +46,7 @@ namespace VAR.Toolbox.UI Application.DoEvents(); return; } + if (e.KeyCode == Keys.Return) { e.Handled = true; @@ -58,35 +60,43 @@ namespace VAR.Toolbox.UI PrepareProxyCmdExecutor(); new Thread(() => ExecuteCmd(cmd)).Start(); } + return; } + if (e.KeyCode == Keys.Enter) { e.Handled = true; return; } + if (e.KeyCode == Keys.LineFeed) { e.Handled = true; return; } + if (e.KeyCode == Keys.Up) { e.Handled = true; if (_currentHistoryIndex == -1) { _currentHistoryIndex = _cmdHistory.Count; } + _currentHistoryIndex--; if (_currentHistoryIndex < 0) { _currentHistoryIndex = 0; } + if (_currentHistoryIndex >= 0 && _currentHistoryIndex < _cmdHistory.Count) { txtInput.Text = _cmdHistory[_currentHistoryIndex]; txtInput.SelectionStart = txtInput.Text.Length; txtInput.SelectionLength = 0; } + return; } + if (e.KeyCode == Keys.Down) { e.Handled = true; @@ -105,7 +115,6 @@ namespace VAR.Toolbox.UI txtInput.SelectionLength = 0; } } - return; } } @@ -123,25 +132,25 @@ namespace VAR.Toolbox.UI #region ProxyCmdExecutor - private IProxyCmdExecutor _proxyCmdExecutor = null; + private IProxyCmdExecutor _proxyCmdExecutor; private void PrepareProxyCmdExecutor() { if (_proxyCmdExecutor == null) { - _proxyCmdExecutor = ProxyCmdExecutorFactory.CreateFromConfig(GetCurrentConfig()); - if (_proxyCmdExecutor == null) - { - _proxyCmdExecutor = new ProxyCmdExecutorDummy(string.Empty); - } + _proxyCmdExecutor = ProxyCmdExecutorFactory.CreateFromConfig(GetCurrentConfig()) ?? + new ProxyCmdExecutorDummy(string.Empty); } } + private void CleanProxyCmdExecutor() { + // ReSharper disable once SuspiciousTypeConversion.Global if (_proxyCmdExecutor is IDisposable disposableProxyCmdExecutor) { disposableProxyCmdExecutor.Dispose(); } + _proxyCmdExecutor = null; } @@ -163,6 +172,7 @@ namespace VAR.Toolbox.UI Logger.Log(ex); OutputLine(ex.Message); } + Monitor.Exit(_executionLock); } @@ -190,8 +200,9 @@ namespace VAR.Toolbox.UI { previousSelectedName = selectedConfig.Name; } + ddlCurrentConfig.Items.Clear(); - ddlCurrentConfig.Items.AddRange(configItems.ToArray()); + ddlCurrentConfig.Items.AddRange(configItems.ToArray()); ddlCurrentConfig.SelectedIndex = 0; if (string.IsNullOrEmpty(previousSelectedName) == false) { @@ -210,9 +221,10 @@ namespace VAR.Toolbox.UI { var selectedConfig = ddlCurrentConfig.SelectedItem as ProxyCmdConfigItem; if (selectedConfig == null) { return null; } + return selectedConfig.Config; } #endregion Config } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/FrmProxyCmdConfig.Designer.cs b/VAR.Toolbox/UI/Tools/FrmProxyCmdConfig.Designer.cs index 92c8bf3..f9df509 100644 --- a/VAR.Toolbox/UI/Tools/FrmProxyCmdConfig.Designer.cs +++ b/VAR.Toolbox/UI/Tools/FrmProxyCmdConfig.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class FrmProxyCmdConfig { diff --git a/VAR.Toolbox/UI/Tools/FrmProxyCmdConfig.cs b/VAR.Toolbox/UI/Tools/FrmProxyCmdConfig.cs index 3bc0dd7..49580a9 100644 --- a/VAR.Toolbox/UI/Tools/FrmProxyCmdConfig.cs +++ b/VAR.Toolbox/UI/Tools/FrmProxyCmdConfig.cs @@ -3,10 +3,11 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Text; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class FrmProxyCmdConfig : Frame { @@ -21,7 +22,12 @@ namespace VAR.Toolbox.UI private void LsvCmdProxyConfigs_SelectedIndexChanged(object sender, EventArgs e) { ProxyCmdConfigItem selectedConfig = lsvCmdProxyConfigs.SelectedItem as ProxyCmdConfigItem; - if (selectedConfig == null) { CleanConfig(); return; } + if (selectedConfig == null) + { + CleanConfig(); + return; + } + ShowConfig(selectedConfig); } @@ -43,8 +49,8 @@ namespace VAR.Toolbox.UI private void LoadData() { lsvCmdProxyConfigs.Items.Clear(); - List configItems = FrmProxyCmdConfig.GetConfigurationItems(); - lsvCmdProxyConfigs.Items.AddRange(configItems.ToArray()); + List configItems = GetConfigurationItems(); + lsvCmdProxyConfigs.Items.AddRange(configItems.ToArray()); } private void SaveData() @@ -54,8 +60,10 @@ namespace VAR.Toolbox.UI { ProxyCmdConfigItem config = o as ProxyCmdConfigItem; if (config == null) { continue; } + sbConfig.AppendFormat("{0}|{1}\n", config.Name, config.Config); } + string configFileName = GetConfigFileName(); File.WriteAllText(configFileName, sbConfig.ToString()); @@ -95,6 +103,7 @@ namespace VAR.Toolbox.UI selectedConfig.Name = txtCmdProxyConfigName.Text; selectedConfig.Config = txtCmdProxyConfigContent.Text; } + SaveData(); } @@ -102,16 +111,20 @@ namespace VAR.Toolbox.UI { ProxyCmdConfigItem selectedConfig = lsvCmdProxyConfigs.SelectedItem as ProxyCmdConfigItem; if (selectedConfig == null) { return; } + List configItems = new List(); foreach (object o in lsvCmdProxyConfigs.Items) { ProxyCmdConfigItem config = o as ProxyCmdConfigItem; if (config == null) { continue; } + if (config.Name == selectedConfig.Name) { continue; } + configItems.Add(config); } + lsvCmdProxyConfigs.Items.Clear(); - lsvCmdProxyConfigs.Items.AddRange(configItems.ToArray()); + lsvCmdProxyConfigs.Items.AddRange(configItems.ToArray()); SaveData(); CleanConfig(); } @@ -122,28 +135,23 @@ namespace VAR.Toolbox.UI CleanConfig(); } - public static string GetConfigFileName() + private static string GetConfigFileName() { - string location = System.Reflection.Assembly.GetEntryAssembly().Location; + string location = System.Reflection.Assembly.GetEntryAssembly()?.Location; string path = Path.GetDirectoryName(location); string filenameWithoutExtension = Path.GetFileNameWithoutExtension(location); - string configFile = string.Format("{0}/{1}.ProxyCmd.cfg", path, filenameWithoutExtension); + string configFile = $"{path}/{filenameWithoutExtension}.ProxyCmd.cfg"; return configFile; } - public static string[] GetConfigurationLines() + private static string[] GetConfigurationLines() { string configFile = GetConfigFileName(); - string[] config; - if (File.Exists(configFile) == false) - { - config = new string[] { "Dummy|Dummy:" }; - } - else - { - config = File.ReadAllLines(configFile); - } + string[] config = File.Exists(configFile) == false + ? new[] { "Dummy|Dummy:" } + : File.ReadAllLines(configFile); + return config; } @@ -155,11 +163,13 @@ namespace VAR.Toolbox.UI { int idxSplit = configLine.IndexOf('|'); if (idxSplit < 0) { continue; } + string configName = configLine.Substring(0, idxSplit); string configData = configLine.Substring(idxSplit + 1); configItems.Add(new ProxyCmdConfigItem { Name = configName, Config = configData, }); } + return configItems; } } @@ -168,6 +178,10 @@ namespace VAR.Toolbox.UI { public string Name { get; set; } public string Config { get; set; } - public override string ToString() { return Name; } + + public override string ToString() + { + return Name; + } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/FrmScreenshooter.Designer.cs b/VAR.Toolbox/UI/Tools/FrmScreenshooter.Designer.cs index 559f099..91c9980 100644 --- a/VAR.Toolbox/UI/Tools/FrmScreenshooter.Designer.cs +++ b/VAR.Toolbox/UI/Tools/FrmScreenshooter.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class FrmScreenshooter { @@ -43,7 +43,7 @@ this.btnScreenshoot.TabIndex = 1; this.btnScreenshoot.Text = "Screenshoot"; this.btnScreenshoot.UseVisualStyleBackColor = true; - this.btnScreenshoot.Click += new System.EventHandler(this.BtnScreenshoot_Click); + this.btnScreenshoot.Click += new System.EventHandler(this.BtnScreenshot_Click); // // picViewer // diff --git a/VAR.Toolbox/UI/Tools/FrmScreenshooter.cs b/VAR.Toolbox/UI/Tools/FrmScreenshooter.cs index 5f84b5c..6dbd383 100644 --- a/VAR.Toolbox/UI/Tools/FrmScreenshooter.cs +++ b/VAR.Toolbox/UI/Tools/FrmScreenshooter.cs @@ -5,43 +5,44 @@ using System.Windows.Forms; using VAR.Toolbox.Code; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class FrmScreenshooter : Frame, IToolForm { - public string ToolName { get { return "Screenshooter"; } } + public string ToolName => "Screenshooter"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; - private bool _repetitiveScreenshots = false; - private readonly Timer timTicker; - private Bitmap bmpScreen = null; + private bool _repetitiveScreenshots; + private readonly Timer _timTicker; + private Bitmap _bmpScreen; public FrmScreenshooter() { InitializeComponent(); if (components == null) { components = new Container(); } - timTicker = new Timer(components) + + _timTicker = new Timer(components) { Interval = 16, Enabled = false }; - timTicker.Tick += TimTicker_Tick; + _timTicker.Tick += TimTicker_Tick; } - private void BtnScreenshoot_Click(object sender, EventArgs e) + private void BtnScreenshot_Click(object sender, EventArgs e) { - bmpScreen = Screenshooter.CaptureScreen(bmpScreen); - picViewer.ImageShow = bmpScreen; + _bmpScreen = Screenshoter.CaptureScreen(_bmpScreen); + picViewer.ImageShow = _bmpScreen; } private void TimTicker_Tick(object sender, EventArgs e) { - timTicker.Stop(); - bmpScreen = Screenshooter.CaptureScreen(bmpScreen); - picViewer.ImageShow = bmpScreen; - timTicker.Start(); + _timTicker.Stop(); + _bmpScreen = Screenshoter.CaptureScreen(_bmpScreen); + picViewer.ImageShow = _bmpScreen; + _timTicker.Start(); } private void BtnStartStop_Click(object sender, EventArgs e) @@ -51,16 +52,16 @@ namespace VAR.Toolbox.UI { _repetitiveScreenshots = false; btnStartStop.Text = "Start"; - timTicker.Stop(); - timTicker.Enabled = false; + _timTicker.Stop(); + _timTicker.Enabled = false; } else { _repetitiveScreenshots = true; btnStartStop.Text = "Stop"; - timTicker.Enabled = true; - timTicker.Start(); + _timTicker.Enabled = true; + _timTicker.Start(); } } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/FrmTestWebService.Designer.cs b/VAR.Toolbox/UI/Tools/FrmTestWebService.Designer.cs index ba5d069..80355cd 100644 --- a/VAR.Toolbox/UI/Tools/FrmTestWebService.Designer.cs +++ b/VAR.Toolbox/UI/Tools/FrmTestWebService.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class FrmTestWebService { diff --git a/VAR.Toolbox/UI/Tools/FrmTestWebService.cs b/VAR.Toolbox/UI/Tools/FrmTestWebService.cs index 9343f9c..5c26059 100644 --- a/VAR.Toolbox/UI/Tools/FrmTestWebService.cs +++ b/VAR.Toolbox/UI/Tools/FrmTestWebService.cs @@ -5,13 +5,13 @@ using System.Text; using VAR.Toolbox.Code; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class FrmTestWebService : Frame, IToolForm { - public string ToolName { get { return "TestWebService"; } } + public string ToolName => "TestWebService"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; public FrmTestWebService() { @@ -25,9 +25,10 @@ namespace VAR.Toolbox.UI string url = txtUrlSoap.Text; string namespaceUrl = txtNamespaceUrlSoap.Text; string method = txtMethodSoap.Text; - Dictionary parms = StringToDictionary(txtParametersSoap.Text).ToDictionary(p => p.Key, p => (object)p.Value); + Dictionary parameters = StringToDictionary(txtParametersSoap.Text) + .ToDictionary(p => p.Key, p => (object)p.Value); - string result = WebServicesUtils.CallSoapMethod(url, method, parms, namespaceUrl); + string result = WebServicesUtils.CallSoapMethod(url, method, parameters, namespaceUrl); txtResultSoap.Text = result; } @@ -39,6 +40,7 @@ namespace VAR.Toolbox.UI sbException.AppendFormat("{0}\r\n{1}\r\n\r\n", ex.Message, ex.StackTrace); ex = ex.InnerException; } + txtResultSoap.Text = sbException.ToString(); } } @@ -49,10 +51,10 @@ namespace VAR.Toolbox.UI { string url = txtUrlRest.Text; string urlApiMethod = txtUrlApiMethodRest.Text; - Dictionary parms = StringToDictionary(txtParametersRest.Text); + Dictionary parameters = StringToDictionary(txtParametersRest.Text); string body = txtBodyRest.Text; - string result = WebServicesUtils.CallApi(url, urlApiMethod, parms, null, stringContent: body); + string result = WebServicesUtils.CallApi(url, urlApiMethod, parameters, null, stringContent: body); txtResultRest.Text = result; } @@ -64,42 +66,44 @@ namespace VAR.Toolbox.UI sbException.AppendFormat("{0}\r\n{1}\r\n\r\n", ex.Message, ex.StackTrace); ex = ex.InnerException; } + txtResultRest.Text = sbException.ToString(); } } /// - /// Deseria una cadena a un diccionario string,string + /// Deserializa una cadena a un diccionario string,string /// /// The STR. /// /// VAR - public static Dictionary StringToDictionary(string str) + private static Dictionary StringToDictionary(string str) { var dic = new Dictionary(); - List pairs = SplitUnscaped(str, ','); + List pairs = SplitUnescaped(str, ','); foreach (string pair in pairs) { - List values = SplitUnscaped(pair, ':'); + List values = SplitUnescaped(pair, ':'); if (values.Count < 2) continue; string key = values[0].Replace("\\:", ":").Replace("\\,", ","); string val = values[1].Replace("\\:", ":").Replace("\\,", ","); dic.Add(key, val); } + return dic; } /// - /// Parte una cadena usando un caracter, evitando usar las ocurrencias escapadas con '\\' + /// Parte una cadena usando un carácter, evitando usar las ocurrencias escapadas con '\\' /// /// The STR. /// The splitter. /// /// VAR - public static List SplitUnscaped(string str, char splitter) + private static List SplitUnescaped(string str, char splitter) { - var strs = new List(); + var strings = new List(); int j, i; int n = str.Length; @@ -108,15 +112,14 @@ namespace VAR.Toolbox.UI if (str[i] == '\\') i++; else if (str[i] == splitter) { - strs.Add(str.Substring(j, i - j)); + strings.Add(str.Substring(j, i - j)); j = i + 1; } } - if (i >= j) strs.Add(str.Substring(j, n - j)); - return strs; + if (i >= j) strings.Add(str.Substring(j, n - j)); + + return strings; } - - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/FrmTunnelTCP.Designer.cs b/VAR.Toolbox/UI/Tools/FrmTunnelTCP.Designer.cs index 4fc4bab..b7202ab 100644 --- a/VAR.Toolbox/UI/Tools/FrmTunnelTCP.Designer.cs +++ b/VAR.Toolbox/UI/Tools/FrmTunnelTCP.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class FrmTunnelTCP { diff --git a/VAR.Toolbox/UI/Tools/FrmTunnelTCP.cs b/VAR.Toolbox/UI/Tools/FrmTunnelTCP.cs index 63e3c03..99839ef 100644 --- a/VAR.Toolbox/UI/Tools/FrmTunnelTCP.cs +++ b/VAR.Toolbox/UI/Tools/FrmTunnelTCP.cs @@ -4,21 +4,21 @@ using System.Net.Sockets; using System.Threading; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class FrmTunnelTCP : Frame, IToolForm { - public string ToolName { get { return "TunnelTCP"; } } + public string ToolName => "TunnelTCP"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; - private bool _running = false; + private bool _running; private class ConnectedClient { - public string hostRemoto = null; - public int puertoRemoto = 0; - public Socket socketCliente = null; + public string RemoteHost; + public int RemotePort; + public Socket ClientSocket; } public FrmTunnelTCP() @@ -43,7 +43,7 @@ namespace VAR.Toolbox.UI private void BtnRun_Click(object sender, EventArgs e) { - if (_running == true) { return; } + if (_running) { return; } _running = true; btnStop.Enabled = true; @@ -65,9 +65,7 @@ namespace VAR.Toolbox.UI { try { - Socket sock; - - sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); sock.Bind(new IPEndPoint(IPAddress.Any, localPort)); sock.Listen(1000); @@ -81,9 +79,9 @@ namespace VAR.Toolbox.UI ConnectedClient client = new ConnectedClient { - hostRemoto = remoteHost, - puertoRemoto = remotePort, - socketCliente = sockCliente, + RemoteHost = remoteHost, + RemotePort = remotePort, + ClientSocket = sockCliente, }; Thread thread = new Thread(() => { @@ -97,7 +95,7 @@ namespace VAR.Toolbox.UI } catch (Exception ex) { - ctrOutput.AddLine("Excepcion: " + ex.Message); + ctrOutput.AddLine("Exception: " + ex.Message); ctrOutput.AddLine("Backtrace:"); ctrOutput.AddLine(ex.StackTrace); } @@ -107,45 +105,47 @@ namespace VAR.Toolbox.UI { try { - Socket remoteSock = null; - Socket clientSock = client.socketCliente; - bool threadRunning; + Socket clientSock = client.ClientSocket; byte[] buffer = new byte[4096]; - int len; long totalSent = 0; - long totalRecv = 0; + long totalReceived = 0; // Info ctrOutput.AddLine( - DateTime.Now.ToString() + + DateTime.Now.ToString("s") + " Nuevo Cliente: " + ((IPEndPoint)clientSock.RemoteEndPoint).Address); // Conectar al host remoto - IPHostEntry EntryHostRemoto = Dns.GetHostEntry(client.hostRemoto); - IPAddress ipHostRemoto = null; - foreach (IPAddress addr in EntryHostRemoto.AddressList) + IPHostEntry entryHostRemoto = Dns.GetHostEntry(client.RemoteHost); + IPAddress ipRemoteHost = null; + foreach (IPAddress address in entryHostRemoto.AddressList) { - if (addr.AddressFamily == AddressFamily.InterNetwork) + if (address.AddressFamily == AddressFamily.InterNetwork) { - ipHostRemoto = addr; + ipRemoteHost = address; break; } } - IPEndPoint endpHostRemoto = new IPEndPoint(ipHostRemoto, client.puertoRemoto); - remoteSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); - remoteSock.Connect(endpHostRemoto); - // Bucle de recepcion y envio entre el cliente y el servidor remoto - threadRunning = true; + if (ipRemoteHost == null) { return; } + + IPEndPoint endPointRemoteHost = new IPEndPoint(ipRemoteHost, client.RemotePort); + Socket remoteSock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + remoteSock.Connect(endPointRemoteHost); + + + // Bucle de recepción y envío entre el cliente y el servidor remoto + bool threadRunning = true; while (threadRunning && _running) { - // Comprobar recepcion del cliente + // Comprobar recepción del cliente + int len; if (clientSock.Poll(100, SelectMode.SelectRead)) { if (clientSock.Available == 0) { - // Cliente cierra conexion + // Cliente cierra conexión threadRunning = false; } else @@ -163,17 +163,18 @@ namespace VAR.Toolbox.UI { ctrOutput.AddLine("No se pudo enviar... (" + ex.Message + ")"); } - totalRecv += enviado; + + totalReceived += enviado; } while (enviado <= 0 && remoteSock.Connected); } } - // Comprobar recepcion del remoto + // Comprobar recepción del remoto if (remoteSock.Poll(100, SelectMode.SelectRead)) { if (remoteSock.Available == 0) { - // Remoto cierra conexion + // Remoto cierra conexión threadRunning = false; } else @@ -192,6 +193,7 @@ namespace VAR.Toolbox.UI ctrOutput.AddLine("No se pudo enviar... (" + ex.Message + ")"); Thread.Sleep(10); } + totalSent += enviado; } while (enviado <= 0 && clientSock.Connected); } @@ -200,10 +202,10 @@ namespace VAR.Toolbox.UI // Info ctrOutput.AddLine( - DateTime.Now.ToString() + - " Desconexion de cliente: " + + DateTime.Now.ToString("s") + + " Client disconnection: " + ((IPEndPoint)clientSock.RemoteEndPoint).Address + - " IN/OUT: " + UnidadesBytes(totalRecv) + "/" + UnidadesBytes(totalSent)); + " IN/OUT: " + UnidadesBytes(totalReceived) + "/" + UnidadesBytes(totalSent)); // Cerrar conexiones remoteSock.Close(); @@ -211,7 +213,7 @@ namespace VAR.Toolbox.UI } catch (Exception ex) { - ctrOutput.AddLine("Excepcion: " + ex.Message); + ctrOutput.AddLine("Exception: " + ex.Message); ctrOutput.AddLine("Backtrace:"); ctrOutput.AddLine(ex.StackTrace); } @@ -228,31 +230,30 @@ namespace VAR.Toolbox.UI double number = n; if (number < 1024) { - return string.Format("{0} B", number); + return $"{number} B"; } number /= 1024.0; if (number < 1024) { - return string.Format("{0:#.00} KiB", number); + return $"{number:#.00} KiB"; } number /= 1024.0; if (number < 1024) { - return string.Format("{0:#.00} MiB", number); + return $"{number:#.00} MiB"; } number /= 1024.0; if (number < 1024) { - return string.Format("{0:#.00} GiB", number); + return $"{number:#.00} GiB"; } number /= 1024.0; - return string.Format("{0:#.00} TiB", number); + return $"{number:#.00} TiB"; } - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/FrmWebcam.Designer.cs b/VAR.Toolbox/UI/Tools/FrmWebcam.Designer.cs index a1cdf79..7047546 100644 --- a/VAR.Toolbox/UI/Tools/FrmWebcam.Designer.cs +++ b/VAR.Toolbox/UI/Tools/FrmWebcam.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class FrmWebcam { diff --git a/VAR.Toolbox/UI/Tools/FrmWebcam.cs b/VAR.Toolbox/UI/Tools/FrmWebcam.cs index 7850683..757ab83 100644 --- a/VAR.Toolbox/UI/Tools/FrmWebcam.cs +++ b/VAR.Toolbox/UI/Tools/FrmWebcam.cs @@ -5,15 +5,15 @@ using System.Windows.Forms; using VAR.Toolbox.Code; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class FrmWebcam : Frame, IToolForm { - public string ToolName { get { return "Webcam"; } } + public string ToolName => "Webcam"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; - private Webcam webcam = null; + private Webcam _webcam; public FrmWebcam() { @@ -32,30 +32,31 @@ namespace VAR.Toolbox.UI private void FrmWebcam_FormClosed(object sender, FormClosedEventArgs e) { - if (webcam != null) + if (_webcam != null) { - webcam.Stop(); + _webcam.Stop(); } } private void BtnStartStop_Click(object sender, EventArgs e) { - if (webcam == null) + if (_webcam == null) { InitWebcam(); } - if (webcam != null) + + if (_webcam != null) { - if (webcam.Active) + if (_webcam.Active) { - webcam.Stop(); + _webcam.Stop(); btnStartStop.Text = "Start"; picWebcam.ImageShow = null; - webcam = null; + _webcam = null; } else { - webcam.Start(); + _webcam.Start(); btnStartStop.Text = "Stop"; } } @@ -64,9 +65,10 @@ namespace VAR.Toolbox.UI private void InitWebcam() { if (cboWebcams.SelectedIndex < 0) { return; } + WebcamObject webcamObject = (WebcamObject)cboWebcams.SelectedItem; - webcam = new Webcam(webcamObject.Moniker); - webcam.NewFrame += Webcam_NewFrame; + _webcam = new Webcam(webcamObject.Moniker); + _webcam.NewFrame += Webcam_NewFrame; } private class WebcamObject @@ -89,6 +91,7 @@ namespace VAR.Toolbox.UI { cboWebcams.Items.Add(new WebcamObject { Name = pair.Key, Moniker = pair.Value }); } + if (cboWebcams.Items.Count > 0) { cboWebcams.SelectedIndex = 0; @@ -100,4 +103,4 @@ namespace VAR.Toolbox.UI } } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/PnlActivity.cs b/VAR.Toolbox/UI/Tools/PnlActivity.cs index cc6944a..085fa9e 100644 --- a/VAR.Toolbox/UI/Tools/PnlActivity.cs +++ b/VAR.Toolbox/UI/Tools/PnlActivity.cs @@ -6,6 +6,8 @@ using VAR.Json; using VAR.Toolbox.Code.Windows; using VAR.Toolbox.Controls; +// ReSharper disable UnusedAutoPropertyAccessor.Local + namespace VAR.Toolbox.UI.Tools { public partial class PnlActivity : SubFrame, IToolPanel @@ -18,6 +20,7 @@ namespace VAR.Toolbox.UI.Tools private void TimTicker_Tick(object sender, EventArgs e) { if (DesignMode) { return; } + timTicker.Stop(); string activeWindowTitle = User32.GetActiveWindowTitle(); @@ -90,26 +93,28 @@ namespace VAR.Toolbox.UI.Tools }; // Write frame - JsonWriter jsonWriter = new Json.JsonWriter(); + JsonWriter jsonWriter = new JsonWriter(); string line = jsonWriter.Write(frame); try { - StreamWriter outStream = GetOutputStreamWritter(); + StreamWriter outStream = GetOutputStreamWriter(); outStream.WriteLine(line); - CloseOutputStreamWritter(outStream); + CloseOutputStreamWriter(outStream); + } + catch (Exception) + { + /* Nom Nom Nom */ } - catch (Exception) { /* Nom Nom Nom */} } - private static StreamWriter GetOutputStreamWritter() + private static StreamWriter GetOutputStreamWriter() { try { - string location = System.Reflection.Assembly.GetEntryAssembly().Location; + string location = System.Reflection.Assembly.GetEntryAssembly()?.Location; string path = Path.GetDirectoryName(location); - string fileOut = string.Format("{0}/Activity.{1}.txt", path, - DateTime.UtcNow.ToString("yyyy-MM-dd")); + string fileOut = $"{path}/Activity.{DateTime.UtcNow:yyyy-MM-dd}.txt"; return File.AppendText(fileOut); } catch (Exception) @@ -118,14 +123,12 @@ namespace VAR.Toolbox.UI.Tools } } - private static void CloseOutputStreamWritter(StreamWriter stream) + private static void CloseOutputStreamWriter(StreamWriter stream) { if (stream != null) { stream.Close(); } } - - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/PnlCover.Designer.cs b/VAR.Toolbox/UI/Tools/PnlCover.Designer.cs index 33b88ac..eb59400 100644 --- a/VAR.Toolbox/UI/Tools/PnlCover.Designer.cs +++ b/VAR.Toolbox/UI/Tools/PnlCover.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class PnlCover { diff --git a/VAR.Toolbox/UI/Tools/PnlCover.cs b/VAR.Toolbox/UI/Tools/PnlCover.cs index 23bd9cd..d12561d 100644 --- a/VAR.Toolbox/UI/Tools/PnlCover.cs +++ b/VAR.Toolbox/UI/Tools/PnlCover.cs @@ -4,7 +4,7 @@ using VAR.Toolbox.Code; using VAR.Toolbox.Code.Windows; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class PnlCover : SubFrame, IToolPanel { @@ -19,10 +19,11 @@ namespace VAR.Toolbox.UI private void TimTicker_Tick(object sender, EventArgs e) { if (DesignMode) { return; } + timTicker.Stop(); uint inactiveTime = Win32.GetLastInputTime(); - lblInactive.Text = string.Format("Inactive by {0} seconds", inactiveTime); + lblInactive.Text = $"Inactive by {inactiveTime} seconds"; if (chkAutoCover.Checked) { @@ -31,6 +32,7 @@ namespace VAR.Toolbox.UI CoverScreen(); } } + timTicker.Start(); } @@ -39,7 +41,7 @@ namespace VAR.Toolbox.UI CoverScreen(); } - private FrmCover _frmCover = null; + private FrmCover _frmCover; private void CoverScreen() { @@ -52,6 +54,7 @@ namespace VAR.Toolbox.UI _frmCover.Show(); return; } + _frmCover = new FrmCover(); _frmCover.FormClosing += (sender, e) => { _frmCover = null; }; _frmCover.Show(); @@ -61,6 +64,5 @@ namespace VAR.Toolbox.UI frmParent.WindowState = FormWindowState.Minimized; } } - } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/PnlSuspension.Designer.cs b/VAR.Toolbox/UI/Tools/PnlSuspension.Designer.cs index fe6a996..a021fa1 100644 --- a/VAR.Toolbox/UI/Tools/PnlSuspension.Designer.cs +++ b/VAR.Toolbox/UI/Tools/PnlSuspension.Designer.cs @@ -1,4 +1,4 @@ -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { partial class PnlSuspension { @@ -104,7 +104,7 @@ this.btnCustomSuspenedNow.Size = new System.Drawing.Size(30, 28); this.btnCustomSuspenedNow.TabIndex = 13; this.btnCustomSuspenedNow.Text = "N"; - this.btnCustomSuspenedNow.Click += new System.EventHandler(this.BtnCustomSuspenedNow_Click); + this.btnCustomSuspenedNow.Click += new System.EventHandler(this.BtnCustomSuspendNow_Click); // // ddlCustomHour // diff --git a/VAR.Toolbox/UI/Tools/PnlSuspension.cs b/VAR.Toolbox/UI/Tools/PnlSuspension.cs index b03e10d..7d5c8a2 100644 --- a/VAR.Toolbox/UI/Tools/PnlSuspension.cs +++ b/VAR.Toolbox/UI/Tools/PnlSuspension.cs @@ -4,7 +4,7 @@ using VAR.Toolbox.Code; using VAR.Toolbox.Code.Windows; using VAR.Toolbox.Controls; -namespace VAR.Toolbox.UI +namespace VAR.Toolbox.UI.Tools { public partial class PnlSuspension : SubFrame, IToolPanel { @@ -20,7 +20,7 @@ namespace VAR.Toolbox.UI RandomizeOffset(); } - private void BtnCustomSuspenedNow_Click(object sender, EventArgs e) + private void BtnCustomSuspendNow_Click(object sender, EventArgs e) { CustomHourMinute_SetNow(); } @@ -33,6 +33,7 @@ namespace VAR.Toolbox.UI private void TimTicker_Tick(object sender, EventArgs e) { if (DesignMode) { return; } + ResetCountdown(); DateTime now = DateTime.Now; @@ -40,13 +41,13 @@ namespace VAR.Toolbox.UI { DateTime dtSuspendAtCustom = new DateTime( - now.Year, - now.Month, - now.Day, - ddlCustomHour.SelectedIndex, - ddlCustomMinute.SelectedIndex, - 0) - .AddSeconds(Convert.ToInt32(numOffset.Value)); + now.Year, + now.Month, + now.Day, + ddlCustomHour.SelectedIndex, + ddlCustomMinute.SelectedIndex, + 0) + .AddSeconds(Convert.ToInt32(numOffset.Value)); CheckTime(chkSuspendAtCustom, dtSuspendAtCustom, now); } @@ -59,7 +60,7 @@ namespace VAR.Toolbox.UI { for (int i = 0; i < 24; i++) { - ddlCustomHour.Items.Add(string.Format("{0:00}", i)); + ddlCustomHour.Items.Add($"{i:00}"); } } @@ -67,7 +68,7 @@ namespace VAR.Toolbox.UI { for (int i = 0; i < 60; i++) { - ddlCustomMinute.Items.Add(string.Format("{0:00}", i)); + ddlCustomMinute.Items.Add($"{i:00}"); } } @@ -91,28 +92,29 @@ namespace VAR.Toolbox.UI private void SetCountdown(DateTime dateTime, DateTime now) { TimeSpan timeSpan = dateTime - now; - lblCountdown.Text = string.Format("{0:00}:{1:00}:{2:00}:{3:00}", timeSpan.Days, timeSpan.Hours, timeSpan.Minutes, timeSpan.Seconds); + lblCountdown.Text = string.Format("{0:00}:{1:00}:{2:00}:{3:00}", timeSpan.Days, timeSpan.Hours, + timeSpan.Minutes, timeSpan.Seconds); } - private void CheckTime(CheckBox chkSuspendAtCustom, DateTime dtSuspendAtCustom, DateTime now) + private void CheckTime(CheckBox chk, DateTime dtSuspendAtCustom, DateTime now) { if (DateTime.Compare(now, dtSuspendAtCustom) > 0) { - if (chkSuspendAtCustom.Checked) + if (chk.Checked) { - chkSuspendAtCustom.Checked = false; + chk.Checked = false; RandomizeOffset(); SuspendSystem(); } else { - chkSuspendAtCustom.Enabled = false; + chk.Enabled = false; } } else { SetCountdown(dtSuspendAtCustom, now); - chkSuspendAtCustom.Enabled = true; + chk.Enabled = true; } } @@ -122,4 +124,4 @@ namespace VAR.Toolbox.UI Win32.SetSuspendState(false, true, false); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLog.Designer.cs b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLog.Designer.cs index 81d79b5..d89b6fd 100644 --- a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLog.Designer.cs +++ b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLog.Designer.cs @@ -129,7 +129,7 @@ this.btnSumary.Size = new System.Drawing.Size(73, 23); this.btnSumary.TabIndex = 10; this.btnSumary.Text = "Sumary"; - this.btnSumary.Click += new System.EventHandler(this.btnSumary_Click); + this.btnSumary.Click += new System.EventHandler(this.btnSummary_Click); // // lblWorkLogTime // diff --git a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLog.cs b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLog.cs index d46073d..b9dfd6e 100644 --- a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLog.cs +++ b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLog.cs @@ -16,9 +16,9 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { #region IToolForm - public string ToolName { get { return "WorkLog"; } } + public string ToolName => "WorkLog"; - public bool HasIcon { get { return false; } } + public bool HasIcon => false; #endregion IToolForm @@ -30,7 +30,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog WorkLog_LoadConfig(); WorkLog_LoadData(); - cboImporters.Items.AddRange(WorkLogImporterFactory.GetNames()); + cboImporters.Items.AddRange(WorkLogImporterFactory.GetNames().ToArray()); ttPanel.SetToolTip(chkImportMerging, "ImportMerging"); } @@ -39,13 +39,15 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { if (btnSave.Enabled) { - DialogResult result = MessageBox.Show("There are unsaves changes. Close anyway?", "Close?", MessageBoxButtons.YesNo, MessageBoxIcon.Question); + DialogResult result = MessageBox.Show("There are unsaved changes. Close anyway?", "Close?", + MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result != DialogResult.Yes) { e.Cancel = true; return; } } + WorkLog_SaveConfig(); } @@ -73,18 +75,14 @@ namespace VAR.Toolbox.UI.Tools.WorkLog try { if (cboImporters.SelectedItem == null) { return; } - IWorkLogImporter workLogImporter = WorkLogImporterFactory.CreateFromName(cboImporters.SelectedItem as string); + + IWorkLogImporter workLogImporter = + WorkLogImporterFactory.CreateFromName(cboImporters.SelectedItem as string); List newWorkLog = workLogImporter.Import(this); if (newWorkLog == null) { return; } - if (chkImportMerging.Checked) - { - _workLog = WorkLogItemList_Merge(_workLog, newWorkLog); - } - else - { - _workLog = newWorkLog; - } + _workLog = chkImportMerging.Checked ? WorkLogItemList_Merge(_workLog, newWorkLog) : newWorkLog; + WorkLog_Refresh(); MessageBox.Show("OK"); WorkLog_MarkDirty(); @@ -101,7 +99,9 @@ namespace VAR.Toolbox.UI.Tools.WorkLog try { if (cboImporters.SelectedItem == null) { return; } - IWorkLogImporter workLogImporter = WorkLogImporterFactory.CreateFromName(cboImporters.SelectedItem as string); + + IWorkLogImporter workLogImporter = + WorkLogImporterFactory.CreateFromName(cboImporters.SelectedItem as string); bool result = workLogImporter.Export(_workLog, this); if (result) { @@ -115,11 +115,12 @@ namespace VAR.Toolbox.UI.Tools.WorkLog } } - private bool _selecting = false; + private bool _selecting; - private void lsbWorkLog_SelectedIndexChanged(object sender, System.EventArgs e) + private void lsbWorkLog_SelectedIndexChanged(object sender, EventArgs e) { if (_selecting) { return; } + _selecting = true; var row = lsbWorkLog.SelectedItem as WorkLogRow; if (row == null) @@ -128,6 +129,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog _selecting = false; return; } + if (row.Item == null) { WorkLogItem_Show(null); @@ -136,24 +138,30 @@ namespace VAR.Toolbox.UI.Tools.WorkLog foreach (WorkLogRow rowAux in lsbWorkLog.SelectedItems) { if (rowAux.DateStart < dateStart) { dateStart = rowAux.DateStart; } + if (rowAux.DateEnd > dateEnd) { dateEnd = rowAux.DateEnd; } } + dtStart.Value = dateStart; dtEnd.Value = dateEnd; _selecting = false; return; } + for (int i = 0; i < lsbWorkLog.Items.Count; i++) { WorkLogRow auxRow = lsbWorkLog.Items[i] as WorkLogRow; + if (auxRow == null) { continue; } + lsbWorkLog.SetSelected(i, (row.Item == auxRow.Item)); } + WorkLogItem_Show(row.Item); _selecting = false; } - private void btnAdd_Click(object sender, System.EventArgs e) + private void btnAdd_Click(object sender, EventArgs e) { WorkLogItem item = new WorkLogItem { @@ -170,9 +178,10 @@ namespace VAR.Toolbox.UI.Tools.WorkLog WorkLog_MarkDirty(); } - private void btnDelete_Click(object sender, System.EventArgs e) + private void btnDelete_Click(object sender, EventArgs e) { if (_currentWorkLogItem == null) { return; } + if (MessageBox.Show("Delete Log?", "Delete Log?", MessageBoxButtons.YesNo) != DialogResult.Yes) { return; @@ -194,12 +203,12 @@ namespace VAR.Toolbox.UI.Tools.WorkLog WorkLogItem_Update(); } - private void txtActivity_TextChanged(object sender, System.EventArgs e) + private void txtActivity_TextChanged(object sender, EventArgs e) { WorkLogItem_Update(); } - private void txtDescription_TextChanged(object sender, System.EventArgs e) + private void txtDescription_TextChanged(object sender, EventArgs e) { WorkLogItem_Update(refresh: false); } @@ -209,17 +218,17 @@ namespace VAR.Toolbox.UI.Tools.WorkLog WorkLogItem_Update(refresh: false); } - private void dtToday_ValueChanged(object sender, System.EventArgs e) + private void dtToday_ValueChanged(object sender, EventArgs e) { WorkLog_Refresh(); } - private void btnPreviousDay_Click(object sender, System.EventArgs e) + private void btnPreviousDay_Click(object sender, EventArgs e) { dtToday.Value = dtToday.Value.Date.AddDays(-1); } - private void btnNextDay_Click(object sender, System.EventArgs e) + private void btnNextDay_Click(object sender, EventArgs e) { dtToday.Value = dtToday.Value.Date.AddDays(1); } @@ -263,7 +272,12 @@ namespace VAR.Toolbox.UI.Tools.WorkLog private void btnRename_Click(object sender, EventArgs e) { if (_currentWorkLogItem == null) { return; } - FrmDialogString frmRename = new FrmDialogString { Title = "Rename", Description = string.Concat("\"", _currentWorkLogItem.Activity, "\""), Value = _currentWorkLogItem.Activity }; + + FrmDialogString frmRename = new FrmDialogString + { + Title = "Rename", Description = string.Concat("\"", _currentWorkLogItem.Activity, "\""), + Value = _currentWorkLogItem.Activity + }; DialogResult result = frmRename.ShowDialog(this); if (result != DialogResult.OK) { return; } @@ -277,6 +291,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog item.Activity = newActivity; } } + WorkLog_MarkDirty(); WorkLog_Refresh(); } @@ -284,13 +299,15 @@ namespace VAR.Toolbox.UI.Tools.WorkLog private void btnStats_Click(object sender, EventArgs e) { if (_currentWorkLogItem == null) { return; } - FrmWorkLogStats frmStats = new FrmWorkLogStats { Activity = _currentWorkLogItem.Activity, WorkLog = _workLog }; + + FrmWorkLogStats frmStats = new FrmWorkLogStats + { Activity = _currentWorkLogItem.Activity, WorkLog = _workLog }; frmStats.Show(this); } - private void btnSumary_Click(object sender, EventArgs e) + private void btnSummary_Click(object sender, EventArgs e) { - FrmWorkLogSumary frmStats = new FrmWorkLogSumary { WorkLog = _workLog }; + FrmWorkLogSummary frmStats = new FrmWorkLogSummary { WorkLog = _workLog }; frmStats.Show(this); } @@ -302,6 +319,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog .Where(x => string.IsNullOrEmpty(x.Activity) == false) .GroupBy(x => x.Activity) .Select(g => g.OrderBy(x => x.DateStart).LastOrDefault()) + .Where(x => x != null) .OrderByDescending(x => x.DateStart) .Select(x => x.Activity) .ToList(); @@ -314,6 +332,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog if (result != DialogResult.OK) { return; } if (string.IsNullOrEmpty(frmListDialog.Value)) { return; } + txtActivity.Text = frmListDialog.Value; } @@ -325,6 +344,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog .Where(x => string.IsNullOrEmpty(x.Tags) == false) .GroupBy(x => x.Tags) .Select(g => g.OrderBy(x => x.DateStart).LastOrDefault()) + .Where(x => x != null) .OrderByDescending(x => x.DateStart) .Select(x => x.Tags) .ToList(); @@ -337,6 +357,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog if (result != DialogResult.OK) { return; } if (string.IsNullOrEmpty(frmListDialog.Value)) { return; } + txtTags.Text = frmListDialog.Value; } @@ -345,7 +366,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog #region Private methods private const string ConfigFile = "WorkLog.Config.json"; - private WorkLogConfig _config = null; + private WorkLogConfig _config; private void WorkLog_LoadConfig() { @@ -356,6 +377,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog string jsonConfig = File.ReadAllText(ConfigFile); _config = jsonParser.Parse(jsonConfig) as WorkLogConfig; } + if (_config == null) { _config = new WorkLogConfig(); @@ -375,33 +397,36 @@ namespace VAR.Toolbox.UI.Tools.WorkLog } } - private List _workLog = null; + private List _workLog; private void WorkLog_LoadData() { _workLog = null; - string fileName = string.Format("{0}.WorkLog.json", txtName.Text); + string fileName = $"{txtName.Text}.WorkLog.json"; if (File.Exists(fileName)) { string rawFile = File.ReadAllText(fileName); JsonParser jsonParser = new JsonParser(); jsonParser.KnownTypes.Add(typeof(WorkLogItem)); object result = jsonParser.Parse(rawFile); - if (result is IEnumerable) + if (result is IEnumerable results) { _workLog = new List(); - foreach (object obj in (IEnumerable)result) + foreach (object obj in results) { WorkLogItem item = obj as WorkLogItem; if (item == null) { continue; } + _workLog.Add(item); } } } + if (_workLog == null) { _workLog = new List(); } + WorkLog_Refresh(); WorkLog_SelectDate(DateTime.Now); WorkLog_CleanDirty(); @@ -409,7 +434,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog private void WorkLog_SaveData() { - string fileName = string.Format("{0}.WorkLog.json", txtName.Text); + string fileName = $"{txtName.Text}.WorkLog.json"; if (File.Exists(fileName)) { File.Delete(fileName); @@ -420,6 +445,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { jsonWriter.Write(_workLog, streamWriter); } + WorkLog_CleanDirty(); } @@ -438,7 +464,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog for (int i = 0; i < lsbWorkLog.Items.Count; i++) { WorkLogRow row = lsbWorkLog.Items[i] as WorkLogRow; - if (row.DateEnd > date) + if (row?.DateEnd > date) { lsbWorkLog.SetSelected(i, true); break; @@ -457,7 +483,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog } } - private WorkLogItem _currentWorkLogItem = null; + private WorkLogItem _currentWorkLogItem; private void WorkLogItem_Show(WorkLogItem item) { @@ -496,6 +522,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog private void WorkLogItem_Update(bool refresh = true) { if (_currentWorkLogItem == null) { return; } + DateTime dateStart = dtStart.Value; _currentWorkLogItem.DateStart = dateStart; _currentWorkLogItem.DateEnd = dtEnd.Value; @@ -508,13 +535,15 @@ namespace VAR.Toolbox.UI.Tools.WorkLog WorkLog_Refresh(); WorkLog_SelectDate(dateStart); } + WorkLog_MarkDirty(); } - public void lsbWorkLog_BindData(IEnumerable items, int year, int month, int day, int q = 15) + private void lsbWorkLog_BindData(IEnumerable items, int year, int month, int day, int q = 15) { int topIndex = lsbWorkLog.TopIndex; List rows = new List(); + IEnumerable workLogItems = items.ToList(); for (int h = 0; h < 24; h++) { for (int m = 0; m < 60; m += q) @@ -522,27 +551,28 @@ namespace VAR.Toolbox.UI.Tools.WorkLog DateTime dateStart = new DateTime(year, month, day, h, m, 0); DateTime dateEnd = dateStart.AddMinutes(q); WorkLogRow row = new WorkLogRow { DateStart = dateStart, DateEnd = dateEnd, }; - if (items != null) + foreach (WorkLogItem item in workLogItems) { - foreach (WorkLogItem item in items) - { - row.SetItem(item); - } + row.SetItem(item); } + rows.Add(row); } } + lsbWorkLog.Items.Clear(); - lsbWorkLog.Items.AddRange(rows.ToArray()); + lsbWorkLog.Items.AddRange(rows.ToArray()); lsbWorkLog.TopIndex = topIndex; DateTime dateDay = new DateTime(year, month, day, 0, 0, 0); TimeSpan tsTotalTime = new TimeSpan(0); - foreach (WorkLogItem item in items) + foreach (WorkLogItem item in workLogItems) { if (item.DateStart.Date != dateDay) { continue; } + tsTotalTime += (item.DateEnd - item.DateStart); } + lblWorkLogTime.Text = tsTotalTime.ToString(); } @@ -550,11 +580,11 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { List newWorkLog = new List(); - // Add non-overlaping from A + // Add non-overlapping from A foreach (WorkLogItem itemA in workLogA) { bool skip = false; - foreach(WorkLogItem itemB in workLogB) + foreach (WorkLogItem itemB in workLogB) { if (itemB.Overlaps(itemA)) { @@ -567,18 +597,22 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { itemB.Activity = itemA.Activity; } + if (string.IsNullOrEmpty(itemB.Description)) { itemB.Description = itemA.Description; } + if (string.IsNullOrEmpty(itemB.Tags)) { itemB.Tags = itemA.Tags; } + break; } } } + if (skip) { continue; } newWorkLog.Add(itemA); @@ -600,7 +634,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { public DateTime DateStart { get; set; } public DateTime DateEnd { get; set; } - public WorkLogItem Item { get; set; } + public WorkLogItem Item { get; private set; } public override string ToString() { @@ -647,6 +681,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog sbRow.Append(new string(' ', rowLenght)); sbRow.Append("│"); } + return sbRow.ToString(); } @@ -668,4 +703,4 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { public string LastName { get; set; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogStats.cs b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogStats.cs index 4a62212..0135e4c 100644 --- a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogStats.cs +++ b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogStats.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Globalization; +using System.Linq; using VAR.Toolbox.Code.WorkLog; using VAR.Toolbox.Controls; @@ -15,16 +16,16 @@ namespace VAR.Toolbox.UI.Tools.WorkLog public string Activity { - get { return txtActivity.Text; } - set { txtActivity.Text = value; } + get => txtActivity.Text; + set => txtActivity.Text = value; } - private List _workLog = null; + private List _workLog; public List WorkLog { - get { return _workLog; } - set { _workLog = value; } + get => _workLog; + set => _workLog = value; } private void FrmWorkLogStats_Load(object sender, EventArgs e) @@ -41,7 +42,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog private void btnClose_Click(object sender, EventArgs e) { - this.Close(); + Close(); } private void WorkLog_ProcessStats() @@ -53,10 +54,12 @@ namespace VAR.Toolbox.UI.Tools.WorkLog foreach (WorkLogItem item in _workLog) { if (item.Activity.Contains(txtActivity.Text) == false) { continue; } + if (item.DateEnd < dtpStart.Value || item.DateStart > dtpEnd.Value) { continue; } found = true; if (item.DateStart < dateStart) { dateStart = item.DateStart; } + if (item.DateEnd > dateEnd) { dateEnd = item.DateEnd; } DateTime dateItemDay = item.DateStart.Date; @@ -97,7 +100,8 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { if (dictDaysHours.ContainsKey(dateDayCurrent)) { - int weekCurrent = currentCulture.Calendar.GetWeekOfYear(dateDayCurrent, currentCulture.DateTimeFormat.CalendarWeekRule, currentCulture.DateTimeFormat.FirstDayOfWeek); + int weekCurrent = currentCulture.Calendar.GetWeekOfYear(dateDayCurrent, + currentCulture.DateTimeFormat.CalendarWeekRule, currentCulture.DateTimeFormat.FirstDayOfWeek); if (week != null && week != weekCurrent) { strDays.Add(string.Format(" [{0:00}] -- {1} h", @@ -105,10 +109,10 @@ namespace VAR.Toolbox.UI.Tools.WorkLog tsWeek.TotalHours)); tsWeek = new TimeSpan(0); } + TimeSpan tsDay = dictDaysHours[dateDayCurrent]; - strDays.Add(string.Format("[{0:00}] {1} -- {2} h", - weekCurrent, - dateDayCurrent.ToString("yyyy-MM-dd"), + strDays.Add(string.Format("[{0:00}] {1:yyyy-MM-dd} -- {2} h", + weekCurrent, dateDayCurrent, tsDay.TotalHours)); tsTotal += tsDay; tsWeek += tsDay; @@ -117,15 +121,17 @@ namespace VAR.Toolbox.UI.Tools.WorkLog dateDayCurrent = dateDayCurrent.AddDays(1); } while (dateDayCurrent <= dateDayEnd); + if (tsWeek.TotalHours > 0) { strDays.Add(string.Format(" [{0:00}] -- {1} h", week, tsWeek.TotalHours)); } + lsbDays.Items.Clear(); - lsbDays.Items.AddRange(strDays.ToArray()); - lblTotalTime.Text = string.Format("{0} - {1}", tsTotal.ToString(), tsTotal.TotalHours); + lsbDays.Items.AddRange(strDays.ToArray()); + lblTotalTime.Text = $"{tsTotal.ToString()} - {tsTotal.TotalHours}"; } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSumary.Designer.cs b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSummary.Designer.cs similarity index 99% rename from VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSumary.Designer.cs rename to VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSummary.Designer.cs index b7f0b5e..af9bdef 100644 --- a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSumary.Designer.cs +++ b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSummary.Designer.cs @@ -1,6 +1,6 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { - partial class FrmWorkLogSumary + partial class FrmWorkLogSummary { /// /// Required designer variable. @@ -169,7 +169,7 @@ this.Controls.Add(this.lblDateStart); this.Controls.Add(this.lsbActivities); this.Location = new System.Drawing.Point(0, 0); - this.Name = "FrmWorkLogSumary"; + this.Name = "FrmWorkLogSummary"; this.Text = "WorkLogSumary"; this.Load += new System.EventHandler(this.FrmWorkLogStats_Load); this.ResumeLayout(false); diff --git a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSumary.cs b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSummary.cs similarity index 87% rename from VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSumary.cs rename to VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSummary.cs index 2bd5f0d..14da05c 100644 --- a/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSumary.cs +++ b/VAR.Toolbox/UI/Tools/WorkLog/FrmWorkLogSummary.cs @@ -8,19 +8,19 @@ using VAR.Toolbox.Controls; namespace VAR.Toolbox.UI.Tools.WorkLog { - public partial class FrmWorkLogSumary : Frame + public partial class FrmWorkLogSummary : Frame { - public FrmWorkLogSumary() + public FrmWorkLogSummary() { InitializeComponent(); } - private List _workLog = null; + private List _workLog; public List WorkLog { - get { return _workLog; } - set { _workLog = value; } + get => _workLog; + set => _workLog = value; } private void FrmWorkLogStats_Load(object sender, EventArgs e) @@ -37,7 +37,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog private void btnClose_Click(object sender, EventArgs e) { - this.Close(); + Close(); } private void WorkLog_ProcessStats() @@ -52,6 +52,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog found = true; if (item.DateStart < dateStart) { dateStart = item.DateStart; } + if (item.DateEnd > dateEnd) { dateEnd = item.DateEnd; } TimeSpan tsItem = item.DateEnd - item.DateStart; @@ -91,12 +92,13 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { tsActivityGroup += pair.Value; } - strActivities.Add(string.Format("{0} -- {1} h", activityGroup.Key, tsActivityGroup.TotalHours)); + + strActivities.Add($"{activityGroup.Key} -- {tsActivityGroup.TotalHours} h"); if (chkOnlyGroups.Checked == false) { foreach (KeyValuePair pair in activityGroup) { - strActivities.Add(string.Format(" {0} -- {1} h", pair.Key, pair.Value.TotalHours)); + strActivities.Add($" {pair.Key} -- {pair.Value.TotalHours} h"); tsTotal += pair.Value; } } @@ -105,9 +107,10 @@ namespace VAR.Toolbox.UI.Tools.WorkLog tsTotal += tsActivityGroup; } } + lsbActivities.Items.Clear(); - lsbActivities.Items.AddRange(strActivities.ToArray()); - lblTotalTime.Text = string.Format("{0} - {1}", tsTotal.ToString(), tsTotal.TotalHours); + lsbActivities.Items.AddRange(strActivities.ToArray()); + lblTotalTime.Text = $"{tsTotal.ToString()} - {tsTotal.TotalHours}"; } private void lsbActivities_KeyDown(object sender, KeyEventArgs e) @@ -117,6 +120,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog CopyToClipboard(); } } + private void CopyToClipboard() { StringBuilder sbText = new StringBuilder(); @@ -124,6 +128,7 @@ namespace VAR.Toolbox.UI.Tools.WorkLog { sbText.AppendLine(item); } + if (sbText.Length > 0) { Clipboard.SetText(sbText.ToString()); @@ -141,4 +146,4 @@ namespace VAR.Toolbox.UI.Tools.WorkLog frmStats.Show(this); } } -} +} \ No newline at end of file diff --git a/VAR.Toolbox/VAR.Toolbox.csproj b/VAR.Toolbox/VAR.Toolbox.csproj index 0fc0f38..9541011 100644 --- a/VAR.Toolbox/VAR.Toolbox.csproj +++ b/VAR.Toolbox/VAR.Toolbox.csproj @@ -121,19 +121,29 @@ - + - - - - + + Component + + + Component + + + Component + + + Component + - + + Component + Component @@ -246,19 +256,23 @@ PnlActivity.cs - + + UserControl + PnlCover.cs - + + UserControl + PnlSuspension.cs - + Form - - FrmWorkLogSumary.cs + + FrmWorkLogSummary.cs Form @@ -281,10 +295,10 @@ + Other similar extension points exist, see Microsoft.Common.targets. + + + + + --> \ No newline at end of file diff --git a/VAR.Toolbox/app.manifest b/VAR.Toolbox/app.manifest index d27cded..d6777d9 100644 --- a/VAR.Toolbox/app.manifest +++ b/VAR.Toolbox/app.manifest @@ -1,74 +1,74 @@  - - - - - + + + + - - - + + + - Especificar el elemento requestedExecutionLevel deshabilitará la virtualización de archivos y registros. - Quite este elemento si la aplicación necesita esta virtualización para la compatibilidad - con versiones anteriores. - --> - - - - + + - - - + + - - + + - - + + - - + + - - - - - + + + + + + true + - - - - - true - - - - - + +