コード例 #1
0
        public WorkerTicketBLL searchBySerial(WorkerTicketBLL worker)
        {
            WorkerTicketDAL workDal = new WorkerTicketDAL
            {
                serial      = worker.serial,
                number      = worker.number,
                lastName    = worker.lastName,
                name        = worker.name,
                patronimic  = worker.patronimic,
                spec        = worker.speciality,
                phoneNumber = worker.phoneNumber,
                workDays    = worker.workDays
            };
            WorkerTicketDAL  result;
            PGUserRepository repository = repositoryFactory.getUserRepository();

            result = repository.findBySerial(workDal);
            return(new WorkerTicketBLL
            {
                serial = result.serial,
                number = result.number,
                lastName = result.lastName,
                name = result.name,
                patronimic = result.patronimic,
                phoneNumber = result.phoneNumber,
                speciality = result.spec,
                workDays = result.workDays
            });
        }
コード例 #2
0
        public WorkerTicketBLL getWorkerFromTextBoxes()
        {
            List <string> list = new List <string>();

            this.form.getTextBoxValues().ForEach(o => list.Add(o.Text.ToString()));

            WorkerTicketBLL worker = new WorkerTicketBLL
            {
                lastName    = list[0].ToString(),
                name        = list[1].ToString(),
                patronimic  = list[2].ToString(),
                speciality  = list[3].ToString(),
                phoneNumber = list[4].ToString(),
                serial      = list[5].ToString(),
                number      = list[6].ToString()
            };

            if (!form.getDayValue().Equals("не указано"))
            {
                WorkDayDAL wd = new WorkDayDAL
                {
                    day = form.getDayValue()
                };
                worker.workDays = new List <WorkDayDAL>();
                worker.workDays.Add(wd);
            }
            return(worker);
        }
コード例 #3
0
        public IEnumerable <WorkerTicketBLL> searchBy(WorkerTicketBLL worker)
        {
            IEnumerable <WorkerTicketDAL> listDAL = new List <WorkerTicketDAL>();
            WorkerTicketDAL searchPattern         = new WorkerTicketDAL
            {
                lastName    = worker.lastName,
                name        = worker.name,
                patronimic  = worker.patronimic,
                number      = worker.number,
                serial      = worker.serial,
                phoneNumber = worker.phoneNumber,
                spec        = worker.speciality,
                workDays    = worker.workDays
            };
            PGUserRepository repository = repositoryFactory.getUserRepository();

            listDAL = (repository.searchBy(searchPattern) as IEnumerable <WorkerTicketDAL>);
            return(listDAL.Select(w => new WorkerTicketBLL
            {
                lastName = w.lastName,
                name = w.name,
                number = w.number,
                patronimic = w.patronimic,
                serial = w.serial,
                phoneNumber = w.phoneNumber,
                speciality = w.spec
            }).AsEnumerable());
        }
コード例 #4
0
        private void DGV_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (DGV.CurrentRow.Cells[0].Value.ToString().Equals(""))
            {
                btnUpdate.Enabled = false;
                MessageBox.Show("Данная запись пуста, выберите другую");
            }
            else
            {
                btnUpdate.Enabled = true;
                for (int i = 0; i < DGV.ColumnCount; i++)
                {
                    tbList[i].Text = DGV.CurrentRow.Cells[i].Value.ToString();
                }
                if (списокСтудентовToolStripMenuItem.Checked)
                {
                    if (rbSearch.Checked || rbDelete.Checked)
                    {
                        presenter.loadRoomsForSearch();
                    }
                    else if (rbAdd.Checked || rbResettle.Checked)
                    {
                        presenter.loadAvailableRooms();
                    }
                    cbRoom.Text = tbRoom.Text;
                }

                if (списокРаботниковToolStripMenuItem.Checked)
                {
                    listBoxWD.Items.Clear();
                    WorkerTicketBLL worker = presenter.findWorkerInUserListBySerial(tbSerial.Text, tbNumber.Text);
                    setWorkDaysText(worker.workDays);
                }
            }
        }
コード例 #5
0
 public WorkDaysFormPresenter(WorkDaysForm form, WorkerTicketBLL worker)
 {
     this.form   = form;
     this.worker = worker;
     validator   = new FormValidator();
     initWeek();
     disableDays();
 }
コード例 #6
0
 public WorkerEditPresenter(WorkerEditForm form, WorkerTicketBLL worker)
 {
     this.form      = form;
     this.worker    = worker;
     validator      = new FormValidator();
     serviceFactory = new ServiceFactory(new PGRepositoryFactory());
     service        = serviceFactory.getUserService();
 }
コード例 #7
0
        public void loadCurrentWorkerInfo()
        {
            WorkerTicketBLL currentWorker = (userTicket as WorkerTicketBLL);
            ComboBox        box           = form.getAuthorComboBox();

            box.Items.Clear();
            box.Items.Add(currentWorker.serial + currentWorker.number);
            box.Text = box.Items[0].ToString();
        }
コード例 #8
0
 private void getDaysForWorkerFromList(ref WorkerTicketBLL worker)
 {
     foreach (WorkerTicketBLL w in userList)
     {
         if (w.serial.Equals(worker.serial) && w.number.Equals(worker.number))
         {
             worker.workDays = w.workDays;
         }
     }
 }
コード例 #9
0
        public void openUpdateWorkerForm()
        {
            WorkerTicketBLL worker = getWorkerFromTextBoxes();

            getDaysForWorkerFromList(ref worker);
            WorkerEditForm edit = new WorkerEditForm(worker);

            edit.ShowDialog();
            getListOfWorkers();
            reloadWorkerGrid();
        }
コード例 #10
0
 public WorkDaysForm(ref WorkerTicketBLL worker)
 {
     InitializeComponent();
     fillComboBoxes();
     getAllControls();
     presenter = new WorkDaysFormPresenter(this, worker);
     loadWorkerDays();
     lbWS.Text = "Время\nначала:";
     lbWE.Text = "Время\nокончания:";
     lbRS.Text = "Время\nначала:";
     lbRE.Text = "Время\nокончания:";
 }
コード例 #11
0
        public bool openWorkDaysForm(ref WorkerTicketBLL worker)
        {
            WorkDaysForm wdForm = new WorkDaysForm(ref worker);

            wdForm.ShowDialog();
            bool result = false;

            if (wdForm.DialogResult == DialogResult.OK)
            {
                result = true;
            }
            return(result);
        }
コード例 #12
0
        public void openWorkdaysForm()
        {
            WorkerTicketBLL workerWithNewDays = worker;
            WorkDaysForm    form = new WorkDaysForm(ref workerWithNewDays);

            form.ShowDialog();
            if (form.DialogResult == DialogResult.OK)
            {
                service.addWorkDays(workerWithNewDays);
                worker = service.searchBySerial(worker);
                loadWorkerToForm();
            }
        }
コード例 #13
0
 public WorkerEditForm(WorkerTicketBLL worker)
 {
     InitializeComponent();
     getTextBoxes();
     presenter = new WorkerEditPresenter(this, worker);
     loadWorker();
     setLimits();
     btnDelete.Enabled = false;
     tbSpec.Enabled    = false;
     if (LoginInfo.isWorker())
     {
         btnPwd.Visible = false;
     }
 }
コード例 #14
0
        public WorkerTicketBLL findWorkerInUserListBySerial(string serial, string number)
        {
            WorkerTicketBLL worker = new WorkerTicketBLL();

            foreach (WorkerTicketBLL w in userList)
            {
                if (w.serial == serial && w.number == number)
                {
                    worker = (w as WorkerTicketBLL);
                    break;
                }
            }
            return(worker);
        }
コード例 #15
0
        public void updateData(WorkerTicketBLL updatedWorker)
        {
            WorkerTicketDAL wDal = new WorkerTicketDAL
            {
                name        = updatedWorker.name,
                lastName    = updatedWorker.lastName,
                patronimic  = updatedWorker.patronimic,
                number      = updatedWorker.number,
                serial      = updatedWorker.serial,
                phoneNumber = updatedWorker.phoneNumber,
                spec        = updatedWorker.speciality
            };
            PGUserRepository repository = repositoryFactory.getUserRepository();

            repository.updateInfo(wDal);
        }
コード例 #16
0
        public void deleteUser(WorkerTicketBLL worker)
        {
            PGUserRepository repository = repositoryFactory.getUserRepository();
            WorkerTicketDAL  workerDAL  = new WorkerTicketDAL
            {
                serial      = worker.serial,
                number      = worker.number,
                lastName    = worker.lastName,
                name        = worker.name,
                patronimic  = worker.patronimic,
                phoneNumber = worker.phoneNumber,
                spec        = worker.speciality,
                workDays    = worker.workDays
            };

            repository.removeBySerial(workerDAL);
        }
コード例 #17
0
        public void deleteWorkDay(WorkerTicketBLL worker)
        {
            WorkerTicketDAL wDal = new WorkerTicketDAL
            {
                name        = worker.name,
                lastName    = worker.lastName,
                patronimic  = worker.patronimic,
                number      = worker.number,
                serial      = worker.serial,
                phoneNumber = worker.phoneNumber,
                spec        = worker.speciality,
                workDays    = worker.workDays
            };
            PGUserRepository repository = repositoryFactory.getUserRepository();

            repository.deleteWorkDay(wDal);
        }
コード例 #18
0
        public WorkerTicketBLL getWorkerFromTextBoxes()
        {
            List <TextBox> textBoxes = form.getTextBoxesValues();
            List <string>  list      = new List <string>();

            textBoxes.ForEach(t => list.Add(t.Text));
            WorkerTicketBLL worker = new WorkerTicketBLL();

            worker.lastName    = list[0];
            worker.name        = list[1];
            worker.patronimic  = list[2];
            worker.speciality  = list[3];
            worker.phoneNumber = list[4];
            worker.serial      = list[5];
            worker.number      = list[6];
            worker.workDays    = new List <WorkDayDAL>();
            return(worker);
        }
コード例 #19
0
 public void validateWorkerToSearch(WorkerTicketBLL worker)
 {
     resetValues();
     #region Проверка на запрещенные символы
     if (worker.lastName.Any(s => (char.IsDigit(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
     {
         brokenRules.Add("Поле фамилии содержит недопустимый(е) символ(ы) (цифры,знаки пунктуации, */-+ и т.п.)");
         validFlag = false;
     }
     if (worker.name.Any(s => (char.IsDigit(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
     {
         brokenRules.Add("Поле имени содержит недопустимый(е) символ(ы) (цифры,знаки пунктуации, */-+ и т.п.)");
         validFlag = false;
     }
     if (worker.patronimic.Any(s => (char.IsDigit(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
     {
         brokenRules.Add("Поле отчества содержит недопустимый(е) символ(ы) (цифры,знаки пунктуации, */-+ и т.п.)");
         validFlag = false;
     }
     if (worker.serial.Any(s => (char.IsDigit(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
     {
         brokenRules.Add("Поле серии студ билета содержит недопустимый(е) символ(ы) (цифры,знаки пунктуации, */-+ и т.п.)");
         validFlag = false;
     }
     if (!string.IsNullOrWhiteSpace(worker.speciality))
     {
         if (!(worker.speciality.Equals("сантехник")) && !(worker.speciality.Equals("электрик")) && !(worker.speciality.Equals("не опред.")))
         {
             brokenRules.Add("Поле специальности может сдержать только значения - сантехник, электрик или не опред.");
             validFlag = false;
         }
     }
     if (worker.phoneNumber.Any(s => ((char.IsPunctuation(s) && !s.Equals('-')) || s.Equals('*') || s.Equals('/'))))
     {
         brokenRules.Add("Поле номера телефона содержит недопустимый(е) символ(ы) (знаки пунктуации, */ и т.п.)");
         validFlag = false;
     }
     if (worker.number.Any(s => (char.IsLetter(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
     {
         brokenRules.Add("Поле номера студ билета содержит недопустимый(е) символ(ы) (буквы, знаки пунктуации, */-+ и т.п.)");
         validFlag = false;
     }
     #endregion
 }
コード例 #20
0
        public void deleteDay()
        {
            ListBox         list        = form.getWorkDayList();
            string          selectedDay = list.SelectedItem.ToString();
            WorkerTicketBLL delWorker   = new WorkerTicketBLL
            {
                serial = worker.serial,
                number = worker.number
            };

            delWorker.workDays = new List <WorkDayDAL>();
            delWorker.workDays.Add(new WorkDayDAL {
                day = selectedDay
            });
            service.deleteWorkDay(delWorker);
            list.Items.Remove(selectedDay);
            worker = service.searchBySerial(worker);
            loadWorkerToForm();
        }
コード例 #21
0
 public void loadInfo()
 {
     form.setInfo("");
     if (userType.Equals("С"))
     {
         StringBuilder sb = new StringBuilder();
         currentUser = service.searchBySerial(new StudentTicketBLL {
             serial = login.Substring(1, 2), number = login.Substring(3, login.Length - 3)
         });
         StudentTicketBLL st = (currentUser as StudentTicketBLL);
         sb.Append("Информация о Вас:\n" +
                   "Логин: " + login +
                   "\nНомер студ. билета: " + login.Substring(1, login.Length - 1) +
                   "\nФамилия:" + st.lastName +
                   "\nИмя: " + st.name +
                   "\nОтчество: " + st.patronimic +
                   "\nКурс: " + st.kurs +
                   "\nФакультет: " + st.facult +
                   "\nГруппа: " + st.group +
                   "\nСпециальность: " + st.speciality +
                   "\nКомната:" + st.roomNumber
                   );
         form.setInfo(sb.ToString());
     }
     else if (userType.Equals("Р") || userType.Equals("К"))
     {
         StringBuilder sb = new StringBuilder();
         currentUser = service.searchBySerial(new WorkerTicketBLL {
             serial = login.Substring(1, 2), number = login.Substring(3, login.Length - 3)
         });
         WorkerTicketBLL worker = (currentUser as WorkerTicketBLL);
         sb.Append("Информация о Вас:\n" +
                   "Логин: " + login +
                   "\nНомер удостоверения: " + login.Substring(1, login.Length - 1) +
                   "\nФамилия:" + worker.lastName +
                   "\nИмя: " + worker.name +
                   "\nОтчество: " + worker.patronimic +
                   "\nСпециализация: " + worker.speciality +
                   "\nНомер тел.: " + worker.phoneNumber
                   );
         form.setInfo(sb.ToString());
     }
 }
コード例 #22
0
        public void addUser(WorkerTicketBLL worker)
        {
            WorkerTicketDAL wDAL = new WorkerTicketDAL
            {
                lastName    = worker.lastName,
                name        = worker.name,
                patronimic  = worker.patronimic,
                number      = worker.number,
                serial      = worker.serial,
                phoneNumber = worker.phoneNumber,
                spec        = worker.speciality
            };

            if (worker.workDays != null)
            {
                wDAL.workDays = worker.workDays;
            }
            PGUserRepository repository = repositoryFactory.getUserRepository();

            repository.addUser(wDAL);
        }
コード例 #23
0
 public void addWorker()
 {
     validator.validateWorkerToAdd(getWorkerFromTextBoxes());
     if (validator.isValid())
     {
         WorkerTicketBLL worker = getWorkerFromTextBoxes();
         if (openWorkDaysForm(ref worker))
         {
             userService.addUser(worker);
             getListOfWorkers();
             reloadWorkerGrid();
         }
         else
         {
             MessageBox.Show("Рабочие дни не были указаны", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
     }
     else
     {
         MessageBox.Show(validator.getErrorString(), "Ошибки ввода", MessageBoxButtons.OK, MessageBoxIcon.Warning);
     }
     validator.resetValues();
 }
コード例 #24
0
        public void validateWorkerToAdd(WorkerTicketBLL worker)
        {
            resetValues();
            #region Проверка полей на пустоту
            if (string.IsNullOrWhiteSpace(worker.lastName))
            {
                brokenRules.Add("Поле фамилии не может быть пустым");
                validFlag = false;
            }
            if (string.IsNullOrWhiteSpace(worker.name))
            {
                brokenRules.Add("Поле имени не может быть пустым");
                validFlag = false;
            }
            if (string.IsNullOrWhiteSpace(worker.serial))
            {
                brokenRules.Add("Поле серии рабочего удостоверения не может быть пустым");
                validFlag = false;
            }
            if (string.IsNullOrWhiteSpace(worker.number))
            {
                brokenRules.Add("Поле номера рабочего удостоверения не может быть пустым");
                validFlag = false;
            }
            if (string.IsNullOrWhiteSpace(worker.speciality))
            {
                brokenRules.Add("Поле специализации не может быть пустым");
                validFlag = false;
            }
            if (string.IsNullOrWhiteSpace(worker.phoneNumber))
            {
                brokenRules.Add("Поле номера телефона не может быть пустым");
                validFlag = false;
            }
            #endregion
            #region Проверка на запрещенные символы
            if (worker.lastName.Any(s => (char.IsDigit(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
            {
                brokenRules.Add("Поле фамилии содержит недопустимый(е) символ(ы) (цифры,знаки пунктуации, */-+ и т.п.)");
                validFlag = false;
            }
            if (worker.name.Any(s => (char.IsDigit(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
            {
                brokenRules.Add("Поле имени содержит недопустимый(е) символ(ы) (цифры,знаки пунктуации, */-+ и т.п.)");
                validFlag = false;
            }
            if (worker.patronimic.Any(s => (char.IsDigit(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
            {
                brokenRules.Add("Поле отчества содержит недопустимый(е) символ(ы) (цифры,знаки пунктуации, */-+ и т.п.)");
                validFlag = false;
            }
            if (worker.serial.Any(s => (char.IsDigit(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
            {
                brokenRules.Add("Поле серии студ билета содержит недопустимый(е) символ(ы) (цифры,знаки пунктуации, */-+ и т.п.)");
                validFlag = false;
            }
            if (!string.IsNullOrWhiteSpace(worker.speciality))
            {
                if (!(worker.speciality.Equals("сантехник")) && !(worker.speciality.Equals("электрик")) && !(worker.speciality.Equals("не опред.")))
                {
                    brokenRules.Add("Поле специальности может сдержать только значения - сантехник, электрик или не опред.");
                    validFlag = false;
                }
            }


            if (worker.number.Any(s => (char.IsLetter(s) || char.IsPunctuation(s) || char.IsSymbol(s))))
            {
                brokenRules.Add("Поле номера студ билета содержит недопустимый(е) символ(ы) (буквы, знаки пунктуации, */-+ и т.п.)");
                validFlag = false;
            }
            #endregion
            #region Телефон
            if (!string.IsNullOrWhiteSpace(worker.phoneNumber))
            {
                if (worker.phoneNumber[0] != '+')
                {
                    brokenRules.Add("Номер телефона может начинаться только с +");
                    validFlag = false;
                }
                if (!Regex.IsMatch(worker.phoneNumber, "^[+]{1}380[0-9]{2}-[0-9]{3}-[0-9]{2}-[0-9]{2}$"))
                {
                    brokenRules.Add("Номер телефона должен иметь вид: +380ХХ-ХХХ-ХХ-ХХ");
                    validFlag = false;
                }
            }
            #endregion

            if (worker.number.Length < 6 && !string.IsNullOrWhiteSpace(worker.number))
            {
                brokenRules.Add("Длина номера рабочего удостоверения не может быть меньше 6 символов, сейчас она равна" + worker.number.Length);
                validFlag = false;
            }
        }