diff --git a/.gitignore b/.gitignore index f59a95b5..aff3d3be 100644 --- a/.gitignore +++ b/.gitignore @@ -169,3 +169,4 @@ src/Plugins/MW5.TemplateNtk/ src/Plugins/MW5.TopoGISPlugin/ test/MW5.Test/packages/ src/.nuget/ +src/.vs/ diff --git a/install/MapWindow5.iss b/install/MapWindow5.iss index 0c979d44..3d8ccb94 100644 --- a/install/MapWindow5.iss +++ b/install/MapWindow5.iss @@ -7,18 +7,18 @@ #define ExeBinPath "..\bin\x86\Release" #define SamplePath "testdata" #define CPU "Win32" -#define vcredist "vcredist_x86-2013.exe" +#define vcredist "vcredist_x86-2015.exe" #define SystemFlag "32bit" #define MyAppName "MapWindow5" #define MyAppPublisher "MapWindow Open Source GIS Community" #define MyAppURL "https://www.mapwindow.org/documentation/mapwindow5/" #define ReleaseNotes ExeBinPath + "\..\..\..\src\SolutionItems\ReleaseNotes.rtf" -;; #define x64BitVersion true +#define x64BitVersion true #ifdef x64BitVersion #define CPU "x64" - #define vcredist "vcredist_x64_2013.exe" + #define vcredist "vcredist_x64_2015.exe" #define ExeBinPath "..\bin\x64\Release" #define SystemFlag "64bit" #endif @@ -123,7 +123,7 @@ Source: "{#ReleaseNotes}"; DestDir: "{app}"; Flags: ignoreversion; Components: M BeveledLabel={#MyAppName} [Run] -; Install VC++ 2013 if needed: +; Install VC++ 2015 if needed: #ifdef x64BitVersion Filename: "{tmp}\{#vcredist}"; Parameters: "/quiet"; Flags: waituntilterminated; Check: VCRedistNeedsInstall_x64() #else @@ -200,6 +200,8 @@ const VC_2013_REDIST_X86 = '{13A4EE12-23EA-3371-91EE-EFB36DDFFF3E}'; //Microsoft.VS.VC_RuntimeMinimumVSU_x86,v12 VC_2013_REDIST_X64 = '{A749D8E6-B613-3BE3-8F5F-045C84EBA29B}'; //Microsoft.VS.VC_RuntimeMinimumVSU_amd64,v12 + VC_2015_REDIST_X86 = '{8F271F6C-6E7B-3D0A-951B-6E7B694D78BD}'; //Microsoft.VS.VC_RuntimeMinimumVSU_x86,v14 + VC_2015_REDIST_X64 = '{221D6DB4-46E2-333C-B09B-5F49351D0980}'; //Microsoft.VS.VC_RuntimeMinimumVSU_amd64,v14 function MsiQueryProductState(szProduct: string): INSTALLSTATE; external 'MsiQueryProductState{#AW}@msi.dll stdcall'; @@ -216,7 +218,7 @@ begin // this statement, the following won't install your VC redist only when // the Visual C++ 2008 Redist (x86) and Visual C++ 2008 SP1 Redist(x86) // are installed for the current user - Result := not (VCVersionInstalled(VC_2013_REDIST_X86)); + Result := not (VCVersionInstalled(VC_2015_REDIST_X86)); end; function VCRedistNeedsInstall_x64(): Boolean; @@ -226,7 +228,7 @@ begin // this statement, the following won't install your VC redist only when // the Visual C++ 2008 Redist (x86) and Visual C++ 2008 SP1 Redist(x86) // are installed for the current user - Result := not (VCVersionInstalled(VC_2013_REDIST_X64)); + Result := not (VCVersionInstalled(VC_2015_REDIST_X64)); end; function NeedsAddPath(Param: string): boolean; diff --git a/install/vcredist_x64_2013.exe b/install/vcredist_x64_2013.exe deleted file mode 100644 index 54736409..00000000 Binary files a/install/vcredist_x64_2013.exe and /dev/null differ diff --git a/install/vcredist_x86-2013.exe b/install/vcredist_x86-2013.exe deleted file mode 100644 index b7955781..00000000 Binary files a/install/vcredist_x86-2013.exe and /dev/null differ diff --git a/src/MW5.Api/Concrete/FeatureSet.cs b/src/MW5.Api/Concrete/FeatureSet.cs index b9649306..36897d5c 100644 --- a/src/MW5.Api/Concrete/FeatureSet.cs +++ b/src/MW5.Api/Concrete/FeatureSet.cs @@ -66,99 +66,70 @@ public FeatureSet(string filename) /// internal FeatureSet(Shapefile sf) { - if (sf == null) - { - throw new NullReferenceException("Shapefile reference is null."); - } - _shapefile = sf; + _shapefile = sf ?? throw new NullReferenceException("Shapefile reference is null."); } /// /// Returns description of last error which occured within this FeatureSet. Check this property /// after some method returned false. /// - public string LastError - { - get { return _shapefile.ErrorMessage(); } - } + public string LastError => _shapefile.ErrorMessage(); public string Tag { - get { return _shapefile.Key; } - set { _shapefile.Key = value; } + get => _shapefile.Key; + set => _shapefile.Key = value; } public void Dispose() { - if (_shapefile != null) - { - _shapefile.Close(); - _shapefile = null; - } - } + if (_shapefile == null) return; - public object InternalObject - { - get { return _shapefile; } + _shapefile.Close(); + _shapefile = null; } - public IEnvelope Envelope - { - get { return new Envelope(_shapefile.Extents); } - } + public object InternalObject => _shapefile; - public string Name - { - get { return Path.GetFileNameWithoutExtension(Filename); } - } + public IEnvelope Envelope => new Envelope(_shapefile.Extents); - public string Filename - { - get { return _shapefile.Filename; } - } + public string Name => Path.GetFileNameWithoutExtension(Filename); - public ISpatialReference Projection - { - get { return new SpatialReference(_shapefile.GeoProjection); } - } + public string Filename => _shapefile.Filename; + + public ISpatialReference Projection => new SpatialReference(_shapefile.GeoProjection); + /// /// /// Assigns projection to the layer if the layer doesn't have one. + /// No need to clone it first. /// public void AssignProjection(ISpatialReference proj) { - if (proj == null) throw new ArgumentNullException("proj"); + if (proj == null) throw new ArgumentNullException(nameof(proj)); _shapefile.GeoProjection = proj.Clone().GetInternal(); } - public bool IsEmpty - { - // TODO: add Shapefile.IsEmpty property to ocx - get { return _shapefile.NumShapes == 0; } - } + /// + /// + /// Does the shapefile has any shapes? + /// + public bool IsEmpty => _shapefile.NumShapes == 0; + /// /// /// Gets string with the information on datasource size, i.e. number of features, pixels, etc. /// - public string SizeInfo - { - get - { - return "[" + NumFeatures + " features]"; - } - } + public string SizeInfo => "[" + NumFeatures + " features]"; - public LayerType LayerType - { - get { return LayerType.Shapefile; } - } + public LayerType LayerType => LayerType.Shapefile; public string ToolTipText { get { - string s = "Geometry type: " + GeometryType.EnumToString() + Environment.NewLine; + var s = "Geometry type: " + GeometryType.EnumToString() + Environment.NewLine; s += "Feature count: " + Features.Count + Environment.NewLine; // s += "Projection: " + Projection.ExportToProj4(); s += "Projection: " + Projection.Name; @@ -166,30 +137,18 @@ public string ToolTipText } } - public bool IsVector - { - get { return true; } - } + public bool IsVector => true; - public bool IsRaster - { - get { return false; } - } + public bool IsRaster => false; public void Close() { Dispose(); } - string IDatasource.OpenDialogFilter - { - get { return OpenDialogFilter; } - } + string IDatasource.OpenDialogFilter => OpenDialogFilter; - public static string OpenDialogFilter - { - get { return "ESRI Shapefiles (*.shp)|*.shp"; } - } + public static string OpenDialogFilter => "ESRI Shapefiles (*.shp)|*.shp"; /// /// Opens ESRI shapefile datasource, reads it into memory breaks any connection with the source. @@ -213,6 +172,7 @@ public static FeatureSet OpenAsInMemoryDatasource(string filename) /// Creates a new disk-based shapefile and open it as new feature set. /// /// Feature set for newly created shapefile. + // ReSharper disable once UnusedMember.Global public static IFeatureSet CreateShapefile(string filename, GeometryType geomType, ZValueType zValue = ZValueType.None) { @@ -224,7 +184,7 @@ public static IFeatureSet CreateShapefile(string filename, GeometryType geomType var shpType = GeometryHelper.GeometryType2ShpType(geomType, zValue); var sf = new Shapefile(); - if (!sf.CreateNew(filename, shpType)) + if (!sf.CreateNewWithShapeID(filename, shpType)) { throw new ApplicationException("Failed to create shapefile: " + sf.ErrorMessage()); } @@ -233,56 +193,48 @@ public static IFeatureSet CreateShapefile(string filename, GeometryType geomType return fs; } - - public GeometryType GeometryType + /// + /// Delete all files associated with the shapefile + /// + /// The full path of the shapefile + public static void DeleteShapefile(string filename) { - get { return GeometryHelper.ShapeType2GeometryType(_shapefile.ShapefileType); } - } + if (string.IsNullOrEmpty(filename)) return; + if (!File.Exists(filename)) return; + var folder = Path.GetDirectoryName(filename); + if (folder == null) return; - public ZValueType ZValueType - { - get { return GeometryHelper.ShapeType2ZValueType(_shapefile.ShapefileType); } + var filenameBody = Path.GetFileNameWithoutExtension(filename); + foreach (var f in Directory.EnumerateFiles(folder, filenameBody + ".*")) + { + File.Delete(f); + } } - public FeatureSourceType SourceType - { - get { return (FeatureSourceType)_shapefile.SourceType; } - } + public GeometryType GeometryType => GeometryHelper.ShapeType2GeometryType(_shapefile.ShapefileType); - public FeatureSetSpatialIndex SpatialIndex - { - get { return new FeatureSetSpatialIndex(_shapefile); } - } + public ZValueType ZValueType => GeometryHelper.ShapeType2ZValueType(_shapefile.ShapefileType); - public AttributeTable Table - { - get { return new AttributeTable(_shapefile.Table); } - } + public FeatureSourceType SourceType => (FeatureSourceType)_shapefile.SourceType; - public ILabelsLayer Labels - { - get { return new LabelsLayer(_shapefile.Labels); } - } + public FeatureSetSpatialIndex SpatialIndex => new FeatureSetSpatialIndex(_shapefile); - public DiagramsLayer Diagrams - { - get { return new DiagramsLayer(_shapefile.Charts); } - } + public AttributeTable Table => new AttributeTable(_shapefile.Table); - public AttributeFieldList Fields - { - get { return Table.Fields; } - } + public ILabelsLayer Labels => new LabelsLayer(_shapefile.Labels); + + public DiagramsLayer Diagrams => new DiagramsLayer(_shapefile.Charts); + + public AttributeFieldList Fields => Table.Fields; public IEnumerable SelectShapes(IEnvelope boundBox, double tolerance = 0, MapSelectionMode selectionMode = MapSelectionMode.Intersection) { - if (boundBox == null) throw new ArgumentNullException("boundBox"); + if (boundBox == null) throw new ArgumentNullException(nameof(boundBox)); object result = null; if (_shapefile.SelectShapes(boundBox.GetInternal(), tolerance, (SelectMode)selectionMode, ref result)) { - var indices = result as int[]; - if (indices != null) + if (result is int[] indices) { return indices.Select(index => new Feature(_shapefile, index)); } @@ -293,60 +245,54 @@ public IEnumerable SelectShapes(IEnvelope boundBox, double tolerance = public CollisionMode CollisionMode { - get { return (CollisionMode)_shapefile.CollisionMode; } - set { _shapefile.CollisionMode = (tkCollisionMode)value; } + get => (CollisionMode)_shapefile.CollisionMode; + set => _shapefile.CollisionMode = (tkCollisionMode)value; } public bool Snappable { - get { return _shapefile.Snappable; } - set { _shapefile.Snappable = value; } + get => _shapefile.Snappable; + set => _shapefile.Snappable = value; } public bool Volatile { - get { return _shapefile.Volatile; } - set { _shapefile.Volatile = value; } + get => _shapefile.Volatile; + set => _shapefile.Volatile = value; } public bool Identifiable { - get { return _shapefile.Identifiable; } - set { _shapefile.Identifiable = value; } + get => _shapefile.Identifiable; + set => _shapefile.Identifiable = value; } public string VisibilityExpression { - get { return _shapefile.VisibilityExpression; } - set { _shapefile.VisibilityExpression = value; } + get => _shapefile.VisibilityExpression; + set => _shapefile.VisibilityExpression = value; } public Color SelectionColor { - get { return ColorHelper.UintToColor(_shapefile.SelectionColor); } - set { _shapefile.SelectionColor = ColorHelper.ColorToUInt(value); } + get => ColorHelper.UintToColor(_shapefile.SelectionColor); + set => _shapefile.SelectionColor = ColorHelper.ColorToUInt(value); } public byte SelectionTransparency { - get { return _shapefile.SelectionTransparency; } - set { _shapefile.SelectionTransparency = value; } + get => _shapefile.SelectionTransparency; + set => _shapefile.SelectionTransparency = value; } - public bool EditingShapes - { - get { return _shapefile.EditingShapes; } - } + public bool EditingShapes => _shapefile.EditingShapes; - public bool EditingTable - { - get { return _shapefile.EditingTable; } - } + public bool EditingTable => _shapefile.EditingTable; public bool InteractiveEditing { - get { return _shapefile.InteractiveEditing; } - set { _shapefile.InteractiveEditing = value; } + get => _shapefile.InteractiveEditing; + set => _shapefile.InteractiveEditing = value; } public bool StartEditingShapes(bool startEditTable = true) @@ -372,26 +318,17 @@ public bool StopEditingTable(bool applyChanges = true) /// /// Gets underlying feature collection. Collection may additionally implement IFeatureList interface. /// - public FeatureCollection Features - { - get { return new FeatureCollection(_shapefile); } - } + public FeatureCollection Features => new FeatureCollection(_shapefile); /// /// Gets default FeatureStyle used for rendering of the FeatureSet. /// - public IGeometryStyle Style - { - get { return new GeometryStyle(_shapefile.DefaultDrawingOptions); } - } + public IGeometryStyle Style => new GeometryStyle(_shapefile.DefaultDrawingOptions); /// /// Gets list of categories which define additional rendering styles. /// - public FeatureCategoryList Categories - { - get { return new FeatureCategoryList(_shapefile.Categories); } - } + public FeatureCategoryList Categories => new FeatureCategoryList(_shapefile.Categories); public string Serialize() { @@ -504,25 +441,13 @@ public bool SaveAsEx(string filename, bool stopEditMode, bool unboundFile = fals return _shapefile.SaveAsEx(filename, stopEditMode, unboundFile); } - public bool PointOrMultiPoint - { - get { return GeometryType == GeometryType.Point || GeometryType == GeometryType.MultiPoint; } - } + public bool PointOrMultiPoint => GeometryType == GeometryType.Point || GeometryType == GeometryType.MultiPoint; - public bool IsPolyline - { - get { return GeometryType == GeometryType.Polyline; } - } + public bool IsPolyline => GeometryType == GeometryType.Polyline; - public bool IsPolygon - { - get { return GeometryType == GeometryType.Polygon; } - } + public bool IsPolygon => GeometryType == GeometryType.Polygon; - public int NumSelected - { - get { return _shapefile.NumSelected; } - } + public int NumSelected => _shapefile.NumSelected; public void SelectAll() { @@ -586,9 +511,9 @@ public IFeatureSet ExportSelection() return WrapShapefile(sf); } - public IFeatureSet Sort(int fieldIndex, bool @ascending) + public IFeatureSet Sort(int fieldIndex, bool ascending) { - var sf = _shapefile.Sort(fieldIndex, @ascending); + var sf = _shapefile.Sort(fieldIndex, ascending); return WrapShapefile(sf); } @@ -707,7 +632,7 @@ public string Serialize(bool saveSelection, bool serializeCategories) public IStopExecutionCallback StopExecution { - set { _shapefile.StopExecution = new StopExecution(value); } + set => _shapefile.StopExecution = new StopExecution(value); } public int GenerateEmptyLabels(LabelPosition method, bool largestPartOnly = false) @@ -747,27 +672,24 @@ public void FeatureSelected(int shapeIndex, bool value) _shapefile.ShapeSelected[shapeIndex] = value; } - public int NumFeatures - { - get { return _shapefile.NumShapes; } - } + public int NumFeatures => _shapefile.NumShapes; public int MinDrawingSize { - get { return _shapefile.MinDrawingSize; } - set { _shapefile.MinDrawingSize = value; } + get => _shapefile.MinDrawingSize; + set => _shapefile.MinDrawingSize = value; } public string SortField { - get { return _shapefile.SortField; } - set { _shapefile.SortField = value; } + get => _shapefile.SortField; + set => _shapefile.SortField = value; } public bool SortAscending { - get { return _shapefile.SortAscending; } - set { _shapefile.SortAscending = value; } + get => _shapefile.SortAscending; + set => _shapefile.SortAscending = value; } public void UpdateSortField() @@ -785,10 +707,7 @@ public void StopAppendMode() _shapefile.StopAppendMode(); } - public bool AppendMode - { - get { return _shapefile.AppendMode; } - } + public bool AppendMode => _shapefile.AppendMode; public int GenerateLabels(int fieldIndex, LabelPosition position, bool largestPartOnly = false) { @@ -797,7 +716,7 @@ public int GenerateLabels(int fieldIndex, LabelPosition position, bool largestPa public IGlobalListener Callback { - get { return NativeCallback.UnWrap(_shapefile.GlobalCallback); } + get => NativeCallback.UnWrap(_shapefile.GlobalCallback); set { var callback = NativeCallback.Wrap(value); @@ -808,8 +727,7 @@ public IGlobalListener Callback public IFeatureSet FixUpShapes(bool selectedOnly) { - Shapefile sf; - _shapefile.FixUpShapes2(selectedOnly, out sf); + _shapefile.FixUpShapes2(selectedOnly, out var sf); return WrapShapefile(sf); } diff --git a/src/MW5.Api/Map/MapEvents.cs b/src/MW5.Api/Map/MapEvents.cs index 0bc9d1b1..41b4e5d1 100644 --- a/src/MW5.Api/Map/MapEvents.cs +++ b/src/MW5.Api/Map/MapEvents.cs @@ -221,10 +221,7 @@ private void MapAfterShapeEdit(object sender, _DMapEvents_AfterShapeEditEvent e) private void Invoke(object sender, EventHandler d, T args) where T : EventArgs { var handler = d; - if (handler != null) - { - handler.Invoke(this, args); - } + handler?.Invoke(this, args); } protected void FireMapCursorChanged(object sender, EventArgs args) diff --git a/src/MW5.Api/Static/GisUtils.cs b/src/MW5.Api/Static/GisUtils.cs index 001ef84b..e6bd98ba 100644 --- a/src/MW5.Api/Static/GisUtils.cs +++ b/src/MW5.Api/Static/GisUtils.cs @@ -5,6 +5,7 @@ using MW5.Api.Helpers; using MW5.Api.Interfaces; using MW5.Shared.Log; +// ReSharper disable UnusedMember.Global namespace MW5.Api.Static { @@ -17,14 +18,11 @@ public class GisUtils: IComWrapper /// Static instance of MapWinGIS.Utils class. /// Use whenever there is no need to share callback in multithreading scenario. /// - public static GisUtils Instance - { - get { return _staticUilts; } - } + public static GisUtils Instance => _staticUilts; public IGlobalListener Callback { - get { return NativeCallback.UnWrap(_utils.GlobalCallback); } + get => NativeCallback.UnWrap(_utils.GlobalCallback); set { var callback = NativeCallback.Wrap(value); @@ -199,8 +197,8 @@ public string LastError() public string Key { - get { return _utils.Key; } - set { _utils.Key = value; } + get => _utils.Key; + set => _utils.Key = value; } public string GetComUsageReport() @@ -230,6 +228,15 @@ public bool ExportSelection(IFeatureSet fs, string outputFilename, bool overwrit return _utils.ExportSelection(fs.GetInternal(), outputFilename, overwrite); } + public double GetAngle(ICoordinate firstCoordinate, ICoordinate secondCoordinate, bool inCartesian = true, bool inRadians = true) + { + var angle = _utils.GetAngle(firstCoordinate.GetInternal(), secondCoordinate.GetInternal()); + if (inCartesian) angle = (450 - angle) % 360; + if (inRadians) angle = angle * Math.PI / 180.0; + + return angle; + } + #region Not implemented //public IGeometry ClipPolygon(PolygonOperation op, IGeometry subjectPolygon, IGeometry clipPolygon) @@ -269,20 +276,14 @@ public bool ExportSelection(IFeatureSet fs, string outputFilename, bool overwrit #endregion - public object InternalObject - { - get { return _utils; } - } + public object InternalObject => _utils; - string IComWrapper.LastError - { - get { return _utils.ErrorMsg[_utils.LastErrorCode]; } - } + string IComWrapper.LastError => _utils.ErrorMsg[_utils.LastErrorCode]; public string Tag { - get { return _utils.Key; } - set { _utils.Key = value; } + get => _utils.Key; + set => _utils.Key = value; } } } diff --git a/src/MW5.Tiles/Views/WmsServerPresenter.cs b/src/MW5.Tiles/Views/WmsServerPresenter.cs index f170e93e..6126ebaf 100644 --- a/src/MW5.Tiles/Views/WmsServerPresenter.cs +++ b/src/MW5.Tiles/Views/WmsServerPresenter.cs @@ -33,11 +33,12 @@ private bool Validate() return false; } - if (url.ToLower().StartsWith("https")) - { - MessageService.Current.Info("HTTPS protocol is not supported."); - return false; - } + // Since MWGIS-5 we now support HTTPS: + //if (url.ToLower().StartsWith("https")) + //{ + // MessageService.Current.Info("HTTPS protocol is not supported."); + // return false; + //} try { diff --git a/src/MW5.sln b/src/MW5.sln index 69507dbe..c57f24bc 100644 --- a/src/MW5.sln +++ b/src/MW5.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.40629.0 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MW5.Api", "MW5.Api\MW5.Api.csproj", "{8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}" EndProject @@ -110,238 +110,306 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{E4222D EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU Release|x64 = Release|x64 Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Debug|Any CPU.ActiveCfg = Debug|x86 {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Debug|x64.ActiveCfg = Debug|x64 {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Debug|x64.Build.0 = Debug|x64 {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Debug|x86.ActiveCfg = Debug|x86 {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Debug|x86.Build.0 = Debug|x86 + {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Release|Any CPU.ActiveCfg = Release|x86 {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Release|x64.ActiveCfg = Release|x64 {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Release|x64.Build.0 = Release|x64 {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Release|x86.ActiveCfg = Release|x86 {8AAD34B3-8EF3-485F-A04D-ED2C07D8F1DF}.Release|x86.Build.0 = Release|x86 + {76644CDF-5165-428D-8419-93C1E978DB1B}.Debug|Any CPU.ActiveCfg = Debug|x86 {76644CDF-5165-428D-8419-93C1E978DB1B}.Debug|x64.ActiveCfg = Debug|x64 {76644CDF-5165-428D-8419-93C1E978DB1B}.Debug|x64.Build.0 = Debug|x64 {76644CDF-5165-428D-8419-93C1E978DB1B}.Debug|x86.ActiveCfg = Debug|x86 {76644CDF-5165-428D-8419-93C1E978DB1B}.Debug|x86.Build.0 = Debug|x86 + {76644CDF-5165-428D-8419-93C1E978DB1B}.Release|Any CPU.ActiveCfg = Release|x86 {76644CDF-5165-428D-8419-93C1E978DB1B}.Release|x64.ActiveCfg = Release|x64 {76644CDF-5165-428D-8419-93C1E978DB1B}.Release|x64.Build.0 = Release|x64 {76644CDF-5165-428D-8419-93C1E978DB1B}.Release|x86.ActiveCfg = Release|x86 {76644CDF-5165-428D-8419-93C1E978DB1B}.Release|x86.Build.0 = Release|x86 + {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Debug|Any CPU.ActiveCfg = Debug|x86 {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Debug|x64.ActiveCfg = Debug|x64 {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Debug|x64.Build.0 = Debug|x64 {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Debug|x86.ActiveCfg = Debug|x86 {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Debug|x86.Build.0 = Debug|x86 + {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Release|Any CPU.ActiveCfg = Release|x86 {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Release|x64.ActiveCfg = Release|x64 {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Release|x64.Build.0 = Release|x64 {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Release|x86.ActiveCfg = Release|x86 {BC107A2C-9A23-48C0-A7D5-3C9A03EC8038}.Release|x86.Build.0 = Release|x86 + {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Debug|Any CPU.ActiveCfg = Debug|x86 {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Debug|x64.ActiveCfg = Debug|x64 {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Debug|x64.Build.0 = Debug|x64 {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Debug|x86.ActiveCfg = Debug|x86 {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Debug|x86.Build.0 = Debug|x86 + {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Release|Any CPU.ActiveCfg = Release|x86 {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Release|x64.ActiveCfg = Release|x64 {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Release|x64.Build.0 = Release|x64 {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Release|x86.ActiveCfg = Release|x86 {1B24ECA2-57ED-48D3-9639-7C111C9B817A}.Release|x86.Build.0 = Release|x86 + {784A24F2-9A57-46EE-8945-D87869595216}.Debug|Any CPU.ActiveCfg = Debug|x86 {784A24F2-9A57-46EE-8945-D87869595216}.Debug|x64.ActiveCfg = Debug|x64 {784A24F2-9A57-46EE-8945-D87869595216}.Debug|x64.Build.0 = Debug|x64 {784A24F2-9A57-46EE-8945-D87869595216}.Debug|x86.ActiveCfg = Debug|x86 {784A24F2-9A57-46EE-8945-D87869595216}.Debug|x86.Build.0 = Debug|x86 + {784A24F2-9A57-46EE-8945-D87869595216}.Release|Any CPU.ActiveCfg = Release|x86 {784A24F2-9A57-46EE-8945-D87869595216}.Release|x64.ActiveCfg = Release|x64 {784A24F2-9A57-46EE-8945-D87869595216}.Release|x64.Build.0 = Release|x64 {784A24F2-9A57-46EE-8945-D87869595216}.Release|x86.ActiveCfg = Release|x86 {784A24F2-9A57-46EE-8945-D87869595216}.Release|x86.Build.0 = Release|x86 + {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Debug|Any CPU.ActiveCfg = Debug|x86 {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Debug|x64.ActiveCfg = Debug|x64 {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Debug|x64.Build.0 = Debug|x64 {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Debug|x86.ActiveCfg = Debug|x86 {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Debug|x86.Build.0 = Debug|x86 + {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Release|Any CPU.ActiveCfg = Release|x86 {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Release|x64.ActiveCfg = Release|x64 {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Release|x64.Build.0 = Release|x64 {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Release|x86.ActiveCfg = Release|x86 {54BB55DA-DBDC-47E5-8DEC-DE325F35F074}.Release|x86.Build.0 = Release|x86 + {EC2343F2-5130-48CA-B1A2-68E5B4E26EC5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC2343F2-5130-48CA-B1A2-68E5B4E26EC5}.Debug|Any CPU.Build.0 = Debug|Any CPU {EC2343F2-5130-48CA-B1A2-68E5B4E26EC5}.Debug|x64.ActiveCfg = Debug|x64 {EC2343F2-5130-48CA-B1A2-68E5B4E26EC5}.Debug|x86.ActiveCfg = Debug|x86 + {EC2343F2-5130-48CA-B1A2-68E5B4E26EC5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC2343F2-5130-48CA-B1A2-68E5B4E26EC5}.Release|Any CPU.Build.0 = Release|Any CPU {EC2343F2-5130-48CA-B1A2-68E5B4E26EC5}.Release|x64.ActiveCfg = Release|x64 {EC2343F2-5130-48CA-B1A2-68E5B4E26EC5}.Release|x86.ActiveCfg = Release|x86 + {B2B2BE95-1F16-4D90-8F0A-E736DA85D9FD}.Debug|Any CPU.ActiveCfg = Debug|x86 {B2B2BE95-1F16-4D90-8F0A-E736DA85D9FD}.Debug|x64.ActiveCfg = Debug|x64 {B2B2BE95-1F16-4D90-8F0A-E736DA85D9FD}.Debug|x86.ActiveCfg = Debug|x86 + {B2B2BE95-1F16-4D90-8F0A-E736DA85D9FD}.Release|Any CPU.ActiveCfg = Release|x86 {B2B2BE95-1F16-4D90-8F0A-E736DA85D9FD}.Release|x64.ActiveCfg = Release|x64 {B2B2BE95-1F16-4D90-8F0A-E736DA85D9FD}.Release|x86.ActiveCfg = Release|x86 + {B99864F7-69EA-431A-A6C4-BD6904DA53AF}.Debug|Any CPU.ActiveCfg = Debug|x86 {B99864F7-69EA-431A-A6C4-BD6904DA53AF}.Debug|x64.ActiveCfg = Debug|x64 {B99864F7-69EA-431A-A6C4-BD6904DA53AF}.Debug|x86.ActiveCfg = Debug|x86 + {B99864F7-69EA-431A-A6C4-BD6904DA53AF}.Release|Any CPU.ActiveCfg = Release|x86 {B99864F7-69EA-431A-A6C4-BD6904DA53AF}.Release|x64.ActiveCfg = Release|x64 {B99864F7-69EA-431A-A6C4-BD6904DA53AF}.Release|x86.ActiveCfg = Release|x86 + {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Debug|Any CPU.ActiveCfg = Debug|x86 {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Debug|x64.ActiveCfg = Debug|x64 {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Debug|x64.Build.0 = Debug|x64 {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Debug|x86.ActiveCfg = Debug|x86 {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Debug|x86.Build.0 = Debug|x86 + {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Release|Any CPU.ActiveCfg = Release|x86 {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Release|x64.ActiveCfg = Release|x64 {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Release|x64.Build.0 = Release|x64 {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Release|x86.ActiveCfg = Release|x86 {193010C4-9BDE-42A3-A960-0B39700A9DE1}.Release|x86.Build.0 = Release|x86 + {D48B6E30-3A26-4D99-8747-21F65C358D84}.Debug|Any CPU.ActiveCfg = Debug|x86 {D48B6E30-3A26-4D99-8747-21F65C358D84}.Debug|x64.ActiveCfg = Debug|x64 {D48B6E30-3A26-4D99-8747-21F65C358D84}.Debug|x64.Build.0 = Debug|x64 {D48B6E30-3A26-4D99-8747-21F65C358D84}.Debug|x86.ActiveCfg = Debug|x86 {D48B6E30-3A26-4D99-8747-21F65C358D84}.Debug|x86.Build.0 = Debug|x86 + {D48B6E30-3A26-4D99-8747-21F65C358D84}.Release|Any CPU.ActiveCfg = Release|x86 {D48B6E30-3A26-4D99-8747-21F65C358D84}.Release|x64.ActiveCfg = Release|x64 {D48B6E30-3A26-4D99-8747-21F65C358D84}.Release|x86.ActiveCfg = Release|x86 + {740CFD6A-F838-46EF-B6A8-8F9FE4FA991F}.Debug|Any CPU.ActiveCfg = Debug|x86 {740CFD6A-F838-46EF-B6A8-8F9FE4FA991F}.Debug|x64.ActiveCfg = Debug|x64 {740CFD6A-F838-46EF-B6A8-8F9FE4FA991F}.Debug|x64.Build.0 = Debug|x64 {740CFD6A-F838-46EF-B6A8-8F9FE4FA991F}.Debug|x86.ActiveCfg = Debug|x86 {740CFD6A-F838-46EF-B6A8-8F9FE4FA991F}.Debug|x86.Build.0 = Debug|x86 + {740CFD6A-F838-46EF-B6A8-8F9FE4FA991F}.Release|Any CPU.ActiveCfg = Release|x86 {740CFD6A-F838-46EF-B6A8-8F9FE4FA991F}.Release|x64.ActiveCfg = Release|x64 {740CFD6A-F838-46EF-B6A8-8F9FE4FA991F}.Release|x86.ActiveCfg = Release|x86 + {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Debug|Any CPU.ActiveCfg = Debug|x86 {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Debug|x64.ActiveCfg = Debug|x64 {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Debug|x64.Build.0 = Debug|x64 {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Debug|x86.ActiveCfg = Debug|x86 {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Debug|x86.Build.0 = Debug|x86 + {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Release|Any CPU.ActiveCfg = Release|x86 {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Release|x64.ActiveCfg = Release|x64 {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Release|x64.Build.0 = Release|x64 {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Release|x86.ActiveCfg = Release|x86 {1BD04FE1-16AD-41F9-8F80-485925E407DD}.Release|x86.Build.0 = Release|x86 + {9D084FD3-2BA3-4ECF-891C-87772345D7E8}.Debug|Any CPU.ActiveCfg = Debug|x86 {9D084FD3-2BA3-4ECF-891C-87772345D7E8}.Debug|x64.ActiveCfg = Debug|x64 {9D084FD3-2BA3-4ECF-891C-87772345D7E8}.Debug|x64.Build.0 = Debug|x64 {9D084FD3-2BA3-4ECF-891C-87772345D7E8}.Debug|x86.ActiveCfg = Debug|x86 {9D084FD3-2BA3-4ECF-891C-87772345D7E8}.Debug|x86.Build.0 = Debug|x86 + {9D084FD3-2BA3-4ECF-891C-87772345D7E8}.Release|Any CPU.ActiveCfg = Release|x86 {9D084FD3-2BA3-4ECF-891C-87772345D7E8}.Release|x64.ActiveCfg = Release|x64 {9D084FD3-2BA3-4ECF-891C-87772345D7E8}.Release|x86.ActiveCfg = Release|x86 + {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Debug|Any CPU.ActiveCfg = Debug|x86 {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Debug|x64.ActiveCfg = Debug|x64 {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Debug|x64.Build.0 = Debug|x64 {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Debug|x86.ActiveCfg = Debug|x86 {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Debug|x86.Build.0 = Debug|x86 + {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Release|Any CPU.ActiveCfg = Release|x86 {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Release|x64.ActiveCfg = Release|x64 {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Release|x64.Build.0 = Release|x64 {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Release|x86.ActiveCfg = Release|x86 {D6AD6FF4-56BC-4929-9AF7-256D0E5A5F0D}.Release|x86.Build.0 = Release|x86 + {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Debug|Any CPU.ActiveCfg = Debug|x86 {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Debug|x64.ActiveCfg = Debug|x64 {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Debug|x64.Build.0 = Debug|x64 {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Debug|x86.ActiveCfg = Debug|x86 {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Debug|x86.Build.0 = Debug|x86 + {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Release|Any CPU.ActiveCfg = Release|x86 {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Release|x64.ActiveCfg = Release|x64 {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Release|x64.Build.0 = Release|x64 {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Release|x86.ActiveCfg = Release|x86 {C364E06F-9A33-4BAE-8C19-E9CEE95A1205}.Release|x86.Build.0 = Release|x86 + {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Debug|Any CPU.ActiveCfg = Debug|x86 {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Debug|x64.ActiveCfg = Debug|x64 {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Debug|x64.Build.0 = Debug|x64 {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Debug|x86.ActiveCfg = Debug|x86 {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Debug|x86.Build.0 = Debug|x86 + {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Release|Any CPU.ActiveCfg = Release|x86 {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Release|x64.ActiveCfg = Release|x64 {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Release|x64.Build.0 = Release|x64 {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Release|x86.ActiveCfg = Release|x86 {207ACB9D-605C-4FB0-8BFE-3E07FBA93188}.Release|x86.Build.0 = Release|x86 + {DD259453-611A-4AD5-878E-385CB2C89DF5}.Debug|Any CPU.ActiveCfg = Debug|x86 {DD259453-611A-4AD5-878E-385CB2C89DF5}.Debug|x64.ActiveCfg = Debug|x64 {DD259453-611A-4AD5-878E-385CB2C89DF5}.Debug|x64.Build.0 = Debug|x64 {DD259453-611A-4AD5-878E-385CB2C89DF5}.Debug|x86.ActiveCfg = Debug|x86 {DD259453-611A-4AD5-878E-385CB2C89DF5}.Debug|x86.Build.0 = Debug|x86 + {DD259453-611A-4AD5-878E-385CB2C89DF5}.Release|Any CPU.ActiveCfg = Release|x86 {DD259453-611A-4AD5-878E-385CB2C89DF5}.Release|x64.ActiveCfg = Release|x64 {DD259453-611A-4AD5-878E-385CB2C89DF5}.Release|x64.Build.0 = Release|x64 {DD259453-611A-4AD5-878E-385CB2C89DF5}.Release|x86.ActiveCfg = Release|x86 {DD259453-611A-4AD5-878E-385CB2C89DF5}.Release|x86.Build.0 = Release|x86 + {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Debug|Any CPU.ActiveCfg = Debug|x86 {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Debug|x64.ActiveCfg = Debug|x64 {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Debug|x64.Build.0 = Debug|x64 {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Debug|x86.ActiveCfg = Debug|x86 {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Debug|x86.Build.0 = Debug|x86 + {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Release|Any CPU.ActiveCfg = Release|x86 {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Release|x64.ActiveCfg = Release|x64 {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Release|x64.Build.0 = Release|x64 {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Release|x86.ActiveCfg = Release|x86 {1F3B6C70-7250-430A-98AE-4255560F9EB6}.Release|x86.Build.0 = Release|x86 + {12476697-03B6-4944-92C1-AE7214A13F0B}.Debug|Any CPU.ActiveCfg = Debug|x86 {12476697-03B6-4944-92C1-AE7214A13F0B}.Debug|x64.ActiveCfg = Debug|x64 {12476697-03B6-4944-92C1-AE7214A13F0B}.Debug|x64.Build.0 = Debug|x64 {12476697-03B6-4944-92C1-AE7214A13F0B}.Debug|x86.ActiveCfg = Debug|x86 {12476697-03B6-4944-92C1-AE7214A13F0B}.Debug|x86.Build.0 = Debug|x86 + {12476697-03B6-4944-92C1-AE7214A13F0B}.Release|Any CPU.ActiveCfg = Release|x86 {12476697-03B6-4944-92C1-AE7214A13F0B}.Release|x64.ActiveCfg = Release|x64 {12476697-03B6-4944-92C1-AE7214A13F0B}.Release|x64.Build.0 = Release|x64 {12476697-03B6-4944-92C1-AE7214A13F0B}.Release|x86.ActiveCfg = Release|x86 {12476697-03B6-4944-92C1-AE7214A13F0B}.Release|x86.Build.0 = Release|x86 + {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Debug|Any CPU.ActiveCfg = Debug|x86 {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Debug|x64.ActiveCfg = Debug|x64 {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Debug|x64.Build.0 = Debug|x64 {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Debug|x86.ActiveCfg = Debug|x86 {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Debug|x86.Build.0 = Debug|x86 + {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Release|Any CPU.ActiveCfg = Release|x86 {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Release|x64.ActiveCfg = Release|x64 {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Release|x64.Build.0 = Release|x64 {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Release|x86.ActiveCfg = Release|x86 {79400594-DE0D-4FFD-B115-AF2AEAC79CD9}.Release|x86.Build.0 = Release|x86 + {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Debug|Any CPU.ActiveCfg = Debug|x86 {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Debug|x64.ActiveCfg = Debug|x64 {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Debug|x64.Build.0 = Debug|x64 {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Debug|x86.ActiveCfg = Debug|x86 {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Debug|x86.Build.0 = Debug|x86 + {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Release|Any CPU.ActiveCfg = Release|x86 {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Release|x64.ActiveCfg = Release|x64 {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Release|x64.Build.0 = Release|x64 {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Release|x86.ActiveCfg = Release|x86 {FB836BB0-2668-41E6-A4AD-7798B13C327F}.Release|x86.Build.0 = Release|x86 + {CD714868-A96A-41E6-8679-DBB28E04B349}.Debug|Any CPU.ActiveCfg = Debug|x86 {CD714868-A96A-41E6-8679-DBB28E04B349}.Debug|x64.ActiveCfg = Debug|x64 {CD714868-A96A-41E6-8679-DBB28E04B349}.Debug|x64.Build.0 = Debug|x64 {CD714868-A96A-41E6-8679-DBB28E04B349}.Debug|x86.ActiveCfg = Debug|x86 {CD714868-A96A-41E6-8679-DBB28E04B349}.Debug|x86.Build.0 = Debug|x86 + {CD714868-A96A-41E6-8679-DBB28E04B349}.Release|Any CPU.ActiveCfg = Release|x86 {CD714868-A96A-41E6-8679-DBB28E04B349}.Release|x64.ActiveCfg = Release|x64 {CD714868-A96A-41E6-8679-DBB28E04B349}.Release|x64.Build.0 = Release|x64 {CD714868-A96A-41E6-8679-DBB28E04B349}.Release|x86.ActiveCfg = Release|x86 {CD714868-A96A-41E6-8679-DBB28E04B349}.Release|x86.Build.0 = Release|x86 + {9ECEB23D-EE57-432E-A180-A73D43218E87}.Debug|Any CPU.ActiveCfg = Debug|x86 {9ECEB23D-EE57-432E-A180-A73D43218E87}.Debug|x64.ActiveCfg = Debug|x64 {9ECEB23D-EE57-432E-A180-A73D43218E87}.Debug|x86.ActiveCfg = Debug|x86 + {9ECEB23D-EE57-432E-A180-A73D43218E87}.Release|Any CPU.ActiveCfg = Release|x86 {9ECEB23D-EE57-432E-A180-A73D43218E87}.Release|x64.ActiveCfg = Release|x64 {9ECEB23D-EE57-432E-A180-A73D43218E87}.Release|x64.Build.0 = Release|x64 {9ECEB23D-EE57-432E-A180-A73D43218E87}.Release|x86.ActiveCfg = Release|x86 {9ECEB23D-EE57-432E-A180-A73D43218E87}.Release|x86.Build.0 = Release|x86 + {A8D9AB62-5BA6-46CF-B3E7-51DA79CD3860}.Debug|Any CPU.ActiveCfg = Debug|x86 {A8D9AB62-5BA6-46CF-B3E7-51DA79CD3860}.Debug|x64.ActiveCfg = Debug|x64 {A8D9AB62-5BA6-46CF-B3E7-51DA79CD3860}.Debug|x86.ActiveCfg = Debug|x86 + {A8D9AB62-5BA6-46CF-B3E7-51DA79CD3860}.Release|Any CPU.ActiveCfg = Release|x86 {A8D9AB62-5BA6-46CF-B3E7-51DA79CD3860}.Release|x64.ActiveCfg = Release|x64 {A8D9AB62-5BA6-46CF-B3E7-51DA79CD3860}.Release|x86.ActiveCfg = Release|x86 + {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Debug|Any CPU.ActiveCfg = Debug|x86 {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Debug|x64.ActiveCfg = Debug|x64 {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Debug|x64.Build.0 = Debug|x64 {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Debug|x86.ActiveCfg = Debug|x86 {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Debug|x86.Build.0 = Debug|x86 + {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Release|Any CPU.ActiveCfg = Release|x86 {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Release|x64.ActiveCfg = Release|x64 {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Release|x64.Build.0 = Release|x64 {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Release|x86.ActiveCfg = Release|x86 {6AF734F1-2CD0-4636-88E2-EF2DAFA241F8}.Release|x86.Build.0 = Release|x86 + {75AF36A8-7797-4023-B183-5B63D448420A}.Debug|Any CPU.ActiveCfg = Debug|x86 {75AF36A8-7797-4023-B183-5B63D448420A}.Debug|x64.ActiveCfg = Debug|x64 {75AF36A8-7797-4023-B183-5B63D448420A}.Debug|x64.Build.0 = Debug|x64 {75AF36A8-7797-4023-B183-5B63D448420A}.Debug|x86.ActiveCfg = Debug|x86 {75AF36A8-7797-4023-B183-5B63D448420A}.Debug|x86.Build.0 = Debug|x86 + {75AF36A8-7797-4023-B183-5B63D448420A}.Release|Any CPU.ActiveCfg = Release|x86 {75AF36A8-7797-4023-B183-5B63D448420A}.Release|x64.ActiveCfg = Release|x64 {75AF36A8-7797-4023-B183-5B63D448420A}.Release|x64.Build.0 = Release|x64 {75AF36A8-7797-4023-B183-5B63D448420A}.Release|x86.ActiveCfg = Release|x86 {75AF36A8-7797-4023-B183-5B63D448420A}.Release|x86.Build.0 = Release|x86 + {48A39A36-1485-4FB9-A8F3-A7E68FAFC595}.Debug|Any CPU.ActiveCfg = Debug|x86 {48A39A36-1485-4FB9-A8F3-A7E68FAFC595}.Debug|x64.ActiveCfg = Debug|x64 {48A39A36-1485-4FB9-A8F3-A7E68FAFC595}.Debug|x64.Build.0 = Debug|x64 {48A39A36-1485-4FB9-A8F3-A7E68FAFC595}.Debug|x86.ActiveCfg = Debug|x86 {48A39A36-1485-4FB9-A8F3-A7E68FAFC595}.Debug|x86.Build.0 = Debug|x86 + {48A39A36-1485-4FB9-A8F3-A7E68FAFC595}.Release|Any CPU.ActiveCfg = Release|x86 {48A39A36-1485-4FB9-A8F3-A7E68FAFC595}.Release|x64.ActiveCfg = Release|x64 {48A39A36-1485-4FB9-A8F3-A7E68FAFC595}.Release|x86.ActiveCfg = Release|x86 + {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Debug|Any CPU.ActiveCfg = Debug|x86 {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Debug|x64.ActiveCfg = Debug|x64 {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Debug|x64.Build.0 = Debug|x64 {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Debug|x86.ActiveCfg = Debug|x86 {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Debug|x86.Build.0 = Debug|x86 + {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Release|Any CPU.ActiveCfg = Release|x86 {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Release|x64.ActiveCfg = Release|x64 {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Release|x64.Build.0 = Release|x64 {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Release|x86.ActiveCfg = Release|x86 {ADEEF162-77EB-48ED-AF35-CB6A00C55B42}.Release|x86.Build.0 = Release|x86 + {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Debug|Any CPU.ActiveCfg = Debug|x86 {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Debug|x64.ActiveCfg = Debug|x64 {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Debug|x64.Build.0 = Debug|x64 {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Debug|x86.ActiveCfg = Debug|x86 {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Debug|x86.Build.0 = Debug|x86 + {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Release|Any CPU.ActiveCfg = Release|x86 {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Release|x64.ActiveCfg = Release|x64 {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Release|x64.Build.0 = Release|x64 {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Release|x86.ActiveCfg = Release|x86 {80AF2BDB-F74A-480F-84C3-913953BAAE67}.Release|x86.Build.0 = Release|x86 + {01A845C6-D391-4258-81B0-C6ABF23D3364}.Debug|Any CPU.ActiveCfg = Debug|x86 {01A845C6-D391-4258-81B0-C6ABF23D3364}.Debug|x64.ActiveCfg = Debug|x64 {01A845C6-D391-4258-81B0-C6ABF23D3364}.Debug|x64.Build.0 = Debug|x64 {01A845C6-D391-4258-81B0-C6ABF23D3364}.Debug|x86.ActiveCfg = Debug|x86 {01A845C6-D391-4258-81B0-C6ABF23D3364}.Debug|x86.Build.0 = Debug|x86 + {01A845C6-D391-4258-81B0-C6ABF23D3364}.Release|Any CPU.ActiveCfg = Release|x86 {01A845C6-D391-4258-81B0-C6ABF23D3364}.Release|x64.ActiveCfg = Release|x64 {01A845C6-D391-4258-81B0-C6ABF23D3364}.Release|x64.Build.0 = Release|x64 {01A845C6-D391-4258-81B0-C6ABF23D3364}.Release|x86.ActiveCfg = Release|x86 {01A845C6-D391-4258-81B0-C6ABF23D3364}.Release|x86.Build.0 = Release|x86 + {2F64E258-741E-42E2-919D-63F4855F0115}.Debug|Any CPU.ActiveCfg = Debug|x86 {2F64E258-741E-42E2-919D-63F4855F0115}.Debug|x64.ActiveCfg = Debug|x64 {2F64E258-741E-42E2-919D-63F4855F0115}.Debug|x64.Build.0 = Debug|x64 {2F64E258-741E-42E2-919D-63F4855F0115}.Debug|x86.ActiveCfg = Debug|x86 {2F64E258-741E-42E2-919D-63F4855F0115}.Debug|x86.Build.0 = Debug|x86 + {2F64E258-741E-42E2-919D-63F4855F0115}.Release|Any CPU.ActiveCfg = Release|x86 {2F64E258-741E-42E2-919D-63F4855F0115}.Release|x64.ActiveCfg = Release|x64 {2F64E258-741E-42E2-919D-63F4855F0115}.Release|x64.Build.0 = Release|x64 {2F64E258-741E-42E2-919D-63F4855F0115}.Release|x86.ActiveCfg = Release|x86 diff --git a/src/MW5/Listeners/MapListener.cs b/src/MW5/Listeners/MapListener.cs index cd01421f..d281074d 100644 --- a/src/MW5/Listeners/MapListener.cs +++ b/src/MW5/Listeners/MapListener.cs @@ -1,6 +1,5 @@ using System; using System.Windows.Forms; -using MW5.Api; using MW5.Api.Enums; using MW5.Api.Events; using MW5.Api.Interfaces; @@ -26,17 +25,11 @@ internal class MapListener public MapListener(IAppContext context, IBroadcasterService broadcaster, ILayerService layerService, ContextMenuPresenter contextMenuPresenter, IProjectService projectService) { - if (context == null) throw new ArgumentNullException("context"); - if (broadcaster == null) throw new ArgumentNullException("broadcaster"); - if (layerService == null) throw new ArgumentNullException("layerService"); - if (contextMenuPresenter == null) throw new ArgumentNullException("contextMenuPresenter"); - if (projectService == null) throw new ArgumentNullException("projectService"); - - _context = context; - _broadcaster = broadcaster; - _layerService = layerService; - _contextMenuPresenter = contextMenuPresenter; - _projectService = projectService; + _context = context ?? throw new ArgumentNullException(nameof(context)); + _broadcaster = broadcaster ?? throw new ArgumentNullException(nameof(broadcaster)); + _layerService = layerService ?? throw new ArgumentNullException(nameof(layerService)); + _contextMenuPresenter = contextMenuPresenter ?? throw new ArgumentNullException(nameof(contextMenuPresenter)); + _projectService = projectService ?? throw new ArgumentNullException(nameof(projectService)); _map = _context.Map as IMap; if (_map == null) @@ -69,8 +62,7 @@ private void RegisterEvents() _map.ValidateShape += MapValidateShape; _map.TmsProviderChanged += MapTmsProviderChanged; - var mapControl = (_map as MapControl); - if (mapControl != null) + if (_map is MapControl mapControl) { mapControl.PreviewKeyDown += MapListener_PreviewKeyDown; } @@ -197,31 +189,26 @@ private void MapFileDropped(object sender, FileDroppedEventArgs e) } _layerService.AddLayersFromFilename(e.Filename); - int handle = _layerService.LastLayerHandle; + var handle = _layerService.LastLayerHandle; _map.ZoomToLayer(handle); } private bool TryParseTmsProviderFromDroppedFilename(string filename) { // expected format: "TmsProvider|" + Provider.Id (see RepositoryTreeView) - if (filename.ToLower().StartsWith("tmsprovider")) - { - var parts = filename.Split('|'); - if (parts.Length == 2) - { - int providerId; - if (Int32.TryParse(parts[1], out providerId)) - { - _map.SetTileProvider(providerId); - _map.Redraw(RedrawType.Minimal, true); - _context.View.Update(); - } - } - - return true; - } + if (!filename.ToLower().StartsWith("tmsprovider")) return false; + + var parts = filename.Split('|'); + if (parts.Length != 2) return false; + + if (!int.TryParse(parts[1], out var providerId)) return false; + + _map.SetTileProvider(providerId); + _map.Redraw(RedrawType.Minimal, true); + _context.View.Update(); + + return true; - return false; } private void MapExtentsChanged(object sender, EventArgs e) @@ -246,8 +233,7 @@ private void MapListener_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e private void ShowContextMenu(int x, int y) { - var parent = _map as Control; - if (parent == null) + if (!(_map is Control parent)) { return; } @@ -264,12 +250,35 @@ private void ShowContextMenu(int x, int y) case MapCursor.Pan: menu = _contextMenuPresenter.ZoomingMenu; break; + case MapCursor.Selection: + break; + case MapCursor.None: + break; + case MapCursor.AddShape: + break; + case MapCursor.EditShape: + break; + case MapCursor.SplitByPolyline: + break; + case MapCursor.Identify: + break; + case MapCursor.MoveShapes: + break; + case MapCursor.RotateShapes: + break; + case MapCursor.SelectByPolygon: + break; + case MapCursor.EraseByPolygon: + break; + case MapCursor.SplitByPolygon: + break; + case MapCursor.ClipByPolygon: + break; + default: + throw new ArgumentOutOfRangeException(); } - if (menu != null) - { - menu.Show(parent, x, y); - } + menu?.Show(parent, x, y); } } } diff --git a/src/Plugins/MW5.ShapeEditor/Services/GeoprocessingService.cs b/src/Plugins/MW5.ShapeEditor/Services/GeoprocessingService.cs index 34f82b10..26a216e0 100644 --- a/src/Plugins/MW5.ShapeEditor/Services/GeoprocessingService.cs +++ b/src/Plugins/MW5.ShapeEditor/Services/GeoprocessingService.cs @@ -1,5 +1,4 @@ using System; -using MW5.Api; using MW5.Api.Enums; using MW5.Api.Interfaces; using MW5.Api.Legend.Events; @@ -182,13 +181,12 @@ private void RemoveSelectedShapesNoPrompt(IMuteMap map, IFeatureSet fs, int laye list.BeginBatch(); var features = fs.Features; - for (int i = features.Count - 1; i >= 0; i--) + for (var i = features.Count - 1; i >= 0; i--) { - if (features[i].Selected) - { - list.Add(UndoOperation.RemoveShape, layerHandle, i); - features.EditDelete(i); - } + if (!features[i].Selected) continue; + + list.Add(UndoOperation.RemoveShape, layerHandle, i); + features.EditDelete(i); } list.EndBatch(); diff --git a/src/Plugins/MW5.TemplatePlugin/CompositionRoot.cs b/src/Plugins/MW5.TemplatePlugin/CompositionRoot.cs index 8bb4a073..f4057ec1 100644 --- a/src/Plugins/MW5.TemplatePlugin/CompositionRoot.cs +++ b/src/Plugins/MW5.TemplatePlugin/CompositionRoot.cs @@ -1,6 +1,6 @@ // -------------------------------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015 - 2017 +// MapWindow OSS Team - 2015 - 2019 // // // The composition root. diff --git a/src/Plugins/MW5.TemplatePlugin/InitPlugin.cs b/src/Plugins/MW5.TemplatePlugin/InitPlugin.cs index 9416fb0c..6bdd3fae 100644 --- a/src/Plugins/MW5.TemplatePlugin/InitPlugin.cs +++ b/src/Plugins/MW5.TemplatePlugin/InitPlugin.cs @@ -1,6 +1,6 @@ // -------------------------------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015 - 2017 +// MapWindow OSS Team - 2015 - 2019 // // // The initialization of the plugin. diff --git a/src/Plugins/MW5.TemplatePlugin/MapListener.cs b/src/Plugins/MW5.TemplatePlugin/MapListener.cs index d9a4cdee..d03ff0df 100644 --- a/src/Plugins/MW5.TemplatePlugin/MapListener.cs +++ b/src/Plugins/MW5.TemplatePlugin/MapListener.cs @@ -1,6 +1,6 @@ // -------------------------------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015 - 2017 +// MapWindow OSS Team - 2015 - 2019 // // // The map listener. diff --git a/src/Plugins/MW5.TemplatePlugin/Menu/MenuCommands.cs b/src/Plugins/MW5.TemplatePlugin/Menu/MenuCommands.cs index 4961dbcf..e246c025 100644 --- a/src/Plugins/MW5.TemplatePlugin/Menu/MenuCommands.cs +++ b/src/Plugins/MW5.TemplatePlugin/Menu/MenuCommands.cs @@ -1,6 +1,6 @@ // -------------------------------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015 - 2017 +// MapWindow OSS Team - 2015 - 2019 // // // The menu commands. diff --git a/src/Plugins/MW5.TemplatePlugin/Menu/MenuGenerator.cs b/src/Plugins/MW5.TemplatePlugin/Menu/MenuGenerator.cs index 6ec72783..5c0668fa 100644 --- a/src/Plugins/MW5.TemplatePlugin/Menu/MenuGenerator.cs +++ b/src/Plugins/MW5.TemplatePlugin/Menu/MenuGenerator.cs @@ -1,6 +1,6 @@ // -------------------------------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015 - 2017 +// MapWindow OSS Team - 2015 - 2019 // // // The menu generator. diff --git a/src/Plugins/MW5.TemplatePlugin/Menu/MenuKeys.cs b/src/Plugins/MW5.TemplatePlugin/Menu/MenuKeys.cs index b96e141c..82a3fd63 100644 --- a/src/Plugins/MW5.TemplatePlugin/Menu/MenuKeys.cs +++ b/src/Plugins/MW5.TemplatePlugin/Menu/MenuKeys.cs @@ -1,6 +1,6 @@ // -------------------------------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015 - 2017 +// MapWindow OSS Team - 2015 - 2019 // // // The menu keys. diff --git a/src/Plugins/MW5.TemplatePlugin/Menu/MenuListener.cs b/src/Plugins/MW5.TemplatePlugin/Menu/MenuListener.cs index 087f4fe1..ea4bea66 100644 --- a/src/Plugins/MW5.TemplatePlugin/Menu/MenuListener.cs +++ b/src/Plugins/MW5.TemplatePlugin/Menu/MenuListener.cs @@ -1,6 +1,6 @@ // -------------------------------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015-2017 +// MapWindow OSS Team - 2015-2019 // // // The menu listener. diff --git a/src/Plugins/MW5.TemplatePlugin/Properties/AssemblyInfo.cs b/src/Plugins/MW5.TemplatePlugin/Properties/AssemblyInfo.cs index 557251b5..d74da9cb 100644 --- a/src/Plugins/MW5.TemplatePlugin/Properties/AssemblyInfo.cs +++ b/src/Plugins/MW5.TemplatePlugin/Properties/AssemblyInfo.cs @@ -25,5 +25,7 @@ // The following GUID is for the ID of the typelib if this project is exposed to COM [assembly: Guid("6B16DD0D-D739-4A15-B247-CF30EBCE2875")] -[assembly: AssemblyVersion("0.0.1.*")] -[assembly: AssemblyFileVersion("0.0.1.0")] \ No newline at end of file +[assembly: AssemblyVersion("0.0.2.*")] +[assembly: AssemblyFileVersion("0.0.2.0")] +[assembly: ComVisible(false)] + diff --git a/src/Plugins/MW5.TemplatePlugin/SampleDockWindow.cs b/src/Plugins/MW5.TemplatePlugin/SampleDockWindow.cs index 6af99b43..363471bc 100644 --- a/src/Plugins/MW5.TemplatePlugin/SampleDockWindow.cs +++ b/src/Plugins/MW5.TemplatePlugin/SampleDockWindow.cs @@ -1,6 +1,6 @@ // -------------------------------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015 - 2017 +// MapWindow OSS Team - 2015 - 2019 // // // The sample dock window. diff --git a/src/SolutionItems/ReleaseNotes.rtf b/src/SolutionItems/ReleaseNotes.rtf index fc91acb9..69fe6785 100644 --- a/src/SolutionItems/ReleaseNotes.rtf +++ b/src/SolutionItems/ReleaseNotes.rtf @@ -1,7 +1,12 @@ {\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1043{\fonttbl{\f0\fnil\fcharset0 Calibri;}{\f1\fnil\fcharset0 Cambria;}{\f2\fnil\fcharset2 Symbol;}} {\colortbl ;\red0\green0\blue255;} {\*\generator Riched20 10.0.17134}\viewkind4\uc1 -\pard\sa200\sl276\slmult1\b\f0\fs44\lang19 Release notes for MapWindow 5\line\b0\fs20 Download at {{\field{\*\fldinst{HYPERLINK https://github.com/MapWindow/MapWindow5/releases }}{\fldrslt{https://github.com/MapWindow/MapWindow5/releases\ul0\cf0}}}}\f0\fs20 (since v5.1.1)\fs44\par +\pard\sa200\sl276\slmult1\b\f0\fs44\lang19 Release notes for MapWindow 5\line\b0\fs20 Download at {{\field{\*\fldinst{HYPERLINK https://github.com/MapWindow/MapWindow5/releases }}{\fldrslt{https://github.com/MapWindow/MapWindow5/releases\ul0\cf0}}}}\f0\fs20 (since v5.1.1)\par +\ul\fs44 MW5 v5.4.0\ulnone\line\f1\fs20 Released Jan. 19, 2019\par +\b News\b0 :\line This is a maintenance release. Only a few issues have been resolved.\line The main reason for this release is the new version of MapWinGIS, which has some improvements. v5.0.0 of MapWinGIS is no using the VC++2015 dependencies.\line The release notes for MapWinGIS v5.0.0 can be found at {{\field{\*\fldinst{HYPERLINK https://mapwindow.atlassian.net/secure/ReleaseNote.jspa?projectId=10003&version=10400 }}{\fldrslt{https://mapwindow.atlassian.net/secure/ReleaseNote.jspa?projectId=10003&version=10400\ul0\cf0}}}}\f1\fs20\par +\b\f0\fs28 MW5 Core\line\b0\fs20 URL: {{\field{\*\fldinst{HYPERLINK https://mapwindow.atlassian.net/secure/ReleaseNote.jspa?projectId=10002&version=10500 }}{\fldrslt{https://mapwindow.atlassian.net/secure/ReleaseNote.jspa?projectId=10002&version=10500\ul0\cf0}}}}\f0\fs20\par +\b\f1 Bug fixes\b0\par +[MW5CORE-211] - WMS url cannot be secure (https)\f0\fs44\par \ul MW5 v5.3.0\ulnone\line\f1\fs20 Released Jul. 20, 2018\par \b News\b0 :\line This is a maintenance release. Only a few issues have been resolved.\line The main reason for this release is the new version of MapWinGIS, which has some improvements. v4.9.6 of MapWinGIS will also be the last version using the VC++2013 dependencies.\line The release notes for MapWinGIS v4.9.6 can be found at {{\field{\*\fldinst{HYPERLINK https://mapwindow.atlassian.net/secure/ReleaseNote.jspa?projectId=10003&version=10600 }}{\fldrslt{https://mapwindow.atlassian.net/secure/ReleaseNote.jspa?projectId=10003&version=10600\ul0\cf0}}}}\f1\fs20\par \b\f0\fs28 MW5 Core\line\b0\fs20 URL: {{\field{\*\fldinst{HYPERLINK https://mapwindow.atlassian.net/secure/ReleaseNote.jspa?projectId=10002&version=10301 }}{\fldrslt{https://mapwindow.atlassian.net/secure/ReleaseNote.jspa?projectId=10002&version=10301\ul0\cf0}}}}\f1\fs20\par diff --git a/src/SolutionItems/SolutionInfoCore.cs b/src/SolutionItems/SolutionInfoCore.cs index 2e986ee5..d7998e81 100644 --- a/src/SolutionItems/SolutionInfoCore.cs +++ b/src/SolutionItems/SolutionInfoCore.cs @@ -1,6 +1,6 @@ // -------------------------------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015-2018 +// MapWindow OSS Team - 2015-2019 // // // SolutionInfo.cs @@ -15,8 +15,8 @@ #endregion [assembly: AssemblyCompany("MapWindow OSS Team - www.mapwindow.org")] -[assembly: AssemblyCopyright("Copyright (C) 1998-2018 MapWindow OSS Team")] -[assembly: AssemblyTrademark("MapWindow GIS is a trademark of Daniel P. Ames, 2005-2018")] +[assembly: AssemblyCopyright("Copyright (C) 1998-2019 MapWindow OSS Team")] +[assembly: AssemblyTrademark("MapWindow GIS is a trademark of Daniel P. Ames, 2005-2019")] [assembly: AssemblyCulture("")] [assembly: AssemblyTitle("MapWindow5 GIS")] [assembly: AssemblyDescription("MapWindow5 Open Source GIS application")] @@ -26,5 +26,5 @@ // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] -[assembly: AssemblyVersion("5.3.0.*")] -[assembly: AssemblyFileVersion("5.3.0.0")] \ No newline at end of file +[assembly: AssemblyVersion("5.4.0.*")] +[assembly: AssemblyFileVersion("5.4.0.0")] \ No newline at end of file diff --git a/src/SolutionItems/SolutionInfoPlugins.cs b/src/SolutionItems/SolutionInfoPlugins.cs index 5544ecf9..033b10f4 100644 --- a/src/SolutionItems/SolutionInfoPlugins.cs +++ b/src/SolutionItems/SolutionInfoPlugins.cs @@ -1,6 +1,6 @@ // ------------------------------------------------------------------------------------------- // -// MapWindow OSS Team - 2015-2018 +// MapWindow OSS Team - 2015-2019 // // ------------------------------------------------------------------------------------------- @@ -11,8 +11,8 @@ #endregion -[assembly: AssemblyCopyright("Copyright (C) 1998-2018 MapWindow OSS Team")] -[assembly: AssemblyTrademark("MapWindow GIS is a trademark of Daniel P. Ames, 2005-2018")] +[assembly: AssemblyCopyright("Copyright (C) 1998-2019 MapWindow OSS Team")] +[assembly: AssemblyTrademark("MapWindow GIS is a trademark of Daniel P. Ames, 2005-2019")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible diff --git a/test/MW5.Tools.Test/GeoprocessingTests.cs b/test/MW5.Tools.Test/GeoprocessingTests.cs index 46adcbdd..7dc706fe 100644 --- a/test/MW5.Tools.Test/GeoprocessingTests.cs +++ b/test/MW5.Tools.Test/GeoprocessingTests.cs @@ -105,7 +105,7 @@ public void TestFixShapefile() _timer.Restart(); var fs = OpenFeatureSet(Path.Combine(NlShapefilesPath, "Buurtkaart.shp")); var outputFilename = Path.ChangeExtension(fs.Filename, ".fixed.shp"); - DeleteShapefile(outputFilename); + FeatureSet.DeleteShapefile(outputFilename); Debug.Write("Fix shapefile"); var tool = new FixShapefileTool { Input = new DatasourceInput(fs), Output = new OutputLayerInfo { Filename = outputFilename, MemoryLayer = false, Overwrite = true } }; @@ -254,20 +254,6 @@ public void TestRandomPointsRaster() } #endregion - private static void DeleteShapefile(string filename) - { - var folder = Path.GetDirectoryName(filename); - if (folder == null) - { - return; - } - - foreach (string f in Directory.EnumerateFiles(folder, Path.GetFileNameWithoutExtension(filename) + ".*")) - { - Debug.WriteLine("Deleting " + f); - File.Delete(f); - } - } private static string GetDateString(long milliseconds) {