Eliminaizone articolo da struttura DB

This commit is contained in:
Samuele Locatelli
2021-09-08 09:32:04 +02:00
parent 4377e1236c
commit 9dfa8d2de5
5 changed files with 89 additions and 126 deletions
+87 -89
View File
@@ -34,44 +34,6 @@ namespace MP.FileData.Controllers
#region Public Methods
/// <summary>
/// Elenco tabella Articoli (FILTRATO!!!)
/// </summary>
/// <param name="searchVal"></param>
/// <param name="maxNum"></param>
/// <returns></returns>
public List<DatabaseModels.ArticoloModel> ArtGetFilt(string searchVal, int maxNum = 100)
{
maxNum = maxNum <= 0 ? 100 : maxNum;
List<DatabaseModels.ArticoloModel> dbResult = new List<DatabaseModels.ArticoloModel>();
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
{
int totRecord = localDbCtx
.DbSetArticoli
.Where(x => x.CodArticolo.Contains(searchVal) || x.DescArticolo.Contains(searchVal) || x.Disegno.Contains(searchVal))
.Count();
if (totRecord > maxNum)
{
dbResult = localDbCtx
.DbSetArticoli
.Where(x => x.CodArticolo.Contains(searchVal) || x.DescArticolo.Contains(searchVal) || x.Disegno.Contains(searchVal))
.OrderBy(x => x.DescArticolo)
.Take(maxNum)
.ToList();
dbResult.Add(new DatabaseModels.ArticoloModel() { CodArticolo = "#####", DescArticolo = $"... +{totRecord - maxNum} rec ..." });
}
else
{
dbResult = localDbCtx
.DbSetArticoli
.Where(x => x.CodArticolo.Contains(searchVal) || x.DescArticolo.Contains(searchVal) || x.Disegno.Contains(searchVal))
.OrderBy(x => x.DescArticolo)
.ToList();
}
}
return dbResult;
}
/// <summary>
/// Effettua la comparazione tra i file in archivio ed i file attuali e segna info LastCheck e Changed (se cambiati)
/// </summary>
@@ -176,7 +138,7 @@ namespace MP.FileData.Controllers
// se ce ne fosse un altro precedente --> lo (ri)attiva
var file2open = localDbCtx
.DbSetProgFile
.Where(x => x.Articolo == currItem.Articolo && x.IdxMacchina == currItem.IdxMacchina)
.Where(x => x.Name == currItem.Name && x.IdxMacchina == currItem.IdxMacchina)
.OrderByDescending(y => y.Rev)
.FirstOrDefault();
if (file2open != null)
@@ -242,7 +204,7 @@ namespace MP.FileData.Controllers
dbResult = localDbCtx
.DbSetProgFile
.Include(m => m.Macchina)
.Include(a => a.Articolo)
.Include(t => t.Tags)
.Where(x => (x.IdxMacchina == IdxMacchina || IdxMacchina == "0") && (x.Active == OnlyActive || !OnlyActive) && (!OnlyMod || x.DiskStatus != FileState.Ok) && (x.Name.Contains(SearchVal) || string.IsNullOrEmpty(SearchVal)))
.OrderByDescending(x => x.LastMod)
.ToList();
@@ -270,7 +232,6 @@ namespace MP.FileData.Controllers
List<DatabaseModels.FileModel> newRec = newFiles.Select(o => new DatabaseModels.FileModel()
{
Active = true,
CodArticolo = "ND",
DiskStatus = FileState.Ok,
IdxMacchina = idxMacchina,
LastCheck = adesso,
@@ -444,6 +405,91 @@ namespace MP.FileData.Controllers
return done;
}
/// <summary>
/// Elenco tabella Macchine
/// </summary>
/// <returns></returns>
public List<DatabaseModels.MacchinaModel> MacchineGetAll()
{
List<DatabaseModels.MacchinaModel> dbResult = new List<DatabaseModels.MacchinaModel>();
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
{
dbResult = localDbCtx
.DbSetMacchine
.OrderBy(x => x.IdxMacchina)
.ToList();
}
return dbResult;
}
public void ResetController()
{
dbCtx = new MoonPro_ProgContext(_configuration);
Log.Info("Effettuato reset FileController");
}
/// <summary>
/// Annulla modifiche su una specifica entity (cancel update)
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public bool RollBackEntity(object item)
{
bool answ = false;
try
{
if (dbCtx.Entry(item).State == Microsoft.EntityFrameworkCore.EntityState.Deleted || dbCtx.Entry(item).State == Microsoft.EntityFrameworkCore.EntityState.Modified)
{
dbCtx.Entry(item).Reload();
}
}
catch (Exception exc)
{
Log.Error($"Eccezione in rollBackEntity{Environment.NewLine}{exc}");
}
return answ;
}
/// <summary>
/// Elenco TAGS (FILTRATO!!!)
/// </summary>
/// <param name="searchVal"></param>
/// <param name="maxNum"></param>
/// <returns></returns>
public List<DatabaseModels.TagModel> TagGetFilt(string searchVal, int maxNum = 100)
{
maxNum = maxNum <= 0 ? 100 : maxNum;
List<DatabaseModels.TagModel> dbResult = new List<DatabaseModels.TagModel>();
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
{
int totRecord = localDbCtx
.DbSetTags
.Where(x => x.TagId.Contains(searchVal))
.Count();
if (totRecord > maxNum)
{
dbResult = localDbCtx
.DbSetTags
.Where(x => x.TagId.Contains(searchVal))
.OrderBy(x => x.TagId)
.Take(maxNum)
.ToList();
dbResult.Add(new DatabaseModels.TagModel() { TagId = $"... +{totRecord - maxNum} rec ..." });
}
else
{
dbResult = localDbCtx
.DbSetTags
.Where(x => x.TagId.Contains(searchVal))
.OrderBy(x => x.TagId)
.ToList();
}
}
return dbResult;
}
#endregion Public Methods
#if false
/// <summary>
/// Elenco Azioni (decodifica)
@@ -500,54 +546,6 @@ namespace MP.FileData.Controllers
return dbResult;
}
#endif
/// <summary>
/// Elenco tabella Macchine
/// </summary>
/// <returns></returns>
public List<DatabaseModels.MacchinaModel> MacchineGetAll()
{
List<DatabaseModels.MacchinaModel> dbResult = new List<DatabaseModels.MacchinaModel>();
using (MoonPro_ProgContext localDbCtx = new MoonPro_ProgContext(_configuration))
{
dbResult = localDbCtx
.DbSetMacchine
.OrderBy(x => x.IdxMacchina)
.ToList();
}
return dbResult;
}
public void ResetController()
{
dbCtx = new MoonPro_ProgContext(_configuration);
Log.Info("Effettuato reset FileController");
}
/// <summary>
/// Annulla modifiche su una specifica entity (cancel update)
/// </summary>
/// <param name="item"></param>
/// <returns></returns>
public bool RollBackEntity(object item)
{
bool answ = false;
try
{
if (dbCtx.Entry(item).State == Microsoft.EntityFrameworkCore.EntityState.Deleted || dbCtx.Entry(item).State == Microsoft.EntityFrameworkCore.EntityState.Modified)
{
dbCtx.Entry(item).Reload();
}
}
catch (Exception exc)
{
Log.Error($"Eccezione in rollBackEntity{Environment.NewLine}{exc}");
}
return answ;
}
#endregion Public Methods
#if false
/// <summary>
/// Elenco tabella controlli da filtro
@@ -1,27 +0,0 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// <Auto-Generated>
// This is here so CodeMaid doesn't reorganize this document
// </Auto-Generated>
namespace MP.FileData.DatabaseModels
{
[Table("Articoli")]
public partial class ArticoloModel
{
#region Public Properties
[Key]
public string CodArticolo { get; set; }
public string DescArticolo { get; set; }
public string Disegno { get; set; }
public string Tipo { get; set; }
#endregion Public Properties
}
}
-3
View File
@@ -22,7 +22,6 @@ namespace MP.FileData.DatabaseModels
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int FileId { get; set; }
public bool Active { get; set; } = true;
public string CodArticolo { get; set; }
public string IdxMacchina { get; set; } = "";
public string Name { get; set; } = "";
public int Rev { get; set; } = 0;
@@ -51,8 +50,6 @@ namespace MP.FileData.DatabaseModels
}
}
[ForeignKey("CodArticolo")]
public virtual ArticoloModel Articolo { get; set; }
[ForeignKey("IdxMacchina")]
public virtual MacchinaModel Macchina { get; set; }
+1 -6
View File
@@ -18,15 +18,10 @@ namespace MP.FileData
/// <param name="modelBuilder"></param>
public static void Seed(this ModelBuilder modelBuilder)
{
// inizializzazione dei valori di default x USER
// inizializzazione dei valori di default x MACCHINA
modelBuilder.Entity<MacchinaModel>().HasData(
new MacchinaModel { IdxMacchina = "0", CodMacchina = "0", Descrizione = "--- Tutte ---", Nome = "--- Tutte ---", BasePath = "", ImgUrl = "", Note = "", ShowOrder = 0 }
);
// inizializzazione dei valori di default x Plant
modelBuilder.Entity<ArticoloModel>().HasData(
new ArticoloModel { CodArticolo = "ND", DescArticolo = "--- Tutti ---", Disegno = "", Tipo = "ND" }
);
}
#endregion Public Methods
+1 -1
View File
@@ -59,9 +59,9 @@ namespace MP.FileData
#region Public Properties
public virtual DbSet<ArticoloModel> DbSetArticoli { get; set; }
public virtual DbSet<MacchinaModel> DbSetMacchine { get; set; }
public virtual DbSet<FileModel> DbSetProgFile { get; set; }
public virtual DbSet<TagModel> DbSetTags { get; set; }
#endregion Public Properties