예제 #1
0
        public ActionResult Create([Bind(Include = "ID,fromemail,toemail,subjectemail,messageemail,curuser")] Mail mail)
        {
            if (ModelState.IsValid)
            {
                db.Mails.Add(mail);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(mail));
        }
예제 #2
0
        //Вызов окна подтверждения удаления записи для Главной таблицы, а также удаление записи
        private void DeleteInMainTable()
        {
            DeleteMail = new ShowOrDeleteInMainTable();
            int selectedIndex;
            int selectedRow = dataGrid_MainTable.SelectedIndex;

            if (selectedRow >= 0)
            {
                DeleteMail.SetData(mailArr[selectedRow], ShowOrDeleteInMainTable.ModeWindow.DeleteConfirm);
                selectedIndex = mailArr[selectedRow].mail_Id;
            }
            else
            {
                MessageBox.Show("Выделите запись которую желаете удалить", "Внимание", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }
            DeleteMail.Owner = this;

            bool?result = DeleteMail.ShowDialog();

            if (result == true)
            {
                using (MailContext context = new MailContext())
                {
                    Mail mail = context.Mail.FirstOrDefault <Mail>(c => c.mail_Id == selectedIndex);
                    context.Mail.Remove(mail);
                    context.SaveChanges();

                    MessageBox.Show("Запись №" + selectedIndex + " в Главной таблице удалена успешно!", "Успешно", MessageBoxButton.OK, MessageBoxImage.Information);

                    RefreshMainTable();
                }
            }
        }
예제 #3
0
        public async Task <IActionResult> AddMailsAsync(Mail mail)
        {
            string message = string.Empty;

            try
            {
                if (ModelState.IsValid)
                {
                    var apiKey = configuration.GetSection("SENDGRID_API_KEY").Value;
                    var client = new SendGridClient(apiKey);

                    MailModel model = new MailModel();
                    model.MailFrom = mail.From;
                    message        = model.SetMailTo(mail.To);
                    if (message != string.Empty)
                    {
                        return(BadRequest(message));
                    }
                    model.Title = mail.Title;
                    model.Body  = mail.Body;

                    await MailService.SendAsync(model, client);

                    db.Mails.Add(mail);
                    db.SaveChanges();
                    return(CreatedAtAction(nameof(GetMails), new { id = mail.Id }, mail));
                }
                return(BadRequest("Błedne dane wejsciowe"));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
        //Вызов окна подтверждения удаления записи для таблицы Подписок, а также удаление записи
        private void DeleteInSubscriber()
        {
            DeleteSubscriber = new ShowOrDeleteInSubscriber();
            int selectedIndex;
            int selectedRow = dataGrid_Subscriber.SelectedIndex;

            if (selectedRow >= 0)
            {
                DeleteSubscriber.SetData(subscriberArr[selectedRow], ShowOrDeleteInSubscriber.ModeWindow.DeleteConfirm);
                selectedIndex = subscriberArr[selectedRow].subscriber_Id;
            }
            else
            {
                MessageBox.Show("Выделите запись которую желаете удалить", "Внимание", MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }
            DeleteSubscriber.Owner = this;

            bool?result = DeleteSubscriber.ShowDialog();

            if (result == true)
            {
                using (MailContext context = new MailContext())
                {
                    Subscriber subscriber = (Subscriber)context.Subscribers.FirstOrDefault(c => c.subscriber_Id == selectedIndex);

                    List <Subscription> subscriptions   = context.Subscriptions.Where(c => c.id_Subscriber.subscriber_Id == subscriber.subscriber_Id).ToList();
                    List <int>          subscriptionsId = new List <int>();
                    foreach (Subscription subscription in subscriptions)
                    {
                        subscriptionsId.Add(subscription.subscription_Id);
                    }

                    //Проверка на наличие ссылки на удаляемую запись
                    List <Mail> mails = context.Mail.Where(c => subscriptionsId.Contains(c.id_Subscription.subscription_Id)).ToList();
                    if (mails.Count > 0)
                    {
                        if (MessageBox.Show("Внимание! Удаление " + selectedIndex
                                            + " записи таблице приведет к удалению " + subscriptions.Count
                                            + " подписок в таблице Подписок! \n"
                                            + " А также к обнулению " + mails.Count
                                            + " ссылок на подписку в Главной таблице!"
                                            + "\n Вы уверены что хотите удалить " + selectedIndex + " запись в таблице Подписок?"
                                            , "Внимание", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
                        {
                            return;
                        }
                    }
                    context.Subscribers.Remove(subscriber);
                    context.SaveChanges();

                    MessageBox.Show("Запись №" + selectedIndex + " в таблице Подписчиков удалена успешно!", "Успешно", MessageBoxButton.OK, MessageBoxImage.Information);

                    RefreshSubscriberTable();
                    RefreshSubscriptionTable();
                    RefreshMainTable();
                }
            }
        }
        //Создание БД
        private static void CreateTables()
        {
            using (MailContext context = new MailContext())
            {
                context.Database.Create();

                context.SaveChanges();

                Console.WriteLine("Все прошло удачно!");
            }
        }
예제 #6
0
        //Метод для заполнения таблицы 'Подписки' тестовыми значениями
        private void AutoInsertSubscriptions()
        {
            using (MailContext context = new MailContext())
            {
                try
                {
                    Subscription        subscription  = new Subscription();
                    List <Subscription> subscriptions = new List <Subscription>();

                    IQueryable <Edition>    editions    = context.Editions.Select(c => c);
                    IQueryable <Subscriber> subscribers = context.Subscribers.Select(c => c);

                    Edition[] editionsArr = new Edition[editions.Count()];

                    int i = 0;
                    foreach (Edition edition in editions)
                    {
                        editionsArr[i] = edition;
                        i++;
                    }

                    int j = 0;
                    foreach (Subscriber subscriber in subscribers)
                    {
                        subscription.id_Subscriber = subscriber;

                        if (j == editionsArr.Length)
                        {
                            j = 0;
                        }
                        subscription.id_Edition      = editionsArr[j];
                        subscription.date_Сreation   = DateTime.Today;
                        subscription.date_Expiration = DateTime.Parse((DateTime.Today.AddMonths(j)).ToString());

                        subscriptions.Add(subscription);
                        j++;

                        subscription = new Subscription();
                    }

                    context.Subscriptions.AddRange(subscriptions);

                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Ошибка при заполнении таблицы 'Подписки' Текст ошибки:" + e.ToString());
                }
            }
        }
예제 #7
0
 public IActionResult AddMails(Mail mail)
 {
     try
     {
         if (ModelState.IsValid)
         {
             db.Mails.Add(mail);
             db.SaveChanges();
             return(CreatedAtAction(nameof(GetMails), new { id = mail.Id }, mail));
         }
         return(BadRequest("Błedne dane wejsciowe"));
     }
     catch (Exception ex)
     {
         return(BadRequest(ex));
     }
 }
예제 #8
0
        //Метод для заполнения  таблицы 'Типы операций' тестовыми значениями
        private void AutoInsertOperations()
        {
            string[] typeOperations = new string[] { "Прием", "Отправка" };

            using (MailContext context = new MailContext())
            {
                Operation operation = new Operation();

                foreach (string tp in typeOperations)
                {
                    operation.type_Operation = tp;
                    context.Operations.Add(operation);

                    context.SaveChanges();
                }
            }
        }
예제 #9
0
        //Метод для заполнения  таблицы 'Типы почтовых отправлений' тестовыми значениями
        private void AutoInsertMailings()
        {
            string[] typeMailings = new string[] { "Закрытые письма", "Почтовые карточки",
                                                   "Бандероли", "Посылки", "Денежные переводы", "Периодические издания" };

            using (MailContext context = new MailContext())
            {
                Mailing mailing = new Mailing();

                foreach (string tm in typeMailings)
                {
                    mailing.type_Mailing = tm;
                    context.Mailings.Add(mailing);

                    context.SaveChanges();
                }
            }
        }
예제 #10
0
        //Метод для заполнения таблицы 'Издания' тестовыми значениями
        private void AutoInsertEditions()
        {
            string[] nameEditions = new string[]
            {
                "Правда", "Телеском", "Книга рекордов Гинеса", "Умник"
                , "Фазы луны", "Студентские рефераты", "Туды кого то там"
                , "Все о всем", "Все телефоны Украины", "Октябрь"
            };

            using (MailContext context = new MailContext())
            {
                try
                {
                    IQueryable <Periodical> periodicals = context.Periodicals.Select(c => c);

                    Edition        edition  = new Edition();
                    List <Edition> editions = new List <Edition>();

                    int i = 0;

                    foreach (Periodical periodical in periodicals)
                    {
                        i++;
                        edition.id_type_Periodical = periodical;
                        if (i == nameEditions.Length)
                        {
                            i = 0;
                        }
                        edition.name_Edition = nameEditions[i];
                        edition.cost         = nameEditions.Length - i;
                        editions.Add(edition);
                        edition = new Edition();
                    }

                    context.Editions.AddRange(editions);

                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Ошибка при заполнении таблицы 'Издания' Текст ошибки:" + e.ToString());
                }
            }
        }
예제 #11
0
        //Метод для заполнения таблицы 'Типы периодических изданий' тестовыми значениями
        private void AutoInsertPeriodicals()
        {
            string[] typePeriodicals = new string[] { "Газета", "Журнал", "Ежегодник"
                                                      , "Научный журнал", "Календари", "Реферативный сборник", "Библиографический указатель"
                                                      , "Информационный бюллетень", "Справочник", "Литературный журнал" };

            using (MailContext context = new MailContext())
            {
                Periodical periodical = new Periodical();

                foreach (string tp in typePeriodicals)
                {
                    periodical.type_Edition = tp;
                    context.Periodicals.Add(periodical);

                    context.SaveChanges();
                }
            }
        }
예제 #12
0
        public async Task <IActionResult> PostEmailItemAsync(Email email)
        {
            Random rnd = new Random();

            email.Id         = rnd.Next();
            email.CreateTime = DateTime.Now;
            try
            {
                _context.Emails.Add(email);
                _context.SaveChanges();
                await emailService.SendEmailAsync(email.Recipients, email.Subject, email.Body);

                email.Result = "Ok";
            }
            catch (Exception e)
            {
                email.Result        = "Failed";
                email.FailedMessage = e.ToString();
                Console.WriteLine(e.ToString());
            }
            return(Ok(email));
        }
예제 #13
0
 public void Save() => _db.SaveChanges();
예제 #14
0
        //Событие кнопки "ОК"
        private void button_Click_OK(object sender, RoutedEventArgs e)
        {
            Operation    operation        = null;
            Mailing      mailing          = null;
            Subscription subscription     = null;
            string       senderAddress    = null;
            string       recipientAddress = null;
            float        weight;
            DateTime     dateOperation;
            decimal      price;

            using (MailContext context = new MailContext())
            {
                Mail mail = new Mail();

                if (currentMW == ModeWindow.Update)
                {
                    mail = context.Mail.FirstOrDefault(c => c.mail_Id == updateMail.mail_Id);
                }

                if (IOUMainTable_ComboBox_id_Operation.SelectedIndex < 0)
                {
                    MessageBox.Show("Ошибка (Операциция не выбрана)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                int operationId = operationsArr[IOUMainTable_ComboBox_id_Operation.SelectedIndex].operation_Id;
                operation = context.Operations.FirstOrDefault <Operation>(c => c.operation_Id == operationId);
                if (operation == null)
                {
                    MessageBox.Show("Ошибка (Операциция не найдена! Попробуйте выбрать заново)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    SetData();
                    return;
                }

                if (IOUMainTable_ComboBox_id_Mailing.SelectedIndex < 0)
                {
                    MessageBox.Show("Ошибка (Тип не выбран)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                int mailingId = mailingsArr[IOUMainTable_ComboBox_id_Mailing.SelectedIndex].mailing_Id;
                mailing = context.Mailings.FirstOrDefault <Mailing>(c => c.mailing_Id == mailingId);
                if (mailing == null)
                {
                    MessageBox.Show("Ошибка (Тип не найден! Попробуйте выбрать заново)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    SetData();
                    return;
                }

                if (IOUMainTable_ComboBox_id_Subscription.SelectedIndex > 0)
                {
                    int subscriptionId = subscriptionsArr[IOUMainTable_ComboBox_id_Subscription.SelectedIndex - cbId_SubStep].subscription_Id;
                    subscription = context.Subscriptions.FirstOrDefault <Subscription>(c => c.subscription_Id == subscriptionId);
                }
                else if (IOUMainTable_ComboBox_id_Subscription.SelectedIndex == 0)
                {
                    canSubNull = true;
                }
                if (subscription == null && canSubNull == false)
                {
                    MessageBox.Show("Ошибка (Подписка не найдена! Попробуйте выбрать заново)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    SetData();
                    return;
                }

                senderAddress = IOUMainTable_TBox_sender_Address.Text;
                if (isValidAddress(senderAddress) == false)
                {
                    MessageBox.Show("Ошибка! (Адрес отправителя введен неправильно или не введен вовсе)"
                                    + "\n" + "Внимание! Максимальная длинна адреса " + maxLenghtStringAddress + " символов"
                                    + "\n" + "Форма записи(Страна, город, 'район', улица, дом, 'картира'"
                                    + "\n" + "' ' - необязательны для ввода в случае их отсутствия"
                                    , "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    senderAddress = null;
                    return;
                }

                recipientAddress = IOUMainTable_TBox_recipient_Address.Text;
                if (isValidAddress(recipientAddress) == false)
                {
                    MessageBox.Show("Ошибка! (Адрес получателя введен неправильно или не введен вовсе)"
                                    + "\n" + "Внимание! Максимальная длинна адреса " + maxLenghtStringAddress + " символов"
                                    + "\n" + "Форма записи(Страна, город, 'район', улица, дом, 'картира'"
                                    + "\n" + "' ' - необязательны для ввода в случае их отсутствия"
                                    , "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    recipientAddress = null;
                    return;
                }

                string weightStr = IOUMainTable_TBox_weight_Package.Text;
                weightStr.Trim();
                if (weightStr.IndexOf(".") == -1 && weightStr.IndexOf(",") == -1)
                {
                    weightStr += ".0";
                }
                else
                {
                    weightStr = weightStr.Replace(",", ".");
                }
                if (float.TryParse(weightStr, NumberStyles.Float, new CultureInfo("en-US"), out weight))
                {
                    weight = float.Parse(weightStr, NumberStyles.Float, new CultureInfo("en-US"));
                }
                else
                {
                    MessageBox.Show("Ошибка (Вес пакета введен не правильно)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                if (weight <= 0)
                {
                    MessageBox.Show("Ошибка (Вес пакета не может быть меньше нуля или равняться ему)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                string dateStr = IOUMainTable_TBox_date_Operation.Text;
                dateOperation = DateTime.Parse(dateStr);

                string priceStr = IOUMainTable_TBox_price.Text;
                priceStr.Trim();
                if (priceStr.IndexOf(".") == -1 && priceStr.IndexOf(",") == -1)
                {
                    priceStr += ".0";
                }
                else
                {
                    priceStr = priceStr.Replace(",", ".");
                }
                if (decimal.TryParse(priceStr, NumberStyles.Float, new CultureInfo("en-US"), out price))
                {
                    price = decimal.Parse(priceStr, NumberStyles.Float, new CultureInfo("en-US"));
                }
                else
                {
                    MessageBox.Show("Ошибка (Цена введена не правильно)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                if (price <= 0)
                {
                    MessageBox.Show("Ошибка (Вес пакета не может быть меньше нуля или равняться ему)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }


                if (operation != null && mailing != null &&
                    senderAddress != null && recipientAddress != null &&
                    weight != 0 && dateOperation != null &&
                    price != 0)
                {
                    mail.id_Operation      = operation;
                    mail.id_Mailing        = mailing;
                    mail.id_Subscription   = subscription;
                    mail.sender_Address    = senderAddress;
                    mail.recipient_Address = recipientAddress;
                    mail.weight_Package    = weight;
                    mail.date_Operation    = dateOperation;
                    mail.price             = price;

                    if (currentMW == ModeWindow.Insert)
                    {
                        MessageBoxResult result = MessageBox.Show("Вы уверенны что хотите добавить новую запись в главную таблицу?", "Подтверждение", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes, MessageBoxOptions.None);

                        if (result == MessageBoxResult.No)
                        {
                            return;
                        }
                        context.Mail.Add(mail);
                        context.SaveChanges();
                        MessageBox.Show("Добавление записи в главную таблицу прошло успешно", "Успешно", MessageBoxButton.OK, MessageBoxImage.None);
                    }

                    if (currentMW == ModeWindow.Update)
                    {
                        MessageBoxResult result = MessageBox.Show("Вы уверенны что хотите изменить " + mail.mail_Id + " запись в главной таблице?", "Подтверждение", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes, MessageBoxOptions.None);

                        if (result == MessageBoxResult.No)
                        {
                            return;
                        }
                        context.SaveChanges();
                        MessageBox.Show("Изменение записи в главной таблице прошло успешно", "Успешно", MessageBoxButton.OK, MessageBoxImage.None);
                    }
                }
                else
                {
                    MessageBox.Show("Невозможно продолжить операцию: (Данные потеряны)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
            }
            mainWindow.RefreshMainTable();

            this.Close();
        }
        //Событие кнопки "ОК"
        private void button_Click_OK(object sender, RoutedEventArgs e)
        {
            using (MailContext context = new MailContext())
            {
                Subscriber subscriber = new Subscriber();

                if (currentMW == ModeWindow.Update)
                {
                    subscriber = context.Subscribers.FirstOrDefault(c => c.subscriber_Id == updateSubscriber.subscriber_Id);
                }

                string lastName = IOUSubscriber_TBox_last_Name.Text;
                lastName.Trim();
                if (lastName.Length > maxLenghtStringName)
                {
                    MessageBox.Show("Ошибка (Фамилия слишком большая, максиальное количество символов: " + maxLenghtStringName + ")", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                string firstName = IOUSubscriber_TBox_first_Name.Text;
                firstName.Trim();
                if (firstName.Length > maxLenghtStringName)
                {
                    MessageBox.Show("Ошибка (Имя слишком большое, максиальное количество символов: " + maxLenghtStringName + ")", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                string middleName = IOUSubscriber_TBox_middle_Name.Text;
                middleName.Trim();
                if (middleName.Length > maxLenghtStringName)
                {
                    MessageBox.Show("Ошибка (Отчество слишком большое, максиальное количество символов: " + maxLenghtStringName + ")", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                string subAddress = IOUSubscriber_TBox_sub_Address.Text;
                subAddress.Trim();
                if (isValidAddress(subAddress) == false)
                {
                    MessageBox.Show("Ошибка! (Адрес подписчика введен неправильно или не введен вовсе)"
                                    + "\n" + "Внимание! Максимальная длинна адреса " + maxLenghtStringAddress + " символов"
                                    + "\n" + "Форма записи(Страна, город, 'район', улица, дом, 'картира'"
                                    + "\n" + "' ' - необязательны для ввода в случае их отсутствия"
                                    , "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    subAddress = null;
                    return;
                }

                if (lastName != null && firstName != null &&
                    middleName != null && subAddress != null)
                {
                    subscriber.last_Name   = lastName;
                    subscriber.first_Name  = firstName;
                    subscriber.middle_Name = middleName;
                    subscriber.sub_Address = subAddress;

                    if (currentMW == ModeWindow.Insert)
                    {
                        MessageBoxResult result = MessageBox.Show("Вы уверенны что хотите добавить новую запись в таблицу 'Подписчики'?", "Подтверждение", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes, MessageBoxOptions.None);

                        if (result == MessageBoxResult.No)
                        {
                            return;
                        }
                        context.Subscribers.Add(subscriber);
                        context.SaveChanges();
                        MessageBox.Show("Добавление записи в таблицу 'Подписчики' прошло успешно", "Успешно", MessageBoxButton.OK, MessageBoxImage.None);
                    }

                    if (currentMW == ModeWindow.Update)
                    {
                        MessageBoxResult result = MessageBox.Show("Вы уверенны что хотите изменить " + subscriber.subscriber_Id + " запись в таблицу 'Подписчики'?", "Подтверждение", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes, MessageBoxOptions.None);

                        if (result == MessageBoxResult.No)
                        {
                            return;
                        }
                        context.SaveChanges();
                        MessageBox.Show("Изменение записи в таблицу 'Подписчики' прошло успешно", "Успешно", MessageBoxButton.OK, MessageBoxImage.None);
                    }
                }
                else
                {
                    MessageBox.Show("Невозможно продолжить операцию: (Данные потеряны)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
            }
            mainWindow.RefreshSubscriberTable();
            this.Close();
        }
        //Событие кнопки "ОК"
        private void button_Click_OK(object sender, RoutedEventArgs e)
        {
            Subscriber subscriber = null;
            Edition    edition    = null;
            DateTime   dateCreate;
            DateTime   dateExpiration;

            using (MailContext context = new MailContext())
            {
                Subscription subscription = new Subscription();

                if (currentMW == ModeWindow.Update)
                {
                    subscription = context.Subscriptions.FirstOrDefault(c => c.subscription_Id == updateSubscription.subscription_Id);
                }

                if (IOUSubscription_ComboBox_id_Subscriber.SelectedIndex < 0)
                {
                    MessageBox.Show("Ошибка (Подписчик не выбран)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                int subscriberId = subscribersArr[IOUSubscription_ComboBox_id_Subscriber.SelectedIndex].subscriber_Id;
                subscriber = context.Subscribers.FirstOrDefault <Subscriber>(c => c.subscriber_Id == subscriberId);
                if (subscriber == null)
                {
                    MessageBox.Show("Ошибка (Подписчик не найден! Попробуйте выбрать заново)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    SetData();
                    return;
                }

                if (IOUSubscription_ComboBox_id_Edition.SelectedIndex < 0)
                {
                    MessageBox.Show("Ошибка (Издание не выбран)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
                int editionId = editionsArr[IOUSubscription_ComboBox_id_Edition.SelectedIndex].edition_Id;
                edition = context.Editions.FirstOrDefault <Edition>(c => c.edition_Id == editionId);
                if (edition == null)
                {
                    MessageBox.Show("Ошибка (Издание не найден! Попробуйте выбрать заново)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    SetData();
                    return;
                }

                string dateCreateStr = IOUSubscription_TBox_date_Create.Text;
                if (DateTime.TryParse(dateCreateStr, out dateCreate) == true)
                {
                    dateCreate = DateTime.Parse(dateCreateStr);
                }

                string dateExpirationStr = IOUSubscription_DP_date_Expiration.Text;
                if (DateTime.TryParse(dateExpirationStr, out dateExpiration) == true)
                {
                    dateExpiration = DateTime.Parse(dateExpirationStr);
                }
                else
                {
                    MessageBox.Show("Ошибка (Дата введена неправильно! Попробуйте выбрать заново)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                }

                if (dateCreate >= dateExpiration)
                {
                    MessageBox.Show("Ошибка (Дата начала подписки не может быть больше даты завершения! Попробуйте выбрать заново)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }

                if (subscriber != null && edition != null &&
                    dateCreate != null && dateExpiration != null)
                {
                    subscription.id_Subscriber   = subscriber;
                    subscription.id_Edition      = edition;
                    subscription.date_Сreation   = dateCreate;
                    subscription.date_Expiration = dateExpiration;

                    if (currentMW == ModeWindow.Insert)
                    {
                        MessageBoxResult result = MessageBox.Show("Вы уверенны что хотите добавить новую запись в таблицу 'Подписки'?", "Подтверждение", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes, MessageBoxOptions.None);

                        if (result == MessageBoxResult.No)
                        {
                            return;
                        }
                        context.Subscriptions.Add(subscription);
                        context.SaveChanges();
                        MessageBox.Show("Добавление записи в таблицу 'Подписки' прошло успешно", "Успешно", MessageBoxButton.OK, MessageBoxImage.None);
                    }

                    if (currentMW == ModeWindow.Update)
                    {
                        MessageBoxResult result = MessageBox.Show("Вы уверенны что хотите изменить " + subscription.subscription_Id + " запись в таблицу 'Подписки'?", "Подтверждение", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.Yes, MessageBoxOptions.None);

                        if (result == MessageBoxResult.No)
                        {
                            return;
                        }
                        context.SaveChanges();
                        MessageBox.Show("Изменение записи в таблицу 'Подписки' прошло успешно", "Успешно", MessageBoxButton.OK, MessageBoxImage.None);
                    }
                }
                else
                {
                    MessageBox.Show("Невозможно продолжить операцию: (Данные потеряны)", "Ошибка", MessageBoxButton.OK, MessageBoxImage.Error);
                    return;
                }
            }
            mainWindow.RefreshSubscriptionTable();
            this.Close();
        }
예제 #17
0
        //Метод для заполнения Главной таблицы тестовыми значениями
        private void AutoInsertMainTable()
        {
            string[] senderAddress = new string[]
            {
                "Украина г.Украинский, ул.Украины, д.32, кв.5"
                , "Россия г.Российсткий, ул.России, д.24, кв.12"
                , "Белоруссия г.Белороссийский, ул.Белорусии, д.43, кв.34"
                , "Польша г.Польский, ул.Польши, д.17, кв.45"
                , "США г.Штацкий, ул.Штатов, д.42, кв.15"
                , "ЮАР г.ЮАРский, ул.ЮАРцев, д.36, кв.8"
                , "Турция г.Турецкий, ул.Турции, д.7, кв.44"
                , "Франция г.Французкий, ул.Франции, д.34, кв.25"
                , "Германия г.Германский, ул.Германии, д.54, кв.6"
                , "Мексика г.Мексиканский, ул.Мексики, д.31, кв.17"
            };

            string[] recipientAddress = new string[]
            {
                "Украина г.Украинский, ул.Украины, д.32, кв.5"
                , "Россия г.Российсткий, ул.России, д.24, кв.12"
                , "Белоруссия г.Белороссийский, ул.Белорусии, д.43, кв.34"
                , "Польша г.Польский, ул.Польши, д.17, кв.45"
                , "США г.Штацкий, ул.Штатов, д.42, кв.15"
                , "ЮАР г.ЮАРский, ул.ЮАРцев, д.36, кв.8"
                , "Турция г.Турецкий, ул.Турции, д.7, кв.44"
                , "Франция г.Французкий, ул.Франции, д.34, кв.25"
                , "Германия г.Германский, ул.Германии, д.54, кв.6"
                , "Мексика г.Мексиканский, ул.Мексики, д.31, кв.17"
            };

            using (MailContext context = new MailContext())
            {
                try
                {
                    Mail        mail  = new Mail();
                    List <Mail> mails = new List <Mail>();

                    Operation[]    operations    = context.Operations.Select(c => c).ToArray();
                    Mailing[]      mailings      = context.Mailings.Select(c => c).ToArray();
                    Subscription[] subscriptions = context.Subscriptions.Select(c => c).ToArray();

                    int o  = 0;
                    int m  = 0;
                    int s  = 0;
                    int sa = 0;
                    int ra = 1;

                    for (int x = 0; x < senderAddress.Length; x++)
                    {
                        if (o == operations.Length)
                        {
                            o = 0;
                        }
                        if (m == mailings.Length)
                        {
                            m = 0;
                        }
                        if (s == subscriptions.Length)
                        {
                            s = 0;
                        }
                        if (sa == senderAddress.Length)
                        {
                            sa = 0;
                        }
                        if (ra == recipientAddress.Length + 1)
                        {
                            ra = 1;
                        }

                        mail.id_Operation    = operations[o];
                        mail.id_Mailing      = mailings[m];
                        mail.id_Subscription = subscriptions[s];

                        mail.sender_Address    = senderAddress[sa];
                        mail.recipient_Address = recipientAddress[recipientAddress.Length - ra];

                        mail.weight_Package = x / (10 - x);

                        mail.date_Operation = DateTime.Now;

                        mail.price = x * (10 - x);

                        mails.Add(mail);

                        mail = new Mail();

                        o++;
                        m++;
                        s++;
                        sa++;
                        ra++;
                    }
                    context.Mail.AddRange(mails);

                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Ошибка при заполнении главной таблицы Текст ошибки:" + e.ToString());
                }
            }
        }
예제 #18
0
        //Метод для заполнения таблицы 'Подписчики на периодические издания' тестовыми значениями
        private void AutoInsertSubscribers()
        {
            string[] lastNames = new string[]
            {
                "Пупкин", "Печкин", "Куров", "Синицын", "Скороход"
                , "Домов", "Колотушкин", "Карченко", "Пушкин", "Тарин"
            };

            string[] firstNames = new string[]
            {
                "Владислав", "Илья", "Александр", "Дмитрий", "Виктор"
                , "Станислав", "Константин", "Ян", "Максим", "Пётр"
            };

            string[] midleNames = new string[]
            {
                "Александрович", "Максимов", "Петрович", "Янов", "Владиславович"
                , "Ильич", "Дмитрович", "Константинович", "Станиславович", "Викторович"
            };

            string[] subAddresses = new string[]
            {
                "Украина г.Украинский, ул.Украины, д.32, кв.5"
                , "Россия г.Российсткий, ул.России, д.24, кв.12"
                , "Белоруссия г.Белороссийский, ул.Белорусии, д.43, кв.34"
                , "Польша г.Польский, ул.Польши, д.17, кв.45"
                , "США г.Штацкий, ул.Штатов, д.42, кв.15"
                , "ЮАР г.ЮАРский, ул.ЮАРцев, д.36, кв.8"
                , "Турция г.Турецкий, ул.Турции, д.7, кв.44"
                , "Франция г.Французкий, ул.Франции, д.34, кв.25"
                , "Германия г.Германский, ул.Германии, д.54, кв.6"
                , "Мексика г.Мексиканский, ул.Мексики, д.31, кв.17"
            };

            using (MailContext context = new MailContext())
            {
                try
                {
                    Subscriber        subscriber  = new Subscriber();
                    List <Subscriber> subscribers = new List <Subscriber>();

                    for (int i = 0; i < lastNames.Length; i++)
                    {
                        subscriber.last_Name   = lastNames[i];
                        subscriber.first_Name  = firstNames[i];
                        subscriber.middle_Name = midleNames[i];
                        subscriber.sub_Address = subAddresses[i];
                        subscribers.Add(subscriber);
                        subscriber = new Subscriber();
                    }

                    context.Subscribers.AddRange(subscribers);

                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    Console.WriteLine("Ошибка при заполнении таблицы 'Подписчики на периодические издания' Текст ошибки:" + e.ToString());
                }
            }
        }