Exemplo n.º 1
0
        private void saveJourneyButton_Click(object sender, RoutedEventArgs e)
        {
            //Get Data
            _journey.Journey_Name = journeyNameTextBox.Text;
            if (_journey.Journey_Name.Length == 0)
            {
                notiMessageSnackbar.MessageQueue.Enqueue($"Không được bỏ trống tên chuyến đi", "OK", () => { });
                return;
            }

            _journey.Start_Place = journeyStartPlaceTextBox.Text;
            if (_journey.Start_Place.Length == 0)
            {
                notiMessageSnackbar.MessageQueue.Enqueue($"Không được bỏ trống địa điểm bắt đầu", "OK", () => { });
                return;
            }

            _journey.Start_Province = ((Province)startProvinceComboBox.SelectedItem).Province_Name;

            if (isCurrentJourneyCheckBox.IsChecked.Value)
            {
                _journey.Status = 0;

                _databaseUtilities.FinishCurrentJourney();
            }
            else
            {
                _journey.Status = 1;
            }

            Route startRoute = new Route();

            startRoute.Place    = _journey.Start_Place;
            startRoute.Province = _journey.Start_Province;

            Route endRoute = new Route();

            endRoute.Place    = ((Site)endSiteComboBox.SelectedItem).Site_Name;
            endRoute.Province = ((Province)endProvinceComboBox.SelectedItem).Province_Name;
            _journey.ID_Site  = ((Site)endSiteComboBox.SelectedItem).ID_Site;

            if (!startDatePicker.SelectedDate.HasValue)
            {
                notiMessageSnackbar.MessageQueue.Enqueue($"Không được bỏ trống ngày bắt đầu", "OK", () => { });
                return;
            }

            if (!endDatePicker.SelectedDate.HasValue)
            {
                notiMessageSnackbar.MessageQueue.Enqueue($"Không được bỏ trống ngày kết thúc", "OK", () => { });
                return;
            }

            _journey.StartDate = startDatePicker.SelectedDate;
            _journey.EndDate   = endDatePicker.SelectedDate;

            if (_journey.StartDate > _journey.EndDate)
            {
                notiMessageSnackbar.MessageQueue.Enqueue($"Ngày bắt đầu phải nhỏ hơn ngày kết thúc", "OK", () => { });
                return;
            }

            //Get distance
            _journey.Distance = _googleMapUtilities.GetDistanceByRoutes(_journey.Routes.ToList(), startRoute, endRoute);

            //Insert
            _databaseUtilities.AddNewJourney(
                _journey.ID_Journey,
                _journey.Journey_Name,
                _journey.ID_Site,
                _journey.Start_Place,
                _journey.Start_Province,
                _journey.Status,
                _journey.StartDate,
                _journey.EndDate,
                _journey.Distance);

            foreach (var expense in _journey.Expenses)
            {
                _databaseUtilities.AddExpense(expense.ID_Expenses, expense.ID_Journey, expense.Expenses_Money, expense.Expenses_Description, 1);
            }

            foreach (var route in _journey.Routes)
            {
                _databaseUtilities.AddRoute(route.ID_Journey, route.Ordinal_Number, route.Place, route.Province, route.Route_Description, route.Route_Status, 1);
            }

            foreach (var member in _journey.JourneyAttendances)
            {
                _databaseUtilities.AddJourneyAttendance(member.ID_Member, member.ID_Journey, member.Member_Name, member.Phone_Number, member.Receivables_Money, member.Role, 1);
            }


            _journey.ID_Journey = _databaseUtilities.GetMaxIDJourney() + 1;

            notiMessageSnackbar.MessageQueue.Enqueue($"Đã thêm thành công chuyến đi \"{_journey.Journey_Name}\"", "OK", () => { });

            cancelAddRecipeButton_Click(null, null);
        }
Exemplo n.º 2
0
        private void saveJourneyButton_Click(object sender, RoutedEventArgs e)
        {
            //Get Data
            _journey.Journey_Name = journeyNameTextBox.Text;
            if (_journey.Journey_Name.Length == 0)
            {
                notiMessageSnackbar.MessageQueue.Enqueue($"Không được bỏ trống tên chuyến đi", "OK", () => {  });
                return;
            }

            _journey.Start_Place = journeyStartPlaceTextBox.Text;
            if (_journey.Start_Place.Length == 0)
            {
                notiMessageSnackbar.MessageQueue.Enqueue($"Không được bỏ trống địa điểm xuất phát", "OK", () => { });
                return;
            }

            _journey.Start_Province = ((Province)startProvinceComboBox.SelectedItem).Province_Name;

            if (isCurrentJourneyCheckBox.IsChecked.Value)
            {
                _journey.Status = 0;

                _databaseUtilities.FinishCurrentJourney();
            }
            else
            {
            }

            Route startRoute = new Route();

            startRoute.Place    = _journey.Start_Place;
            startRoute.Province = _journey.Start_Province;

            if (endSiteComboBox.SelectedIndex == -1)
            {
                notiMessageSnackbar.MessageQueue.Enqueue($"Hiện tại chưa có địa điểm nào được thêm ở tỉnh {((Province)endProvinceComboBox.SelectedItem).Province_Name}", "OK", () => { });
                notiMessageSnackbar.MessageQueue.Enqueue($"Vui lòng chọn địa điểm khác hoặc thêm địa điểm mới vào tỉnh {((Province)endProvinceComboBox.SelectedItem).Province_Name} và thử lại", "OK", () => { });
                return;
            }

            Route endRoute = new Route();

            endRoute.Place    = ((Site)endSiteComboBox.SelectedItem).Site_Name;
            endRoute.Province = ((Province)endProvinceComboBox.SelectedItem).Province_Name;
            _journey.ID_Site  = ((Site)endSiteComboBox.SelectedItem).ID_Site;

            _journey.StartDate = startDatePicker.SelectedDate;
            _journey.EndDate   = endDatePicker.SelectedDate;

            //Get distance
            var routeForCalcDistance = (from r in Route_For_Binding
                                        where r.Is_Active == 1
                                        select r).ToList();

            _journey.Distance = _googleMapUtilities.GetDistanceByRoutes(routeForCalcDistance, startRoute, endRoute);

            //Insert
            _databaseUtilities.UpdateJourney(
                _journey.ID_Journey,
                _journey.Journey_Name,
                _journey.ID_Site,
                _journey.Start_Place,
                _journey.Start_Province,
                _journey.Status,
                _journey.StartDate,
                _journey.EndDate,
                _journey.Distance);

            foreach (var expense in Expens_For_Binding)
            {
                _databaseUtilities.UpdateExpense(expense.ID_Expenses, expense.ID_Journey, expense.Expenses_Money, expense.Expenses_Description, expense.Is_Active ?? 0);
            }

            foreach (var route in Route_For_Binding)
            {
                _databaseUtilities.UpdateRoute(route.ID_Journey, route.Ordinal_Number, route.Place, route.Province, route.Route_Description, route.Route_Status, route.Is_Active ?? 0);
            }

            foreach (var member in JourneyAttendances)
            {
                _databaseUtilities.UpdateJourneyAttendance(member.ID_Member, member.ID_Journey, member.Member_Name, member.Phone_Number, member.Receivables_Money, member.Role, member.Is_Active ?? 0);
            }

            _appUtilities.createIDDirectory(_journey.ID_Journey);
            foreach (var image in Images_For_Binding)
            {
                _databaseUtilities.UpdateJourneyImage(_journey.ID_Journey, image.Ordinal_Number, _appUtilities.getTypeOfImage(image.Link_Image), image.Is_Active);

                _appUtilities.copyImageToIDirectory(_journey.ID_Journey, image.Link_Image, $"{image.Ordinal_Number}", false);
            }

            foreach (var advance in Advances_For_Binding)
            {
                _databaseUtilities.UpdateAdvance(advance.ID_Journey, advance.ID_Borrower, advance.ID_Lender, advance.Advance_Money, advance.Is_Active);
            }

            notiMessageSnackbar.MessageQueue.Enqueue($"Đã update thành công chuyến đi \"{_journey.Journey_Name}\"", "BACK", () => { BackCurentJourney?.Invoke(_journey.ID_Journey); });

            //Reset
            //journeyNameTextBox.Text = "";
            //journeyStartPlaceTextBox.Text = "";
            //startProvinceComboBox.SelectedIndex = 0;
            //startDatePicker.Text = "";
            //endSiteComboBox.SelectedIndex = 0;
            //endProvinceComboBox.SelectedIndex = 0;
            //endDatePicker.Text = "";
            //startProvinceRouteComboBox.SelectedIndex = 0;
            //routesListView.ItemsSource = null;
            //membersListView.ItemsSource = null;
            //expensesListView.ItemsSource = null;
        }