public ZeroResponse<Dictionary<int, int>> GetExistingPacks(string ID) { var ret = new ZeroResponse<Dictionary<int, int>>(); using (var hlp = new ServiceLogHelper(System.Reflection.MethodBase.GetCurrentMethod().Name, ID)) { hlp.Handle(() => { using (var Config = new ZeroServerConfiguration()) { if (Config.ValidateConnection(ID, out hlp.TerminalCode, out hlp.StatusMessage)) { ret.Result = Config.GetPacksToSend(hlp.TerminalCode); } else { if (hlp.TerminalCode >= 0) Config.UpdateConnectionStatus(ID, ZeroServerConfiguration.ConnectionState.Error); } } }); ret.IsValid = hlp.IsValid; ret.Message = hlp.StatusMessage; } return ret; }
public ZeroResponse<List<TerminalStatus>> GetTerminalsStatus() { var ret = new ZeroResponse<List<TerminalStatus>>(); try { var conf = new ZeroServerConfiguration(); using (var ent = new ConfigurationModelManager()) { ent.ContextOptions.LazyLoadingEnabled = false; ret.Result = new List<TerminalStatus>(); foreach (var terminal in ent.Terminals) { var tst = new TerminalStatus(); tst.Terminal = terminal; tst.Info += string.Format("IP: {0}\n", terminal.LastKnownIP); var tt = conf.GetPacksToSend(tst.Terminal.Code); if (tt.Count > 0) { tst.Info += string.Format("Packs pendientes: {0}\n", tt.Count); foreach (var i in tt) { tst.Info += string.Format("Módulo: {0}(Pack: {1})\n", i.Value, i.Key); } } ret.Result.Add(tst); } foreach (var item in ret.Result) { TerminalProperty prop = ent.TerminalProperties.FirstOrDefault( tp => tp.TerminalCode == item.Terminal.Code && tp.Code == "SYNC_EVERY"); if (prop != null) { if (item.Terminal.LastSync.HasValue) { item.Terminal.IsSyncronized = item.Terminal.LastSync.Value.AddMinutes(int.Parse(prop.Value)) > DateTime.Now; } } } } ret.IsValid = true; } catch (Exception ex) { ret.IsValid = false; ret.Message = ex.ToString(); } return ret; }