Esempio n. 1
0
        /// <summary>
        /// Get door socket in door
        /// </summary>
        /// <returns>Return list door socket or null if error</returns>
        public List <DTO_DoorSocket> GetDoorSocketInDoor(string DoorId)
        {
            List <DTO_DoorSocket> lstSockets = new List <DTO_DoorSocket>();
            DataSet ds = dal.GetDoorSocketsInDoor(DoorId);

            if (ds.Tables.Count < 0)
            {
                return(null);
            }

            try
            {
                #region Contact
                DataTable contactTable = ds.Tables[0];
                foreach (DataRow row in contactTable.Rows)
                {
                    DTO_DoorSocket socket = new DTO_DoorSocket();
                    socket.Id   = row["SocketId"] == DBNull.Value ? null : row["SocketId"].ToString();
                    socket.Door = row["Door"] == DBNull.Value ? null : row["Door"].ToString();
                    socket.Name = row["Name"] == DBNull.Value ? null : row["Name"].ToString();
                    socket.Type = row["SocketType"] == DBNull.Value ? EType.DoorSocketType.CONTACT : (DoorSocketType)Convert.ToInt16(row["SocketType"].ToString());
                    socket.ConnectedDeviceSocketOrder = row["OrdNumber"] == DBNull.Value ? -1 : (int)row["OrdNumber"];
                    socket.ConnectedDeviceSocketId    = row["DeviceSocketId"] == DBNull.Value ? null : row["DeviceSocketId"].ToString();
                    socket.ConnectedDevice            = row["DeviceName"] == DBNull.Value ? null : row["DeviceName"].ToString();
                    socket.ConnectedDeviceId          = row["DeviceId"] == DBNull.Value ? null : row["DeviceId"].ToString();

                    DTO_Contact contact = new DTO_Contact();
                    contact.Id   = row["Id"] == DBNull.Value ? null : row["Id"].ToString();
                    contact.Type = row["Type"] == DBNull.Value ? EType.ContactType.DOOR : (ContactType)Convert.ToInt16(row["Type"].ToString());
                    contact.Mode = row["Mode"] == DBNull.Value ? EType.ContactMode.NOT_USE : (ContactMode)Convert.ToInt16(row["Mode"].ToString());

                    socket.Property = contact;

                    lstSockets.Add(socket);
                }
                #endregion

                #region Lock
                DataTable lockTable = ds.Tables[1];
                foreach (DataRow row in lockTable.Rows)
                {
                    DTO_DoorSocket socket = new DTO_DoorSocket();
                    socket.Id   = row["SocketId"] == DBNull.Value ? null : row["SocketId"].ToString();
                    socket.Door = row["Door"] == DBNull.Value ? null : row["Door"].ToString();
                    socket.Name = row["Name"] == DBNull.Value ? null : row["Name"].ToString();
                    socket.Type = row["SocketType"] == DBNull.Value ? EType.DoorSocketType.LOCK : (DoorSocketType)Convert.ToInt16(row["SocketType"].ToString());
                    socket.ConnectedDeviceSocketOrder = row["OrdNumber"] == DBNull.Value ? -1 : (int)row["OrdNumber"];
                    socket.ConnectedDeviceSocketId    = row["DeviceSocketId"] == DBNull.Value ? null : row["DeviceSocketId"].ToString();
                    socket.ConnectedDevice            = row["DeviceName"] == DBNull.Value ? null : row["DeviceName"].ToString();
                    socket.ConnectedDeviceId          = row["DeviceId"] == DBNull.Value ? null : row["DeviceId"].ToString();

                    DTO_Lock locks = new DTO_Lock();
                    locks.Id   = row["Id"] == DBNull.Value ? null : row["Id"].ToString();
                    locks.Type = row["Type"] == DBNull.Value ? EType.LockType.NOT_USE : (LockType)Convert.ToInt16(row["Type"].ToString());

                    socket.Property = locks;

                    lstSockets.Add(socket);
                }
                #endregion

                #region Reader
                DataTable readerTable = ds.Tables[2];
                foreach (DataRow row in readerTable.Rows)
                {
                    DTO_DoorSocket socket = new DTO_DoorSocket();
                    socket.Id   = row["SocketId"] == DBNull.Value ? null : row["SocketId"].ToString();
                    socket.Door = row["Door"] == DBNull.Value ? null : row["Door"].ToString();
                    socket.Name = row["Name"] == DBNull.Value ? null : row["Name"].ToString();
                    socket.Type = row["SocketType"] == DBNull.Value ? EType.DoorSocketType.READER : (DoorSocketType)Convert.ToInt16(row["SocketType"].ToString());
                    socket.ConnectedDeviceSocketOrder = row["OrdNumber"] == DBNull.Value ? -1 : (int)row["OrdNumber"];
                    socket.ConnectedDeviceSocketId    = row["DeviceSocketId"] == DBNull.Value ? null : row["DeviceSocketId"].ToString();
                    socket.ConnectedDevice            = row["DeviceName"] == DBNull.Value ? null : row["DeviceName"].ToString();
                    socket.ConnectedDeviceId          = row["DeviceId"] == DBNull.Value ? null : row["DeviceId"].ToString();

                    DTO_Reader reader = new DTO_Reader();
                    reader.Id    = row["Id"] == DBNull.Value ? null : row["Id"].ToString();
                    reader.Type  = row["Type"] == DBNull.Value ? EType.ReaderType.IN : (ReaderType)Convert.ToInt16(row["Type"].ToString());
                    reader.IsUse = row["IsUse"] == DBNull.Value ? false : (bool)(row["IsUse"]);

                    socket.Property = reader;

                    lstSockets.Add(socket);
                }
                #endregion

                #region Rex
                DataTable rexTable = ds.Tables[3];
                foreach (DataRow row in rexTable.Rows)
                {
                    DTO_DoorSocket socket = new DTO_DoorSocket();
                    socket.Id   = row["SocketId"] == DBNull.Value ? null : row["SocketId"].ToString();
                    socket.Door = row["Door"] == DBNull.Value ? null : row["Door"].ToString();
                    socket.Name = row["Name"] == DBNull.Value ? null : row["Name"].ToString();
                    socket.Type = row["SocketType"] == DBNull.Value ? EType.DoorSocketType.REX : (DoorSocketType)Convert.ToInt16(row["SocketType"].ToString());
                    socket.ConnectedDeviceSocketOrder = row["OrdNumber"] == DBNull.Value ? -1 : (int)row["OrdNumber"];
                    socket.ConnectedDeviceSocketId    = row["DeviceSocketId"] == DBNull.Value ? null : row["DeviceSocketId"].ToString();
                    socket.ConnectedDevice            = row["DeviceName"] == DBNull.Value ? null : row["DeviceName"].ToString();
                    socket.ConnectedDeviceId          = row["DeviceId"] == DBNull.Value ? null : row["DeviceId"].ToString();

                    DTO_Rex rex = new DTO_Rex();
                    rex.Id   = row["Id"] == DBNull.Value ? null : row["Id"].ToString();
                    rex.Type = row["Type"] == DBNull.Value ? EType.RexType.IN : (RexType)Convert.ToInt16(row["Type"].ToString());


                    socket.Property = rex;

                    lstSockets.Add(socket);
                }
                #endregion

                return(lstSockets);
            }
            catch
            {
                return(null);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// Get door socket by key (Id)
        /// </summary>
        /// <param name="Id"></param>
        /// <returns>Return door socket if founed or null if error</returns>
        public DTO_DoorSocket GetDoorSocketById(string Id)
        {
            DataTable dt = dal.GetDoorSocketById(Id);

            if (dt.Rows.Count < 0)
            {
                return(null);
            }

            try
            {
                DataRow row = dt.Rows[0];

                DTO_DoorSocket socket = new DTO_DoorSocket();
                socket.Id   = row["SocketId"] == DBNull.Value ? null : row["SocketId"].ToString();
                socket.Door = row["Door"] == DBNull.Value ? null : row["Door"].ToString();
                socket.Name = row["Name"] == DBNull.Value ? null : row["Name"].ToString();
                socket.Type = row["SocketType"] == DBNull.Value ? EType.DoorSocketType.CONTACT : (DoorSocketType)Convert.ToInt16(row["SocketType"].ToString());
                socket.ConnectedDeviceSocketOrder = row["OrdNumber"] == DBNull.Value ? -1 : (int)row["OrdNumber"];
                socket.ConnectedDeviceSocketId    = row["DeviceSocketId"] == DBNull.Value ? null : row["DeviceSocketId"].ToString();
                socket.ConnectedDevice            = row["DeviceName"] == DBNull.Value ? null : row["DeviceName"].ToString();
                socket.ConnectedDeviceId          = row["DeviceId"] == DBNull.Value ? null : row["DeviceId"].ToString();

                switch (socket.Type)
                {
                case DoorSocketType.CONTACT:
                    DTO_Contact contact = new DTO_Contact();
                    contact.Id   = row["Id"] == DBNull.Value ? null : row["Id"].ToString();
                    contact.Type = row["Type"] == DBNull.Value ? EType.ContactType.DOOR : (ContactType)Convert.ToInt16(row["Type"].ToString());
                    contact.Mode = row["Mode"] == DBNull.Value ? EType.ContactMode.NOT_USE : (ContactMode)Convert.ToInt16(row["Mode"].ToString());

                    socket.Property = contact;
                    break;

                case DoorSocketType.LOCK:
                    DTO_Lock locks = new DTO_Lock();
                    locks.Id   = row["Id"] == DBNull.Value ? null : row["Id"].ToString();
                    locks.Type = row["Type"] == DBNull.Value ? EType.LockType.NOT_USE : (LockType)Convert.ToInt16(row["Type"].ToString());

                    socket.Property = locks;
                    break;

                case DoorSocketType.READER:

                    DTO_Reader reader = new DTO_Reader();
                    reader.Id    = row["Id"] == DBNull.Value ? null : row["Id"].ToString();
                    reader.Type  = row["Type"] == DBNull.Value ? EType.ReaderType.IN : (ReaderType)Convert.ToInt16(row["Type"].ToString());
                    reader.IsUse = row["IsUse"] == DBNull.Value ? false : (bool)(row["IsUse"]);

                    socket.Property = reader;
                    break;

                case DoorSocketType.REX:
                    DTO_Rex rex = new DTO_Rex();
                    rex.Id   = row["Id"] == DBNull.Value ? null : row["Id"].ToString();
                    rex.Type = row["Type"] == DBNull.Value ? EType.RexType.IN : (RexType)Convert.ToInt16(row["Type"].ToString());

                    socket.Property = rex;
                    break;
                }

                return(socket);
            }
            catch
            {
                return(null);
            }
        }
Esempio n. 3
0
        private void btSave_Click(object sender, RoutedEventArgs e)
        {
            socket.Name = tbSocketName.Text;
            if (cbConnectSocket.SelectedItem != null)
            {
                socket.ConnectedDeviceSocketId = cbConnectSocket.SelectedValue.ToString();
            }

            switch (socket.Type)
            {
            case EType.DoorSocketType.CONTACT:
                DTO_Contact contact = new DTO_Contact();
                contact.Type = (EType.ContactType)cbSocketDetailType.SelectedItem;
                contact.Mode = (EType.ContactMode)cbSocketDetailMode.SelectedItem;

                socket.Property = contact;
                break;

            case EType.DoorSocketType.LOCK:
                DTO_Lock llock = new DTO_Lock();
                llock.Type = (EType.LockType)cbSocketDetailType.SelectedItem;

                socket.Property = llock;

                break;

            case EType.DoorSocketType.READER:
                DTO_Reader reader = new DTO_Reader();
                reader.Type = (EType.ReaderType)cbSocketDetailType.SelectedItem;

                socket.Property = reader;

                break;

            case EType.DoorSocketType.REX:
                DTO_Rex rex = new DTO_Rex();
                rex.Type = (EType.RexType)cbSocketDetailType.SelectedItem;

                socket.Property = rex;
                break;
            }

            SQLResult result;

            if (mode == EType.WindowMode.ADD_MODE)
            {
                result = bUS_DoorSocket.AddNewSocket(socket);
                if (result.Result)
                {
                    socket = bUS_DoorSocket.GetDoorSocketById(result.ExtraData);

                    DTO_Door selectedDoor = Repository.lstAllDoor.FirstOrDefault(d => d.Id == doorId);
                    if (selectedDoor != null)
                    {
                        selectedDoor.Sockets.Add(socket);
                    }

                    this.DialogResult = true;
                    this.Hide();
                }
                else
                {
                    MessageBox.Show(result.Detail, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            else
            {
                result = bUS_DoorSocket.UpdateSocket(socket);
                if (result.Result)
                {
                    DTO_Door selectedDoor = Repository.lstAllDoor.FirstOrDefault(d => d.Id == doorId);
                    if (selectedDoor != null)
                    {
                        DTO_DoorSocket oldSocket = (DTO_DoorSocket)selectedDoor.Sockets.FirstOrDefault(s => s.Id == socket.Id);
                        oldSocket = socket;
                    }

                    this.DialogResult = true;
                    this.Hide();
                }
                else
                {
                    MessageBox.Show(result.Detail, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Insert new door socket to database
        /// </summary>
        /// <param name="socket"></param>
        /// <returns></returns>
        public SQLResult AddNewSocket(DTO_DoorSocket socket)
        {
            DataTable dt     = new DataTable();
            SQLResult result = new SQLResult(false, "");

            try
            {
                _conn.Open();

                SqlCommand command = new SqlCommand();
                command.Connection  = _conn;
                command.CommandType = CommandType.StoredProcedure;
                command.CommandText = "spLDoorSocketSave";
                command.Parameters.AddWithValue("WorkType", "A");
                command.Parameters.AddWithValue("Id", "");
                command.Parameters.AddWithValue("Name", socket.Name);
                command.Parameters.AddWithValue("Door", socket.Door);
                command.Parameters.AddWithValue("Type", (int)socket.Type);
                if (socket.ConnectedDeviceSocketId == null)
                {
                    command.Parameters.AddWithValue("DeviceSocket", DBNull.Value);
                }
                else
                {
                    command.Parameters.AddWithValue("DeviceSocket", socket.ConnectedDeviceSocketId);
                }


                switch (socket.Type)
                {
                case EType.DoorSocketType.CONTACT:
                    DTO_Contact contact = (DTO_Contact)socket.Property;
                    command.Parameters.AddWithValue("SocketType", contact.Type);
                    command.Parameters.AddWithValue("SocketMode", contact.Mode);
                    break;

                case EType.DoorSocketType.LOCK:
                    DTO_Lock llock = (DTO_Lock)socket.Property;
                    command.Parameters.AddWithValue("SocketType", llock.Type);
                    command.Parameters.AddWithValue("SocketMode", DBNull.Value);
                    break;

                case EType.DoorSocketType.READER:
                    DTO_Reader reader = (DTO_Reader)socket.Property;
                    command.Parameters.AddWithValue("SocketType", reader.Type);
                    command.Parameters.AddWithValue("SocketMode", DBNull.Value);
                    break;

                case EType.DoorSocketType.REX:
                    DTO_Rex rex = (DTO_Rex)socket.Property;
                    command.Parameters.AddWithValue("SocketType", rex.Type);
                    command.Parameters.AddWithValue("SocketMode", DBNull.Value);
                    break;
                }


                SqlDataAdapter adapter = new SqlDataAdapter();
                adapter.SelectCommand = command;
                adapter.Fill(dt);

                if (dt.Rows[0]["Result"].ToString() == "OK")
                {
                    result.Result = true;
                }

                result.Detail    = dt.Rows[0]["Detail"].ToString();
                result.ExtraData = dt.Rows[0]["ExtraData"].ToString();
            }
            catch (Exception ex)
            {
                result.Detail = ex.Message;
            }
            finally
            {
                _conn.Close();
            }

            return(result);
        }
Esempio n. 5
0
        private void InitData()
        {
            bUS_DoorSocket = new BUS_DoorSocket();

            cbSocketType.ItemsSource         = Enum.GetValues(typeof(EType.DoorSocketType));
            cbDoorOfSocket.ItemsSource       = Repository.lstAllDoor;
            cbDoorOfSocket.DisplayMemberPath = "Name";
            cbDoorOfSocket.SelectedValuePath = "Id";
            cbDoorOfSocket.SelectedValue     = doorId;
            cbDoorOfSocket.IsEnabled         = false;

            cbConnectDevice.ItemsSource       = Repository.lstAllDevices;
            cbConnectDevice.DisplayMemberPath = "Name";
            cbConnectDevice.SelectedValuePath = "Id";

            tbSocketId.IsReadOnly = true;

            if (mode == EType.WindowMode.ADD_MODE)
            {
                socket      = new DTO_DoorSocket();
                socket.Door = doorId;

                tbSocketId.Text   = "";
                tbSocketName.Text = "";

                cbSocketType.SelectedIndex = 0;
                //cbConnectDevice.SelectedIndex = 0;

                btPullOut.IsEnabled = false;
                btSave.IsEnabled    = true;
            }
            else
            {
                tbSocketId.Text               = socket.Id;
                tbSocketName.Text             = socket.Name;
                cbSocketType.SelectedValue    = socket.Type;
                cbSocketType.IsEnabled        = false;
                cbConnectDevice.SelectedValue = socket.ConnectedDeviceId;

                if (socket.ConnectedDeviceId == null)
                {
                    btPullOut.IsEnabled = false;
                    btSave.IsEnabled    = true;
                }
                else
                {
                    btPullOut.IsEnabled = true;
                    btSave.IsEnabled    = true;
                }

                switch (socket.Type)
                {
                case EType.DoorSocketType.CONTACT:
                    cbSocketDetailType.ItemsSource = Enum.GetValues(typeof(EType.ContactType));
                    cbSocketDetailMode.ItemsSource = Enum.GetValues(typeof(EType.ContactMode));
                    cbSocketDetailMode.IsEnabled   = true;
                    DTO_Contact contact = (DTO_Contact)socket.Property;
                    cbSocketDetailType.SelectedValue = contact.Type;
                    cbSocketDetailMode.SelectedValue = contact.Mode;
                    break;

                case EType.DoorSocketType.LOCK:
                    cbSocketDetailType.ItemsSource = Enum.GetValues(typeof(EType.LockType));
                    cbSocketDetailMode.ItemsSource = null;
                    cbSocketDetailMode.IsEnabled   = false;
                    DTO_Lock llock = (DTO_Lock)socket.Property;
                    cbSocketDetailType.SelectedItem = llock.Type;
                    break;

                case EType.DoorSocketType.READER:
                    cbSocketDetailType.ItemsSource = Enum.GetValues(typeof(EType.ReaderType));
                    cbSocketDetailMode.ItemsSource = null;
                    cbSocketDetailMode.IsEnabled   = false;
                    DTO_Reader reader = (DTO_Reader)socket.Property;
                    cbSocketDetailType.SelectedItem = reader.Type;
                    break;

                case EType.DoorSocketType.REX:
                    cbSocketDetailType.ItemsSource = Enum.GetValues(typeof(EType.RexType));
                    cbSocketDetailMode.ItemsSource = null;
                    cbSocketDetailMode.IsEnabled   = false;
                    DTO_Rex rex = (DTO_Rex)socket.Property;
                    cbSocketDetailType.SelectedItem = rex.Type;
                    break;
                }
            }
        }