Example #1
0
        /// <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;
            }
        }