Merge branch 'develop' of https://gitlab.steamware.net/egalware-web/special/webdoorcreator into develop
This commit is contained in:
+29
-23
@@ -2,7 +2,7 @@
|
||||
|
||||
## Framework
|
||||
|
||||
Traduzione OVUNQUE x ogni termine/etichetta/button
|
||||
Traduzione OVUNQUE x ogni termine/etichetta/button..
|
||||
|
||||
## Pagine
|
||||
|
||||
@@ -17,52 +17,58 @@ Traduzione OVUNQUE x ogni termine/etichetta/button
|
||||
### Orders Home page
|
||||
|
||||
Per completare
|
||||
- <del>aggiunta paginatore</del>
|
||||
- <del>aggiunta stato ordine</del>
|
||||
- <del>aggiunta filtri ricerca
|
||||
- [x] <del>aggiunta paginatore</del>
|
||||
- [x] <del>aggiunta stato ordine</del>
|
||||
- [x] <del>aggiunta filtri ricerca
|
||||
- periodo da-a
|
||||
- search generico
|
||||
- stato ordine</del>
|
||||
- <del>ordinamento</del>
|
||||
- [x] <del>ordinamento</del>
|
||||
|
||||
### DCA Order Man
|
||||
### DCA Order Mans
|
||||
|
||||
FORSE la Orders home Page NON VA bene x gli utenti backoffice, oppure va estesa, perché x confermare quotazione, indicare avanzamento ordini gli operatori ABH/DCA devono avere una pagina operativa...
|
||||
|
||||
### OrderDetails
|
||||
|
||||
Per completare:
|
||||
- <del>aggiunta button x il cambio stato da end-user</del>
|
||||
- <del>sistemare con paginatore max 3 righe x 4 porte</del>
|
||||
- <del>fix button verde add-new</del>
|
||||
|
||||
- [x] <del>aggiunta button x il cambio stato da end-user</del>
|
||||
- [x] <del>sistemare con paginatore max 3 righe x 4 porte</del>
|
||||
- [x] <del>fix button verde add-new</del>
|
||||
- [x] <del>ombreggiatura blocco</del>
|
||||
|
||||
### DoorDefinition BaseParams
|
||||
- <del>conteggio num modifiche da salvare</del>
|
||||
- <del>armonizzare il cancel/save nella pagina</del>
|
||||
- <del>revisione testata fino al btn del salva generale</del>
|
||||
- <del>sostituire il salva generale con 2 buttons:
|
||||
- [x] <del>conteggio num modifiche da salvare</del>
|
||||
- [x] <del>armonizzare il cancel/save nella pagina</del>
|
||||
- [x] <del>revisione testata fino al btn del salva generale</del>
|
||||
- [x] <del>sostituire il salva generale con 2 buttons:
|
||||
- salva, o meglio RECALC PNG = update PNG, potrebbe andare in automatico DOPO i vari SALVA nella pagina (opzione x auto-recalc?!?)
|
||||
- get 3D obj (in new window/tab)</del>
|
||||
|
||||
- [x] <del>delete singola porta da ordine</del>
|
||||
- [x] <del>navigazione in ritorno come da FIGMA in HwNewInst</del>
|
||||
- [x] <del>refresh conteggi su approvazione</del>
|
||||
- [x] <del>conteggio istanze in aggiunta HW</del>
|
||||
|
||||
### DoorDefinition Hardware
|
||||
|
||||
Sistemare:
|
||||
- <del>da implementare davvero lettura pdf (da cartella pdf di esempi)</del>
|
||||
- <del>fix cancel/save: globale x Hardware oppure x ognuno con icona?</del>
|
||||
- verificare perché NON si aggiorna al salvataggio pagina dei 18 hw
|
||||
- <del>mancano il totale componenti x ogni hw attivato</del>
|
||||
- [x] <del>da implementare davvero lettura pdf (da cartella pdf di esempi)</del>
|
||||
- [x] <del>fix cancel/save: globale x Hardware oppure x ognuno con icona?</del>
|
||||
- [ ] verificare perché NON si aggiorna al salvataggio pagina dei 18 hw
|
||||
- [x] <del>mancano il totale componenti x ogni hw attivato</del>
|
||||
|
||||
#### Report
|
||||
|
||||
<del>Va inserita una lista dei componenti + elenco quote.</del>
|
||||
Va pensato esportabile in pdf, comprensivo di "check pdf fatto da tizio alle ..."
|
||||
|
||||
- [x] <del>Va inserita una lista dei componenti + elenco quote.</del>
|
||||
- [ ] Va pensato esportabile in pdf, comprensivo di "check pdf fatto da tizio alle ..."
|
||||
|
||||
## Componenti
|
||||
|
||||
### Top
|
||||
|
||||
Da sistemare
|
||||
- <del>btn effettivi</del>
|
||||
- <del>dinamico da user-role?</del>
|
||||
- <del>fix responsive</del>
|
||||
- [x] <del>btn effettivi</del>
|
||||
- [x] <del>dinamico da user-role?</del>
|
||||
- [x] <del>fix responsive</del>
|
||||
Binary file not shown.
@@ -42,6 +42,7 @@ namespace WebDoorCreator.Core
|
||||
public const string rKeyDoorOpType = $"{redisBaseAddr}:Cache:DoorOpType";
|
||||
public const string rKeyGraphicParameters = $"{redisBaseAddr}:Cache:GraphicParameters";
|
||||
public const string rKeyListValues = $"{redisBaseAddr}:Cache:ListValues";
|
||||
public const string rKeyDoorLast = $"{redisBaseAddr}:Cache:DoorList";
|
||||
public const string rKeyOrderDetail = $"{redisBaseAddr}:Cache:OrderDetail";
|
||||
public const string rKeyOrderStatus = $"{redisBaseAddr}:Cache:OrderStatus";
|
||||
public const string rKeyRoles = $"{redisBaseAddr}:Cache:Roles";
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using Microsoft.AspNetCore.DataProtection;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.Data.SqlClient;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Metadata.Internal;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using NLog;
|
||||
using System.Data;
|
||||
@@ -254,6 +252,66 @@ namespace WebDoorCreator.Data.Controllers
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete doorOp instance
|
||||
/// </summary>
|
||||
/// <param name="modOpRec">Record to delete</param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> DoorOpDelete(DoorOpModel modOpRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var currRec = localDbCtx
|
||||
.DbSetDoorOp
|
||||
.Where(x => x.DoorId == modOpRec.DoorId && x.DoorOpId == modOpRec.DoorOpId)
|
||||
.FirstOrDefault();
|
||||
//if is not null edit the record found
|
||||
if (currRec != null)
|
||||
{
|
||||
var recToRem = localDbCtx
|
||||
.DbSetDoorOp
|
||||
.Remove(currRec);
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
fatto = true;
|
||||
}
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante DoorOpDelete: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete doorOp list
|
||||
/// </summary>
|
||||
/// <param name="modOpRec">Record to delete</param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> DoorOpDeleteRange(List<DoorOpModel> listOpRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
localDbCtx
|
||||
.DbSetDoorOp
|
||||
.RemoveRange(listOpRec);
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante DoorOpDeleteRange: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieving current data from door
|
||||
/// </summary>
|
||||
@@ -278,6 +336,7 @@ namespace WebDoorCreator.Data.Controllers
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Retrieving current door operations by id
|
||||
/// </summary>
|
||||
@@ -295,7 +354,7 @@ namespace WebDoorCreator.Data.Controllers
|
||||
.Where(x => x.DoorOpId == doorOpId)
|
||||
.FirstOrDefault();
|
||||
|
||||
if(temp != null)
|
||||
if (temp != null)
|
||||
{
|
||||
dbResult = temp;
|
||||
}
|
||||
@@ -333,106 +392,6 @@ namespace WebDoorCreator.Data.Controllers
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
/// <summary>
|
||||
/// Update door's OP
|
||||
/// </summary>
|
||||
/// <param name="modOpRec">Records to add</param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> DoorOpUpdate(List<DoorOpModel> modOpRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var item in modOpRec)
|
||||
{
|
||||
|
||||
var currRec = localDbCtx
|
||||
.DbSetDoorOp
|
||||
.Where(x => x.DoorId == item.DoorId && x.DoorOpId == item.DoorOpId)
|
||||
.FirstOrDefault();
|
||||
if (currRec != null) //if is not null edit the record found
|
||||
{
|
||||
currRec.JsoncActVal = item.JsoncActVal;
|
||||
currRec.JsoncConfigVal = item.JsoncConfigVal;
|
||||
currRec.userConfirm = item.userConfirm;
|
||||
currRec.DtConfirm = item.DtConfirm;
|
||||
localDbCtx.Entry(currRec).State = EntityState.Modified;
|
||||
}
|
||||
}
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante DoorOpUpdate: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete doorOp instance
|
||||
/// </summary>
|
||||
/// <param name="modOpRec">Record to delete</param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> DoorOpDelete(DoorOpModel modOpRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var currRec = localDbCtx
|
||||
.DbSetDoorOp
|
||||
.Where(x => x.DoorId == modOpRec.DoorId && x.DoorOpId == modOpRec.DoorOpId)
|
||||
.FirstOrDefault();
|
||||
//if is not null edit the record found
|
||||
if (currRec != null)
|
||||
{
|
||||
var recToRem = localDbCtx
|
||||
.DbSetDoorOp
|
||||
.Remove(currRec);
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
fatto = true;
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante DoorOpDelete: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Delete doorOp list
|
||||
/// </summary>
|
||||
/// <param name="modOpRec">Record to delete</param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> DoorOpDeleteRange(List<DoorOpModel> listOpRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
localDbCtx
|
||||
.DbSetDoorOp
|
||||
.RemoveRange(listOpRec);
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
fatto = true;
|
||||
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante DoorOpDeleteRange: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adding a new DoorOpType
|
||||
@@ -534,7 +493,45 @@ namespace WebDoorCreator.Data.Controllers
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Getting door data by orderId
|
||||
/// Update door's OP
|
||||
/// </summary>
|
||||
/// <param name="modOpRec">Records to add</param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> DoorOpUpdate(List<DoorOpModel> modOpRec)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var item in modOpRec)
|
||||
{
|
||||
var currRec = localDbCtx
|
||||
.DbSetDoorOp
|
||||
.Where(x => x.DoorId == item.DoorId && x.DoorOpId == item.DoorOpId)
|
||||
.FirstOrDefault();
|
||||
if (currRec != null) //if is not null edit the record found
|
||||
{
|
||||
currRec.JsoncActVal = item.JsoncActVal;
|
||||
currRec.JsoncConfigVal = item.JsoncConfigVal;
|
||||
currRec.userConfirm = item.userConfirm;
|
||||
currRec.DtConfirm = item.DtConfirm;
|
||||
localDbCtx.Entry(currRec).State = EntityState.Modified;
|
||||
}
|
||||
}
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante DoorOpUpdate: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Getting door data by numRec
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<DoorModel> DoorsGetByOrderId(int orderId)
|
||||
@@ -563,6 +560,36 @@ namespace WebDoorCreator.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Getting door list (last numRec)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public List<DoorModel> DoorsGetLast(int numRec)
|
||||
{
|
||||
List<DoorModel> dbResult = new List<DoorModel>();
|
||||
// retrieving data from db
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
// extracting entire set
|
||||
dbResult = localDbCtx
|
||||
.DbSetDoor
|
||||
.Include(o => o.OrderNav)
|
||||
.Include(t => t.TypeNav)
|
||||
.OrderByDescending(x => x.DoorId)
|
||||
.Take(numRec)
|
||||
.AsNoTracking()
|
||||
.ToList();
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Error in DoorsGetLast:{Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Modifying or adding a new door
|
||||
/// </summary>
|
||||
@@ -626,6 +653,47 @@ namespace WebDoorCreator.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adding a new list value
|
||||
/// </summary>
|
||||
/// <param name="addRec">Record to add</param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> ListValuesAdd(List<ListValuesTempModel> addList)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
// stored di reset ListValues
|
||||
var storedRes = localDbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("exec dbo.stp_ListVal_Prepare");
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
|
||||
// import massivo dati in tab temp
|
||||
localDbCtx
|
||||
.DbSetValuesTemp
|
||||
.AddRange(addList);
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
|
||||
// stored di merge dati in vocabolario
|
||||
storedRes = localDbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("exec dbo.stp_ListVal_Import");
|
||||
|
||||
fatto = true;
|
||||
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante ListValuesAdd: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ListValues list (All)
|
||||
/// </summary>
|
||||
@@ -640,7 +708,6 @@ namespace WebDoorCreator.Data.Controllers
|
||||
{
|
||||
if (tableName != "*" && fieldName != "*")
|
||||
{
|
||||
|
||||
// extracting entire set
|
||||
dbResult = localDbCtx
|
||||
.DbSetValues
|
||||
@@ -673,49 +740,6 @@ namespace WebDoorCreator.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adding a new list value
|
||||
/// </summary>
|
||||
/// <param name="addRec">Record to add</param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> ListValuesAdd(List<ListValuesTempModel> addList)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
// stored di reset ListValues
|
||||
var storedRes = localDbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("exec dbo.stp_ListVal_Prepare");
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
|
||||
// import massivo dati in tab temp
|
||||
localDbCtx
|
||||
.DbSetValuesTemp
|
||||
.AddRange(addList);
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
|
||||
// stored di merge dati in vocabolario
|
||||
storedRes = localDbCtx
|
||||
.Database
|
||||
.ExecuteSqlRaw("exec dbo.stp_ListVal_Import");
|
||||
|
||||
fatto = true;
|
||||
|
||||
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante ListValuesAdd: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adding a new order
|
||||
/// </summary>
|
||||
@@ -742,40 +766,6 @@ namespace WebDoorCreator.Data.Controllers
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updating an order status
|
||||
/// </summary>
|
||||
/// <param name="orderId"></param>
|
||||
/// <param name="newStatus"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> OrderUpdate(int orderId, int newStatus)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var currRec = localDbCtx
|
||||
.DbSetOrders
|
||||
.Where(x => x.OrderId == orderId)
|
||||
.FirstOrDefault();
|
||||
//if is not null edit the record found
|
||||
if (currRec != null)
|
||||
{
|
||||
currRec.Status = newStatus;
|
||||
localDbCtx.Entry(currRec).State = EntityState.Modified;
|
||||
}
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante OrderUpdate: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove order
|
||||
/// </summary>
|
||||
@@ -841,6 +831,40 @@ namespace WebDoorCreator.Data.Controllers
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Updating an order status
|
||||
/// </summary>
|
||||
/// <param name="orderId"></param>
|
||||
/// <param name="newStatus"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<bool> OrderUpdate(int orderId, int newStatus)
|
||||
{
|
||||
bool fatto = false;
|
||||
using (WDCDataContext localDbCtx = new WDCDataContext(_configuration))
|
||||
{
|
||||
try
|
||||
{
|
||||
var currRec = localDbCtx
|
||||
.DbSetOrders
|
||||
.Where(x => x.OrderId == orderId)
|
||||
.FirstOrDefault();
|
||||
//if is not null edit the record found
|
||||
if (currRec != null)
|
||||
{
|
||||
currRec.Status = newStatus;
|
||||
localDbCtx.Entry(currRec).State = EntityState.Modified;
|
||||
}
|
||||
await localDbCtx.SaveChangesAsync();
|
||||
fatto = true;
|
||||
}
|
||||
catch (Exception exc)
|
||||
{
|
||||
Log.Error($"Eccezione durante OrderUpdate: {Environment.NewLine}{exc}");
|
||||
}
|
||||
}
|
||||
return fatto;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Adding a new graphic param
|
||||
/// </summary>
|
||||
@@ -1051,6 +1075,7 @@ namespace WebDoorCreator.Data.Controllers
|
||||
}
|
||||
return dbResult;
|
||||
}
|
||||
|
||||
public Dictionary<string, Dictionary<string, string>> VocLemmaGetAll()
|
||||
{
|
||||
Dictionary<string, Dictionary<string, string>> DTOResult = new Dictionary<string, Dictionary<string, string>>();
|
||||
|
||||
@@ -171,6 +171,16 @@ namespace WebDoorCreator.Data.Services
|
||||
answ = $"{rawData}";
|
||||
}
|
||||
}
|
||||
// se non trovata --> missing!
|
||||
if (string.IsNullOrEmpty(answ))
|
||||
{
|
||||
// leggo missing standard...
|
||||
string missingFilePath = Path.Combine(System.IO.Directory.GetCurrentDirectory(), "wwwroot/images", "MissingOrange.svg");
|
||||
if (File.Exists(missingFilePath))
|
||||
{
|
||||
answ = File.ReadAllText(missingFilePath);
|
||||
}
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.JSInterop;
|
||||
using Newtonsoft.Json;
|
||||
using System.Configuration;
|
||||
using WebDoorCreator.Data.DbModels;
|
||||
using WebDoorCreator.Data.DTO;
|
||||
using WebDoorCreator.Data.Services;
|
||||
@@ -11,11 +9,14 @@ namespace WebDoorCreator.UI.Components.Buttons
|
||||
{
|
||||
public partial class ButtonsDoorDef
|
||||
{
|
||||
#region Public Properties
|
||||
|
||||
[CascadingParameter]
|
||||
public bool B_doorOpUpd { get; set; }
|
||||
|
||||
[CascadingParameter]
|
||||
public string ErrCode { get; set; } = "ERROREEEEE";
|
||||
|
||||
[CascadingParameter]
|
||||
public int idDoor { get; set; } = 0;
|
||||
|
||||
@@ -24,6 +25,28 @@ namespace WebDoorCreator.UI.Components.Buttons
|
||||
|
||||
[CascadingParameter]
|
||||
public bool IsErr { get; set; } = false;
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public async Task SaveYaml(string ddfContent)
|
||||
{
|
||||
await Task.Delay(1);
|
||||
string fileName = Path.Combine("temp", $"Conf.yaml");
|
||||
|
||||
if (File.Exists(fileName))
|
||||
{
|
||||
File.Delete(fileName);
|
||||
}
|
||||
// scrivo!
|
||||
File.WriteAllText(fileName, ddfContent);
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
protected Dictionary<string, string> a { get; set; } = new Dictionary<string, string>();
|
||||
|
||||
protected bool change
|
||||
@@ -62,20 +85,13 @@ namespace WebDoorCreator.UI.Components.Buttons
|
||||
|
||||
[Inject]
|
||||
protected WebDoorCreatorService WDCService { get; set; } = null!;
|
||||
|
||||
[Inject]
|
||||
protected WDCUserService WDCUService { get; set; } = null!;
|
||||
public async Task SaveYaml(string ddfContent)
|
||||
{
|
||||
await Task.Delay(1);
|
||||
string fileName = Path.Combine("temp", $"Conf.yaml");
|
||||
|
||||
if (File.Exists(fileName))
|
||||
{
|
||||
File.Delete(fileName);
|
||||
}
|
||||
// scrivo!
|
||||
File.WriteAllText(fileName, ddfContent);
|
||||
}
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
/// Effettua Richiesta visione porta 3D
|
||||
@@ -117,7 +133,7 @@ namespace WebDoorCreator.UI.Components.Buttons
|
||||
// versione corrente del DDF generato
|
||||
int currVers = await QDataServ.SendCalcReq(idDoor, currDdf);
|
||||
|
||||
if(currVers > 0)
|
||||
if (currVers > 0)
|
||||
{
|
||||
IsErr = false;
|
||||
}
|
||||
@@ -150,6 +166,11 @@ namespace WebDoorCreator.UI.Components.Buttons
|
||||
await Task.Delay(1);
|
||||
NavManager.NavigateTo($"OrderDetails?idOrd={idOrd}");
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private async void WDCRService_EA_UpdDoorOp()
|
||||
{
|
||||
await InvokeAsync(() =>
|
||||
@@ -157,5 +178,7 @@ namespace WebDoorCreator.UI.Components.Buttons
|
||||
StateHasChanged();
|
||||
});
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,9 @@
|
||||
{
|
||||
<div class="d-flex justify-content-between px-2 py-2" style="background-color: @bgColor">
|
||||
<div class="d-flex justify-content-between">
|
||||
<button class="btn btn-danger" @onclick="() => deleteRecord()">Delete Door <i class="fa-solid fa-trash"></i></button>
|
||||
</div>
|
||||
<div class="d-flex justify-content-between">
|
||||
@*<div class="badge rounded-pilll bg-dark text-light">Insert Date</div>*@
|
||||
<div>Insert Date: <b>@currOrderStatus.DateIns</b></div>
|
||||
</div>
|
||||
|
||||
@@ -1,15 +1,66 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Microsoft.JSInterop;
|
||||
using WebDoorCreator.Data.DbModels;
|
||||
using WebDoorCreator.UI.Data;
|
||||
|
||||
namespace WebDoorCreator.UI.Components.DoorDef
|
||||
{
|
||||
public partial class DoorDefOrderTopRow
|
||||
{
|
||||
[Parameter]
|
||||
public OrderStatusViewModel? currOrderStatus { get; set; } = null;
|
||||
#region Public Properties
|
||||
|
||||
[Parameter]
|
||||
public string bgColor { get; set; } = "";
|
||||
|
||||
[CascadingParameter]
|
||||
public int idDoor { get; set; } = 0;
|
||||
|
||||
[Parameter]
|
||||
public OrderStatusViewModel? currOrderStatus { get; set; } = null;
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
[Inject]
|
||||
protected IJSRuntime JSRuntime { get; set; } = null!;
|
||||
|
||||
[Inject]
|
||||
protected WebDoorCreatorService WDCService { get; set; } = null!;
|
||||
[Inject]
|
||||
protected NavigationManager NavManager { get; set; } = null!;
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
/// <summary>
|
||||
/// Elimina porta se richiesto
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
protected async Task deleteRecord()
|
||||
{
|
||||
if (!await JSRuntime.InvokeAsync<bool>("confirm", $"Do you really want to delete this door?"))
|
||||
return;
|
||||
await Task.Delay(1);
|
||||
if (idDoor > 0 && currOrderStatus != null)
|
||||
{
|
||||
var ordDoors = await WDCService.DoorGetByOrderId(currOrderStatus.OrderId);
|
||||
if (ordDoors != null)
|
||||
{
|
||||
var CurrDoor = ordDoors.Where(x => x.DoorId == idDoor).FirstOrDefault();
|
||||
if (CurrDoor != null)
|
||||
{
|
||||
await WDCService.DoorDelete(CurrDoor);
|
||||
if (currOrderStatus != null)
|
||||
{
|
||||
NavManager.NavigateTo($"OrderDetails?idOrd={currOrderStatus.OrderId}&orderStat={currOrderStatus.OrderStatus}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
<div class="" style="height:100%; width:100%; position:sticky; background: linear-gradient(#AFCFD1, #92B2C4);min-height: 55rem;max-height: 55rem;">
|
||||
@*@if (IsErr)
|
||||
{
|
||||
@*<div class="alert alert-warning text-center fs-2">@ErrCode</div>
|
||||
}*@
|
||||
@*<div class="" style="height:100%; width:100%; position:sticky; background: linear-gradient(#AFCFD1, #92B2C4);min-height: 55rem;max-height: 55rem;">*@
|
||||
<div class="" style="height:100%; width:100%; background: linear-gradient(#AFCFD1, #92B2C4);min-height: 50rem;">
|
||||
@if (!string.IsNullOrEmpty(@SvgContent))
|
||||
{
|
||||
<div style="height: 0;width: 15rem;align-items: center;display: flex;flex-wrap: wrap;justify-content: center;">
|
||||
@svgPreview
|
||||
@*<div style="height: 0;width: 15rem;align-items: center;display: flex;flex-wrap: wrap;justify-content: center;">*@
|
||||
<div style="align-items: center;display: flex;flex-wrap: wrap;justify-content: center;">
|
||||
<div style="width: 50%; max-height: 30rem;">
|
||||
@svgPreview
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
@@ -10,7 +10,7 @@
|
||||
<DoorSvgObj LineColor="rgb(39, 174, 96)" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> setCloneDoorMode(""))" ObjId="-2" TextData="@AddFromTemplDict" ImagePath="images/LogoEgwBlue.png"></DoorSvgObj>
|
||||
</div>
|
||||
<div class="col-4 py-1">
|
||||
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> sendToAbh(currOrderId, orderStatus))" ObjId="-3" TextData="@SendOrderDict" Message1="@currOrderId.ToString()" Message2="@orderStatus.ToString()" ImagePath="images/LogoEgwWhite.png"></DoorSvgObj>
|
||||
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> sendToCompany(currOrderId, orderStatus))" ObjId="-3" TextData="@SendOrderDict" Message1="@currOrderId.ToString()" Message2="@orderStatus.ToString()" ImagePath="images/LogoEgwWhite.png"></DoorSvgObj>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace WebDoorCreator.UI.Components.DoorMan
|
||||
protected async Task editRec(string doorId)
|
||||
{
|
||||
await Task.Delay(1);
|
||||
NavManager.NavigateTo($"/DoorDefinition?idOrd={currOrderId}&idDoor={int.Parse(doorId)}");
|
||||
NavManager.NavigateTo($"DoorDefinition?idOrd={currOrderId}&idDoor={int.Parse(doorId)}");
|
||||
}
|
||||
|
||||
protected async Task getBackStatus()
|
||||
@@ -111,9 +111,9 @@ namespace WebDoorCreator.UI.Components.DoorMan
|
||||
{
|
||||
AddFromTemplDict.Add("ADD NEW DOOR FROM TEMPLATE", "");
|
||||
}
|
||||
if (!SendOrderDict.ContainsKey("SEND TO ABH"))
|
||||
if (!SendOrderDict.ContainsKey("SEND TO DCA"))
|
||||
{
|
||||
SendOrderDict.Add("SEND TO ABH", "");
|
||||
SendOrderDict.Add("SEND TO DCA", "");
|
||||
}
|
||||
if (currOrderId != -1)
|
||||
{
|
||||
@@ -147,8 +147,8 @@ namespace WebDoorCreator.UI.Components.DoorMan
|
||||
protected Dictionary<string, string> textDictSetup(DoorModel door)
|
||||
{
|
||||
Dictionary<string, string> answ = new Dictionary<string, string>();
|
||||
answ.Add("Doors N°:", $"{door.Quantity}");
|
||||
answ.Add("Model N°:", $"{door.TypeNav?.TypeId}");
|
||||
answ.Add("Doors N�:", $"{door.Quantity}");
|
||||
answ.Add("Model N�:", $"{door.TypeNav?.TypeId}");
|
||||
answ.Add("DoorPrice:", $"{(door.Quantity * door.UnitCost):C2}");
|
||||
return answ;
|
||||
}
|
||||
@@ -176,7 +176,7 @@ namespace WebDoorCreator.UI.Components.DoorMan
|
||||
}
|
||||
|
||||
// rimando alla pagina... dettaglio...
|
||||
NavManager.NavigateTo($"/DoorDefinition?idOrd={currOrderId}&idDoor={doorId}");
|
||||
NavManager.NavigateTo($"DoorDefinition?idOrd={currOrderId}&idDoor={doorId}");
|
||||
}
|
||||
/// <summary>
|
||||
/// Path del servizio di recupero SVG delle porte
|
||||
@@ -245,7 +245,7 @@ namespace WebDoorCreator.UI.Components.DoorMan
|
||||
}
|
||||
}
|
||||
}
|
||||
protected async void sendToAbh(int ordId, int orderStat)
|
||||
protected async void sendToCompany(int ordId, int orderStat)
|
||||
{
|
||||
if (orderStat == 10)
|
||||
{
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<div class="d-flex justify-content-between w-100 px-4">
|
||||
<div class="d-flex justify-content-between" style="width: 80%;">
|
||||
<a class="navbar-brand" href="/">
|
||||
<img src="/images/DCOlogoCut.png" style="width: 7.5rem;height: 3rem;" />
|
||||
<img src="images/DCOlogoCut.png" style="width: 7.5rem;height: 3rem;" />
|
||||
</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target=".navbar-collapse" aria-controls="navbarSupportedContent"
|
||||
aria-expanded="false" aria-label="Toggle navigation">
|
||||
|
||||
@@ -4,11 +4,7 @@
|
||||
@if (HwToShow != null)
|
||||
{
|
||||
<div class="row m-0">
|
||||
<HardwareNewPanel HwInst="getInstNumber(HwToShow.Value)" HwLabel="@HwToShow.Label" E_act2Rel="setRefOnDelete" Lingua="@Lingua" HwCode="@HwToShow.TableName" HwAdded="@hwAdd" DoorId="@DoorId"></HardwareNewPanel>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<button class="btn btn-info" @onclick="()=>backToList()">BACK TO LIST</button>
|
||||
<HardwareNewPanel HwLabel="@HwToShow.Label" E_act2Rel="setRefOnDelete" Lingua="@Lingua" HwCode="@HwToShow.TableName" HwAdded="@hwAdd" DoorId="@DoorId"></HardwareNewPanel>
|
||||
</div>
|
||||
}
|
||||
else
|
||||
|
||||
@@ -47,12 +47,6 @@ namespace WebDoorCreator.UI.Components.Hardware
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected async Task backToList()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
HwToShow = null;
|
||||
}
|
||||
|
||||
protected async Task hwToAdd()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
@@ -250,6 +244,7 @@ namespace WebDoorCreator.UI.Components.Hardware
|
||||
{
|
||||
if (isDel)
|
||||
{
|
||||
HwToShow = null;
|
||||
await ReloadData();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,16 +6,14 @@ else
|
||||
{
|
||||
@if (DoorOpList != null)
|
||||
{
|
||||
@*<div class="text-center">
|
||||
<div class="row col-4">
|
||||
<div class="rectangle">
|
||||
@(translate(HwLabel))
|
||||
<div class="circle" @onclick="()=>hwToAdd()"></div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<HwSvgObj LineColor="#CFD8DC" LineWidth="8" ObjH="200" ObjW="700" EC_ExeFunct="exeFun" ObjId="RETURN" ItemName="Back to List" ItemCount="0" ShowPlus="false" ImagePath="images/icons/ExitWhite.svg"></HwSvgObj>
|
||||
</div>
|
||||
<div class="col-4"></div>
|
||||
<div class="col-4">
|
||||
<HwSvgObj LineColor="#CFD8DC" LineWidth="8" ObjH="200" ObjW="700" EC_ExeFunct="exeFun" ObjId="@HwCode" ItemName="@(translate(HwLabel))" ItemCount="@HwInst" ShowPlus="true" ImagePath="images/icons/PlusWhite.svg"></HwSvgObj>
|
||||
</div>
|
||||
</div>*@
|
||||
<div class="row col-4">
|
||||
<HwSvgObj LineColor="#CFD8DC" LineWidth="8" ObjH="200" ObjW="700" EC_ExePlus="@(()=> hwToAdd(""))" ObjId="@HwCode" ItemName="@(translate(HwLabel))" ItemCount="@HwInst" ShowPlus="true" ImagePath=""></HwSvgObj>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using Newtonsoft.Json;
|
||||
using WebDoorCreator.Data;
|
||||
using WebDoorCreator.Data.DbModels;
|
||||
using WebDoorCreator.UI.Components.DoorMan;
|
||||
using WebDoorCreator.UI.Components.SvgComp;
|
||||
using WebDoorCreator.UI.Data;
|
||||
using static WebDoorCreator.UI.Data.WDCRefreshService;
|
||||
|
||||
@@ -33,25 +32,95 @@ namespace WebDoorCreator.UI.Components.Hardware
|
||||
[Parameter]
|
||||
public string HwLabel { get; set; } = "";
|
||||
|
||||
[Parameter]
|
||||
public int HwInst { get; set; } = 0;
|
||||
|
||||
[Parameter]
|
||||
public string Lingua { get; set; } = "EN";
|
||||
|
||||
[CascadingParameter]
|
||||
public string UserId { get; set; } = "";
|
||||
|
||||
protected bool _isDoorOpConf { get; set; } = false;
|
||||
|
||||
#endregion Public Properties
|
||||
|
||||
#region Public Methods
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
WDCRefresh.EA_ConfDoorOp -= WDCRefresh_EA_ConfDoorOp;
|
||||
}
|
||||
|
||||
#endregion Public Methods
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
protected List<DoorOpModel>? DoorOpList { get; set; } = null!;
|
||||
protected bool _isDoorOpConf { get; set; } = false;
|
||||
|
||||
protected bool B_doorOpUpd
|
||||
{
|
||||
get => WDCRService.isDoorOpUpd;
|
||||
set => WDCRService.isDoorOpUpd = value;
|
||||
}
|
||||
|
||||
protected List<DoorOpModel> DoorOp2ModList { get; set; } = new List<DoorOpModel>();
|
||||
|
||||
protected List<DoorOpModel>? DoorOpList { get; set; } = null!;
|
||||
|
||||
protected int HwInst
|
||||
{
|
||||
get
|
||||
{
|
||||
int answ = 0;
|
||||
if (DoorOpList != null)
|
||||
{
|
||||
answ = DoorOpList
|
||||
.Where(x => x.ObjectId == HwCode)
|
||||
.ToList()
|
||||
.Count();
|
||||
}
|
||||
return answ;
|
||||
}
|
||||
}
|
||||
|
||||
//protected int instNum { get; set; } = 1;
|
||||
|
||||
protected bool isLoading { get; set; } = false;
|
||||
|
||||
protected List<DoorOpModel>? ListRecord { get; set; } = null;
|
||||
|
||||
[Inject]
|
||||
protected WDCRefreshService WDCRefresh { get; set; } = null!;
|
||||
|
||||
[Inject]
|
||||
protected WDCRefreshService WDCRService { get; set; } = null!;
|
||||
|
||||
[Inject]
|
||||
protected WebDoorCreatorService WDCService { get; set; } = null!;
|
||||
|
||||
[Inject]
|
||||
protected WDCVocabularyService WDVService { get; set; } = null!;
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected async Task exeFun(HwSvgObj.ActionReq action)
|
||||
{
|
||||
await Task.Delay(1);
|
||||
switch (action)
|
||||
{
|
||||
case HwSvgObj.ActionReq.Minus:
|
||||
// nulla (x ora)
|
||||
break;
|
||||
|
||||
case HwSvgObj.ActionReq.Plus:
|
||||
await hwToAdd("");
|
||||
break;
|
||||
|
||||
case HwSvgObj.ActionReq.Select:
|
||||
default:
|
||||
await E_act2Rel.InvokeAsync(true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
protected int getDoorOpInstNum(int doorOpId)
|
||||
{
|
||||
int answ = 0;
|
||||
@@ -62,56 +131,6 @@ namespace WebDoorCreator.UI.Components.Hardware
|
||||
return answ + 1;
|
||||
}
|
||||
|
||||
[Inject]
|
||||
protected WDCRefreshService WDCRefresh { get; set; } = null!;
|
||||
|
||||
[Inject]
|
||||
protected WebDoorCreatorService WDCService { get; set; } = null!;
|
||||
[Inject]
|
||||
protected WDCVocabularyService WDVService { get; set; } = null!;
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
WDCRefresh.EA_ConfDoorOp -= WDCRefresh_EA_ConfDoorOp;
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
WDCRefresh.EA_ConfDoorOp += WDCRefresh_EA_ConfDoorOp;
|
||||
//return base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
protected string translate(string lemma)
|
||||
{
|
||||
string answ = "";
|
||||
|
||||
answ = WDVService.Traduci(Lingua, lemma);
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
private void WDCRefresh_EA_ConfDoorOp(object? sender, EventArgs e)
|
||||
{
|
||||
DOPEventArgs currArgs = (DOPEventArgs)e;
|
||||
// SE sono sula porta indicata + objId corretto --> refresh
|
||||
if (currArgs.DoorId == DoorId && currArgs.ObjectId == HwCode)
|
||||
{
|
||||
var pupd = InvokeAsync(async () => await ReloadData());
|
||||
}
|
||||
}
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Protected Methods
|
||||
|
||||
protected bool B_doorOpUpd
|
||||
{
|
||||
get => WDCRService.isDoorOpUpd;
|
||||
set => WDCRService.isDoorOpUpd = value;
|
||||
}
|
||||
|
||||
[Inject]
|
||||
protected WDCRefreshService WDCRService { get; set; } = null!;
|
||||
protected async Task hwToAdd(string message)
|
||||
{
|
||||
await Task.Delay(1);
|
||||
@@ -236,22 +255,21 @@ namespace WebDoorCreator.UI.Components.Hardware
|
||||
await Task.Delay(1);
|
||||
B_doorOpUpd = true;
|
||||
DoorOp2ModList.Add(currItem);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
WDCRefresh.EA_ConfDoorOp += WDCRefresh_EA_ConfDoorOp;
|
||||
//return base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
protected override async Task OnParametersSetAsync()
|
||||
{
|
||||
await ReloadData();
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Methods
|
||||
|
||||
protected bool isLoading { get; set; } = false;
|
||||
|
||||
protected List<DoorOpModel>? ListRecord { get; set; } = null;
|
||||
|
||||
protected async Task setRefOnDelete(bool isDel)
|
||||
{
|
||||
if (isDel)
|
||||
@@ -260,6 +278,19 @@ namespace WebDoorCreator.UI.Components.Hardware
|
||||
}
|
||||
}
|
||||
|
||||
protected string translate(string lemma)
|
||||
{
|
||||
string answ = "";
|
||||
|
||||
answ = WDVService.Traduci(Lingua, lemma);
|
||||
|
||||
return answ;
|
||||
}
|
||||
|
||||
#endregion Protected Methods
|
||||
|
||||
#region Private Methods
|
||||
|
||||
private async Task ReloadData()
|
||||
{
|
||||
isLoading = true;
|
||||
@@ -269,17 +300,25 @@ namespace WebDoorCreator.UI.Components.Hardware
|
||||
DoorOpList = null;
|
||||
await Task.Delay(1);
|
||||
ListRecord = await WDCService.DoorOpGetByDoorId(DoorId);
|
||||
var tempListVal = await WDCService.ListValuesGetAll(HwCode, "Folder");
|
||||
if (ListRecord != null)
|
||||
{
|
||||
DoorOpList = ListRecord.Where(x => (x.DoorId == DoorId) && (x.ObjectId == HwCode)).ToList();
|
||||
}
|
||||
isLoading = false;
|
||||
//await Task.Delay(50);
|
||||
//await Task.Delay(50);
|
||||
await InvokeAsync(StateHasChanged);
|
||||
}
|
||||
|
||||
private void WDCRefresh_EA_ConfDoorOp(object? sender, EventArgs e)
|
||||
{
|
||||
DOPEventArgs currArgs = (DOPEventArgs)e;
|
||||
// SE sono sula porta indicata + objId corretto --> refresh
|
||||
if (currArgs.DoorId == DoorId && currArgs.ObjectId == HwCode)
|
||||
{
|
||||
var pupd = InvokeAsync(async () => await ReloadData());
|
||||
}
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
<svg viewBox="0 0 @ObjW @ObjH" width="100%" height="100%" xmlns="http://www.w3.org/2000/svg">
|
||||
<g transform="translate(0,@LineDist)">
|
||||
<foreignObject width="@TextAreaWidth" height="100%">
|
||||
<div class="d-flex justify-content-between rectangle p-3 @cardClass" style="@TextStyle" @onclick="()=>execFunc(false)">
|
||||
<div class="d-flex justify-content-between rectangle p-3 @cardClass" style="@TextStyle;" @onclick="() => doExecFunc(ActionReq.Select, false)">
|
||||
<div>
|
||||
@ItemName
|
||||
</div>
|
||||
@@ -29,16 +29,16 @@
|
||||
<image x="@(CircleImg.rad/2)" y="0" href="@ImagePath" width="@CircleImg.rad" height="100%"></image>
|
||||
@if (ShowPlus)
|
||||
{
|
||||
<rect x="0" y="0" width="100%" height="100%" fill="@PlusColor" style="opacity: 20%;" />
|
||||
<rect x="0" y="0" width="100%" height="100%" fill="@PlusColor" style="opacity: 30%;" />
|
||||
}
|
||||
</pattern>
|
||||
</defs>
|
||||
@if (ShowPlus)
|
||||
{
|
||||
<circle id="circleCont" cx="@CircleImg.cx" cy="@CircleImg.cy" r="@CircleImg.rad" fill="url(#@($"contImg_{ObjId}"))" style="cursor: pointer;" @onclick="()=>execPlus()" />
|
||||
<circle id="circleCont" cx="@CircleImg.cx" cy="@CircleImg.cy" r="@CircleImg.rad" fill="url(#@($"contImg_{ObjId}"))" style="cursor: pointer;" @onclick="() => doExecFunc(ActionReq.Plus, true)" />
|
||||
}
|
||||
else
|
||||
{
|
||||
<circle id="circleCont" cx="@CircleImg.cx" cy="@CircleImg.cy" r="@CircleImg.rad" fill="url(#@($"contImg_{ObjId}"))" style="cursor: pointer;" @onclick="()=>execFunc(true)" />
|
||||
<circle id="circleCont" cx="@CircleImg.cx" cy="@CircleImg.cy" r="@CircleImg.rad" fill="url(#@($"contImg_{ObjId}"))" style="cursor: pointer;" @onclick="() => doExecFunc(ActionReq.Select, true)" />
|
||||
}
|
||||
</svg>
|
||||
@@ -1,47 +1,39 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.AspNetCore.Components;
|
||||
using System.Net.Http;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Components.Authorization;
|
||||
using Microsoft.AspNetCore.Components.Forms;
|
||||
using Microsoft.AspNetCore.Components.Routing;
|
||||
using Microsoft.AspNetCore.Components.Web;
|
||||
using Microsoft.AspNetCore.Components.Web.Virtualization;
|
||||
using Microsoft.JSInterop;
|
||||
using WebDoorCreator.UI;
|
||||
using WebDoorCreator.UI.Components;
|
||||
using WebDoorCreator.UI.Components.Buttons;
|
||||
using WebDoorCreator.UI.Components.CompMan;
|
||||
using WebDoorCreator.UI.Components.DoorMan;
|
||||
using WebDoorCreator.UI.Components.DoorDef;
|
||||
using WebDoorCreator.UI.Components.Gen;
|
||||
using WebDoorCreator.UI.Components.Order;
|
||||
using WebDoorCreator.UI.Components.Users;
|
||||
using WebDoorCreator.UI.Components.Hardware;
|
||||
using WebDoorCreator.UI.Components.SvgComp;
|
||||
using WebDoorCreator.UI.Components.Filters;
|
||||
using WebDoorCreator.UI.Components.Report;
|
||||
using WebDoorCreator.UI.Shared;
|
||||
using WebDoorCreator.Data.DbModels;
|
||||
using EgwCoreLib.Razor;
|
||||
|
||||
namespace WebDoorCreator.UI.Components.SvgComp
|
||||
{
|
||||
public partial class HwSvgObj
|
||||
{
|
||||
#region Public Enums
|
||||
|
||||
/// <summary>
|
||||
/// Enum delle azioni associate al controllo
|
||||
/// </summary>
|
||||
public enum ActionReq
|
||||
{
|
||||
Minus,
|
||||
Plus,
|
||||
Select
|
||||
}
|
||||
|
||||
#endregion Public Enums
|
||||
|
||||
#region Public Properties
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<bool> EC_ExeFunct { get; set; }
|
||||
public EventCallback<ActionReq> EC_ExeFunct { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Path img da mostrare
|
||||
/// </summary>
|
||||
[Parameter]
|
||||
public string ImagePath { get; set; } = "";
|
||||
|
||||
[Parameter]
|
||||
public EventCallback<bool> EC_ExePlus { get; set; }
|
||||
public int ItemCount { get; set; } = 0;
|
||||
|
||||
[Parameter]
|
||||
public string ImagePath { get; set; } = "images/LogoEgw.png";
|
||||
public string ItemName { get; set; } = "";
|
||||
|
||||
[Parameter]
|
||||
public string LineColor { get; set; } = "#00838F";
|
||||
@@ -49,16 +41,6 @@ namespace WebDoorCreator.UI.Components.SvgComp
|
||||
[Parameter]
|
||||
public int LineWidth { get; set; } = 8;
|
||||
|
||||
[Parameter]
|
||||
public string ItemName { get; set; } = "";
|
||||
|
||||
[Parameter]
|
||||
public int ItemCount { get; set; } = 0;
|
||||
|
||||
|
||||
[Parameter]
|
||||
public string PlusColor { get; set; } = "green";
|
||||
|
||||
[Parameter]
|
||||
public int ObjH { get; set; } = 204;
|
||||
|
||||
@@ -68,6 +50,9 @@ namespace WebDoorCreator.UI.Components.SvgComp
|
||||
[Parameter]
|
||||
public int ObjW { get; set; } = 450;
|
||||
|
||||
[Parameter]
|
||||
public string PlusColor { get; set; } = "#69FF69";
|
||||
|
||||
[Parameter]
|
||||
public bool ShowPlus { get; set; } = false;
|
||||
|
||||
@@ -78,6 +63,10 @@ namespace WebDoorCreator.UI.Components.SvgComp
|
||||
|
||||
#region Protected Properties
|
||||
|
||||
protected string cardClass
|
||||
{
|
||||
get => ItemCount > 0 ? "bg-primary text-light" : "bg-inactive text-dark";
|
||||
}
|
||||
|
||||
protected CircleData CircleImg { get; set; } = null!;
|
||||
|
||||
@@ -95,11 +84,6 @@ namespace WebDoorCreator.UI.Components.SvgComp
|
||||
get => ObjW - (ObjH * 90 / 100);
|
||||
}
|
||||
|
||||
protected string cardClass
|
||||
{
|
||||
get => ItemCount > 0 ? "bg-primary text-light" : "bg-inactive text-dark";
|
||||
}
|
||||
|
||||
#endregion Protected Properties
|
||||
|
||||
#region Protected Methods
|
||||
@@ -107,20 +91,19 @@ namespace WebDoorCreator.UI.Components.SvgComp
|
||||
/// <summary>
|
||||
/// Invia evento principale
|
||||
/// </summary>
|
||||
/// <param name="forceSend">se true manda sempre EC_ExeFunct, altrimenti NON invia se showPlus attivo...</param>
|
||||
protected void execFunc(bool forceSend)
|
||||
/// <param name="action">Azione richiesta</param>
|
||||
/// <param name="forceSend">
|
||||
/// se true manda sempre EC_ExeFunct, altrimenti NON invia se showPlus attivo...
|
||||
/// </param>
|
||||
protected void doExecFunc(ActionReq action, bool forceSend)
|
||||
{
|
||||
// invia la chiamata richiesta secondo configurazione...
|
||||
if (forceSend || !ShowPlus)
|
||||
{
|
||||
EC_ExeFunct.InvokeAsync(true);
|
||||
EC_ExeFunct.InvokeAsync(action);
|
||||
}
|
||||
}
|
||||
|
||||
protected void execPlus()
|
||||
{
|
||||
EC_ExePlus.InvokeAsync(true);
|
||||
}
|
||||
|
||||
protected override void OnParametersSet()
|
||||
{
|
||||
setupGraphParams();
|
||||
|
||||
@@ -212,7 +212,7 @@ namespace WebDoorCreator.UI.Data
|
||||
TableName = "All",
|
||||
FieldName = "OrderStep",
|
||||
Value = "20",
|
||||
Label = "Sent to ABH",
|
||||
Label = "Sent to DCA",
|
||||
Ordinal = 20,
|
||||
DefaultVal = "#FBC02D",
|
||||
InputType = ""
|
||||
@@ -597,7 +597,47 @@ namespace WebDoorCreator.UI.Data
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Doors list by orderId
|
||||
/// Doors list, last in desc order
|
||||
/// </summary>
|
||||
public async Task<List<DoorModel>?> DoorGetLast(int numRec)
|
||||
{
|
||||
string source = "DB";
|
||||
List<DoorModel>? dbResult = new List<DoorModel>();
|
||||
// cerco da cache
|
||||
string currKey = $"{Constants.rKeyDoorLast}:{numRec}";
|
||||
Stopwatch stopWatch = new Stopwatch();
|
||||
stopWatch.Start();
|
||||
string? rawData = await redisDb.StringGetAsync(currKey);
|
||||
if (!string.IsNullOrEmpty(rawData))
|
||||
{
|
||||
source = "REDIS";
|
||||
var tempResult = JsonConvert.DeserializeObject<List<DoorModel>>(rawData);
|
||||
if (tempResult == null)
|
||||
{
|
||||
dbResult = new List<DoorModel>();
|
||||
}
|
||||
else
|
||||
{
|
||||
dbResult = tempResult;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dbResult = dbController.DoorsGetLast(numRec);
|
||||
rawData = JsonConvert.SerializeObject(dbResult, JSSettings);
|
||||
await redisDb.StringSetAsync(currKey, rawData, FastCache);
|
||||
}
|
||||
if (dbResult == null)
|
||||
{
|
||||
dbResult = new List<DoorModel>();
|
||||
}
|
||||
stopWatch.Stop();
|
||||
TimeSpan ts = stopWatch.Elapsed;
|
||||
Log.Debug($"DoorGetLast | {source} in: {ts.TotalMilliseconds} ms");
|
||||
return dbResult;
|
||||
}
|
||||
/// <summary>
|
||||
/// Doors list by numRec
|
||||
/// </summary>
|
||||
public async Task<List<DoorModel>?> DoorGetByOrderId(int orderId)
|
||||
{
|
||||
@@ -720,7 +760,7 @@ namespace WebDoorCreator.UI.Data
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Doors list by orderId
|
||||
/// Doors list by numRec
|
||||
/// </summary>
|
||||
public async Task<List<DoorOpModel>> DoorOpGetByDoorId(int doorId)
|
||||
{
|
||||
@@ -760,7 +800,7 @@ namespace WebDoorCreator.UI.Data
|
||||
return dbResult;
|
||||
}
|
||||
/// <summary>
|
||||
/// Doors list by orderId
|
||||
/// Doors list by numRec
|
||||
/// </summary>
|
||||
public async Task<DoorOpModel> DoorOpGetById(int doorOpId)
|
||||
{
|
||||
@@ -906,7 +946,7 @@ namespace WebDoorCreator.UI.Data
|
||||
{
|
||||
// cerco il setup del template selezionato
|
||||
var listRecordTmp = await ListValuesGetAll(currDoorOp.ObjectId, "template");
|
||||
if (listRecordTmp != null && actDict.ContainsKey("Folder") && (actDict.ContainsKey("template") || actDict.ContainsKey("shape")) )
|
||||
if (listRecordTmp != null && actDict.ContainsKey("Folder") && (actDict.ContainsKey("template") || actDict.ContainsKey("shape")))
|
||||
{
|
||||
string actKey = actDict["template"];// Path.Combine(actDict["Folder"], actDict["template"]);
|
||||
var firstTemplate = listRecordTmp.Where(x => x.Value == actKey).FirstOrDefault();
|
||||
@@ -962,7 +1002,7 @@ namespace WebDoorCreator.UI.Data
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Doors list by orderId
|
||||
/// Doors list by numRec
|
||||
/// </summary>
|
||||
public async Task<List<DoorOpTypeModel>?> DoorOpTypeGetAll()
|
||||
{
|
||||
@@ -1365,7 +1405,9 @@ namespace WebDoorCreator.UI.Data
|
||||
}
|
||||
else
|
||||
{
|
||||
dbResult = dbController.OrderStatusGetAll(companyId, orderStatus, dataFrom, dataTo);
|
||||
var rawResult = dbController.OrderStatusGetAll(companyId, orderStatus, dataFrom, dataTo);
|
||||
// ordino desc in ram...
|
||||
dbResult = rawResult.OrderByDescending(x => x.OrderId).ToList();
|
||||
rawData = JsonConvert.SerializeObject(dbResult, JSSettings);
|
||||
await redisDb.StringSetAsync(currKey, rawData, UltraLongCache);
|
||||
}
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
@page "/abhapprove"
|
||||
|
||||
<h3>Approved by ABH</h3>
|
||||
|
||||
<img src="images/Approved_by_ABH.png" />
|
||||
|
||||
@code {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
@page "/ApprovedByCompany"
|
||||
|
||||
<h3>Approved by DCA</h3>
|
||||
|
||||
<img src="images/Approved_by_DCA.png" />
|
||||
|
||||
@code {
|
||||
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
@page "/senttoabh"
|
||||
|
||||
<h3>Sent to ABH</h3>
|
||||
|
||||
<img src="images/Sent_to_ABH.png" />
|
||||
|
||||
@code {
|
||||
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
@page "/definingdoorsstage"
|
||||
@page "/DefinitionDoorStage"
|
||||
|
||||
<h3>Order definition stage</h3>
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
</CascadingValue>
|
||||
</CascadingValue>
|
||||
</div>
|
||||
<div class="col-7 pe-0">
|
||||
<div class="col-8 pe-0">
|
||||
<div class="mb-3 ps-1 pe-0">
|
||||
<DoorDefStepList CurrDoorDefStatus="currDefStep" E_CurrStep="setStep"></DoorDefStepList>
|
||||
</div>
|
||||
<div class="px-4">
|
||||
<div class="px-2">
|
||||
<CascadingValue Value="@WDCUService.userId">
|
||||
@if (currDefStep == 10)
|
||||
{
|
||||
@@ -44,7 +44,7 @@
|
||||
</CascadingValue>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-5 p-0">
|
||||
<div class="col-4 p-0">
|
||||
<CascadingValue Value="@idDoor">
|
||||
<DoorPreview SvgContent="@DoorSvgContent"></DoorPreview>
|
||||
</CascadingValue>
|
||||
|
||||
@@ -6,7 +6,6 @@ using WebDoorCreator.Data;
|
||||
using WebDoorCreator.Data.DbModels;
|
||||
using WebDoorCreator.Data.Services;
|
||||
using WebDoorCreator.UI.Data;
|
||||
using static WebDoorCreator.UI.Data.WDCRefreshService;
|
||||
|
||||
namespace WebDoorCreator.UI.Pages
|
||||
{
|
||||
@@ -34,6 +33,7 @@ namespace WebDoorCreator.UI.Pages
|
||||
|
||||
protected int idOrd { get; set; } = 0;
|
||||
|
||||
protected bool isDoorOpConf { get; set; } = false;
|
||||
protected bool IsErr { get; set; } = false;
|
||||
|
||||
[Inject]
|
||||
@@ -50,7 +50,6 @@ namespace WebDoorCreator.UI.Pages
|
||||
protected QueueDataService QDataServ { get; set; } = null!;
|
||||
|
||||
protected string userLang { get; set; } = "EN";
|
||||
protected bool isDoorOpConf { get; set; } = false;
|
||||
|
||||
[Inject]
|
||||
protected WDCRefreshService WDCRService { get; set; } = null!;
|
||||
@@ -75,7 +74,6 @@ namespace WebDoorCreator.UI.Pages
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// gestione rilettura info
|
||||
/// </summary>
|
||||
@@ -101,13 +99,13 @@ namespace WebDoorCreator.UI.Pages
|
||||
}
|
||||
userLang = WDCUService.currLanguage ?? "EN";
|
||||
#if false
|
||||
isDoorOpConf = WDCRService.isDoorOpConf;
|
||||
isDoorOpConf = WDCRService.isDoorOpConf;
|
||||
#endif
|
||||
WDCUService.EA_CurrLanguage += WDUService_EA_CurrLanguage;
|
||||
QDataServ.CalcDonePipe.EA_NewMessage += CalcDonePipe_EA_NewMessage;
|
||||
WDCRService.EA_UpdDoorOp += WDService_EA_DoorOpUpdated;
|
||||
#if false
|
||||
WDCRService.EA_ConfDoorOp += WDService_EA_DoorOpConfirmed;
|
||||
WDCRService.EA_ConfDoorOp += WDService_EA_DoorOpConfirmed;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -215,8 +213,6 @@ namespace WebDoorCreator.UI.Pages
|
||||
|
||||
//if (string.IsNullOrEmpty(DoorSvgContent))
|
||||
//{
|
||||
|
||||
|
||||
//}
|
||||
await Task.Run(async () => await InvokeAsync(StateHasChanged));
|
||||
}
|
||||
@@ -235,14 +231,14 @@ namespace WebDoorCreator.UI.Pages
|
||||
StateHasChanged();
|
||||
}
|
||||
|
||||
#endregion Private Methods
|
||||
|
||||
#if false
|
||||
private void WDService_EA_DoorOpConfirmed()
|
||||
{
|
||||
isDoorOpConf = WDCRService.isDoorOpConf;
|
||||
StateHasChanged();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
#endregion Private Methods
|
||||
}
|
||||
}
|
||||
@@ -31,7 +31,7 @@ namespace WebDoorCreator.UI.Pages
|
||||
protected OrderStatusViewModel? orderView { get; set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// Unità di misura selezionata
|
||||
/// Unit� di misura selezionata
|
||||
/// </summary>
|
||||
protected string currMeaUnit { get; set; } = "mm";
|
||||
|
||||
@@ -67,7 +67,7 @@ namespace WebDoorCreator.UI.Pages
|
||||
}
|
||||
|
||||
// rimando alla pagina... dettaglio...
|
||||
NavManager.NavigateTo($"/DoorDefinition?idOrd={idOrd}&idDoor={doorId}");
|
||||
NavManager.NavigateTo($"DoorDefinition?idOrd={idOrd}&idDoor={doorId}");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -5,12 +5,19 @@
|
||||
padding: 1rem 4rem 4.5rem 4rem;
|
||||
}
|
||||
.cardDoors {
|
||||
/*width: 100%;
|
||||
//transform: translate(0, -53px);
|
||||
border-radius: 60px 60px 0 0;
|
||||
transform: translate(0, -120px);
|
||||
background-color: #FFF;
|
||||
padding: 0;
|
||||
box-shadow: rgba(0, 0, 0, 0.45) 0px -24px 27px -20px;*/
|
||||
width: 100%;
|
||||
border-radius: 60px 60px 0 0;
|
||||
border-radius: 60px;
|
||||
transform: translate(0, -120px);
|
||||
background-color: #FFF;
|
||||
padding: 0;
|
||||
box-shadow: rgba(0, 0, 0, 0.45) 0px -24px 27px -20px;
|
||||
background-color: #FFF;
|
||||
box-shadow: rgba(0, 0, 0, 0.45) 0px 20px 22px -2px;
|
||||
}
|
||||
.testataOrder {
|
||||
border: 3px solid var(--bgStepColor);
|
||||
|
||||
@@ -6,13 +6,21 @@
|
||||
}
|
||||
|
||||
.cardDoors {
|
||||
width: 100%;
|
||||
/*width: 100%;
|
||||
//transform: translate(0, -53px);
|
||||
border-radius: 60px 60px 0 0;
|
||||
transform: translate(0, -120px);
|
||||
background-color: #FFF;
|
||||
padding: 0;
|
||||
box-shadow: rgba(0, 0, 0, 0.45) 0px -24px 27px -20px;
|
||||
box-shadow: rgba(0, 0, 0, 0.45) 0px -24px 27px -20px;*/
|
||||
|
||||
|
||||
width: 100%;
|
||||
border-radius: 60px;
|
||||
transform: translate(0, -120px);
|
||||
padding: 0;
|
||||
background-color: #FFF;
|
||||
box-shadow: rgba(0, 0, 0, 0.45) 0px 20px 22px -2px;
|
||||
}
|
||||
|
||||
.testataOrder {
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
.cardStatus{border-radius:60px;background-color:var(--bgStepColor);transform:translate(0,-65px);padding:1rem 4rem 4.5rem 4rem;}.cardDoors{width:100%;border-radius:60px 60px 0 0;transform:translate(0,-120px);background-color:#fff;padding:0;box-shadow:rgba(0,0,0,.45) 0 -24px 27px -20px;}.testataOrder{border:3px solid var(--bgStepColor);padding:1rem 1rem 4.5rem 1rem;border-radius:60px 60px 20px 20px;transform:translate(63px,0);width:93%;z-index:-99999;position:relative;font-size:17px;background-color:#031926;}
|
||||
.cardStatus{border-radius:60px;background-color:var(--bgStepColor);transform:translate(0,-65px);padding:1rem 4rem 4.5rem 4rem;}.cardDoors{width:100%;border-radius:60px;transform:translate(0,-120px);padding:0;background-color:#fff;box-shadow:rgba(0,0,0,.45) 0 20px 22px -2px;}.testataOrder{border:3px solid var(--bgStepColor);padding:1rem 1rem 4.5rem 1rem;border-radius:60px 60px 20px 20px;transform:translate(63px,0);width:93%;z-index:-99999;position:relative;font-size:17px;background-color:#031926;}
|
||||
@@ -3,7 +3,7 @@
|
||||
<AuthorizeView>
|
||||
<Authorized>
|
||||
|
||||
<div style="border-radius: 18px; padding: 1rem 4rem 0.5rem 4rem; box-shadow: rgba(0, 0, 0, 0.45) 0px 20px 22px -9px; margin-top: 0.5rem; margin-bottom: 1rem;">
|
||||
<div class="cardOrders">
|
||||
<div class="row mb-3">
|
||||
<div class="fw-bold fs-2 text-start col-4">
|
||||
WEB DOOR CREATOR
|
||||
|
||||
@@ -178,7 +178,7 @@ namespace WebDoorCreator.UI.Pages
|
||||
await Task.Delay(1);
|
||||
currOrderId = orderId;
|
||||
await ReloadData();
|
||||
goToDefPage = $"/DoorDefinition?idOrd={orderId}";
|
||||
goToDefPage = $"DoorDefinition?idOrd={orderId}";
|
||||
}
|
||||
|
||||
protected async Task catchDoorChange(bool isChanged)
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
.cardOrders {
|
||||
width: 100%;
|
||||
border-radius: 18px;
|
||||
padding: 1rem 4rem 0.5rem 4rem;
|
||||
box-shadow: rgba(0, 0, 0, 0.45) 0px 20px 22px 3px;
|
||||
/*box-shadow: rgba(0, 0, 0, 0.45) 0px 20px 22px -9px;*/
|
||||
margin-top: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
.cardOrders {
|
||||
width: 100%;
|
||||
border-radius: 18px;
|
||||
padding: 1rem 4rem 0.5rem 4rem;
|
||||
box-shadow: rgba(0, 0, 0, 0.45) 0px 20px 22px 3px;
|
||||
/*box-shadow: rgba(0, 0, 0, 0.45) 0px 20px 22px -9px;*/
|
||||
margin-top: 0.5rem;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
.cardOrders{width:100%;border-radius:18px;padding:1rem 4rem .5rem 4rem;box-shadow:rgba(0,0,0,.45) 0 20px 22px 3px;margin-top:.5rem;margin-bottom:1rem;}
|
||||
@@ -0,0 +1,9 @@
|
||||
@page "/SentToCompany"
|
||||
|
||||
<h3>Sent to DCA</h3>
|
||||
|
||||
<img src="images/Sent_to_DCA.png" />
|
||||
|
||||
@code {
|
||||
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
@using WebDoorCreator.UI.Components.SvgComp
|
||||
@using WebDoorCreator.UI.Data
|
||||
@page "/TestPage"
|
||||
|
||||
@inject WebDoorCreatorService WDCService
|
||||
|
||||
<h3>TestPage</h3>
|
||||
|
||||
|
||||
@@ -18,34 +21,49 @@
|
||||
<div class="col-3">
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> exeFun())" ObjId="1" TextData="@msgList" Message1="messaggio 1" Message2="messaggio 2" ImagePath="@svgUrl(196)"></DoorSvgObj>
|
||||
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> exeDoor())" ObjId="1" TextData="@msgList" Message1="messaggio 1" Message2="messaggio 2" ImagePath="@svgUrl(196)"></DoorSvgObj>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> exeFun())" ObjId="2" TextData="@msgList" Message1="messaggio 1" Message2="messaggio 2" ShowPlusMinus="true" ImagePath="@svgUrl(186)"></DoorSvgObj>
|
||||
<DoorSvgObj LineColor="#8E44AD" LineWidth="8" ObjH="200" ObjW="900" LeftTextClass="col-10 fs-1 fw-bold" RightTextClass="col-2" EC_ExeFunct="@(()=> exeDoor())" ObjId="2" TextData="@msgList" Message1="messaggio 1" Message2="messaggio 2" ShowPlusMinus="true" ImagePath="@svgUrl(186)"></DoorSvgObj>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row my-2">
|
||||
<div class="col-4">
|
||||
<HwSvgObj LineColor="#CFD8DC" LineWidth="8" ObjH="200" ObjW="700" EC_ExeFunct="@(()=> exeFun())" ObjId="21" ItemName="Flush Pull" ItemCount="2" ImagePath="@svgUrl(196)"></HwSvgObj>
|
||||
<div class="col-3">
|
||||
<HwSvgObj LineColor="#CFD8DC" LineWidth="8" ObjH="200" ObjW="700" EC_ExeFunct="@exeFun" ObjId="21" ItemName="Flush Pull" ItemCount="2" ImagePath="@svgUrl(196)"></HwSvgObj>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<div class="col-3">
|
||||
<HwSvgObj LineColor="#CFD8DC" LineWidth="8" ObjH="200" ObjW="700" EC_ExeFunct="@exeFun" ObjId="22" ItemName="Hinge" ItemCount="0" ImagePath="images/icons/ExitWhite.svg"></HwSvgObj>
|
||||
</div>
|
||||
<div class="col-4">
|
||||
<HwSvgObj LineColor="#CFD8DC" LineWidth="8" ObjH="200" ObjW="700" EC_ExeFunct="@(()=> exeFun())" ObjId="22" ItemName="Hinge" ItemCount="0" ShowPlus="true" ImagePath="@svgUrl(186)"></HwSvgObj>
|
||||
<div class="col-3">
|
||||
<HwSvgObj LineColor="#CFD8DC" LineWidth="8" ObjH="200" ObjW="700" EC_ExeFunct="@exeFun" ObjId="23" ItemName="Hinge" ItemCount="0" ImagePath="images/icons/PlusWhite.svg" ShowPlus="true"></HwSvgObj>
|
||||
</div>
|
||||
<div class="col-3">
|
||||
<HwSvgObj LineColor="#CFD8DC" LineWidth="8" ObjH="200" ObjW="700" EC_ExeFunct="@exeFun" ObjId="24" ItemName="Hinge" ItemCount="0" ShowPlus="true" ImagePath="@svgUrl(186)"></HwSvgObj>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row my-2">
|
||||
@for (int i = 183; i < 205; i++)
|
||||
@if (DoorsList == null)
|
||||
{
|
||||
<div class="col-1 text-center border rounded-2 m-2" style="height:100%; background: linear-gradient(#AFCFD1, #92B2C4);">
|
||||
<b>@i</b><br />
|
||||
<img width="80" height="80" src="@svgUrl(i)" />
|
||||
</div>
|
||||
<LoadingData></LoadingData>
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach (var door in DoorsList)
|
||||
{
|
||||
|
||||
@*}
|
||||
for (int i = 183; i < 220; i++)
|
||||
{*@
|
||||
<div class="col-1 text-center border rounded-2 m-2" style="height:100%; background: linear-gradient(#AFCFD1, #92B2C4);">
|
||||
<b>@door.DoorId</b><br />
|
||||
<img width="80" height="80" src="@svgUrl(door.DoorId)" />
|
||||
</div>
|
||||
}
|
||||
}
|
||||
</div>
|
||||
|
||||
@@ -80,15 +98,22 @@
|
||||
|
||||
protected Dictionary<string, string> msgList = new Dictionary<string, string>();
|
||||
|
||||
protected override void OnInitialized()
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
msgList = new Dictionary<string, string>();
|
||||
msgList.Add("T1", "Titolo");
|
||||
msgList.Add("M1", "Messaggio 1");
|
||||
msgList.Add("M2", "MEssaggio 2");
|
||||
DoorsList = await WDCService.DoorGetLast(100);
|
||||
}
|
||||
|
||||
protected async Task exeFun()
|
||||
protected List<DoorModel>? DoorsList { get; set; } = null;
|
||||
|
||||
protected async Task exeDoor()
|
||||
{
|
||||
await Task.Delay(1);
|
||||
}
|
||||
protected async Task exeFun(HwSvgObj.ActionReq action)
|
||||
{
|
||||
await Task.Delay(1);
|
||||
}
|
||||
|
||||
@@ -62,6 +62,10 @@ builder.Services.AddBlazoredLocalStorage();
|
||||
builder.Services.AddBlazoredSessionStorage();
|
||||
var app = builder.Build();
|
||||
|
||||
// aggiunt base URL x routing corretto
|
||||
//app.UsePathBase("/WDC/UI");
|
||||
app.UsePathBase(configuration["RumtimeOpt:BaseUrl"]);
|
||||
|
||||
// Configure the HTTP request pipeline.
|
||||
if (app.Environment.IsDevelopment())
|
||||
{
|
||||
|
||||
@@ -1,28 +1,30 @@
|
||||
{
|
||||
"iisSettings": {
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:38024",
|
||||
"sslPort": 44365
|
||||
}
|
||||
},
|
||||
"profiles": {
|
||||
"WebDoorCreator.UI": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"applicationUrl": "https://localhost:7196;http://localhost:5013",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
"iisSettings": {
|
||||
"windowsAuthentication": false,
|
||||
"anonymousAuthentication": true,
|
||||
"iisExpress": {
|
||||
"applicationUrl": "http://localhost:38024",
|
||||
"launchUrl": "https://localhost:38024",
|
||||
"sslPort": 44365
|
||||
}
|
||||
},
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
"profiles": {
|
||||
"WebDoorCreator.UI": {
|
||||
"commandName": "Project",
|
||||
"dotnetRunMessages": true,
|
||||
"launchBrowser": true,
|
||||
"applicationUrl": "https://localhost:7196;http://localhost:5013",
|
||||
"launchUrl": "https://localhost:7196",
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
},
|
||||
"IIS Express": {
|
||||
"commandName": "IISExpress",
|
||||
"launchBrowser": true,
|
||||
"environmentVariables": {
|
||||
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,96 +1,95 @@
|
||||
|
||||
@*<AuthorizeView>
|
||||
@*<AuthorizeView>
|
||||
<Authorized>*@
|
||||
<div class="text-start d-flex justify-content-between w-50" style="height: 70%;">
|
||||
@if (NavManager.Uri.Contains("DoorDefinition"))
|
||||
{
|
||||
<div>
|
||||
<a href="sizing" target="_blank">
|
||||
<img src="images/Sizing.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Sizing definition page</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="opening" target="_blank">
|
||||
<img src="images/Opening.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Opening definition page</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="edges" target="_blank">
|
||||
<img src="images/Edges.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Edges definition page</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="hwallclosed" target="_blank">
|
||||
<img src="images/Hardware_all_closed.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Hardware list page</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="hwadd" target="_blank">
|
||||
<img src="images/Hardware_flush_pull_open_add_one.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">New hw page</div>
|
||||
</a>
|
||||
</div>
|
||||
}
|
||||
else if (NavManager.Uri.Contains("OrdersHomePage"))
|
||||
{
|
||||
<div>
|
||||
<a href="ordershome" target="_blank">
|
||||
<img src="images/Home_page_orders.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Orders home</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="ordershomefilter" target="_blank">
|
||||
<img src="images/Home_page_orders_orange_filter.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Orders home filtered</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="definingdoorsstage" target="_blank">
|
||||
<img src="images/Defining_Doors_stage.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Defining doors</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="senttoabh" target="_blank">
|
||||
<img src="images/Sent_to_ABH.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Sent to abh</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="abhapprove" target="_blank">
|
||||
<img src="images/Approved_by_ABH.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Approved by ABH</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="userapprove" target="_blank">
|
||||
<img src="images/Approved_by_user.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Approved by user</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="production" target="_blank">
|
||||
<img src="images/InProduction.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">In production</div>
|
||||
</a>
|
||||
</div>
|
||||
}
|
||||
<div class="text-start d-flex justify-content-between w-50" style="height: 70%;">
|
||||
@if (NavManager.Uri.Contains("DoorDefinition"))
|
||||
{
|
||||
<div>
|
||||
<a href="sizing" target="_blank">
|
||||
<img src="images/Sizing.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Sizing definition page</div>
|
||||
</a>
|
||||
</div>
|
||||
@*</Authorized>
|
||||
|
||||
<div>
|
||||
<a href="opening" target="_blank">
|
||||
<img src="images/Opening.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Opening definition page</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="edges" target="_blank">
|
||||
<img src="images/Edges.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Edges definition page</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="hwallclosed" target="_blank">
|
||||
<img src="images/Hardware_all_closed.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Hardware list page</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="hwadd" target="_blank">
|
||||
<img src="images/Hardware_flush_pull_open_add_one.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">New hw page</div>
|
||||
</a>
|
||||
</div>
|
||||
}
|
||||
else if (NavManager.Uri.Contains("OrdersHomePage"))
|
||||
{
|
||||
<div>
|
||||
<a href="ordershome" target="_blank">
|
||||
<img src="images/Home_page_orders.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Orders home</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="ordershomefilter" target="_blank">
|
||||
<img src="images/Home_page_orders_orange_filter.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Orders home filtered</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="definingdoorsstage" target="_blank">
|
||||
<img src="images/Defining_Doors_stage.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Defining doors</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="SentToCompany" target="_blank">
|
||||
<img src="images/Sent_to_DCA.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Sent to DCA</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a href="ApprovedByCompany" target="_blank">
|
||||
<img src="images/Approved_by_DCA.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Approved by DCA</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="userapprove" target="_blank">
|
||||
<img src="images/Approved_by_user.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">Approved by user</div>
|
||||
</a>
|
||||
</div>
|
||||
<div>
|
||||
<a href="production" target="_blank">
|
||||
<img src="images/InProduction.png" style="height: 100%;" />
|
||||
<div class="btn btn-sm btn-info">In production</div>
|
||||
</a>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
@*</Authorized>
|
||||
<NotAuthorized>*@
|
||||
@if (!NavManager.Uri.Contains("Register") || !NavManager.Uri.Contains("Login"))
|
||||
{
|
||||
<a href="Identity/Account/Register">Register</a>
|
||||
<a href="Identity/Account/Login">Log in</a>
|
||||
}
|
||||
@*</NotAuthorized>
|
||||
@if (!NavManager.Uri.Contains("Register") || !NavManager.Uri.Contains("Login"))
|
||||
{
|
||||
<a href="Identity/Account/Register">Register</a>
|
||||
<a href="Identity/Account/Login">Log in</a>
|
||||
}
|
||||
@*</NotAuthorized>
|
||||
</AuthorizeView>*@
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"DetailedErrors": true,
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"RumtimeOpt": {
|
||||
"MaxDayCalcCache": 7,
|
||||
"BaseUrl": "/WDC/UI"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"DetailedErrors": true,
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"RumtimeOpt": {
|
||||
"MaxDayCalcCache": 7,
|
||||
"BaseUrl": "/WDC/UI"
|
||||
}
|
||||
}
|
||||
@@ -1,47 +1,48 @@
|
||||
{
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
"Logging": {
|
||||
"LogLevel": {
|
||||
"Default": "Information",
|
||||
"Microsoft.AspNetCore": "Warning"
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*",
|
||||
"ConnectionStrings": {
|
||||
"Identity.DB": "Server=SQL2016DEV;Database=WebDoorCreator; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=WebDoorCreator.UI;",
|
||||
"Redis": "nkcredis.steamware.net:6379, DefaultDatabase=11, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false, password=BtN9Py1wtLfLRvmzWnOPJ7RytDM+CLiVsJ/16zduNTlV8IOPGNrtzJSXPUnImA5PqmUMhKaUqo9NdHIG",
|
||||
"WDC.DB": "Server=SQL2016DEV;Database=WebDoorCreator; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=WebDoorCreator.UI;"
|
||||
},
|
||||
"ExternalProviders": {
|
||||
"MailKit": {
|
||||
"SMTP": {
|
||||
"Address": "smtp-mail.outlook.com",
|
||||
"Port": "587",
|
||||
"Account": "steamwarebot@outlook.it",
|
||||
"Password": "siamoInViaNazionale93",
|
||||
"SenderEmail": "steamwarebot@outlook.it",
|
||||
"SenderName": "Steamware Email BOT"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SetupOpt": {
|
||||
"DisableIdentMigrate": true,
|
||||
"DisableWDCMigrate": true
|
||||
},
|
||||
"RumtimeOpt": {
|
||||
"MaxDayCalcCache": 7,
|
||||
"BaseUrl": "/WDC/UI"
|
||||
},
|
||||
"ConfDDF": {
|
||||
"Header": [
|
||||
"#WEBDOORCREATOR",
|
||||
"#Config: EgtCompoBase",
|
||||
"#Door1",
|
||||
""
|
||||
],
|
||||
"Footer": [
|
||||
"",
|
||||
"---"
|
||||
],
|
||||
"VersNumber": "2",
|
||||
"RemoveDoorOps": true
|
||||
}
|
||||
},
|
||||
"AllowedHosts": "*",
|
||||
"ConnectionStrings": {
|
||||
"Identity.DB": "Server=SQL2016DEV;Database=WebDoorCreator; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=WebDoorCreator.UI;",
|
||||
"Redis": "nkcredis.steamware.net:6379, DefaultDatabase=11, connectTimeout=5000, syncTimeout=5000, asyncTimeout=5000, abortConnect=false, ssl=false, password=BtN9Py1wtLfLRvmzWnOPJ7RytDM+CLiVsJ/16zduNTlV8IOPGNrtzJSXPUnImA5PqmUMhKaUqo9NdHIG",
|
||||
"WDC.DB": "Server=SQL2016DEV;Database=WebDoorCreator; User ID=sa;Password=keyhammer16; integrated security=False; MultipleActiveResultSets=True; App=WebDoorCreator.UI;"
|
||||
},
|
||||
"ExternalProviders": {
|
||||
"MailKit": {
|
||||
"SMTP": {
|
||||
"Address": "smtp-mail.outlook.com",
|
||||
"Port": "587",
|
||||
"Account": "steamwarebot@outlook.it",
|
||||
"Password": "siamoInViaNazionale93",
|
||||
"SenderEmail": "steamwarebot@outlook.it",
|
||||
"SenderName": "Steamware Email BOT"
|
||||
}
|
||||
}
|
||||
},
|
||||
"SetupOpt": {
|
||||
"DisableIdentMigrate": true,
|
||||
"DisableWDCMigrate": true
|
||||
},
|
||||
"RumtimeOpt": {
|
||||
"MaxDayCalcCache": 7
|
||||
},
|
||||
"ConfDDF": {
|
||||
"Header": [
|
||||
"#WEBDOORCREATOR",
|
||||
"#Config: EgtCompoBase",
|
||||
"#Door1",
|
||||
""
|
||||
],
|
||||
"Footer": [
|
||||
"",
|
||||
"---"
|
||||
],
|
||||
"VersNumber": "2",
|
||||
"RemoveDoorOps": true
|
||||
}
|
||||
}
|
||||
@@ -78,5 +78,9 @@
|
||||
{
|
||||
"outputFile": "Components/SvgComp/HwSvgObj.razor.css",
|
||||
"inputFile": "Components/SvgComp/HwSvgObj.razor.less"
|
||||
},
|
||||
{
|
||||
"outputFile": "Pages/OrdersHomePage.razor.css",
|
||||
"inputFile": "Pages/OrdersHomePage.razor.less"
|
||||
}
|
||||
]
|
||||
|
Before Width: | Height: | Size: 112 KiB After Width: | Height: | Size: 112 KiB |
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg41"
|
||||
inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"
|
||||
sodipodi:docname="Missing.svg">
|
||||
<defs
|
||||
id="defs35" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.35"
|
||||
inkscape:cx="400"
|
||||
inkscape:cy="560"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1406"
|
||||
inkscape:window-height="1198"
|
||||
inkscape:window-x="78"
|
||||
inkscape:window-y="78"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata38">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Livello 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="fill:#454c55;stroke:none;stroke-width:0.460184"
|
||||
d="M 67.284871,27.840094 C 54.209292,29.845169 46.354698,40.041553 37.483749,49.537223 30.786635,56.705844 22.139596,63.788212 18.364192,73.342671 13.425835,85.840068 15.688899,101.95827 15.688899,115.24029 v 83.31911 42.37372 c 0,7.58822 -0.702068,15.87777 3.692177,22.37522 8.317054,12.29838 27.557626,8.09577 39.897523,8.09577 h 79.617931 c 12.51202,0 26.8348,2.07774 39.14178,-0.29328 20.95597,-4.03694 15.56774,-34.14276 15.56774,-50.65042 V 90.482618 57.154964 c 0,-6.779801 0.48839,-13.912333 -2.82399,-19.996591 C 184.24273,25.145859 170.34873,27.636197 159.357,27.636197 H 97.975587 c -9.965149,0 -20.828764,-1.308344 -30.690716,0.203897 M 65.950496,40.491145 V 68.58159 c 0,3.334243 0.635156,8.230973 -1.880591,10.762918 -2.011793,2.023943 -4.923857,1.615918 -7.460068,1.615918 -5.485632,0 -10.971706,-0.02807 -16.457327,3.51e-4 -3.463614,0.01808 -8.012815,1.523078 -7.777343,6.188941 0.285906,5.66571 6.133826,5.71331 10.001297,5.71331 9.131159,0 21.653851,2.511 28.904873,-4.80536 C 76.981364,82.306261 76.62552,75.34031 76.62552,67.629244 V 39.538921 h 78.72834 c 6.51178,0 22.20629,-3.148174 26.00571,3.816212 2.13101,3.906515 1.12667,9.914114 1.12667,14.275944 v 32.375431 120.931732 37.1365 c 0,5.08581 -0.86957,10.76627 -6.6719,11.37664 -12.057,1.26788 -24.7972,0.0499 -36.91781,0.0499 H 64.616109 38.818123 c -3.881264,0 -8.102032,0.52467 -10.615648,-3.37704 -2.606754,-4.04646 -1.39376,-10.98766 -1.39376,-15.66733 V 202.84434 121.42967 94.767548 c 0,-5.82043 -0.394349,-11.702756 1.918165,-17.139934 2.59243,-6.095472 7.972696,-10.587133 12.315209,-15.235482 6.361872,-6.809749 15.302659,-20.997658 24.908407,-21.901027 M 82.852622,149.04404 v -0.47611 c 2.228416,-1.68019 4.853137,-4.06073 6.164829,-6.66553 2.329384,-4.62682 -1.57368,-9.44601 -6.164829,-8.43713 -3.058838,0.67179 -5.856141,4.41734 -7.561479,7.00881 -2.09231,-2.23963 -4.330057,-5.57095 -7.116681,-6.80503 -4.373656,-1.9373 -8.256257,2.08393 -7.460067,6.80503 0.576892,3.41988 5.655983,5.35289 5.655983,8.56996 0,4.59303 -10.127493,8.24193 -4.321609,14.09569 5.910848,5.95899 8.604069,-4.54684 13.241932,-4.54684 3.099767,0 4.747268,5.79806 8.451512,6.10419 3.582359,0.29567 6.831128,-3.17374 5.852131,-7.08307 -0.79484,-3.17279 -4.32427,-6.70886 -6.741722,-8.56997 M 122.88576,133.6857 c -9.48787,3.93362 2.64207,11.32569 2.64207,15.35834 0,2.57527 -4.14146,4.93963 -5.25034,7.14164 -1.98378,3.9398 0.69032,8.54283 4.83046,8.52854 2.37029,-0.008 4.14858,-1.65495 5.7823,-3.31039 0.99056,-1.00411 2.41256,-3.18612 4.00314,-2.73905 3.99602,1.12314 5.45272,7.87723 10.67459,5.7376 5.41757,-2.22011 3.38931,-8.28002 0.43857,-11.54947 -0.94741,-1.04934 -2.98768,-2.58336 -2.57001,-4.28498 0.66941,-2.72953 4.0823,-4.4221 5.14402,-7.14163 1.96465,-5.03392 -2.79463,-10.02972 -7.46007,-7.53253 -2.13189,1.14124 -4.21841,5.60143 -6.6719,5.60143 -4.45949,0 -5.69601,-8.24194 -11.56283,-5.8095 m -24.46539,56.98172 c -11.577511,1.64734 -22.445577,5.80805 -31.580295,13.80716 -3.447589,3.019 -10.885415,12.52215 -1.77917,14.39182 5.186728,1.06506 11.254602,-7.31684 15.567751,-9.8983 9.005719,-5.39003 19.519294,-7.81533 29.801124,-6.46365 7.65399,1.00649 15.44988,3.90551 21.79485,8.6428 3.52988,2.63526 7.64111,8.85895 12.45376,7.69677 3.41067,-0.82366 5.02037,-5.08246 3.47917,-8.3819 -1.80408,-3.86172 -6.4366,-7.01927 -9.70583,-9.35316 -11.39247,-8.13337 -26.34952,-12.38788 -40.03136,-10.44154 z"
|
||||
id="path22" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="210mm"
|
||||
height="297mm"
|
||||
viewBox="0 0 210 297"
|
||||
version="1.1"
|
||||
id="svg41"
|
||||
inkscape:version="1.0.2-2 (e86c870879, 2021-01-15)"
|
||||
sodipodi:docname="Missing.svg">
|
||||
<defs
|
||||
id="defs35" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.35"
|
||||
inkscape:cx="400"
|
||||
inkscape:cy="560"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1406"
|
||||
inkscape:window-height="1198"
|
||||
inkscape:window-x="78"
|
||||
inkscape:window-y="78"
|
||||
inkscape:window-maximized="0" />
|
||||
<metadata
|
||||
id="metadata38">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Livello 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1">
|
||||
<path
|
||||
style="fill:#FD8C00;stroke:none;stroke-width:0.460184"
|
||||
d="M 67.284871,27.840094 C 54.209292,29.845169 46.354698,40.041553 37.483749,49.537223 30.786635,56.705844 22.139596,63.788212 18.364192,73.342671 13.425835,85.840068 15.688899,101.95827 15.688899,115.24029 v 83.31911 42.37372 c 0,7.58822 -0.702068,15.87777 3.692177,22.37522 8.317054,12.29838 27.557626,8.09577 39.897523,8.09577 h 79.617931 c 12.51202,0 26.8348,2.07774 39.14178,-0.29328 20.95597,-4.03694 15.56774,-34.14276 15.56774,-50.65042 V 90.482618 57.154964 c 0,-6.779801 0.48839,-13.912333 -2.82399,-19.996591 C 184.24273,25.145859 170.34873,27.636197 159.357,27.636197 H 97.975587 c -9.965149,0 -20.828764,-1.308344 -30.690716,0.203897 M 65.950496,40.491145 V 68.58159 c 0,3.334243 0.635156,8.230973 -1.880591,10.762918 -2.011793,2.023943 -4.923857,1.615918 -7.460068,1.615918 -5.485632,0 -10.971706,-0.02807 -16.457327,3.51e-4 -3.463614,0.01808 -8.012815,1.523078 -7.777343,6.188941 0.285906,5.66571 6.133826,5.71331 10.001297,5.71331 9.131159,0 21.653851,2.511 28.904873,-4.80536 C 76.981364,82.306261 76.62552,75.34031 76.62552,67.629244 V 39.538921 h 78.72834 c 6.51178,0 22.20629,-3.148174 26.00571,3.816212 2.13101,3.906515 1.12667,9.914114 1.12667,14.275944 v 32.375431 120.931732 37.1365 c 0,5.08581 -0.86957,10.76627 -6.6719,11.37664 -12.057,1.26788 -24.7972,0.0499 -36.91781,0.0499 H 64.616109 38.818123 c -3.881264,0 -8.102032,0.52467 -10.615648,-3.37704 -2.606754,-4.04646 -1.39376,-10.98766 -1.39376,-15.66733 V 202.84434 121.42967 94.767548 c 0,-5.82043 -0.394349,-11.702756 1.918165,-17.139934 2.59243,-6.095472 7.972696,-10.587133 12.315209,-15.235482 6.361872,-6.809749 15.302659,-20.997658 24.908407,-21.901027 M 82.852622,149.04404 v -0.47611 c 2.228416,-1.68019 4.853137,-4.06073 6.164829,-6.66553 2.329384,-4.62682 -1.57368,-9.44601 -6.164829,-8.43713 -3.058838,0.67179 -5.856141,4.41734 -7.561479,7.00881 -2.09231,-2.23963 -4.330057,-5.57095 -7.116681,-6.80503 -4.373656,-1.9373 -8.256257,2.08393 -7.460067,6.80503 0.576892,3.41988 5.655983,5.35289 5.655983,8.56996 0,4.59303 -10.127493,8.24193 -4.321609,14.09569 5.910848,5.95899 8.604069,-4.54684 13.241932,-4.54684 3.099767,0 4.747268,5.79806 8.451512,6.10419 3.582359,0.29567 6.831128,-3.17374 5.852131,-7.08307 -0.79484,-3.17279 -4.32427,-6.70886 -6.741722,-8.56997 M 122.88576,133.6857 c -9.48787,3.93362 2.64207,11.32569 2.64207,15.35834 0,2.57527 -4.14146,4.93963 -5.25034,7.14164 -1.98378,3.9398 0.69032,8.54283 4.83046,8.52854 2.37029,-0.008 4.14858,-1.65495 5.7823,-3.31039 0.99056,-1.00411 2.41256,-3.18612 4.00314,-2.73905 3.99602,1.12314 5.45272,7.87723 10.67459,5.7376 5.41757,-2.22011 3.38931,-8.28002 0.43857,-11.54947 -0.94741,-1.04934 -2.98768,-2.58336 -2.57001,-4.28498 0.66941,-2.72953 4.0823,-4.4221 5.14402,-7.14163 1.96465,-5.03392 -2.79463,-10.02972 -7.46007,-7.53253 -2.13189,1.14124 -4.21841,5.60143 -6.6719,5.60143 -4.45949,0 -5.69601,-8.24194 -11.56283,-5.8095 m -24.46539,56.98172 c -11.577511,1.64734 -22.445577,5.80805 -31.580295,13.80716 -3.447589,3.019 -10.885415,12.52215 -1.77917,14.39182 5.186728,1.06506 11.254602,-7.31684 15.567751,-9.8983 9.005719,-5.39003 19.519294,-7.81533 29.801124,-6.46365 7.65399,1.00649 15.44988,3.90551 21.79485,8.6428 3.52988,2.63526 7.64111,8.85895 12.45376,7.69677 3.41067,-0.82366 5.02037,-5.08246 3.47917,-8.3819 -1.80408,-3.86172 -6.4366,-7.01927 -9.70583,-9.35316 -11.39247,-8.13337 -26.34952,-12.38788 -40.03136,-10.44154 z"
|
||||
id="path22" />
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 104 KiB After Width: | Height: | Size: 104 KiB |
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
|
||||
<path d="M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"/>
|
||||
</svg>
|
||||
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
|
||||
<path fill="white" d="M377.9 105.9L500.7 228.7c7.2 7.2 11.3 17.1 11.3 27.3s-4.1 20.1-11.3 27.3L377.9 406.1c-6.4 6.4-15 9.9-24 9.9c-18.7 0-33.9-15.2-33.9-33.9l0-62.1-128 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l128 0 0-62.1c0-18.7 15.2-33.9 33.9-33.9c9 0 17.6 3.6 24 9.9zM160 96L96 96c-17.7 0-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32z"/>
|
||||
</svg>
|
||||
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
|
||||
<!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
|
||||
<path d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"/>
|
||||
</svg>
|
||||
@@ -0,0 +1,4 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512">
|
||||
<!--! Font Awesome Pro 6.4.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2023 Fonticons, Inc. -->
|
||||
<path fill="white" d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z" />
|
||||
</svg>
|
||||
Reference in New Issue
Block a user