protected override void Application_BeginRequest(object sender, EventArgs e)
 {
     Log2Net.LogApi.WriteFirstVisitLog();//写初次访问日志
     ComClass.StaticBaseUrl = ComClass.GetWebBaseUrl();
     base.Application_BeginRequest(sender, e);
     WriteDebugTraceToFile("BeginRequest");
 }
Example #2
0
        public Common.ServiceStatus SetMoney(List<Efectivo> val)
        {
            Common.ServiceStatus response = new Common.ServiceStatus();
            response.error.HasError = true;
            response.error.Message = "Error recibido del PaymentDevice";
            ComClass clase = new ComClass();
            clase.funciones = ComClass.function.set_money;
            clase.Inventario = val;
            string Test = JsonConvert.SerializeObject(clase);
            using (var socket = new ConnectedSocket("127.0.0.1", 1337)) // Connects to 127.0.0.1 on port 1337
            {
                socket.Send(Test); // Sends some data
                var data = socket.Receive(); // Receives some data back (blocks execution)
                ComClass deserializedProduct = JsonConvert.DeserializeObject<ComClass>(data);
                if(deserializedProduct.result== ComClass.status_cash.ok)
                {
                    response.IsDone = true;
                    response.error.HasError = false;
                    return response;
                }
            }


            return response;




        }
        //获取所有的日志类型的下拉列表
        public ActionResult GetAllLogTypeList()
        {
            List <SelectListItem> tar = new List <SelectListItem>();
            var dic = ComClass.GetDicFromEnumType(new LogType());

            try
            {
                dic.Add(LogType.所有.ToString(), ((int)LogType.所有));
            }
            catch
            {
            }
            dic = dic.OrderBy(a => a.Value).ToDictionary(k => k.Key, v => v.Value);
            foreach (var item in dic)
            {
                tar.Add(new SelectListItem()
                {
                    Text = item.Key, Value = item.Value.ToString()
                });
            }



            return(AbpJson(tar, null, null, JsonRequestBehavior.AllowGet, true, false));
        }
        public List <Log2Net.Models.SysCategory> GetSysCategoryAccordingRoleID()
        {
            var sysCateIDs = (from userRole in _userRoleRepository.GetAll()
                              join role in _roleRepository.GetAll() on userRole.RoleId equals role.Id
                              where userRole.UserId == AbpSession.UserId
                              select role.SysCateIDs).FirstOrDefault();
            List <Log2Net.Models.SysCategory> sysList = new List <Log2Net.Models.SysCategory>();
            var ids = sysCateIDs.Split(',');

            if (ids.Contains(((int)(Log2Net.Models.SysCategory.ALL)).ToString()))
            {
                sysList = ComClass.GetMySysCategory();
                sysList.Remove(Log2Net.Models.SysCategory.ALL);
                return(sysList);
            }
            else
            {
                foreach (var item in ids)
                {
                    Log2Net.Models.SysCategory curEnum = (Log2Net.Models.SysCategory)Convert.ToInt32(item);
                    sysList.Add(curEnum);
                }
            }
            return(sysList);
        }
Example #5
0
        public void HandlePaymentCash(int quantity)
        {
            ComClass clase = new ComClass();
            clase.funciones = ComClass.function.cash_handling;
            clase.Value = quantity;
            string Test = JsonConvert.SerializeObject(clase);
            using (var socket = new ConnectedSocket("127.0.0.1", 1337)) // Connects to 127.0.0.1 on port 1337
            {
                socket.Send(Test); // Sends some data
                var data = socket.Receive(); // Receives some data back (blocks execution)
            }

        }
Example #6
0
        public ActionResult About()
        {
            ViewBag.Message = "Your application description page.";
            LogTraceVM model = new LogTraceVM()
            {
                Detail    = "所有的程序员都是天才编剧,所有的计算机都是烂演员~",
                LogType   = LogType.审核,
                Remark    = "同意嘛",
                TabOrModu = "关于页面",
            };
            var logRes = new ComClass().WriteLog(LogLevel.Info, model);

            Dictionary <SysCategory, string> dic = LogApi.GetLogWebApplicationsName();
            var userCnt = LogApi.GetNumOfOnLineAllVisit();

            LogApi.WriteLoginLog("CN888");
            return(View());
        }
Example #7
0
        public List<Efectivo> GetInventario()
        {
            
                ComClass clase = new ComClass();
                clase.funciones = ComClass.function.get_money;

                string Test = JsonConvert.SerializeObject(clase);
                using (var socket = new ConnectedSocket("127.0.0.1", 1337)) // Connects to 127.0.0.1 on port 1337
                {
                    socket.Send(Test); // Sends some data
                    var data = socket.Receive(); // Receives some data back (blocks execution)
                    ComClass deserializedProduct = JsonConvert.DeserializeObject<ComClass>(data);
                    return deserializedProduct.Inventario;
                }


               

          

        }
Example #8
0
        public ActionResult Login(LoginViewModel model)
        {
            SysAdminUserModel user = new SysAdminUserModel();

            user.LoginName     = model.LoginId;
            user.UserPwd       = DESEncrypt.Encrypt(model.Pass, AppContent.SecrectStr);//加密密码
            user.LastLoginTime = DateTime.Now;
            user.LastLoginIP   = ComClass.GetIP();
            SysAdminUserModel result = bll.GetUserForLogin(user);

            if (result.LoginResult.StartsWith("0"))
            {
                model.loginresult = result.LoginResult.Substring(1);
            }
            else
            {
                HttpCookie aCookie = new HttpCookie("skin_color");
                aCookie.Value   = result.WebSkin;
                aCookie.Expires = DateTime.Now.AddHours(1);
                Response.Cookies.Add(aCookie);
                List <SysAdminMenuModel> usermenu = bll.GetUserAttributeMenu(result);
                result.UserPwd = "";
                SessionLoginModel sessionmodel = new SessionLoginModel();
                sessionmodel.User      = result;
                sessionmodel.UserMenus = usermenu;
                Session[AppContent.SESSION_LOGIN_NAME] = sessionmodel;
                string url = Url.Action("LoginOut", "IndexPub");
                if (!string.IsNullOrWhiteSpace(model.returnurl) && !model.returnurl.Contains(url))
                {
                    return(Redirect(model.returnurl));
                }
                else
                {
                    return(RedirectToAction("Index", "Default", new { area = "AdminArea" }));
                }
            }
            this.ViewBag.Title       = SysAdminConfigHelper.GetConfigValue("管理后台登陆页标题");
            this.ViewBag.Description = SysAdminConfigHelper.GetConfigValue("管理后台登陆页描述");
            return(View(model));
        }
Example #9
0
        public ActionResult Index(LoginViewModel model)
        {
            SysAdminUserModel user = new SysAdminUserModel();

            user.LoginName     = model.LoginId;
            user.UserPwd       = model.Pass;
            user.LastLoginTime = DateTime.Now;
            user.LastLoginIP   = ComClass.GetIP();
            SysAdminUserModel result = bll.GetUserForLogin(user);

            if (result.LoginResult.StartsWith("0"))
            {
                model.loginresult = result.LoginResult.Substring(1);
            }
            else
            {
                HttpCookie aCookie = new HttpCookie("skin_color");
                aCookie.Value   = result.WebSkin;
                aCookie.Expires = DateTime.Now.AddHours(1);
                Response.Cookies.Add(aCookie);
                List <SysAdminMenuModel> usermenu = bll.GetUserAttributeMenu(result);
                result.UserPwd = "";
                SessionLoginModel sessionmodel = new SessionLoginModel();
                sessionmodel.User      = result;
                sessionmodel.UserMenus = usermenu;
                Session[AppContent.SESSION_LOGIN_NAME] = sessionmodel;
                string url = Url.Action("LoginOut", "IndexPub");
                if (!string.IsNullOrWhiteSpace(model.returnurl) && !model.returnurl.Contains(url))
                {
                    return(Redirect(model.returnurl));
                }
                else
                {
                    return(RedirectToAction("Index", "Home", new { area = "" }));
                }
            }
            return(View(model));
        }
Example #10
0
        public List<Common.ServiceStatus> GetDevicesStatus()
        {

            try
            {
                ComClass clase = new ComClass();
                clase.funciones = ComClass.function.get_devices_status;

                string Test = JsonConvert.SerializeObject(clase);
                using (var socket = new ConnectedSocket("127.0.0.1", 1337)) // Connects to 127.0.0.1 on port 1337
                {
                    socket.Send(Test); // Sends some data
                    var data = socket.Receive(); // Receives some data back (blocks execution)
                    ComClass deserializedProduct = JsonConvert.DeserializeObject<ComClass>(data);
                    Helpers.Utilities.WriteLocalLog("[GetDevicesStatus] Devices loaded ok");
                    return deserializedProduct.DeviceStatus;
                }
            }catch(Exception e)
            {
                Helpers.Utilities.WriteLocalLog("[GetDevicesStatus] " + e.Message);
            }
            return null;   
        }
        public void InitializeContact(string username, string agetnId, string placeId, int tenantDbId, string contactAppName, ConfService comObject,
                                      IPluginCallBack listener, int ixnProxyId)
        {
            ContactService contactService = new ContactService();
            OutputValues   output         = contactService.ConnectUCS(comObject, tenantDbId, contactAppName, ContactServerStateNotification);

            //ContactDataContext.GetInstance().UserName = username;
            // ContactDataContext.GetInstance().PlaceID = placeId;
            //ContactDataContext.GetInstance().AgentID = agetnId;
            ContactDataContext.messageToClient = listener;
            ContactDataContext.GetInstance().IxnProxyId = ixnProxyId;

            if (output.MessageCode == "200")
            {
                //ContactDataContext.ComObject = comObject;
                //ContactDataContext.GetInstance().ApplicationName = applicationName;
                // ConfigContainer.Instance().TenantDbId =ConfigContainer.Instance().TenantDbId;
                ConfigContainer.Instance().TenantDbId = tenantDbId;
                //ComClass.GetInstance().GetContactBusinessAttribute("ContactAttributes");
                if (ConfigContainer.Instance().AllKeys.Contains("contactBusinessAttribute"))
                {
                    ContactDataContext.GetInstance().ContactValidAttribute = (Dictionary <string, string>)ConfigContainer.Instance().GetValue("contactBusinessAttribute");
                }
                ContactDataContext.GetInstance().ContactDisplayedAttributes = ReadKey.ReadConfigKeys("contact.displayed-attributes",
                                                                                                     new string[] { "Title", "FirstName", "LastName", "PhoneNumber", "EmailAddress" },
                                                                                                     ContactDataContext.GetInstance().ContactValidAttribute.Keys.ToList());
                ContactDataContext.GetInstance().ContactMandatoryAttributes = ReadKey.ReadConfigKeys("contact.mandatory-attributes",
                                                                                                     new string[] { "Title", "FirstName", "LastName", "PhoneNumber", "EmailAddress" },
                                                                                                     ContactDataContext.GetInstance().ContactDisplayedAttributes);
                ContactDataContext.GetInstance().ContactMultipleValueAttributes = ReadKey.ReadConfigKeys("contact.multiple-value-attributes",
                                                                                                         new string[] { "PhoneNumber", "EmailAddress" },
                                                                                                         ContactDataContext.GetInstance().ContactDisplayedAttributes);

                ComClass.GetInstance().GetAllValues();
            }
        }
Example #12
0
        public IActionResult About()
        {
            ViewData["Message"] = "Your application description page.";
            var dic = Log2Net.LogApi.GetLogWebApplicationsName();

            var        curDal = new Log_OperateTraceAdoDal();
            DBOperUser dbUser = new DBOperUser()
            {
                UserId = "CNNO2", UserName = "******"
            };


            #region 测试获取数据
            var dbData = curDal.GetAll(new LogORM.Models.PageSerach <Log_OperateTrace>()
            {
                Filter   = a => a.Id > 0,
                OrderBy  = a => a.OrderByDescending(m => m.LogTime),
                PageSize = 2
            });
            var dbModels = DtModelConvert <List <Log_OperateTrace> > .DeepClone(dbData.ExeModel);

            var selectModels = dbModels.ConvertAll(a => (object)a);
            #endregion 测试获取数据

            #region 测试添加更新删除
            LogORM.Models.AddDBPara <Log_OperateTrace> addDBPara = new LogORM.Models.AddDBPara <Log_OperateTrace>()
            {
                Model = new Log_OperateTrace()
                {
                    ClientHost = "江南可采莲",
                    Detail     = "鱼戏莲叶间",
                    ClientIP   = "鱼戏莲叶东西南北中间",
                    LogTime    = System.DateTime.Now,
                    LogType    = LogType.添加,
                    ServerHost = "鱼戏莲叶下上左右后前",
                    ServerIP   = "鱼莲玩嗨乐翻天",
                    SystemID   = SysCategory.SysA_02,
                    TabOrModu  = "莲叶变黄了_DNC",
                    UserID     = "鱼还没戏够",
                    UserName   = "******",
                }
            };
            var resAdd = curDal.Add(addDBPara, new DBOperUser()
            {
                UserId = "CN666", UserName = "******"
            });

            var resUpdate = curDal.Update(new Dictionary <string, object>()
            {
                { "id", 2 }
            }, new Dictionary <string, object>()
            {
                { "Detail", "后事如何,下回分解" }
            });

            var delRes = curDal.Delete(new Dictionary <string, object>()
            {
                { "id", 2 }
            }, dbUser);
            var delRes2 = curDal.Delete(3, dbUser);

            #endregion 测试添加更新删除

            #region 测试批量添加和更新
            Log_OperateTrace curAddLog = new Log_OperateTrace()
            {
                ClientHost = "江南可采莲",
                Detail     = "鱼戏莲叶间",
                ClientIP   = "鱼戏莲叶东西南北中间",
                LogTime    = System.DateTime.Now,
                LogType    = LogType.添加,
                ServerHost = "鱼戏莲叶下上左右后前",
                ServerIP   = "鱼莲玩嗨乐翻天",
                SystemID   = SysCategory.SysA_02,
                TabOrModu  = "莲叶变黄了_DNC",
                UserID     = "鱼还没戏够",
                UserName   = "******",
            };

            List <AddUpdateDelEdm> AddUpdateDelEdms = new List <AddUpdateDelEdm>();
            AddUpdateDelEdms.Add(new AddUpdateDelEdm()
            {
                TableName = "Log_OperateTrace", Datas = new List <object>()
                {
                    curAddLog
                }
            });
            var resBtAdd = curDal.AddUpdateDelete(new DBOperUser()
            {
                UserId = "CN1234", UserName = "******"
            }, AddUpdateDelEdms.ToArray());

            //以下为更新
            AddUpdateDelEdms.Add(new AddUpdateDelEdm()
            {
                TableName = "Log_OperateTrace", Datas = selectModels
            });
            AddUpdateDelEdms[0].Datas    = (selectModels);
            AddUpdateDelEdms[0].UpdateFD = new List <Dictionary <string, string> > {
                new Dictionary <string, string> {
                    { "ServerIP", "1.1.1.1" }
                }
            };
            var resBtUpdate = curDal.AddUpdateDelete(new DBOperUser()
            {
                UserId = "CN12348", UserName = "******"
            }, AddUpdateDelEdms.ToArray());
            #endregion 测试批量添加和更新

            #region 测试存储过程
            DbParameter[] spParameters = new SqlParameter[] { new SqlParameter("@userid", "CN4096"), new SqlParameter("@bok", System.Data.SqlDbType.Int) };
            spParameters[1].Direction = System.Data.ParameterDirection.Output;
            spParameters[1].Value     = 0;
            var spRes = curDal.ExecuteStoredProcedure("getInsertLog", true, new DBOperUser()
            {
                UserId = "CN8192", UserName = "******"
            }, spParameters);
            #endregion 测试存储过程

            #region 测试日志记录
            LogTraceVM model = new LogTraceVM()
            {
                Detail    = "所有的程序员都是天才编剧,所有的计算机都是烂演员",
                LogType   = LogType.业务记录,
                Remark    = "文学奖评选",
                TabOrModu = "计算机编程",
            };
            var logRes = new ComClass().WriteLog(LogLevel.Info, model);
            #endregion 测试日志记录

            //测试获取Sql
            var sql = curDal.CurSqlProvider.Select("username", "realname", "age").From("sys_user").Where <KeyValue>(a => a.Name == "username1").SqlString;

            return(View());
        }
 /// <summary>
 /// Handles the Click event of the btnOk control.
 /// </summary>
 /// <param name="sender">The source of the event.</param>
 /// <param name="e">The <see cref="System.Windows.RoutedEventArgs"/> instance containing the event data.</param>
 private void btnOk_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         Int32 EnteredIntValue = 0;
         if (cmbSkillLevel.Text == string.Empty && cmbSkillName.Text == string.Empty)
         {
             txtError.Text = "Enter the Skill Name and Level for the Agent";
             isSkillFocued = false;
             cmbSkillName.Focus();
             errorRowHeight.Height = GridLength.Auto;
         }
         else if (cmbSkillName.Text == string.Empty)
         {
             txtError.Text = "Enter the Skill Name for the Agent";
             isSkillFocued = false;
             cmbSkillName.Focus();
             errorRowHeight.Height = GridLength.Auto;
         }
         else if (cmbSkillLevel.Text == string.Empty)
         {
             txtError.Text = "Enter the Skill Level for the Agent";
             isSkillFocued = false;
             cmbSkillLevel.Focus();
             errorRowHeight.Height = GridLength.Auto;
         }
         else if (!(_dataContext.LoadAllSkills.FindIndex(x => x.Equals(cmbSkillName.Text, StringComparison.OrdinalIgnoreCase)) != -1))
         {
             txtError.Text = "Enter the Valid Skill Name for the Agent";
             isSkillFocued = false;
             cmbSkillName.Focus();
             errorRowHeight.Height = GridLength.Auto;
         }
         else if (!_dataContext.IsEditSkill &&
                  _dataContext.MySkills.Any(x => x.SkillName.Equals(cmbSkillName.Text, StringComparison.OrdinalIgnoreCase)))
         {
             txtError.Text = "The entered skill is already present for the Agent";
             isSkillFocued = false;
             cmbSkillName.Focus();
             errorRowHeight.Height = GridLength.Auto;
         }
         else
         {
             Int32 skillValue;
             try
             {
                 skillValue = Convert.ToInt32(cmbSkillLevel.Text);
                 if (skillValue > 2000000000)
                 {
                     txtError.Text = "Skill Level should be between 0 to 2000000000";
                     isSkillFocued = false;
                     cmbSkillLevel.Focus();
                     errorRowHeight.Height = GridLength.Auto;
                 }
                 else
                 {
                     if (!_dataContext.IsEditSkill)//Adding a skill
                     {
                         Int32 skillLevel = Convert.ToInt32(cmbSkillLevel.Text);
                         if (!_dataContext.SkillLevelSource.Contains(skillLevel))
                         {
                             _dataContext.SkillLevelSource.Add(skillLevel);
                         }
                         OutputValues outputValue = ComClass.AddUpdateSkillToAgent("Add", _dataContext.UserName,
                                                                                   _dataContext.LoadAllSkills.Find(s => s.Equals(cmbSkillName.Text, StringComparison.OrdinalIgnoreCase)), skillLevel);
                         if (outputValue.MessageCode == "200")
                         {
                             this.Close();
                         }
                         else
                         {
                             txtError.Text         = outputValue.Message;
                             errorRowHeight.Height = GridLength.Auto;
                         }
                     }
                     else
                     {
                         Int32 skillLevel = Convert.ToInt32(cmbSkillLevel.Text);
                         if (!_dataContext.SkillLevelSource.Contains(skillLevel))
                         {
                             _dataContext.SkillLevelSource.Add(skillLevel);
                         }
                         Pointel.Configuration.Manager.Common.OutputValues outputValue = ComClass.AddUpdateSkillToAgent("Edit", _dataContext.UserName,
                                                                                                                        _dataContext.LoadAllSkills.Find(s => s.Equals(cmbSkillName.Text, StringComparison.OrdinalIgnoreCase)), skillLevel);
                         if (outputValue.MessageCode == "200")
                         {
                             this.Close();
                         }
                         else
                         {
                             txtError.Text         = outputValue.Message;
                             errorRowHeight.Height = GridLength.Auto;
                         }
                     }
                 }
             }
             catch (Exception ex)
             {
                 txtError.Text         = "Skill Level should be between 0 to 2000000000";
                 errorRowHeight.Height = GridLength.Auto;
             }
             //bool isIntOrNot = Int32.TryParse(cmbSkillLevel.Text, out EnteredIntValue);
             //if (!isIntOrNot)
             //{
             //    txtError.Text = "Skill Level must be numerals";
             //    errorRowHeight.Height = GridLength.Auto;
             //}
         }
     }
     catch (Exception commonException)
     {
         _logger.Error("Skills:btnOk_click:" + commonException.ToString());
     }
 }
Example #14
0
        public void process()
        {
            //this.CalcularDevuelta(1670);

            inventory = new InventarioEfectivo();

            f56 = new F56(evnt, inventory);
            log.Debug("F56 Started");

            Thread.Sleep(1000);

            jcm = new JCMIvizion(evnt, inventory);
            jcm.StarCom();
            log.Debug("JCM Started");
            Thread.Sleep(1000);

            smrt = new SmartHopper(evnt, inventory);
            smrt.StartThread();
            log.Debug("smrt Started");
            Thread.Sleep(1000);



            //



            var _jcm   = jcm.getServiceStatus();
            var _f56   = f56.getServiceStatus();
            var _smart = smrt.getServiceStatus();

            evnt.GetEvent <Disable_Cash>().Publish(true);


            if (_jcm.error.HasError || _f56.error.HasError || _smart.error.HasError)
            {
                mach_status = machine_status.error;
            }
            if (_jcm.IsDone && _f56.IsDone)
            {
                mach_status = machine_status.idle;
            }
            log.Debug("Service started Started");
            using (var listener = new SocketListener(1337)) // Start listening
            {
                log.Debug("Socket Started");

                for (;;)
                {
                    try
                    {
                        using (var remote = listener.Accept()) // Accepts a connection (blocks execution)
                        {
                            var      data = remote.Receive();  // Receives data (blocks execution)
                            ComClass deserializedProduct = JsonConvert.DeserializeObject <ComClass>(data);


                            if (deserializedProduct.funciones == ComClass.function.cash_handling)
                            {
                                if (mach_status == machine_status.idle)
                                {
                                    HandlePaymentCash(deserializedProduct.Value);
                                    deserializedProduct.result = ComClass.status_cash.ok;
                                }
                                else
                                {
                                    deserializedProduct.result = ComClass.status_cash.fail;
                                }
                            }
                            else if (deserializedProduct.funciones == function.set_money)
                            {
                                this.SetMoney(deserializedProduct.Inventario, deserializedProduct.user);
                                deserializedProduct.result = status_cash.ok;
                            }
                            else if (deserializedProduct.funciones == function.add_money)
                            {
                                this.AddMoney(deserializedProduct.Inventario, deserializedProduct.user);
                                deserializedProduct.result = status_cash.ok;
                            }
                            else if (deserializedProduct.funciones == ComClass.function.system_status)
                            {
                                deserializedProduct.status = mach_status;
                            }
                            else if (deserializedProduct.funciones == function.get_devices_status)
                            {
                                deserializedProduct.DeviceStatus = new List <Common.ServiceStatus>();
                                deserializedProduct.DeviceStatus.Add(f56.getServiceStatus());
                                deserializedProduct.DeviceStatus.Add(smrt.getServiceStatus());
                                deserializedProduct.DeviceStatus.Add(jcm.getServiceStatus());
                            }
                            else if (deserializedProduct.funciones == ComClass.function.operation_status)
                            {
                                deserializedProduct.result = current_status;
                            }
                            else if (deserializedProduct.funciones == ComClass.function.get_money)
                            {
                                deserializedProduct.Inventario = inventory.GetInventario();
                            }
                            else if (deserializedProduct.funciones == ComClass.function.remove_money)
                            {
                                this.RemoveMoney(deserializedProduct.Inventario, deserializedProduct.user);
                                deserializedProduct.result = status_cash.ok;
                            }
                            remote.Send(JsonConvert.SerializeObject(deserializedProduct)); // Sends the received data back
                        }
                    }catch (SystemException E)
                    {
                        log.Error(E.Message);
                    }
                }
            }
        }
 public static void _156_3_WhatIsMarshalling()
 {
     ComClass com   = new ComClass();
     bool     isCom = Marshal.IsComObject(com);
 }
Example #16
0
        public Common.ServiceStatus GetServiceStatus(ComClass.function function)
        {

            Common.ServiceStatus response = new Common.ServiceStatus();

            try
            {
                ComClass clase = new ComClass();
                clase.funciones = function;
                string Test = JsonConvert.SerializeObject(clase);
                using (var socket = new ConnectedSocket("127.0.0.1", 1337)) // Connects to 127.0.0.1 on port 1337
                {
                    socket.Send(Test); // Sends some data
                    var data = socket.Receive(); // Receives some data back (blocks execution)
                    ComClass deserializedProduct = JsonConvert.DeserializeObject<ComClass>(data);
                    if (function == ComClass.function.system_status)
                    {
                        if (deserializedProduct.status == ComClass.machine_status.idle)
                        {
                            response.IsDone = true;
                            response.error.HasError = false;
                            return response;
                        }
                        else
                        {
                            response.IsDone = false;
                            response.error.HasError = true;
                            response.error.Message = deserializedProduct.status.ToString();
                        }
                    }
                    else if (function == ComClass.function.operation_status)
                    {

                        if (deserializedProduct.result == ComClass.status_cash.ok)
                        {
                            response.IsDone = true;
                            response.error.HasError = false;

                            return response;
                        }
                        else if (deserializedProduct.result == ComClass.status_cash.time_out)
                        {
                            response.IsDone = false;
                            response.error.HasError = true;
                            response.error.Message = ComClass.status_cash.time_out.ToString();
                            return response;

                        }
                        else if (deserializedProduct.result == ComClass.status_cash.operation_error)
                        {
                            response.IsDone = false;
                            response.error.HasError = true;
                            response.error.Message = ComClass.status_cash.time_out.ToString();
                            return response;

                        }
                        else if (deserializedProduct.result == ComClass.status_cash.waiting)
                        {
                            response.IsDone = false;
                            response.error.HasError = false;
                            response.error.Message = "";
                            return response;

                        }
                    }

                }
            }catch (Exception e)
            {
                response.error.HasError = true;
                response.error.Message = e.Message;
                response.IsDone = true;
            }
                           
             return response;     

        }