I have 2 table on api data: Booking{... },Room{.. } After booking and save the meeting room, the data will be submitted to the Booking table. on form i create datagridview to view. Get the list of rooms in the Room api table and add new hour columns from 08:00 to 18:00. I have a data sheet and after I set the schedule, I want to upload all meeting rooms and meeting times like the picture above, but I can not.
private void loadDataRoom()//function load room to datagrdiview
{
try
{
QueryRQ query = CreateQuery();
RoomIndexRS result = apiBooking.getRoom(query).Result;
if (result == null)
{
MessageBox.Show("Không l?y du?c k?t qu? t? phía server", Program.Setting.Language.GetString("captionerror"), MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else if (result.Status != 200)
{
MessageBox.Show(result.Error, Program.Setting.Language.GetString("captionerror"), MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
else
{
grdRoom.DataSource = result.Data;
grdRoom.Columns.Remove("Status");
grdRoom.Columns.Remove("Sort");
grdRoom.Columns.Remove("CreatedDate");
grdRoom.Columns.Remove("CreatedAt");
grdRoom.Columns.Remove("CreatedBy");
grdRoom.Columns.Remove("UpdatedAt");
grdRoom.Columns.Remove("UpdatedBy");
grdRoom.Columns.Remove("CodeName");
// grdRoom.Columns.Remove("Name");
grdRoom.Columns.Remove("LocationId");
grdRoom.Columns.Remove("Volumn");
grdRoom.Columns.Remove("Items");
grdRoom.Columns.Remove("Images");
string columns = "name";
string[] _arrColumns = columns.Split(',');
grdRoom.Columns["name"].Width = 152;
foreach (DataGridViewColumn col in grdRoom.Columns)
{
if (_arrColumns.Contains(col.Name.ToLower()))
{
col.DisplayIndex = _arrColumns.ToList().LastIndexOf(col.Name.ToLower());
col.HeaderText = Program.Setting.Language.GetString("colgrd" + col.Name);
col.Resizable = DataGridViewTriState.True;
}
else
{
col.Visible = false;
}
}
//// Create a new column
column1Room = new DataGridViewTextBoxColumn();
column1Room.HeaderText = "08:00"; // Set the header text
column1Room.Name = "column1"; // Set the name of the column
column1Room.Width = 55;
grdRoom.Columns.Add(column1Room);
column2Room = new DataGridViewTextBoxColumn();
column2Room.HeaderText = "08:30"; // Set the header text
column2Room.Name = "column2"; // Set the name of the column
column2Room.Width = 55;
grdRoom.Columns.Add(column2Room);
column3Room = new DataGridViewTextBoxColumn();
column3Room.HeaderText = "09:00"; // Set the header text
column3Room.Name = "column3"; // Set the name of the column
column3Room.Width = 55;
grdRoom.Columns.Add(column3Room);
column4Room = new DataGridViewTextBoxColumn();
column4Room.HeaderText = "09:30"; // Set the header text
column4Room.Name = "column4"; // Set the name of the column
column4Room.Width = 55;
grdRoom.Columns.Add(column4Room);
column5Room = new DataGridViewTextBoxColumn();
column5Room.HeaderText = "10:00"; // Set the header text
column5Room.Name = "column5"; // Set the name of the column
column5Room.Width = 55;
grdRoom.Columns.Add(column5Room);
column6Room = new DataGridViewTextBoxColumn();
column6Room.HeaderText = "10:30"; // Set the header text
column6Room.Name = "column6"; // Set the name of the column
column6Room.Width = 55;
grdRoom.Columns.Add(column6Room);
column7Room = new DataGridViewTextBoxColumn();
column7Room.HeaderText = "11:00"; // Set the header text
column7Room.Name = "column7"; // Set the name of the column
column7Room.Width = 55;
grdRoom.Columns.Add(column7Room);
column8Room = new DataGridViewTextBoxColumn();
column8Room.HeaderText = "11:30"; // Set the header text
column8Room.Name = "column8"; // Set the name of the column
column8Room.Width = 55;
grdRoom.Columns.Add(column8Room);
column9Room = new DataGridViewTextBoxColumn();
column9Room.HeaderText = "12:00"; // Set the header text
column9Room.Name = "column9"; // Set the name of the column
column9Room.Width = 55;
grdRoom.Columns.Add(column9Room);
column10Room = new DataGridViewTextBoxColumn();
column10Room.HeaderText = "12:30"; // Set the header text
column10Room.Name = "column10"; // Set the name of the column
column10Room.Width = 55;
grdRoom.Columns.Add(column10Room);
column11Room = new DataGridViewTextBoxColumn();
column11Room.HeaderText = "13:00"; // Set the header text
column11Room.Name = "column11"; // Set the name of the column
column11Room.Width = 55;
grdRoom.Columns.Add(column11Room);
column12Room = new DataGridViewTextBoxColumn();
column12Room.HeaderText = "13:30"; // Set the header text
column12Room.Name = "column12"; // Set the name of the columng
column12Room.Width = 55;
grdRoom.Columns.Add(column12Room);
column13Room = new DataGridViewTextBoxColumn();
column13Room.HeaderText = "14:00"; // Set the header text
column13Room.Name = "column13"; // Set the name of the column
column13Room.Width = 55;
grdRoom.Columns.Add(column13Room);
column14Room = new DataGridViewTextBoxColumn();
column14Room.HeaderText = "14:30"; // Set the header text
column14Room.Name = "column14"; // Set the name of the column
column14Room.Width = 55;
grdRoom.Columns.Add(column14Room);
column15Room = new DataGridViewTextBoxColumn();
column15Room.HeaderText = "15:00"; // Set the header text
column15Room.Name = "column15"; // Set the name of the column
column15Room.Width = 55;
grdRoom.Columns.Add(column15Room);
column16Room = new DataGridViewTextBoxColumn();
column16Room.HeaderText = "15:30"; // Set the header text
column16Room.Name = "column16"; // Set the name of the column
column16Room.Width = 52;
grdRoom.Columns.Add(column16Room);
column17Room = new DataGridViewTextBoxColumn();
column17Room.HeaderText = "16:00"; // Set the header text
column17Room.Name = "column17"; // Set the name of the column
column17Room.Width = 52;
grdRoom.Columns.Add(column17Room);
column18Room = new DataGridViewTextBoxColumn();
column18Room.HeaderText = "16:30"; // Set the header text
column18Room.Name = "column18"; // Set the name of the column
column18Room.Width = 52;
grdRoom.Columns.Add(column18Room);
column19Room = new DataGridViewTextBoxColumn();
column19Room.HeaderText = "17:00"; // Set the header text
column19Room.Name = "column19"; // Set the name of the column
column19Room.Width = 52;
grdRoom.Columns.Add(column19Room);
column20Room = new DataGridViewTextBoxColumn();
column20Room.HeaderText = "17:30"; // Set the header text
column20Room.Name = "column20"; // Set the name of the column
column20Room.Width = 52;
grdRoom.Columns.Add(column20Room);
column21Room = new DataGridViewTextBoxColumn();
column21Room.HeaderText = "18:00"; // Set the header text
column21Room.Name = "column21"; // Set the name of the column
grdRoom.Columns.Add(column21Room);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void selectAreaColor()//function get color of room and time
{
QueryRQ query = CreateQuery();
BookingIndexRS result = apiBooking.getBooking(query).Result;
foreach (BookingDetail r in result.Data)
{
string idLocal = r.Id.ToString();
string idroom = r.RoomId.ToString();
string roomName = r.RoomName.ToString();
string start = r.Start.ToString();
string stop = r.Stop.ToString();
string datestring = r.Date.ToString();
string format = "yyyy-MM-ddTHH:mm:ssZ";
DateTime datebook = DateTime.ParseExact(datestring, format, CultureInfo.InvariantCulture);
// Get the start time and end time inputs and the selected meeting room
DateTime startTime = DateTime.ParseExact(start, "HH:mm", null);
DateTime stopTime = DateTime.ParseExact(stop, "HH:mm", null);
if(datebook.Date== dateNgay.Value.Date)
{
foreach (DataGridViewRow row in grdRoom.Rows)
{
if (row.Cells["Id"].Value.ToString() == idroom)
{
int rowIndex = row.Index;
//lo?i tr? các c?t trong b?ng Room
List<string> excluHeadertext = new List<string>() { "Tên phòng h?p","Id", "Status", "Sort", "CreatedDate", "CreatedAt", "CreatedBy", "UpdatedAt",
"UpdatedBy", "CodeName", "Name", "LocationId","Volumn", "Items", "Images"};
// Loop through the columns and compare the start and end times with the time slots
for (int i = 1; i < grdRoom.Columns.Count; i++)
{
if (!excluHeadertext.Contains(grdRoom.Columns[i].HeaderText))
{
DateTime columnTime = DateTime.ParseExact(grdRoom.Columns[i].HeaderText, "HH:mm", CultureInfo.InvariantCulture);
DateTime startColumnTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, columnTime.Hour, columnTime.Minute, 0);
string _HeaderText = grdRoom.Columns[i].Name.ToString();
if (startTime == columnTime)
{
grdRoom.Rows[rowIndex].Cells[_HeaderText].Style.BackColor = Color.Blue;
if (startTime == stopTime)
return;
else
startTime = startTime.AddMinutes(30);
}
}
}
}
}
}
}
}
