/// <summary> /// Save these below parameters to DB /// </summary> /// <param name="snmpPrinterStateModel"></param> void saveToDB(SNMPPrinterStateModel snmpPrinterStateModel) { if (snmpPrinterStateModel != null) { #if DEBUG Console.WriteLine("serialNumber=" + snmpPrinterStateModel.SerialNumber); Console.WriteLine("alertMessage=" + snmpPrinterStateModel.AlertMessage); Console.WriteLine("contactInfo=" + snmpPrinterStateModel.ContactInfo); Console.WriteLine("locationInfo=" + snmpPrinterStateModel.LocationInfo); Console.WriteLine("ipAddress=" + snmpPrinterStateModel.IPAddress); Console.WriteLine("PageCount=" + snmpPrinterStateModel.PageCount.ToString()); Console.WriteLine("Uptime=" + snmpPrinterStateModel.Uptime); Console.WriteLine("DisplayMessage=" + snmpPrinterStateModel.DisplayMessage); Console.WriteLine("Model=" + snmpPrinterStateModel.Model); #endif POServiceClient proxy = new POServiceClient("NetTCPBinding_IPOService"); #if DEBUG Console.WriteLine("After"); #endif POServiceRef.SNMPPrinterStateModel snmpPrinterState = new POServiceRef.SNMPPrinterStateModel(); Mapper.CreateMap <SNMPPrinterStateModel, POServiceRef.SNMPPrinterStateModel>(); Mapper.Map(snmpPrinterStateModel, snmpPrinterState); proxy.Open(); #if DEBUG if (proxy.SetState(snmpPrinterState)) { Console.WriteLine("***** Set state is Successed! *************"); Console.WriteLine("Success!"); } else { Console.WriteLine(" ****** Set state is Failed! ***************"); Console.WriteLine("Failed"); } #else proxy.SetState(snmpPrinterState); #endif proxy.Close(); } }
/// <summary> /// Установка состояния принтера /// </summary> /// <param name="ipAddress"></param> public void SetStates(VersionCode version, string ipAddress, OctetString community, int timeout) { IPEndPoint IpEndPoint = new IPEndPoint(IPAddress.Parse(ipAddress), 161); SNMPPrinterStateModel snmpPrinterState = SNMPGet(version, IpEndPoint, community, timeout); if (snmpPrinterState != null) { snmpPrinterState.IPAddress = ipAddress; snmpPrinterState.AlertMessage = SNMPAlertMessage(version, IpEndPoint, community, timeout); // Record date to DB saveToDB(snmpPrinterState); } SNMPPrinterColorStateModel snmpPrinterColorState = SNMPGetColor(version, IpEndPoint, community, timeout); if (snmpPrinterColorState != null) { snmpPrinterColorState.SerialNumber = snmpPrinterState.SerialNumber ?? ""; saveToDBforColor(snmpPrinterColorState); } }
/// <summary> /// Get SNMP Printer Satate /// </summary> /// <param name="ipAddress">IPAddress of host</param> /// <returns>SNMPPrinterStateModel</returns> SNMPPrinterStateModel SNMPGet(VersionCode version, IPEndPoint ipEndPoint, OctetString community, int timeout) { /*string SerialNumber = ""; * string DisplayMessage = ""; * string AlertMessage = ""; * string ContactInfo = ""; * string LocationInfo = ""; * string Model = ""; * * int PageCount = 0; * string Uptime = "";*/ SNMPPrinterStateModel snmpPrinterStateModel = new SNMPPrinterStateModel(); List <Variable> variable = new List <Variable>(); variable.Add(new Variable(new ObjectIdentifier("1.3.6.1.4.1.641.2.1.2.1.6.1"))); // SerialNumber for Lexmark variable.Add(new Variable(new ObjectIdentifier(".1.3.6.1.2.1.43.5.1.1.17.1"))); // SerialNumber for Xerox variable.Add(new Variable(new ObjectIdentifier(".1.3.6.1.2.1.43.16.5.1.2.1.1"))); //DisplayMessage variable.Add(new Variable(new ObjectIdentifier(".1.3.6.1.2.1.43.16.5.1.2.1.2"))); //DisplayMessage2 variable.Add(new Variable(new ObjectIdentifier(".1.3.6.1.2.1.43.10.2.1.4.1.1"))); //PageCount variable.Add(new Variable(new ObjectIdentifier(".1.3.6.1.2.1.1.3.0"))); //Uptime variable.Add(new Variable(new ObjectIdentifier(".1.3.6.1.2.1.1.4.0"))); //ContactInfo variable.Add(new Variable(new ObjectIdentifier(".1.3.6.1.2.1.1.6.0"))); //LocationInfo variable.Add(new Variable(new ObjectIdentifier(".1.3.6.1.4.1.641.2.1.2.1.2.1"))); // Model for Lexmark variable.Add(new Variable(new ObjectIdentifier(".1.3.6.1.2.1.25.3.2.1.3.1"))); //Model for Xerox try { var result = Messenger.Get(version, ipEndPoint, community, variable, timeout); if (result != null) { if (result[0].Data.ToString() != "NoSuchObject") { #if DEBUG Console.WriteLine("SerialNumber=" + result[0].Data.ToString()); #endif snmpPrinterStateModel.SerialNumber = result[0].Data.ToString(); } else { #if DEBUG Console.WriteLine("SerialNumber=" + UTFtoASCII(result[1].Data)); #endif snmpPrinterStateModel.SerialNumber = result[1].Data.ToString(); } if (result[8].Data.ToString() != "NoSuchObject") { #if DEBUG Console.WriteLine("Model=" + result[8].Data.ToString()); #endif snmpPrinterStateModel.Model = result[8].Data.ToString(); } else { #if DEBUG Console.WriteLine("Model=" + UTFtoASCII(result[9].Data)); #endif snmpPrinterStateModel.Model = result[9].Data.ToString(); } snmpPrinterStateModel.ContactInfo = UTFtoASCII(result[6].Data); snmpPrinterStateModel.LocationInfo = UTFtoASCII(result[7].Data); #if DEBUG Console.WriteLine("PageCount=" + result[4].Data.ToString()); #endif snmpPrinterStateModel.PageCount = Convert.ToInt32(result[4].Data.ToString()); #if DEBUG Console.WriteLine("Uptime=" + result[5].Data.ToString()); #endif snmpPrinterStateModel.Uptime = result[5].Data.ToString(); #if DEBUG Console.WriteLine("DisplayMessage=" + UTFtoASCII(result[2].Data)); #endif snmpPrinterStateModel.DisplayMessage = UTFtoASCII(result[2].Data); #if DEBUG Console.WriteLine("Begin DisplayMessage2"); Console.WriteLine("DisplayMessage2=" + UTFtoASCII(result[3].Data)); #endif snmpPrinterStateModel.DisplayMessage += " " + UTFtoASCII(result[3].Data); } } catch { #if DEBUG Console.WriteLine("EEEEEEERRRRRRRROOOOOOOOORRRRRRRRR!!!"); #endif } return(snmpPrinterStateModel); }