/// <summary> /// Updates the strategy status. /// </summary> /// <param name="instruction">The instruction.</param> /// <param name="machinemac">The machinemac.</param> /// <param name="stid">The stid.</param> /// <param name="status">The status.</param> /// <returns>System.Int32.</returns> public async Task <int> UpdateStrategyStatus(string instruction, string machinemac, int stid, string status) { int r = 0; var classid = 0; var found = false; foreach (ConnectionStringSettings c in ConfigurationManager.ConnectionStrings) { if (!found) { try { using (var context = new organisationdatabaseEntities(c.Name)) { classid = context.classdetails.Where(x => x.ccmac == machinemac).Select(x => x.classID).FirstOrDefault(); if (context.strategylogs.Any(x => x.Instruction == instruction && x.MachineMac == classid && x.StrategyDescId == stid)) { found = true; var log = context.strategylogs.Where(x => x.Instruction == instruction && x.MachineMac == classid && x.StrategyDescId == stid); foreach (var l in log) { if (DateTime.Now.Subtract(l.ExecutionTime).TotalSeconds < 180) { l.Status = status; break; } } } r = await context.SaveChangesAsync(); } } catch (Exception ex) { loggerFile.Debug(Environment.NewLine + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString() + "exception in stratrgy logs: " + ex.InnerException + " error message " + ex.Message + " data: " + instruction + " " + machinemac + " " + stid + " " + status); } } else { break; } } return(r); }
/// <summary> /// save desktop event or action as an asynchronous operation. /// </summary> /// <param name="deskmac">The deskmac.</param> /// <param name="action">The action.</param> /// <returns>A Task<System.Int32> representing the asynchronous operation. /// No. of updated rows</returns> public async Task <int> SaveInactiveDesktopAsync(string deskmac, string action) { var res = 0; var found = false; foreach (ConnectionStringSettings c in ConfigurationManager.ConnectionStrings) { if (!found) { if (c.Name.Contains("Entities")) { using (var context = new organisationdatabaseEntities(c.Name)) { try { var id = context.classdetails.Where(x => x.deskmac.ToUpper() == deskmac.ToUpper()) .Select(x => x.classID).FirstOrDefault(); if (id != 0) { found = true; temp_desktopevents tmp = new temp_desktopevents() { Action = action, ActionTime = DateTime.Now, Deskmac = deskmac, classid = id }; context.temp_desktopevents.Add(tmp); res = await context.SaveChangesAsync(); } } catch (Exception ex) { loggerFile.Debug(Environment.NewLine + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString() + "exception in recording machine logs: " + ex.StackTrace + " error message " + ex.InnerException); } } } } else { break; } } return(res); }
/// <summary> /// Saves the strategy log information. /// </summary> /// <param name="instruction">The instruction.</param> /// <param name="stid">The stid.</param> /// <param name="status">The status.</param> /// <param name="machinemac">The machinemac.</param> /// <param name="equipid">The equipid.</param> public async Task SaveStrategyLogInfo(string instruction, int stid, string status, string machinemac, int equipid) { var found = false; foreach (ConnectionStringSettings c in ConfigurationManager.ConnectionStrings) { if (!found) { try { using (var context = new organisationdatabaseEntities(c.Name)) { var classid = context.classdetails.Where(x => x.ccmac == machinemac).Select(x => x.classID).FirstOrDefault(); if (classid != 0) { found = true; var newLog = new strategylog() { StrategyDescId = stid, MachineMac = classid, ExecutionTime = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd HH:mm")), Instruction = instruction, Status = status, EquipmentId = equipid }; context.strategylogs.Add(newLog); await context.SaveChangesAsync(); } } } catch (Exception ex) { loggerFile.Debug(Environment.NewLine + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString() + "exception in stratrgy logs: " + ex.StackTrace + " error message " + ex.InnerException); } } else { break; } } }
/// <summary> /// Saves the machine logs. /// </summary> /// <param name="type">The type.</param> /// <param name="data">The data.</param> /// <param name="machinemac">The machinemac.</param> public async Task SaveMachineLogs(string type, string data, string machinemac) { int r = 0; var found = false; foreach (ConnectionStringSettings c in ConfigurationManager.ConnectionStrings) { if (!found) { try { using (var context = new organisationdatabaseEntities(c.Name)) { var classid = context.classdetails.Where(x => x.ccmac == machinemac).Select(x => x.classID).FirstOrDefault(); if (classid != 0) { found = true; var machineop = new machineoperationlog() { Operation = data, //JsonSerializer.Serialize(data), Location = classid, Type = type, ExecutionTime = DateTime.Now }; context.machineoperationlogs.Add(machineop); } r = await context.SaveChangesAsync(); } } catch (Exception ex) { loggerFile.Debug(Environment.NewLine + DateTime.Now.ToLongDateString() + " " + DateTime.Now.ToLongTimeString() + "exception in recording machine logs: " + ex.StackTrace + " error message " + ex.InnerException); } } else { break; } } }
/// <summary> /// Updates the machine status. /// this is used to save the status of machine On/Off /// the table temp_machinestatus will be used in future purposes /// </summary> /// <param name="machinemac">The machinemac.</param> /// <param name="status">The status.</param> /// <returns>System.Int32.</returns> public async Task <int> UpdateMachineStatus(string machinemac, string status) { int r = 0; var found = false; foreach (ConnectionStringSettings c in ConfigurationManager.ConnectionStrings) { if (!found) { using (var context = new organisationdatabaseEntities(c.Name)) { var cid = context.classdetails.Where(x => x.ccmac == machinemac).Select(x => x.classID).FirstOrDefault(); if (cid != 0) { found = true; if (context.temp_machinestatus.Any(x => x.classid == cid)) { var row = context.temp_machinestatus.Where(x => x.classid == cid).FirstOrDefault(); row.machineStatus = status; } else { var newrow = new temp_machinestatus { classid = cid, machineStatus = status }; context.temp_machinestatus.Add(newrow); } r = await context.SaveChangesAsync(); } } } else { break; } } return(r); }