111 lines
3.3 KiB
C#
111 lines
3.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace MP.Stats.Data
|
|
{
|
|
public class SelectData
|
|
{
|
|
#region Public Properties
|
|
|
|
public string CodArticolo { get; set; } = "*";
|
|
public DateTime DateEnd { get; set; } = DateTime.Now.AddMinutes(1);
|
|
public DateTime DateStart { get; set; } = DateTime.Now.AddDays(-7);
|
|
|
|
/// <summary>
|
|
/// Primo record x selezione paginata, tipicamente primo della "decina" della pagina corrente
|
|
/// </summary>
|
|
public int FirstRecord
|
|
{
|
|
get
|
|
{
|
|
int primaPag = PageNum % 10;
|
|
int decina = PageNum - primaPag;
|
|
return PageSize * decina + 1;
|
|
}
|
|
}
|
|
|
|
public string IdxMacchina { get; set; } = "*";
|
|
public List<string> ListIdxMaccSel { get; set; } = new List<string>();
|
|
public int IdxOdl { get; set; } = -999;
|
|
public string KeyRichiesta { get; set; } = "*";
|
|
public string Azione { get; set; } = "*";
|
|
|
|
/// <summary>
|
|
/// Numero record da recuperare, tipicamente la decina della pag corrente (10 * PageSize)
|
|
/// </summary>
|
|
public int NumRecord
|
|
{
|
|
get
|
|
{
|
|
return PageSize * 10;
|
|
}
|
|
}
|
|
|
|
public bool MaccSelValid
|
|
{
|
|
get => ListIdxMaccSel != null && ListIdxMaccSel.Count > 0;
|
|
}
|
|
|
|
public int PageNum { get; set; } = 1;
|
|
public int PageSize { get; set; } = 10;
|
|
|
|
#endregion Public Properties
|
|
|
|
#region Public Methods
|
|
|
|
/// <summary>
|
|
/// Inizializzazione con periodo e arrotondamento
|
|
/// </summary>
|
|
/// <param name="minRound"></param>
|
|
/// <param name="numDayPrev"></param>
|
|
/// <returns></returns>
|
|
public static SelectData Init(int minRound, int numDayPrev)
|
|
{
|
|
TimeSpan DayElapsed = DateTime.Now.Subtract(DateTime.Today);
|
|
int minDay = (int)(DayElapsed.TotalMinutes / minRound) * minRound;
|
|
DateTime endRounded = DateTime.Today.AddMinutes(minDay);
|
|
SelectData answ = new SelectData()
|
|
{
|
|
DateEnd = endRounded,
|
|
DateStart = endRounded.AddDays(-numDayPrev)
|
|
};
|
|
return answ;
|
|
}
|
|
|
|
public override bool Equals(object obj)
|
|
{
|
|
if (!(obj is SelectData item))
|
|
return false;
|
|
|
|
if (PageSize != item.PageSize)
|
|
return false;
|
|
if (PageNum != item.PageNum)
|
|
return false;
|
|
if (CodArticolo != item.CodArticolo)
|
|
return false;
|
|
if (DateEnd != item.DateEnd)
|
|
return false;
|
|
if (DateStart != item.DateStart)
|
|
return false;
|
|
if (IdxMacchina != item.IdxMacchina)
|
|
return false;
|
|
if (IdxOdl != item.IdxOdl)
|
|
return false;
|
|
if (KeyRichiesta != item.KeyRichiesta)
|
|
return false;
|
|
if (Azione != item.Azione)
|
|
return false;
|
|
|
|
return true;
|
|
}
|
|
|
|
public override int GetHashCode()
|
|
{
|
|
return base.GetHashCode();
|
|
}
|
|
|
|
#endregion Public Methods
|
|
}
|
|
} |