Compare commits

..

11 Commits

Author SHA1 Message Date
Samuele Locatelli c848168552 Merge branch 'release/Jenkins2GitLab' 2021-09-02 12:11:24 +02:00
Samuele Locatelli d95a19af32 Taggato job come "win" x selezionare runners 2021-09-02 11:39:52 +02:00
Samuele Locatelli c5e4f95b94 update nav menu 2021-09-02 11:30:29 +02:00
Samuele Locatelli 35e00bdb71 Aggiunta update await x lettura in transporters 2021-09-02 11:30:25 +02:00
Samuele Locatelli 8948984b44 Merge tag 'RC11' into develop
Test modifica suppliers/transporters
2021-09-01 09:36:47 +02:00
Samuele Locatelli 58f8d2aee3 Merge branch 'release/RC11' 2021-09-01 09:36:38 +02:00
Samuele Locatelli 951a704b52 Pérova modifica reset controller per errore online 2021-09-01 09:36:23 +02:00
Samuele Locatelli d518861228 Merge tag 'RC10' into develop
Test fix catena reload data
2021-09-01 09:04:59 +02:00
Samuele Locatelli 32a0fa1287 Merge branch 'release/RC10' 2021-09-01 09:04:50 +02:00
Samuele Locatelli 33212941c8 Test modifica naming x chiamate che danno errori in OVH 2021-09-01 09:04:34 +02:00
Samuele Locatelli 59975a335d Merge tag 'RC9' into develop
Fix reanming local db context
2021-08-31 16:49:12 +02:00
11 changed files with 90 additions and 82 deletions
+8
View File
@@ -70,6 +70,8 @@ stages:
build: build:
stage: build stage: build
tags:
- win
before_script: before_script:
- *nuget-fix - *nuget-fix
- dotnet restore GWMS.sln - dotnet restore GWMS.sln
@@ -78,6 +80,8 @@ build:
test: test:
stage: test stage: test
tags:
- win
only: only:
- develop - develop
needs: ["build"] needs: ["build"]
@@ -110,6 +114,8 @@ test:
installer: installer:
stage: installer stage: installer
tags:
- win
only: only:
- develop - develop
- master - master
@@ -127,6 +133,8 @@ installer:
release: release:
stage: release stage: release
tags:
- win
only: only:
#- feature/Deploy_CI_CD #- feature/Deploy_CI_CD
# - master # - master
+1 -1
View File
@@ -2,7 +2,7 @@
<PropertyGroup> <PropertyGroup>
<TargetFramework>net5.0</TargetFramework> <TargetFramework>net5.0</TargetFramework>
<Version>1.0.2108.3116</Version> <Version>1.0.2109.0211</Version>
<UserSecretsId>95c9f021-52d1-4390-a670-5810b7b777b0</UserSecretsId> <UserSecretsId>95c9f021-52d1-4390-a670-5810b7b777b0</UserSecretsId>
<EnableNETAnalyzers>true</EnableNETAnalyzers> <EnableNETAnalyzers>true</EnableNETAnalyzers>
<RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild> <RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
+2 -2
View File
@@ -143,7 +143,7 @@ namespace GWMS.UI.Pages
NavManager.NavigateTo($"GasStation/{args.BarcodeText}"); NavManager.NavigateTo($"GasStation/{args.BarcodeText}");
} }
private async Task reloadData() private async Task ReloadAllData()
{ {
isLoading = true; isLoading = true;
PlantsList = null; PlantsList = null;
@@ -175,7 +175,7 @@ namespace GWMS.UI.Pages
MessageService.ShowSearch = false; MessageService.ShowSearch = false;
MessageService.PageName = "Stazione"; MessageService.PageName = "Stazione";
MessageService.PageIcon = "fas fa-gas-pump pr-2"; MessageService.PageIcon = "fas fa-gas-pump pr-2";
await reloadData(); await ReloadAllData();
} }
protected void ResetData() protected void ResetData()
+1 -7
View File
@@ -115,8 +115,6 @@ namespace GWMS.UI.Pages
} }
} }
private bool ShowCharts { get; set; } = false;
private bool ShowClosed private bool ShowClosed
{ {
get get
@@ -308,9 +306,6 @@ namespace GWMS.UI.Pages
protected void Edit(OrderModel selRecord) protected void Edit(OrderModel selRecord)
{ {
// rileggo dal DB il record corrente... // rileggo dal DB il record corrente...
#if false
currRecord = selRecord;
#endif
var pUpd = Task.Run(async () => currRecord = await DataService.OrderGetByCode(selRecord.OrderCode)); var pUpd = Task.Run(async () => currRecord = await DataService.OrderGetByCode(selRecord.OrderCode));
pUpd.Wait(); pUpd.Wait();
} }
@@ -338,8 +333,8 @@ namespace GWMS.UI.Pages
protected async Task ReloadAllData() protected async Task ReloadAllData()
{ {
isLoading = true; isLoading = true;
//PlantsList = await DataService.PlantsGetAll();
SuppliersList = await DataService.SuppliersGetAll(); SuppliersList = await DataService.SuppliersGetAll();
SelPlantId = 0;
PlantsList = null; PlantsList = null;
await GetClaimsData(); await GetClaimsData();
// se ho un plantId valido --> altrimenti non abilitato // se ho un plantId valido --> altrimenti non abilitato
@@ -358,7 +353,6 @@ namespace GWMS.UI.Pages
PlantsList = new List<PlantDTO>(); PlantsList = new List<PlantDTO>();
} }
isLoading = false; isLoading = false;
await ReloadData(); await ReloadData();
} }
+3 -3
View File
@@ -99,7 +99,7 @@ namespace GWMS.UI.Pages
} }
} }
private async Task reloadData() private async Task ReloadAllData()
{ {
isLoading = true; isLoading = true;
ListRecords = null; ListRecords = null;
@@ -131,7 +131,7 @@ namespace GWMS.UI.Pages
MessageService.PageName = "Impianti"; MessageService.PageName = "Impianti";
MessageService.PageIcon = "fas fa-gas-pump pr-2"; MessageService.PageIcon = "fas fa-gas-pump pr-2";
MessageService.EA_SearchUpdated += OnSeachUpdated; MessageService.EA_SearchUpdated += OnSeachUpdated;
await reloadData(); await ReloadAllData();
} }
protected void Select(PlantDTO selRecord) protected void Select(PlantDTO selRecord)
@@ -143,7 +143,7 @@ namespace GWMS.UI.Pages
protected async Task UpdateData() protected async Task UpdateData()
{ {
currRecord = null; currRecord = null;
await reloadData(); await ReloadAllData();
} }
#endregion Protected Methods #endregion Protected Methods
+33 -30
View File
@@ -76,17 +76,17 @@ namespace GWMS.UI.Pages
get get
{ {
int answ = 0; int answ = 0;
if (MessageService.Order_Filter != null) if (AppMService.Order_Filter != null)
{ {
answ = MessageService.Order_Filter.PlantId; answ = AppMService.Order_Filter.PlantId;
} }
return answ; return answ;
} }
set set
{ {
if (!MessageService.Order_Filter.PlantId.Equals(value)) if (!AppMService.Order_Filter.PlantId.Equals(value))
{ {
MessageService.Order_Filter.PlantId = value; AppMService.Order_Filter.PlantId = value;
var pUpd = Task.Run(async () => await ReloadData()); var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait(); pUpd.Wait();
} }
@@ -98,29 +98,30 @@ namespace GWMS.UI.Pages
get get
{ {
int answ = 0; int answ = 0;
if (MessageService.Order_Filter != null) if (AppMService.Order_Filter != null)
{ {
answ = MessageService.Order_Filter.SupplierId; answ = AppMService.Order_Filter.SupplierId;
} }
return answ; return answ;
} }
set set
{ {
if (!MessageService.Order_Filter.SupplierId.Equals(value)) if (!AppMService.Order_Filter.SupplierId.Equals(value))
{ {
MessageService.Order_Filter.SupplierId = value; AppMService.Order_Filter.SupplierId = value;
var pUpd = Task.Run(async () => await ReloadData()); var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait(); pUpd.Wait();
} }
} }
} }
private bool ShowCharts { get; set; } = false;
#endregion Private Properties #endregion Private Properties
#region Protected Properties #region Protected Properties
[Inject]
protected MessageService AppMService { get; set; }
[Inject] [Inject]
protected AuthenticationStateProvider AuthenticationStateProvider { get; set; } protected AuthenticationStateProvider AuthenticationStateProvider { get; set; }
@@ -132,17 +133,17 @@ namespace GWMS.UI.Pages
get get
{ {
DateTime answ = DateTime.Today.AddDays(1); DateTime answ = DateTime.Today.AddDays(1);
if (MessageService.Order_Filter != null) if (AppMService.Order_Filter != null)
{ {
answ = MessageService.Order_Filter.DateEnd; answ = AppMService.Order_Filter.DateEnd;
} }
return answ; return answ;
} }
set set
{ {
if (!MessageService.Order_Filter.DateEnd.Equals(value)) if (!AppMService.Order_Filter.DateEnd.Equals(value))
{ {
MessageService.Order_Filter.DateEnd = value; AppMService.Order_Filter.DateEnd = value;
var pUpd = Task.Run(async () => await ReloadData()); var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait(); pUpd.Wait();
} }
@@ -154,17 +155,17 @@ namespace GWMS.UI.Pages
get get
{ {
DateTime answ = DateTime.Today.AddDays(-1); DateTime answ = DateTime.Today.AddDays(-1);
if (MessageService.Order_Filter != null) if (AppMService.Order_Filter != null)
{ {
answ = MessageService.Order_Filter.DateStart; answ = AppMService.Order_Filter.DateStart;
} }
return answ; return answ;
} }
set set
{ {
if (!MessageService.Order_Filter.DateStart.Equals(value)) if (!AppMService.Order_Filter.DateStart.Equals(value))
{ {
MessageService.Order_Filter.DateStart = value; AppMService.Order_Filter.DateStart = value;
var pUpd = Task.Run(async () => await ReloadData()); var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait(); pUpd.Wait();
} }
@@ -174,9 +175,6 @@ namespace GWMS.UI.Pages
[Inject] [Inject]
protected IJSRuntime JSRuntime { get; set; } protected IJSRuntime JSRuntime { get; set; }
[Inject]
protected MessageService MessageService { get; set; }
[Inject] [Inject]
protected NavigationManager NavManager { get; set; } protected NavigationManager NavManager { get; set; }
@@ -241,7 +239,7 @@ namespace GWMS.UI.Pages
private async Task ReloadData() private async Task ReloadData()
{ {
isLoading = true; isLoading = true;
SearchRecords = await DataService.OrdersGetFilt(MessageService.Order_Filter); SearchRecords = await DataService.OrdersGetFilt(AppMService.Order_Filter);
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
isLoading = false; isLoading = false;
} }
@@ -252,7 +250,9 @@ namespace GWMS.UI.Pages
protected void Edit(OrderModel selRecord) protected void Edit(OrderModel selRecord)
{ {
currRecord = selRecord; // rileggo dal DB il record corrente...
var pUpd = Task.Run(async () => currRecord = await DataService.OrderGetByCode(selRecord.OrderCode));
pUpd.Wait();
} }
protected void ForceReload(int newNum) protected void ForceReload(int newNum)
@@ -267,19 +267,21 @@ namespace GWMS.UI.Pages
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
MessageService.ShowSearch = false; DataService.ResetController();
MessageService.PageName = "Fornitore"; AppMService.ShowSearch = false;
MessageService.PageIcon = "fas fa-industry pr-2"; AppMService.PageName = "Fornitore";
MessageService.EA_SearchUpdated += OnSeachUpdated; AppMService.PageIcon = "fas fa-industry pr-2";
AppMService.EA_SearchUpdated += OnSeachUpdated;
await ReloadAllData(); await ReloadAllData();
} }
protected async Task ReloadAllData() protected async Task ReloadAllData()
{ {
isLoading = true; isLoading = true;
PlantsList = await DataService.PlantsGetAll();
SelSupplierId = 0;
SuppliersList = null; SuppliersList = null;
await GetClaimsData(); await GetClaimsData();
PlantsList = await DataService.PlantsGetAll();
// se ho un plantId valido --> altrimenti non abilitato // se ho un plantId valido --> altrimenti non abilitato
if (ClaimSupplierId == 0) if (ClaimSupplierId == 0)
{ {
@@ -310,7 +312,7 @@ namespace GWMS.UI.Pages
currRecord = null; currRecord = null;
SearchRecords = null; SearchRecords = null;
ListRecords = null; ListRecords = null;
MessageService.Order_Filter = SelectOrderData.Init(5, 7); AppMService.Order_Filter = SelectOrderData.Init(5, 7);
await ReloadAllData(); await ReloadAllData();
} }
@@ -323,6 +325,7 @@ namespace GWMS.UI.Pages
protected async Task UpdateData() protected async Task UpdateData()
{ {
currRecord = null; currRecord = null;
DataService.ResetController();
await ReloadData(); await ReloadData();
} }
@@ -347,7 +350,7 @@ namespace GWMS.UI.Pages
public void Dispose() public void Dispose()
{ {
MessageService.EA_SearchUpdated -= OnSeachUpdated; AppMService.EA_SearchUpdated -= OnSeachUpdated;
} }
public async void OnSeachUpdated() public async void OnSeachUpdated()
+33 -30
View File
@@ -22,7 +22,6 @@ namespace GWMS.UI.Pages
private List<OrderModel> ListRecords; private List<OrderModel> ListRecords;
private List<PlantDTO> PlantsList; private List<PlantDTO> PlantsList;
private List<OrderModel> SearchRecords; private List<OrderModel> SearchRecords;
private List<TransporterModel> TransportersList; private List<TransporterModel> TransportersList;
#endregion Private Fields #endregion Private Fields
@@ -100,18 +99,18 @@ namespace GWMS.UI.Pages
get get
{ {
int answ = 0; int answ = 0;
if (MessageService.Order_Filter != null) if (AppMService.Order_Filter != null)
{ {
answ = MessageService.Order_Filter.PlantId; answ = AppMService.Order_Filter.PlantId;
} }
return answ; return answ;
} }
set set
{ {
if (!MessageService.Order_Filter.PlantId.Equals(value)) if (!AppMService.Order_Filter.PlantId.Equals(value))
{ {
currRecord = null; currRecord = null;
MessageService.Order_Filter.PlantId = value; AppMService.Order_Filter.PlantId = value;
var pUpd = Task.Run(async () => await ReloadData()); var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait(); pUpd.Wait();
} }
@@ -123,18 +122,18 @@ namespace GWMS.UI.Pages
get get
{ {
int answ = 0; int answ = 0;
if (MessageService.Order_Filter != null) if (AppMService.Order_Filter != null)
{ {
answ = MessageService.Order_Filter.TransporterId; answ = AppMService.Order_Filter.TransporterId;
} }
return answ; return answ;
} }
set set
{ {
if (!MessageService.Order_Filter.TransporterId.Equals(value)) if (!AppMService.Order_Filter.TransporterId.Equals(value))
{ {
currRecord = null; currRecord = null;
MessageService.Order_Filter.TransporterId = value; AppMService.Order_Filter.TransporterId = value;
var pUpd = Task.Run(async () => await ReloadData()); var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait(); pUpd.Wait();
} }
@@ -145,6 +144,9 @@ namespace GWMS.UI.Pages
#region Protected Properties #region Protected Properties
[Inject]
protected MessageService AppMService { get; set; }
[Inject] [Inject]
protected AuthenticationStateProvider AuthenticationStateProvider { get; set; } protected AuthenticationStateProvider AuthenticationStateProvider { get; set; }
@@ -156,17 +158,17 @@ namespace GWMS.UI.Pages
get get
{ {
DateTime answ = DateTime.Today.AddDays(1); DateTime answ = DateTime.Today.AddDays(1);
if (MessageService.Order_Filter != null) if (AppMService.Order_Filter != null)
{ {
answ = MessageService.Order_Filter.DateEnd; answ = AppMService.Order_Filter.DateEnd;
} }
return answ; return answ;
} }
set set
{ {
if (!MessageService.Order_Filter.DateEnd.Equals(value)) if (!AppMService.Order_Filter.DateEnd.Equals(value))
{ {
MessageService.Order_Filter.DateEnd = value; AppMService.Order_Filter.DateEnd = value;
var pUpd = Task.Run(async () => await ReloadData()); var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait(); pUpd.Wait();
} }
@@ -178,17 +180,17 @@ namespace GWMS.UI.Pages
get get
{ {
DateTime answ = DateTime.Today.AddDays(-1); DateTime answ = DateTime.Today.AddDays(-1);
if (MessageService.Order_Filter != null) if (AppMService.Order_Filter != null)
{ {
answ = MessageService.Order_Filter.DateStart; answ = AppMService.Order_Filter.DateStart;
} }
return answ; return answ;
} }
set set
{ {
if (!MessageService.Order_Filter.DateStart.Equals(value)) if (!AppMService.Order_Filter.DateStart.Equals(value))
{ {
MessageService.Order_Filter.DateStart = value; AppMService.Order_Filter.DateStart = value;
var pUpd = Task.Run(async () => await ReloadData()); var pUpd = Task.Run(async () => await ReloadData());
pUpd.Wait(); pUpd.Wait();
} }
@@ -198,9 +200,6 @@ namespace GWMS.UI.Pages
[Inject] [Inject]
protected IJSRuntime JSRuntime { get; set; } protected IJSRuntime JSRuntime { get; set; }
[Inject]
protected MessageService MessageService { get; set; }
[Inject] [Inject]
protected NavigationManager NavManager { get; set; } protected NavigationManager NavManager { get; set; }
@@ -235,6 +234,7 @@ namespace GWMS.UI.Pages
/// <returns></returns> /// <returns></returns>
private async Task GetClaimsData() private async Task GetClaimsData()
{ {
ClaimTransporterId = -1;
// recupero auth // recupero auth
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
var user = authState.User; var user = authState.User;
@@ -266,9 +266,8 @@ namespace GWMS.UI.Pages
private async Task ReloadData() private async Task ReloadData()
{ {
isLoading = true; isLoading = true;
SearchRecords = await DataService.OrdersGetFilt(MessageService.Order_Filter); SearchRecords = await DataService.OrdersGetFilt(AppMService.Order_Filter);
ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList(); ListRecords = SearchRecords.Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
//ListRecords = SearchRecords.Where(x => x.TransporterId == TransporterIdFilt).Skip(numRecord * (currPage - 1)).Take(numRecord).ToList();
isLoading = false; isLoading = false;
} }
@@ -278,7 +277,9 @@ namespace GWMS.UI.Pages
protected void Edit(OrderModel selRecord) protected void Edit(OrderModel selRecord)
{ {
currRecord = selRecord; // rileggo dal DB il record corrente...
var pUpd = Task.Run(async () => currRecord = await DataService.OrderGetByCode(selRecord.OrderCode));
pUpd.Wait();
} }
protected void ForceReload(int newNum) protected void ForceReload(int newNum)
@@ -293,12 +294,13 @@ namespace GWMS.UI.Pages
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
DataService.ResetController();
SelPlantId = 0; SelPlantId = 0;
SelTranspId = 0; SelTranspId = 0;
MessageService.ShowSearch = false; AppMService.ShowSearch = false;
MessageService.PageName = "Fornitore"; AppMService.PageName = "Fornitore";
MessageService.PageIcon = "fas fa-industry pr-2"; AppMService.PageIcon = "fas fa-industry pr-2";
MessageService.EA_SearchUpdated += OnSeachUpdated; AppMService.EA_SearchUpdated += OnSeachUpdated;
await ReloadAllData(); await ReloadAllData();
} }
@@ -306,6 +308,7 @@ namespace GWMS.UI.Pages
{ {
isLoading = true; isLoading = true;
PlantsList = await DataService.PlantsGetAll(); PlantsList = await DataService.PlantsGetAll();
SelTranspId = 0;
TransportersList = null; TransportersList = null;
await GetClaimsData(); await GetClaimsData();
// se ho un plantId valido --> altrimenti non abilitato // se ho un plantId valido --> altrimenti non abilitato
@@ -324,7 +327,6 @@ namespace GWMS.UI.Pages
PlantsList = new List<PlantDTO>(); PlantsList = new List<PlantDTO>();
} }
isLoading = false; isLoading = false;
await ReloadData(); await ReloadData();
} }
@@ -339,7 +341,7 @@ namespace GWMS.UI.Pages
currRecord = null; currRecord = null;
SearchRecords = null; SearchRecords = null;
ListRecords = null; ListRecords = null;
MessageService.Order_Filter = SelectOrderData.Init(5, 7); AppMService.Order_Filter = SelectOrderData.Init(5, 7);
await ReloadAllData(); await ReloadAllData();
} }
@@ -371,6 +373,7 @@ namespace GWMS.UI.Pages
protected async Task UpdateData() protected async Task UpdateData()
{ {
currRecord = null; currRecord = null;
DataService.ResetController();
await ReloadData(); await ReloadData();
} }
@@ -395,7 +398,7 @@ namespace GWMS.UI.Pages
public void Dispose() public void Dispose()
{ {
MessageService.EA_SearchUpdated -= OnSeachUpdated; AppMService.EA_SearchUpdated -= OnSeachUpdated;
} }
public async void OnSeachUpdated() public async void OnSeachUpdated()
+6 -6
View File
@@ -94,6 +94,12 @@
<span class="@hideText">Planner Consegne</span> <span class="@hideText">Planner Consegne</span>
</NavLink> </NavLink>
</li> </li>
<li class="nav-item px-3" title="Setup Parametri">
<NavLink class="nav-link" href="Parameters">
<i class="fas fa-2x fa-wrench pr-2" aria-hidden="true"></i>
<span class="@hideText">Setup Parametri</span>
</NavLink>
</li>
<li class="nav-item px-3" title="Admin Utenti"> <li class="nav-item px-3" title="Admin Utenti">
<NavLink class="nav-link" href="UserAdmin"> <NavLink class="nav-link" href="UserAdmin">
<i class="fas fa-2x fa-users pr-2" aria-hidden="true"></i> <i class="fas fa-2x fa-users pr-2" aria-hidden="true"></i>
@@ -114,12 +120,6 @@
<i class="fas fa-2x fa-calendar-alt pr-2" aria-hidden="true"></i> <i class="fas fa-2x fa-calendar-alt pr-2" aria-hidden="true"></i>
<span class="@hideText">Job Scheduler</span> <span class="@hideText">Job Scheduler</span>
</NavLink> </NavLink>
</li>
<li class="nav-item px-3" title="Setup Parametri">
<NavLink class="nav-link" href="Parameters">
<i class="fas fa-2x fa-wrench pr-2" aria-hidden="true"></i>
<span class="@hideText">Setup Parametri</span>
</NavLink>
</li>*@ </li>*@
</ul> </ul>
</div> </div>
+1 -1
View File
@@ -1,6 +1,6 @@
<body> <body>
<i>GWMS - Gas Warehouse Management System</i> <i>GWMS - Gas Warehouse Management System</i>
<h4>Versione: 1.0.2108.3116</h4> <h4>Versione: 1.0.2109.0211</h4>
<br /> Note di rilascio: <br /> Note di rilascio:
<ul> <ul>
<li> <li>
+1 -1
View File
@@ -1 +1 @@
1.0.2108.3116 1.0.2109.0211
+1 -1
View File
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<item> <item>
<version>1.0.2108.3116</version> <version>1.0.2109.0211</version>
<url>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/GWMS.UI.zip</url> <url>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/GWMS.UI.zip</url>
<changelog>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/ChangeLog.html</changelog> <changelog>http://nexus.steamware.net/repository/SWS/GWMS/stable/0/ChangeLog.html</changelog>
<mandatory>false</mandatory> <mandatory>false</mandatory>