Skip to content

Commit

Permalink
Merge pull request #8 from GVNCoder/release-0500
Browse files Browse the repository at this point in the history
Hot Release 0.5.0.0
  • Loading branch information
GVNCoder authored May 6, 2021
2 parents 69f7e31 + 8aa6c0a commit a1cade6
Show file tree
Hide file tree
Showing 61 changed files with 1,405 additions and 1,327 deletions.
4 changes: 4 additions & 0 deletions src/Examples/Examples.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
<Reference Include="System.Core" />
Expand All @@ -49,6 +52,7 @@
</ItemGroup>
<ItemGroup>
<None Include="App.config" />
<None Include="app.manifest" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Zlo4NET\Zlo4NET.csproj">
Expand Down
12 changes: 11 additions & 1 deletion src/Examples/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,12 @@ internal static void Main(string[] args)
_zloApi = ZApi.Instance;
_gameFactory = _zloApi.GameFactory;

var logger = _zloApi.Logger;

// configure logging
logger.SetMessageFilter(ZLogLevel.Debug | ZLogLevel.Warning | ZLogLevel.Error | ZLogLevel.Info);
logger.OnMessage += (sender, messageArgs) => Console.WriteLine(messageArgs.Message);

var connection = _zloApi.Connection;

// configure api thread synchronization
Expand Down Expand Up @@ -151,7 +157,11 @@ internal static async Task _MultiplayerHandler(ZGame game)
var resetEvent = new ManualResetEvent(false);

// configure server list service
serverListService.InitialSizeReached += (s, e) => resetEvent.Set();
serverListService.InitialSizeReached += (s, e) =>
{
resetEvent.Set();
serverListService.StopReceiving();
};
serverListService.StartReceiving();

// wait to server list full load
Expand Down
77 changes: 77 additions & 0 deletions src/Examples/app.manifest
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
Specifying requestedExecutionLevel element will disable file and registry virtualization.
Remove this element if your application requires this virtualization for backwards
compatibility.
-->
<!--<requestedExecutionLevel level="asInvoker" uiAccess="false" />-->
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>

<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- A list of the Windows versions that this application has been tested on
and is designed to work with. Uncomment the appropriate elements
and Windows will automatically select the most compatible environment. -->

<!-- Windows Vista -->
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->

<!-- Windows 7 -->
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->

<!-- Windows 8 -->
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->

<!-- Windows 8.1 -->
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->

<!-- Windows 10 -->
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->

</application>
</compatibility>

<!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. -->
<!--
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
-->

<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
<!--
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
-->

</assembly>
17 changes: 17 additions & 0 deletions src/Zlo4NET/Api/DTO/ZUserDTO.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
namespace Zlo4NET.Api.DTO
{
/// <summary>
/// Represents an authorized in ZClient user DTO (Data Transfer Object)
/// </summary>
public class ZUserDTO
{
/// <summary>
/// Gets user name that authorized in ZClient
/// </summary>
public string UserName { get; set; }
/// <summary>
/// Gets user id that authorized in ZClient
/// </summary>
public uint UserId { get; set; }
}
}
5 changes: 3 additions & 2 deletions src/Zlo4NET/Api/IZApi.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Threading.Tasks;
using Zlo4NET.Api.Models.Shared;
using System.Collections.Generic;

using Zlo4NET.Api.Service;
using Zlo4NET.Api.Models.Shared;

namespace Zlo4NET.Api
{
Expand Down
25 changes: 25 additions & 0 deletions src/Zlo4NET/Api/Models/Shared/ZAuthorizedEventArgs.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
using System;

using Zlo4NET.Api.DTO;
using Zlo4NET.Api.Service;

namespace Zlo4NET.Api.Models.Shared
{
/// <summary>
/// Represents <see cref="IZConnection.Authorized"/> event args
/// </summary>
public class ZAuthorizedEventArgs : EventArgs
{
/// <summary>
/// Authorized in ZClient user
/// </summary>
public ZUserDTO AuthorizedUser { get; }
/// <summary>
/// Creates an instance of <see cref="ZAuthorizedEventArgs"/>
/// </summary>
public ZAuthorizedEventArgs(ZUserDTO user)
{
AuthorizedUser = user;
}
}
}
26 changes: 0 additions & 26 deletions src/Zlo4NET/Api/Models/Shared/ZConnectionChangedArgs.cs

This file was deleted.

23 changes: 23 additions & 0 deletions src/Zlo4NET/Api/Models/Shared/ZConnectionChangedEventArgs.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
using System;
using Zlo4NET.Api.Service;

namespace Zlo4NET.Api.Models.Shared
{
/// <summary>
/// Represents <see cref="IZConnection.ConnectionChanged"/> event args
/// </summary>
public class ZConnectionChangedEventArgs : EventArgs
{
/// <summary>
/// Gets current connection state with ZClient
/// </summary>
public bool IsConnected { get; }
/// <summary>
/// Creates an instance of <see cref="ZConnectionChangedEventArgs"/>
/// </summary>
public ZConnectionChangedEventArgs(bool isConnected)
{
IsConnected = isConnected;
}
}
}
15 changes: 13 additions & 2 deletions src/Zlo4NET/Api/Models/Shared/ZRunResult.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,25 @@
namespace Zlo4NET.Api.Models.Shared
{
/// <summary>
/// Defines ZClient game run result
///
/// </summary>
public enum ZRunResult : byte
{
/// <summary>
///
/// </summary>
Success,
/// <summary>
///
/// </summary>
NotFound,
/// <summary>
///
/// </summary>
Error,

/// <summary>
///
/// </summary>
None
}
}
17 changes: 0 additions & 17 deletions src/Zlo4NET/Api/Models/Shared/ZUser.cs

This file was deleted.

29 changes: 17 additions & 12 deletions src/Zlo4NET/Api/Service/IZConnection.cs
Original file line number Diff line number Diff line change
@@ -1,34 +1,39 @@
using System;
using Zlo4NET.Api.DTO;
using Zlo4NET.Api.Models.Shared;

namespace Zlo4NET.Api.Service
{
/// <summary>
/// Defines API connection
/// Represents a service that allows you to manage and control the connection to the ZClient
/// </summary>
public interface IZConnection
{
/// <summary>
/// Initiates an asynchronous ZClient connection process.
/// Initiates an asynchronous connection to the ZClient
/// </summary>
void Connect();
/// <summary>
/// Terminates the connection with ZClient.
/// Initiates a disconnection to the ZClient. Raises a <see cref="ConnectionChanged"/> event by default
/// </summary>
void Disconnect();

/// <param name="raiseEvent">Indicates whether the connection state change event should be raised or not</param>
void Disconnect(bool raiseEvent = true);
/// <summary>
/// Occurs when the connection changes state.
/// Gets current authorized in ZClient user
/// </summary>
event EventHandler<ZConnectionChangedArgs> ConnectionChanged;

/// <returns>Returns current authorized in ZClient user</returns>
ZUserDTO GetCurrentUserInfo();
/// <summary>
/// Gets connection state
/// Occurs when the connection changes state
/// </summary>
bool IsConnected { get; }
event EventHandler<ZConnectionChangedEventArgs> ConnectionChanged;
/// <summary>
/// Gets authorized user
/// Occurs when received user that authorized in ZClient
/// </summary>
ZUser AuthorizedUser { get; }
event EventHandler<ZAuthorizedEventArgs> Authorized;
/// <summary>
/// Gets current connection state with ZClient
/// </summary>
bool IsConnected { get; }
}
}
9 changes: 5 additions & 4 deletions src/Zlo4NET/Api/Service/IZServersListService.cs
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
using System;
using System.Collections.ObjectModel;

using Zlo4NET.Api.Models.Server;

namespace Zlo4NET.Api.Service
{
/// <summary>
/// Defines servers list service
///
/// </summary>
public interface IZServersListService : IDisposable
{
/// <summary>
/// Makes a request to receive data about servers and starts processing them.
/// Makes a request to receive data about servers and starts processing them
/// </summary>
void StartReceiving();
/// <summary>
/// Releases all resources used by this instance. After calling this method, this instance can no longer be used.
/// Releases all resources used by this instance. After calling this method, this instance can no longer be used
/// </summary>
void StopReceiving();
/// <summary>
Expand All @@ -26,7 +27,7 @@ public interface IZServersListService : IDisposable
/// </summary>
event EventHandler InitialSizeReached;
/// <summary>
/// Gets a value indicating the availability of this instance.
/// Gets a value indicating the availability of this instance
/// </summary>
bool CanUse { get; }
}
Expand Down
Loading

0 comments on commit a1cade6

Please sign in to comment.