/// <summary> /// Event /// Datagrid shifts selcetion changed /// </summary> private void Datagrid_Shifts_SelectionChanged(object sender, SelectionChangedEventArgs e) { try { m_Datagrid_Mission_Shifts selectedShift = (m_Datagrid_Mission_Shifts)Datagrid_Shifts.SelectedItem; if (selectedShift != null) { //Find the shift in the collection Shift shift = SoftwareObjects.ShiftsCollection.Find(x => x.id.Equals(selectedShift.id)); //Fill boxes Cmb_Shifts_Shift_StartHour_Hour.Text = shift.start_time.Split(':')[0]; Cmb_Shifts_Shift_StartHour_Min.Text = shift.start_time.Split(':')[1]; Cmb_Shifts_Shift_EndHour_Hour.Text = shift.end_time.Split(':')[0]; Cmb_Shifts_Shift_EndHour_Min.Text = shift.end_time.Split(':')[1]; Txt_Shifts_Shift_HourlyRate.Text = shift.hourly_rate; Txt_Shifts_Shift_Pause.Text = shift.pause; Hostess hostess = SoftwareObjects.HostsAndHotessesCollection.Find(y => y.id.Equals(shift.id_hostorhostess)); Cmb_Shifts_Shift_HostOrHostess.Text = hostess.zipcode + " \t " + hostess.firstname + " " + hostess.lastname; Chk_Shifts_Shift_Suit.IsChecked = shift.suit; Cld_Shifts_Shift_Date.SelectedDate = Convert.ToDateTime(shift.date); Cld_Shifts_Shift_Date.DisplayDate = Convert.ToDateTime(shift.date); m_Shift = shift; } } catch (Exception exception) { m_Global_Handler.Log_Handler.WriteException(MethodBase.GetCurrentMethod().Name, exception); return; } }
/// <summary> /// Event /// Click on the modify button /// </summary> private void Btn_Shifts_Modify_Click(object sender, RoutedEventArgs e) { try { //Fill parameters DateTime dateSelected = DateTime.Today; if (Cld_Shifts_Shift_Date.SelectedDate != null) { dateSelected = (DateTime)Cld_Shifts_Shift_Date.SelectedDate; } m_Shift.date = dateSelected.ToString("dd/MM/yyyy"); m_Shift.end_time = Cmb_Shifts_Shift_EndHour_Hour.Text + ":" + Cmb_Shifts_Shift_EndHour_Min.Text; m_Shift.start_time = Cmb_Shifts_Shift_StartHour_Hour.Text + ":" + Cmb_Shifts_Shift_StartHour_Min.Text; m_Shift.hourly_rate = Txt_Shifts_Shift_HourlyRate.Text; if (Cmb_Shifts_Shift_HostOrHostess.SelectedIndex != -1) { m_Shift.id_hostorhostess = m_List_IdHostsAndHostesses[Cmb_Shifts_Shift_HostOrHostess.SelectedIndex]; } else { MessageBox.Show(this, m_Global_Handler.Resources_Handler.Get_Resources("NoHostSelectedErrorText"), m_Global_Handler.Resources_Handler.Get_Resources("NoHostSelectedErrorCaption"), MessageBoxButton.OK, MessageBoxImage.Warning); return; } m_Shift.id_mission = m_Mission.id; m_Shift.pause = Txt_Shifts_Shift_Pause.Text; m_Shift.suit = (bool)Chk_Shifts_Shift_Suit.IsChecked; //Edit to internet database string res = m_Database_Handler.Edit_ShiftToDatabase(m_Shift.date, m_Shift.end_time, m_Shift.hourly_rate, m_Shift.id, m_Shift.id_hostorhostess, m_Shift.id_mission, m_Shift.pause, m_Shift.start_time, m_Shift.suit); //Treat the result if (res.Contains("OK")) { //Edit id string newId = m_Mission.id + "_" + m_Shift.date + "_" + m_Shift.start_time + "_" + m_Shift.end_time + "_" + m_Shift.id_hostorhostess; m_Database_Handler.Edit_ShiftIdToDatabase(m_Shift.id, newId); //Edit the mission to include the id of the new shift m_Mission.id_list_shifts = m_Mission.id_list_shifts.Replace(m_Shift.id, newId); m_Database_Handler.Edit_MissionToDatabase(m_Mission.address, m_Mission.city, m_Mission.client_name, m_Mission.country, m_Mission.date_billed, m_Mission.date_creation, m_Mission.date_declined, m_Mission.date_done, m_Mission.description, m_Mission.end_date, m_Mission.id, m_Mission.id_client, m_Mission.id_list_shifts, m_Mission.start_date, m_Mission.state, m_Mission.zipcode); //Edit into the collection Shift shift = SoftwareObjects.ShiftsCollection.Find(x => x.id.Equals(m_Shift.id)); shift.date = m_Shift.date; shift.end_time = m_Shift.end_time; shift.hourly_rate = m_Shift.hourly_rate; shift.id = newId; shift.id_hostorhostess = m_Shift.id_hostorhostess; shift.id_mission = m_Shift.id_mission; shift.pause = m_Shift.pause; shift.start_time = m_Shift.start_time; shift.suit = m_Shift.suit; //Modify selected shift id m_Shift.id = newId; //Edit into the datagrid m_Datagrid_Mission_Shifts datagridShift = (m_Datagrid_Mission_Shifts)Datagrid_Shifts.SelectedItem; if (datagridShift != null) { datagridShift.id = m_Shift.id; datagridShift.date = m_Shift.date; datagridShift.end_time = m_Shift.end_time; datagridShift.hostorhostess = SoftwareObjects.HostsAndHotessesCollection.Find(x => x.id.Equals(m_Shift.id_hostorhostess)).firstname + " " + SoftwareObjects.HostsAndHotessesCollection.Find(x => x.id.Equals(m_Shift.id_hostorhostess)).lastname; datagridShift.start_time = m_Shift.start_time; } Datagrid_Shifts.Items.Refresh(); //Edit the mission to include the id of the new shift m_Database_Handler.Edit_MissionToDatabase(m_Mission.address, m_Mission.city, m_Mission.client_name, m_Mission.country, m_Mission.date_billed, m_Mission.date_creation, m_Mission.date_declined, m_Mission.date_done, m_Mission.description, m_Mission.end_date, m_Mission.id, m_Mission.id_client, m_Mission.id_list_shifts, m_Mission.start_date, m_Mission.state, m_Mission.zipcode); } else if (res.Contains("Error")) { //Treatment of the error MessageBox.Show(this, res, m_Global_Handler.Resources_Handler.Get_Resources("Error"), MessageBoxButton.OK, MessageBoxImage.Error); m_Global_Handler.Log_Handler.WriteMessage(MethodBase.GetCurrentMethod().Name, res); return; } } catch (Exception exception) { m_Global_Handler.Log_Handler.WriteException(MethodBase.GetCurrentMethod().Name, exception); return; } }
/// <summary> /// Initialization /// Functions /// Constructor for the mission main window /// </summary> public MainWindowShift(Handlers _Global_Handler, Database.Database _Database_Handler, Mission _Mission) { try { //Initialize the components InitializeComponent(); this.Closing += new CancelEventHandler(Window_Closing); //Initialize variables m_Global_Handler = _Global_Handler; m_Database_Handler = _Database_Handler; m_Mission = _Mission; //Load shifts List <String> listShiftsId = new List <string>(); if (m_Mission.id_list_shifts != null) { listShiftsId = new List <string>(m_Mission.id_list_shifts.Split(';')); } m_ListOfShifts = m_Database_Handler.Get_ShiftsFromListOfId(listShiftsId); m_ListOfShifts.Sort((x, y) => DateTime.Compare(Convert.ToDateTime(x.date + " " + x.start_time), Convert.ToDateTime(y.date + " " + y.start_time))); //Fill infos mission Txt_Shifts_Mission.Text = m_Mission.description; Txt_Shifts_Mission_City.Text = m_Mission.city; Txt_Shifts_Mission_Client.Text = m_Mission.client_name; Txt_Shifts_Mission_EndDate.Text = m_Mission.end_date; Txt_Shifts_Mission_StartDate.Text = m_Mission.start_date; if (m_Mission.start_date != "") { Cld_Shifts_Shift_Date.SelectedDate = Convert.ToDateTime(m_Mission.start_date); Cld_Shifts_Shift_Date.DisplayDate = Convert.ToDateTime(m_Mission.start_date); } Txt_Shifts_Shift_HourlyRate.Text = SoftwareObjects.GlobalSettings.hourly_rate; Txt_Shifts_Shift_Pause.Text = SoftwareObjects.GlobalSettings.pause_duration; //Fill combo boxes for (int iHour = 0; iHour <= 24; ++iHour) { Cmb_Shifts_Shift_EndHour_Hour.Items.Add(iHour.ToString("00"));; Cmb_Shifts_Shift_StartHour_Hour.Items.Add(iHour.ToString("00"));; } Cmb_Shifts_Shift_EndHour_Hour.SelectedIndex = 12; Cmb_Shifts_Shift_StartHour_Hour.SelectedIndex = 8; for (int iMin = 0; iMin < 4; ++iMin) { int min = iMin * 15; Cmb_Shifts_Shift_EndHour_Min.Items.Add(min.ToString("00"));; Cmb_Shifts_Shift_StartHour_Min.Items.Add(min.ToString("00"));; } Cmb_Shifts_Shift_EndHour_Min.SelectedIndex = 0; Cmb_Shifts_Shift_StartHour_Min.SelectedIndex = 0; for (int iHostess = 0; iHostess < SoftwareObjects.HostsAndHotessesCollection.Count; ++iHostess) { Hostess hostess = SoftwareObjects.HostsAndHotessesCollection[iHostess]; if (hostess.archived == 0) { string name = hostess.zipcode + " \t " + hostess.firstname + " " + hostess.lastname; m_List_HostsAndHostesses.Add(name); m_List_IdHostsAndHostesses.Add(hostess.id); Cmb_Shifts_Shift_HostOrHostess.Items.Add(name); } } //Fill shifts datagrid m_Datagrid_Missions_ShiftsCollection.Clear(); for (int iShift = 0; iShift < m_ListOfShifts.Count; ++iShift) { Shift shiftSel = m_ListOfShifts[iShift]; m_Datagrid_Mission_Shifts data = new m_Datagrid_Mission_Shifts(shiftSel.id, shiftSel.date, SoftwareObjects.HostsAndHotessesCollection.Find(x => x.id.Equals(shiftSel.id_hostorhostess)).firstname + " " + SoftwareObjects.HostsAndHotessesCollection.Find(x => x.id.Equals(shiftSel.id_hostorhostess)).lastname, shiftSel.start_time, shiftSel.end_time); m_Datagrid_Missions_ShiftsCollection.Add(data); } Datagrid_Shifts.Items.Refresh(); //Define content Define_Content(); } catch (Exception exception) { m_Global_Handler.Log_Handler.WriteException(MethodBase.GetCurrentMethod().Name, exception); return; } }