/// <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); } }
/// <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); } }
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); } } }
/// <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); }
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; } } }