示例#1
0
        public User(string username, bool guartOn, bool alarmOn, bool keyOnOff, bool datX, int cellgroup, string catRoom, int floor)
        {
            InitializeComponent();

            InstanceContext instanceContext = new InstanceContext(new ClientServiceCallback());

            _clientService = new ClientServiceClient(instanceContext);

            RommsL = this.Resources["RoomsDataSource"] as RoomCollection;
            _keysCollectionL = this.Resources["KeysDataSource"] as KeysCollection;

            _floorId = floor;

            //определение сом порта этажа
            // todo надо переписать под универсальную строку коннекта когда будет создан админ
            //            string conn = @"Data Source=microsoft-pc;Initial Catalog=ALFA;Integrated Security=True";
            //            SqlConnection sqlComPort = new SqlConnection(conn);
            //            sqlComPort.Open();
            //            string infoAboutComPort = @"SELECT ComPort FROM Floors
            //                                          WHERE (FloorName = '" + _floorId + "')";
            //            SqlCommand sqlinfoAboutComPort = new SqlCommand(infoAboutComPort, sqlComPort);
            //            SqlDataReader rezultat = sqlinfoAboutComPort.ExecuteReader();
            //            rezultat.Read();
            //            _yComPort = (string)rezultat["ComPort"];
            //            rezultat.Close();
            //            sqlComPort.Close();

            // ну согласись, лучше чем верхняя портянка, даже если предположить что ты не знаешь Linq то тут все понятно
            AlfaEntities alfaEntities = new AlfaEntities();

            // todo ошибочно считается что не может быть ситуации когда забит этаж и не указан ком порт, надо обработать это исключение
            _yComPort = (from floorse in alfaEntities.Floors
                         where floorse.FloorId == _floorId
                         select floorse.ComPort).FirstOrDefault();
        }
示例#2
0
        //todo заменить  messageBox на что нить приличное
        //todo большинство if можно убрать если выбрать значения по умолчанию в базе данных
        //(wtf) нельзя называть переменные одной буквой. только прям в ппц простых местах. типо цикла фор на 2 строки.
        //(wtf) все имена всех переменных должны быть написаны на английском языке, без транслитов, и иметь осмысленные названия
        //(wtf) l и p прикольные названия, но нихуя не понятные
        private void Enter(string login, string password)
        {
            AlfaEntities alfaEntities = new AlfaEntities();

            if (login.Length == 0 || password.Length == 0)
            {
                MessageBox.Show("Поля Логин или Пароль не должны быть пустыми. Введите логин и пароль.");
            }
            else
            {
                //(wtf) нельзя оборачивать весь код одним try, нифига не понятно где искать ошибки. если оборачиваешь в трай что то,
                //(wtf) надо выводить куда то экзепшн, либо в логи либо в System.Diagnostics.Debug.WriteLine(); либо еще куда
                //(wtf) и вобще try - плохо, надо везде стараться обойтись ифами
                 Users userItem =   (from userse in alfaEntities.Users
                                    where ((userse.Login == login) && (userse.Password == password) && (userse.Remove == null))
                                    select userse).FirstOrDefault();

                if (userItem != null)
                {
                    bool allOk = true;
                    string username;
                    bool guardOn;
                    string roomCateory;
                    bool alarmOn;
                    bool keyOnOff;
                    bool datX;
                    int cellgroupId;
                    int floorId = 0;
                    int type;

                    username = userItem.UserName;

                    if (userItem.GuardOn != null)
                    {
                        guardOn = (bool)userItem.GuardOn;
                    }
                    else
                    {
                        guardOn = false;
                    }

                    //todo wtf почему стояло условие != "" а описание "Не указан CatRoom." противоречие пля
                    roomCateory = userItem.RoomCategories;
                    if (roomCateory == "")
                    {
                        allOk = false;
                        MessageBox.Show("Не указан CatRoom.");
                    }

                    if (userItem.AlarmOn != null)
                    {
                        alarmOn = (bool) userItem.AlarmOn;
                    }
                    else
                    {
                        alarmOn = false;
                    }

                    if (userItem.KeyOnOff != null)
                    {
                        keyOnOff = (bool) userItem.KeyOnOff;
                    }
                    else
                    {
                        keyOnOff = false;
                    }

                    if (userItem.DatX != null)
                    {
                        datX = (bool) userItem.DatX;
                    }
                    else
                    {
                        datX = false;
                        allOk = false;
                        MessageBox.Show("Не указан DatX.");
                    }

                    if (userItem.CellGroupID != null)
                    {
                        cellgroupId = (int)userItem.CellGroupID;
                    }
                    else
                    {
                        cellgroupId = 1;
                        allOk = false;
                        MessageBox.Show("Не указан CellgroupID.");
                    }

                    if (userItem.Type != null)
                    {
                        type = (int)userItem.Type;
                    }
                    else
                    {
                        type = 1;
                        allOk = false;
                        MessageBox.Show("Не указан тип пользователя.");
                    }

                    //todo нифига не понял что там с этажами
                    if (userItem.FloorId != null)
                    {
                        floorId = (int) userItem.FloorId;
                    }
                    else
                    {
                        allOk = false;
                        //todo wtf не понятное описание, на сколько я понимаю если нет ни одного этажа, то фраза должна быть
                        //todo "пользователь не имеет права на просмотр ни одного этажа" ну или ченить подобное
                        //todo сделать связь многие ко многим
                        //MessageBox.Show("Отсутствуют права на просмотр какого-либо этажа.");
                        MessageBox.Show("пользователь не имеет права на просмотр ни одного этажа");
                    }

                    if (allOk == true && type == 2)
                    {
                        Admin admin = new Admin(username);
                        this.Hide();
                        admin.Show();
                        this.Close();
                    }

                    if (allOk == true && type == 1)
                    {
                        User user = new User(username, guardOn, alarmOn, keyOnOff, datX, cellgroupId, roomCateory, floorId);
                        this.Hide();
                        user.Show();
                        this.Close();
                    }
                }
                else
                {
                    MessageBox.Show("не правильно введено имя пользователя или пароль");
                }

            }
        }