Example #1
0
        private void ButtonForward_Click(object sender, RoutedEventArgs e)
        {
            String   phone = TextBoxPhone.Text;
            DateTime?date  = DatePickerDeteBirth.SelectedDate;

            var errors = new StringBuilder();

            if (!Regex.IsMatch(phone, Constants.PHONE_REGEX))
            {
                errors.AppendLine("Телефон не соответствует маске \"+7ХХХХХХХХХХ\" или \"8ХХХХХХХХХХ\"");
            }
            if (date == null)
            {
                errors.AppendLine("Вы не ввели дату рождения!");
            }
            if (String.IsNullOrEmpty(this._gender))
            {
                errors.AppendLine("Вы не выбрали пол!");
            }
            if (
                this._newUser.id == 0 &&
                FlowersSaleEntities.GetContext()
                .Users.ToList()
                .Where(v => v.login.Equals(this._newUser.login)).Count() != 0
                )
            {
                errors.AppendLine($"Пользователь с логином {this._newUser.login} уже существует в системе!");
            }
            if (errors.Length != 0)
            {
                MessageShow.Error(errors.ToString());
                return;
            }
            if (!MessageShow.Question("Вы точно хотите создать пользователя?"))
            {
                return;
            }
            this._newUser.phone         = phone;
            this._newUser.date_of_birth = (DateTime)date;
            this._newUser.gender        = this._gender;
            // Сохранение пользователя
            if (this._newUser.id == 0)
            {
                FlowersSaleEntities.GetContext().Users.Add(this._newUser);
            }
            try
            {
                this._newUser.roll = Roll.User.ToString();
                FlowersSaleEntities.GetContext().SaveChanges();
                FlowersSaleEntities.GetContext().Reload();
                MessageShow.Success($"Пользователь \"{this._newUser.login}\" был успешно создан!");
            }
            catch
            {
                MessageShow.Error("Произошла ошибка сохранения!");
            }
            // Переход на другую страницу
            FrameManager.AuthFrame.Navigate(new RegistrationContent4(this._newUser));
        }
        /// <summary>
        /// Обработчик изменения количества товара
        /// </summary>
        private void TextBoxCount_TextChanged(object sender, TextChangedEventArgs e)
        {
            var textBox         = sender as TextBox;
            var product         = textBox.DataContext as Items;
            var buttonBasketAdd = UIHelper.GetNearestObject <Button>(sender as DependencyObject, "ButtonBasketAdd");

            var        number     = int.Parse(String.IsNullOrWhiteSpace(textBox.Text) ? "0" : int.Parse(textBox.Text).ToString());
            ItemsOrder itemsOrder = null;

            if (product != null)
            {
                itemsOrder = ItemsOrderManager.Context.ItemsOrders.FirstOrDefault(v => v.Items.id == product.id);
            }

            if (number == 0 && itemsOrder != null)
            {
                // Сделать проверку на необходимость удаления, затем удалить
                if (MessageShow.Question("Вы точно хотите удалить товар из корзины?"))
                {
                    buttonBasketAdd.IsEnabled = true;
                    ItemsOrderManager.Context.ItemsOrders.Remove(itemsOrder);
                    ItemsOrderManager.Context.UpdateFull();
                    MessageShow.Success("Товар удален из корзины!");
                }
                else
                {
                    number    = itemsOrder.items_count;
                    e.Handled = true;
                }
            }

            textBox.Text = number.ToString();
            if (itemsOrder != null)
            {
                itemsOrder.items_count = number;
                ItemsOrderManager.Context.UpdateFull();
            }
        }
        private void ButtonCreateOrder_Click(object sender, RoutedEventArgs e)
        {
            var errors = new StringBuilder();

            if (String.IsNullOrWhiteSpace(User.login) || User.login.Length > 40)
            {
                errors.AppendLine("Вы не ввели email или он больше 40 символов!");
            }
            if (!Regex.IsMatch(User.login, Constants.LOGIN_REGEX))
            {
                errors.AppendLine("Ваш email не соответствует маске \"[email protected]\"!");
            }
            if (String.IsNullOrWhiteSpace(User.last_name) || User.last_name.Length > 20)
            {
                errors.AppendLine("Вы не ввели фамилию или она больше 20 символов!");
            }
            if (String.IsNullOrWhiteSpace(User.first_name) || User.first_name.Length > 20)
            {
                errors.AppendLine("Вы не ввели имя или оно больше 20 символов!");
            }
            if (String.IsNullOrWhiteSpace(User.name) || User.name.Length > 20)
            {
                errors.AppendLine("Вы не ввели отчество или оно больше 20 символов!");
            }
            if (!Regex.IsMatch(User.phone, Constants.PHONE_REGEX))
            {
                errors.AppendLine("Телефон не соответствует маске \"+7ХХХХХХХХХХ\" или \"8ХХХХХХХХХХ\"");
            }

            if (String.IsNullOrWhiteSpace(Address.street) || Address.street.Length > 30)
            {
                errors.AppendLine("Вы не ввели улицу или она больше 30 символов!");
            }
            if (String.IsNullOrWhiteSpace(Address.house) || Address.house.Length > 5)
            {
                errors.AppendLine("Вы не ввели дом или он больше 5 символов!");
            }
            if (String.IsNullOrWhiteSpace(Address.room) || Address.room.Length > 5)
            {
                errors.AppendLine("Вы не ввели квартиру или она больше 5 символов!");
            }

            if (String.IsNullOrWhiteSpace(Address.room) || Address.room.Length > 5)
            {
                errors.AppendLine("Вы не ввели квартиру или она больше 5 символов!");
            }
            if (String.IsNullOrWhiteSpace(Address.room) || Address.room.Length > 5)
            {
                errors.AppendLine("Вы не ввели квартиру или она больше 5 символов!");
            }

            if (!String.IsNullOrEmpty(this.TextBoxFloor.Text) && !Regex.IsMatch(this.TextBoxFloor.Text, Constants.NUMBER_REGEX))
            {
                errors.AppendLine("Подъезд не является числом!");
            }
            if (!String.IsNullOrEmpty(this.TextBoxFloor.Text) && !Regex.IsMatch(this.TextBoxFloor.Text, Constants.NUMBER_REGEX))
            {
                errors.AppendLine("Этаж не является числом!");
            }
            var equalLoginList = FlowersSaleEntities.GetContext().Users.ToList().Where(v => v.login.Equals(User.login)).ToList();

            if (equalLoginList.Count > 0 && equalLoginList.Where(v => v.id != User.id).Count() != 0)
            {
                errors.AppendLine("Пользователь с таким логином уже есть в системе!");
            }
            if (ItemsOrderManager.Context.ItemsOrders.Count == 0)
            {
                errors.AppendLine("Корзина пуста!");
            }

            if (errors.Length > 0)
            {
                MessageShow.Error(errors.ToString());
                return;
            }

            if (MessageShow.Question("Вы уверены, что хотите осуществить заказ и сохранить все данные?"))
            {
                try
                {
                    var order = new Order()
                    {
                        id_user = AuthManager.Context.CurrentUser().id
                    };
                    FlowersSaleEntities.GetContext().Order.AddOrUpdate(order);
                    FlowersSaleEntities.GetContext().SaveChanges();
                    var orderItemList = ItemsOrderManager.Context.ItemsOrders;
                    orderItemList.ForEach(v => v.id_order = order.id);
                    FlowersSaleEntities.GetContext().ItemsOrder.AddRange(orderItemList);
                    FlowersSaleEntities.GetContext().SaveChanges();
                    FlowersSaleEntities.GetContext().Reload();
                    MessageShow.Success($"Заказ на сумму " +
                                        $"{String.Format("{0:0.00}", ItemsOrderManager.Context.ItemTotalCost).Replace(',', '.')}" +
                                        $" рублей успешно совершен!");
                    ItemsOrderManager.Context.ReloadItemsOrder();
                    ItemsOrderManager.Context.UpdateFull();

                    FrameManager.MainFrame.GoFirstPage();
                }
                catch
                {
                    MessageShow.Error("Произошла ошибка сохранения!");
                }
            }
        }