using Step.Database.Redis; using Step.Model.DTOModels; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Step.Database.Controllers { public static class RedisController { private const string redisNotificationAddress = "Machine:ProductionProcesses:%NN%:Notification"; private const string redisProdNameAddress = "Machine:ProductionProcesses:%NN%:Name"; private const string redisRepsTargetAddress = "Machine:ProductionProcesses:%NN%:Programs:01:RepsTarget"; private const string redisRepsDoneAddress = "Machine:ProductionProcesses:%NN%:Programs:01:RepsDone"; private const string redisAlmCurr = "AdpConf:Plc:Condition:Curr"; private const string redisAlmIt = "AdpConf:Plc:Condition:It"; private const string redisAlmEn = "AdpConf:Plc:Condition:En"; private const string startTimestamp = "Machine:ProductionProcesses:%NN%:Programs:01:StartTime"; private const string endTimestamp = "Machine:ProductionProcesses:%NN%:Programs:01:EndTime"; private const string notification = "Machine:ProductionProcesses:%NN%:Notification"; private const string partIdPath = "Machine:ProductionProcesses:%NN%:Programs:01:PartId"; private const string maintenanceTitlePath = "Machine:Maintenences:%NN%:Title"; private const string maintenanceCompletionPath = "Machine:Maintenences:%NN%:Completion"; private const string maintenanceDescriptionPath = "Machine:Maintenences:%NN%:Description"; private const string currentUserPath = "Machine:Hmi:User"; private const string toolNamePath = "Machine:OperatingGroups:%NN%:ToolName"; private const string machineMessagePath = "Machine:Messages"; public static void WriteProductionNotification(uint ProductionProcess, string Notification) { string redisHash = redUtil.man.redHash(redisNotificationAddress).Replace("%NN%", ProductionProcess.ToString("00")); redUtil.man.setRSV(redisHash, Notification); } public static void WriteProductionName(uint ProductionProcess, string Name) { string redisHash = redUtil.man.redHash(redisProdNameAddress).Replace("%NN%", ProductionProcess.ToString("00")); redUtil.man.setRSV(redisHash, Name); } public static void WriteProductionRepsTarget(uint ProductionProcess, string RepsTarget) { string redisHash = redUtil.man.redHash(redisRepsTargetAddress).Replace("%NN%", ProductionProcess.ToString("00")); redUtil.man.setRSV(redisHash, RepsTarget); } public static void WriteProductionRepsDone(uint ProductionProcess, string RepsDone) { string redisHash = redUtil.man.redHash(redisRepsDoneAddress).Replace("%NN%", ProductionProcess.ToString("00")); redUtil.man.setRSV(redisHash, RepsDone); } public static bool WriteAlarmsConfigCurr(Dictionary alarms) { string redisHash = redUtil.man.redHash(redisAlmCurr); return redUtil.man.redSaveHashDict(redisHash, alarms); } public static bool WriteAlarmsConfigEn(Dictionary alarms) { string redisHash = redUtil.man.redHash(redisAlmEn); return redUtil.man.redSaveHashDict(redisHash, alarms); } public static bool WriteAlarmsConfigIt(Dictionary alarms) { string redisHash = redUtil.man.redHash(redisAlmIt); return redUtil.man.redSaveHashDict(redisHash, alarms); } public static bool WriteStartProgram(uint process) { string redisHash = redUtil.man.redHash(startTimestamp).Replace("%NN%", process.ToString("00")); return redUtil.man.setRSV(redisHash, DateTime.Now.ToString()); } public static bool WriteEndProgram(uint process) { string redisHash = redUtil.man.redHash(endTimestamp).Replace("%NN%", process.ToString("00")); return redUtil.man.setRSV(redisHash, DateTime.Now.ToString()); } public static bool WriteNotification(uint process, string textNotification) { string redisHash = redUtil.man.redHash(notification).Replace("%NN%", process.ToString("00")); return redUtil.man.setRSV(redisHash, textNotification); } public static bool WritePartId(uint process, string partId) { string redisHash = redUtil.man.redHash(partIdPath).Replace("%NN%", process.ToString("00")); return redUtil.man.setRSV(redisHash, partId); } public static bool WriteMaintenance(int maintenanceId, string maintenanceTitle, int maintenanceCompleition, string maintenanceDescription) { string redisHash = redUtil.man.redHash(maintenanceTitlePath).Replace("%NN%", maintenanceId.ToString()); var status = redUtil.man.setRSV(redisHash, maintenanceTitle); if (!status) return status; redisHash = redUtil.man.redHash(maintenanceCompletionPath).Replace("%NN%", maintenanceId.ToString()); status = redUtil.man.setRSV(redisHash, maintenanceCompleition.ToString()); if (!status) return status; redisHash = redUtil.man.redHash(maintenanceDescriptionPath).Replace("%NN%", maintenanceId.ToString()); return redUtil.man.setRSV(redisHash, maintenanceDescription); } public static bool WriteCurrentUser(int userId) { string redisHash = redUtil.man.redHash(currentUserPath); return redUtil.man.setRSV(redisHash, userId.ToString()); } public static bool WriteToolName(int spindleId, string toolName) { string redisHash = redUtil.man.redHash(toolNamePath).Replace("%NN%", spindleId.ToString("00")); return redUtil.man.setRSV(redisHash, toolName); } public static bool SendMessage(DTOMessageModel message) { string redisHash = redUtil.man.redHash(machineMessagePath); return redUtil.man.setJson(redisHash, message); } } }