Esempio n. 1
0
        public void EditUser(string oldPass, string oldName, UserFromTable newUser, int userTypeId, int userRoleId, int orgId, int curUserId)
        {
            Exception userNameAllreadyExists = new Exception("Пользователь с таким именем уже существует!");
            int       userNewId = sqlDb.GetUserId_byUserName(newUser.name);
            int       userOldId = sqlDb.GetUserId_byUserName(oldName);

            if (userNewId > 0)
            {
                if (userOldId != userNewId)
                {
                    throw userNameAllreadyExists;
                }
            }

            int userId = sqlDb.AddNewUser(newUser.name, newUser.pass, userTypeId, userRoleId, orgId, oldName, oldPass);

            if (curUserId > 0)
            {
                HistoryTable log = new HistoryTable(connectionString, CurrentLanguage, sqlDb);
                log.AddHistoryRecord("fd_user", "USER_ID", userId, curUserId, log.driversRegDataChanged, "Code: " + userId.ToString(), sqlDb);
            }
        }
Esempio n. 2
0
        public int AddNewUser(UserFromTable newUser, int userTypeId, int userRoleId, int orgId, int curUserId)
        {
            Exception userNameAllreadyExists = new Exception("Пользователь с таким именем уже существует!");
            int       returnUserId           = -1;
            int       userId = sqlDb.GetUserId_byUserName(newUser.name);

            if (userId > 0)
            {
                throw userNameAllreadyExists;
            }

            returnUserId = sqlDb.AddNewUser(newUser.name, newUser.pass, userTypeId, userRoleId, orgId, newUser.name, newUser.pass);
            AddUserInfoValue(returnUserId, DataBaseReference.UserInfo_RegDate, DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
            AddUserInfoValue(returnUserId, DataBaseReference.UserInfo_EndOfRegistrationDate, DateTime.Now.AddMonths(6).ToShortDateString());

            if (curUserId > 0)
            {
                HistoryTable log = new HistoryTable(connectionString, CurrentLanguage, sqlDb);
                log.AddHistoryRecord("fd_user", "USER_ID", returnUserId, curUserId, log.newUserRegistered, "Login: "******", code: " + returnUserId, sqlDb);
            }

            return(returnUserId);
        }
Esempio n. 3
0
        /// <summary>
        /// Иннициализирует базу данных стартовыми значениями.
        /// Это нужно для того, чтобы сразу с разворачивания базы данных можно было начать работать в веб интерфейсе.
        /// </summary>
        /// <param name="password">пароль нужен просто, чтобы из консоли нечайно не тыкнуть. пароль = qqq</param>
        public static void DataBaseInit(string password)
        {
            string CurrentLanguage = "STRING_RU";
            if (password != "qqq")
                throw new Exception("Неправильный пароль");

             string connectionString = "server=localhost;User Id=root;password = 1;Persist Security Info=True;database=fleetnetbase";
             string connectionString1 = "server=mysql62.1gb.ru;default command timeout=600;Connection Timeout=600;database=gb_x_smartfis;User Id=gb_x_smartfis;password =5216a0af;";

            SQLDB sqlDb = new SQLDB(connectionString);
            MySqlConnection sqlConnection = new MySqlConnection(connectionString);
            MySqlCommand cmd = new MySqlCommand();
            int stringId = -1;
            int generatedId = -1;
            string sql;

            sql = "INSERT INTO fd_string "
                    + "(STRING_ID, STRING_RU)"
                    + "VALUES (@STRING_ID, @STRING_RU)";
            cmd = new MySqlCommand(sql, sqlConnection);
            cmd.Parameters.AddWithValue("@STRING_ID", 0);
            cmd.Parameters.AddWithValue("@STRING_RU", "");

            sqlConnection.Open();
            sqlDb.OpenConnection();

            cmd.ExecuteNonQuery();

            //dataBlockStates
            InitTable_ID_String("fd_data_block_state", "DATA_BLOCK_STATE_ID", "STRID_DATA_BLOCK_STATE_NAME", "Ideal", sqlDb, sqlConnection);
            InitTable_ID_String("fd_data_block_state", "DATA_BLOCK_STATE_ID", "STRID_DATA_BLOCK_STATE_NAME", "Parsed", sqlDb, sqlConnection);
            InitTable_ID_String("fd_data_block_state", "DATA_BLOCK_STATE_ID", "STRID_DATA_BLOCK_STATE_NAME", "Not parsed", sqlDb, sqlConnection);
            InitTable_ID_String("fd_data_block_state", "DATA_BLOCK_STATE_ID", "STRID_DATA_BLOCK_STATE_NAME", "Not supported", sqlDb, sqlConnection);

            //dataRecordsState
            InitTable_ID_String("fd_data_record_state", "DATA_RECORD_STATE_ID", "STRID_DATA_RECORD_STATE_NAME", "Ideal", sqlDb, sqlConnection);
            InitTable_ID_String("fd_data_record_state", "DATA_RECORD_STATE_ID", "STRID_DATA_RECORD_STATE_NAME", "Parsed", sqlDb, sqlConnection);
            InitTable_ID_String("fd_data_record_state", "DATA_RECORD_STATE_ID", "STRID_DATA_RECORD_STATE_NAME", "Not parsed", sqlDb, sqlConnection);

            //Card_TYPE
            stringId = sqlDb.AddOrGetString("Card Type: Driver", SQLDB.userString);
            generatedId = sqlDb.generateId("fd_card_type", "CARD_TYPE_ID");
            if (generatedId == -1)
                throw (new Exception("Can't generate CARD_TYPE_ID"));

            sql = "INSERT INTO fd_card_type "
               + "(CARD_TYPE_ID, STRID_CARD_TYPE_NAME, STRID_CARD_TYPE_SHORT_NAME, STRID_CARD_TYPE_PRINT_NAME)"
               + "VALUES (@CARD_TYPE_ID, @STRID_CARD_TYPE_NAME, @STRID_CARD_TYPE_SHORT_NAME, @STRID_CARD_TYPE_PRINT_NAME)";
            cmd = new MySqlCommand(sql, sqlConnection);
            cmd.Parameters.AddWithValue("@CARD_TYPE_ID", generatedId);
            cmd.Parameters.AddWithValue("@STRID_CARD_TYPE_NAME", stringId);
            cmd.Parameters.AddWithValue("@STRID_CARD_TYPE_SHORT_NAME", stringId);
            cmd.Parameters.AddWithValue("@STRID_CARD_TYPE_PRINT_NAME", stringId);
            cmd.ExecuteNonQuery();

            stringId = sqlDb.AddOrGetString("Card Type: Vehicle", SQLDB.userString);
            generatedId = sqlDb.generateId("fd_card_type", "CARD_TYPE_ID");
            if (generatedId == -1)
                throw (new Exception("Can't generate CARD_TYPE_ID"));

            sql = "INSERT INTO fd_card_type "
               + "(CARD_TYPE_ID, STRID_CARD_TYPE_NAME, STRID_CARD_TYPE_SHORT_NAME, STRID_CARD_TYPE_PRINT_NAME)"
               + "VALUES (@CARD_TYPE_ID, @STRID_CARD_TYPE_NAME, @STRID_CARD_TYPE_SHORT_NAME, @STRID_CARD_TYPE_PRINT_NAME)";
            cmd = new MySqlCommand(sql, sqlConnection);
            cmd.Parameters.AddWithValue("@CARD_TYPE_ID", generatedId);
            cmd.Parameters.AddWithValue("@STRID_CARD_TYPE_NAME", stringId);
            cmd.Parameters.AddWithValue("@STRID_CARD_TYPE_SHORT_NAME", stringId);
            cmd.Parameters.AddWithValue("@STRID_CARD_TYPE_PRINT_NAME", stringId);
            cmd.ExecuteNonQuery();

            stringId = sqlDb.AddOrGetString("Card Type: Organization Init Card", SQLDB.userString);
            generatedId = sqlDb.generateId("fd_card_type", "CARD_TYPE_ID");
            if (generatedId == -1)
                throw (new Exception("Can't generate CARD_TYPE_ID"));

            sql = "INSERT INTO fd_card_type "
               + "(CARD_TYPE_ID, STRID_CARD_TYPE_NAME, STRID_CARD_TYPE_SHORT_NAME, STRID_CARD_TYPE_PRINT_NAME)"
               + "VALUES (@CARD_TYPE_ID, @STRID_CARD_TYPE_NAME, @STRID_CARD_TYPE_SHORT_NAME, @STRID_CARD_TYPE_PRINT_NAME)";
            cmd = new MySqlCommand(sql, sqlConnection);
            cmd.Parameters.AddWithValue("@CARD_TYPE_ID", generatedId);
            cmd.Parameters.AddWithValue("@STRID_CARD_TYPE_NAME", stringId);
            cmd.Parameters.AddWithValue("@STRID_CARD_TYPE_SHORT_NAME", stringId);
            cmd.Parameters.AddWithValue("@STRID_CARD_TYPE_PRINT_NAME", stringId);
            cmd.ExecuteNonQuery();
            int orgInitCardTypeId = generatedId;

            //fd_deviceFirmware
            int deviceFirmWareId = sqlDb.AddNewDeviceFirmware("onboard device by default", DateTime.Now, "0.0.0.0", new byte[1]);

            //fd_device
            int deviceTypeId = sqlDb.AddNewDeviceType("DefaultDeviceType");
            sqlDb.AddNewDevice(deviceTypeId, "The onboard device by default", "00000", DateTime.Now, deviceFirmWareId, 222222);
            //InitTable_ID_String("fd_device", "DEVICE_ID", "STRID_DEVICE_NAME", "");

            //fd_object
            InitTable_ID_String("fd_object", "OBJECT_ID", "STRID_OBJECT_NAME", "Object by default", sqlDb, sqlConnection);

            //FD_ORG_TYPE
            InitTable_ID_String("fd_org_type", "ORG_TYPE_ID", "STRID_ORG_TYPE_NAME", "Cargo transportation", sqlDb, sqlConnection);
            InitTable_ID_String("fd_org_type", "ORG_TYPE_ID", "STRID_ORG_TYPE_NAME", "Passengers transportation", sqlDb, sqlConnection);
            InitTable_ID_String("fd_org_type", "ORG_TYPE_ID", "STRID_ORG_TYPE_NAME", "Anything else transportation", sqlDb, sqlConnection);
            InitTable_ID_String("fd_org_type", "ORG_TYPE_ID", "STRID_ORG_TYPE_NAME", "Dealer", sqlDb, sqlConnection);
            InitTable_ID_String("fd_org_type", "ORG_TYPE_ID", "STRID_ORG_TYPE_NAME", "Subdealer", sqlDb, sqlConnection);
            InitTable_ID_String("fd_org_type", "ORG_TYPE_ID", "STRID_ORG_TYPE_NAME", "Predealer", sqlDb, sqlConnection);

            //FD_ORG
            OrganizationTable orgTable = new OrganizationTable(connectionString, CurrentLanguage, sqlDb);
            orgTable.AddNewOrganization("Init Organization", 1, 1, 1, 6);

            //fd_param

            sql = "INSERT INTO fd_param "
               + "(PARAM_ID, PARENT_PARAM_ID, PARAM_NAME, PARAM_SIZE)"
               + "VALUES (@PARAM_ID, @PARENT_PARAM_ID, @PARAM_NAME, @PARAM_SIZE)";
            cmd = new MySqlCommand(sql, sqlConnection);
            cmd.Parameters.AddWithValue("@PARAM_ID", 0);
            cmd.Parameters.AddWithValue("@PARENT_PARAM_ID", 0);
            cmd.Parameters.AddWithValue("@PARAM_NAME", "Parent_param");
            cmd.Parameters.AddWithValue("@PARAM_SIZE", 0);
            cmd.ExecuteNonQuery();

            //fd_user_info_set and fd_user_info
            sqlDb.AddUserInfoName("Surname", "STRING_RU");
            sqlDb.AddUserInfoName("Name", "STRING_RU");
            sqlDb.AddUserInfoName("Patronimic", "STRING_RU");
            sqlDb.AddUserInfoName("Drivers certificate", "STRING_RU");
            sqlDb.AddUserInfoName("Card number", "STRING_RU");
            sqlDb.AddUserInfoName("Phone number", "STRING_RU");
            sqlDb.AddUserInfoName("Birthday", "STRING_RU");

            //fd_user_rights
            InitTable_ID_String("fd_user_rights", "USER_RIGHTS_ID", "STRID_USER_RIGHTS_NAME", "Administrator", sqlDb, sqlConnection);
            InitTable_ID_String("fd_user_rights", "USER_RIGHTS_ID", "STRID_USER_RIGHTS_NAME", "SuperAdministrator", sqlDb, sqlConnection);

            //fd_user_role
            InitTable_ID_String("fd_user_role", "USER_ROLE_ID", "STRID_USER_ROLE_NAME", "Administrator", sqlDb, sqlConnection);
            InitTable_ID_String("fd_user_role", "USER_ROLE_ID", "STRID_USER_ROLE_NAME", "SuperAdministrator", sqlDb, sqlConnection);

            //fd_user_type
            InitTable_ID_String("fd_user_type", "USER_TYPE_ID", "STRID_USER_TYPE_NAME", "Driver", sqlDb, sqlConnection);
            InitTable_ID_String("fd_user_type", "USER_TYPE_ID", "STRID_USER_TYPE_NAME", "Manager", sqlDb, sqlConnection);
            InitTable_ID_String("fd_user_type", "USER_TYPE_ID", "STRID_USER_TYPE_NAME", "Administrator", sqlDb, sqlConnection);
            InitTable_ID_String("fd_user_type", "USER_TYPE_ID", "STRID_USER_TYPE_NAME", "DealerUser", sqlDb, sqlConnection);

            //fd_user
            UsersTables usersTable = new UsersTables(connectionString, "STRING_RU", sqlDb);
            usersTable.OpenConnection();
            usersTable.OpenTransaction();
            UserFromTable userFromTable = new UserFromTable("admin", "123", "3", "1", DateTime.Now, "org");
            usersTable.AddNewUser(userFromTable, 3, 1, 1, 0);
            userFromTable = new UserFromTable("admin2", "123", "3", "1", DateTime.Now, "org");
            usersTable.AddNewUser(userFromTable, 3, 2, 1, 0);
            usersTable.CommitTransaction();
            usersTable.CloseConnection();

            //fd_measure
            int kgId = sqlDb.AddNewMeasure("Kg", "Kilograms");
            int kmId = sqlDb.AddNewMeasure("Km", "Kilometers");
            int m3Id = sqlDb.AddNewMeasure("M3", "Cubic metres");
            int dateId = sqlDb.AddNewMeasure("Date", "DateTime");
            int RPMId = sqlDb.AddNewMeasure("Rpm", "Revolutions per minute");
            int KmphId = sqlDb.AddNewMeasure("Km/h", "Kilometers per hour");
            int PercentsId = sqlDb.AddNewMeasure("%", "Percents");
            int FConsumption = sqlDb.AddNewMeasure("L/h", "Liters per hour");

            //fd_key
            sqlDb.AddNewCriteria(kgId, "Commentary to a vehicle", "Строка для Комментария к ТС", 0, 0);
            sqlDb.AddNewCriteria(kgId, "Load-carrying capacity", "Грузоподьемность", 5000, 25000);
            sqlDb.AddNewCriteria(m3Id, "Fuel tank 1", "Коментарий к Топливному баку 1", 1, 250);
            sqlDb.AddNewCriteria(m3Id, "Fuel tank 2", "Коментарий к Топливному баку 1", 1, 250);
            sqlDb.AddNewCriteria(dateId, "MRO 1", "Дата ТО 1", 1, 1);
            sqlDb.AddNewCriteria(dateId, "MRO 2", "Дата ТО 2", 1, 1);
            sqlDb.AddNewCriteria(RPMId, "Nominal turns", "критерий для номинальных оборотов", 1, 1);
            sqlDb.AddNewCriteria(KmphId, "Maximum speed", "критерий для максимальной скорости", 1, 1);
            sqlDb.AddNewCriteria(KmphId, "Manoeuvring", "критерий для маневрирования", 1, 1);
            sqlDb.AddNewCriteria(PercentsId, "City", "критерий для города", 1, 1);
            sqlDb.AddNewCriteria(PercentsId, "Highway", "	критерий для магистрали", 1, 1);
            sqlDb.AddNewCriteria(FConsumption, "Nominal fuel consumption", "критерий для номинального расхода топлива", 1, 1);
            sqlDb.AddNewCriteria(RPMId, "Cold start", "критерий для холодного старта", 1, 1);
            sqlDb.AddNewCriteria(RPMId, "Hot stop", "критерий для горячего стопа", 1, 1);

            //fd_fuel_type
            stringId = sqlDb.AddOrGetString("Unknown fuel type", SQLDB.userString);

            sql = "INSERT INTO fd_fuel_type "
               + "(FUEL_TYPE_ID, STRID_FUEL_TYPE_NAME)"
               + "VALUES (@FUEL_TYPE_ID, @STRID_FUEL_TYPE_NAME)";
            cmd = new MySqlCommand(sql, sqlConnection);
            cmd.Parameters.AddWithValue("@FUEL_TYPE_ID", 0);
            cmd.Parameters.AddWithValue("@STRID_FUEL_TYPE_NAME", stringId);
            cmd.ExecuteNonQuery();

            stringId = sqlDb.AddOrGetString("Undefined", SQLDB.userString);

            sql = "INSERT INTO fd_vehicle_type "
               + "(VEHICLE_TYPE_ID, STRID_VEHICLE_TYPE_NAME, FUEL_TYPE_ID)"
               + "VALUES (@VEHICLE_TYPE_ID, @STRID_VEHICLE_TYPE_NAME, @FUEL_TYPE_ID)";
            cmd = new MySqlCommand(sql, sqlConnection);
            cmd.Parameters.AddWithValue("@VEHICLE_TYPE_ID", 0);
            cmd.Parameters.AddWithValue("@STRID_VEHICLE_TYPE_NAME", stringId);
            cmd.Parameters.AddWithValue("@FUEL_TYPE_ID", 0);
            cmd.ExecuteNonQuery();

            int fuelTypeID = sqlDb.AddNewFuelType("FuelType 1");
            sqlDb.AddNewVehicleType("Veh type 1", fuelTypeID);

            //HISTORY
              /*  HistoryTable history = new HistoryTable(connectionString, CurrentLanguage);
            history.AddOrGetAction("Изменение учетных данных");*/
            //

            sqlConnection.Close();
            sqlDb.CloseConnection();
        }
Esempio n. 4
0
        public int AddNewUser(UserFromTable newUser, int userTypeId, int userRoleId, int orgId, int curUserId)
        {
            Exception userNameAllreadyExists = new Exception("Пользователь с таким именем уже существует!");
            int returnUserId = -1;
            int userId = sqlDb.GetUserId_byUserName(newUser.name);
            if (userId > 0)
                throw userNameAllreadyExists;

            returnUserId = sqlDb.AddNewUser(newUser.name, newUser.pass, userTypeId, userRoleId, orgId, newUser.name, newUser.pass);
            AddUserInfoValue(returnUserId, DataBaseReference.UserInfo_RegDate, DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString());
            AddUserInfoValue(returnUserId, DataBaseReference.UserInfo_EndOfRegistrationDate, DateTime.Now.AddMonths(6).ToShortDateString());

            if (curUserId > 0)
            {
                HistoryTable log = new HistoryTable(connectionString, CurrentLanguage, sqlDb);
                log.AddHistoryRecord("fd_user", "USER_ID", returnUserId, curUserId, log.newUserRegistered, "Login: "******", code: " + returnUserId, sqlDb);
            }

            return returnUserId;
        }
Esempio n. 5
0
        public void EditUser(string oldPass, string oldName, UserFromTable newUser, int userTypeId, int userRoleId, int orgId, int curUserId)
        {
            Exception userNameAllreadyExists = new Exception("Пользователь с таким именем уже существует!");
            int userNewId = sqlDb.GetUserId_byUserName(newUser.name);
            int userOldId = sqlDb.GetUserId_byUserName(oldName);
            if (userNewId > 0)
            {
                if (userOldId != userNewId)
                    throw userNameAllreadyExists;
            }

            int userId = sqlDb.AddNewUser(newUser.name, newUser.pass, userTypeId, userRoleId, orgId, oldName, oldPass);

            if (curUserId > 0)
            {
                HistoryTable log = new HistoryTable(connectionString, CurrentLanguage, sqlDb);
                log.AddHistoryRecord("fd_user", "USER_ID", userId, curUserId, log.driversRegDataChanged, "Code: " + userId.ToString(), sqlDb);
            }
        }
    protected void SaveDealerButton_Click(object sender, EventArgs e)
    {
        string connectionString = ConfigurationSettings.AppSettings["fleetnetbaseConnectionString"];
        DataBlock dataBlock = new DataBlock(connectionString, ConfigurationManager.AppSettings["language"]);
        int orgId = Convert.ToInt32(Session["CURRENT_ORG_ID"]);

        try
        {
            int dealerId = -1;
            int userId = -1;

            string Login = DetailedInfo_Login_TextBox.Text;
            string password = DetailedInfo_Password_TextBox.Text;
            string passwordConfirm = DetailedInfo_PasswordConfirm_TextBox.Text;
            string dealerName = DetailedInfo_DealerName_TextBox.Text;
            int countryId = Convert.ToInt32(DetailedInfo_Country_DropDown.SelectedValue);

            dataBlock.OpenConnection();
            dataBlock.OpenTransaction();
            int curUserId = dataBlock.usersTable.Get_UserID_byName(Page.User.Identity.Name);
            int orgTypeId = dataBlock.organizationTable.GetOrgTypeId(orgId);
            switch (NewOrEditUser_hdnField.Value)
            {
                case "new":
                    {
                        int neworgTypeId;
                        if (orgTypeId == dataBlock.organizationTable.DealerTypeId)
                            neworgTypeId = dataBlock.organizationTable.SubdealerTypeId;
                        else
                            neworgTypeId = dataBlock.organizationTable.DealerTypeId;

                        dealerId = dataBlock.organizationTable.AddNewOrganization(dealerName, neworgTypeId, countryId, 1, orgId);
                        UserFromTable newUser = new UserFromTable(Login, password, "", "", DateTime.Now, "");
                        userId = dataBlock.usersTable.AddNewUser(newUser, dataBlock.usersTable.DealerUserTypeId, 1, dealerId, 0);
                    } break;
                case "edit":
                    {
                        dealerId = Convert.ToInt32(Selected_DealersDataGrid_Index.Value);
                        dataBlock.organizationTable.SetOrganizationName(dealerName, dealerId);
                        dataBlock.organizationTable.SetOrgCountryAndRegion(dealerId, countryId, 1);//тут регион ставится в 1, если надо будет регать где-то регион - поправить!

                        userId = dataBlock.usersTable.Get_AllUsersId(dealerId, dataBlock.usersTable.DealerUserTypeId)[0];
                        int userRoleId = dataBlock.usersTable.GetUserRoleId(userId);
                        string OldPass = dataBlock.usersTable.Get_UserPassword(userId);
                        string oldName = dataBlock.usersTable.Get_UserName(userId);
                        UserFromTable newUser = new UserFromTable(Login, password, "", "", DateTime.Now, "");
                        dataBlock.usersTable.EditUser(OldPass, oldName, newUser, dataBlock.usersTable.DealerUserTypeId, userRoleId, dealerId, curUserId);
                    } break;
            }
            if (userId < 0)
                throw new Exception("Не выбран пользователь или произошла ошибка редактирования!");

            SaveAdditionalInformation(dealerId, dataBlock);
            dataBlock.CommitTransaction();
            dataBlock.CloseConnection();
        }
        catch (Exception ex)
        {
            dataBlock.RollbackConnection();
            dataBlock.CloseConnection();
            RaiseException(ex);
        }
        finally
        {
            DetailedInformationPanel.Enabled = false;
            EditDealer(false);
            LoadDealersTable();
            //DealersTabContainer.ActiveTab = DealersTab;   Сделать переключение вкладок!
            UpdatePanel1.Update();
        }
    }
Esempio n. 7
0
        /// <summary>
        /// Парсить блок данных
        /// </summary>
        /// <param name="generateXML">генерировать ли XML файл</param>
        /// <param name="output">путь, куда XML сохранять</param>
        /// <param name="userId">ID пользователя, от имени которого вызывается этот метод</param>
        /// <returns>разобранный обьект</returns>
        public object ParseRecords(bool generateXML, string output, int userId)
        {
            Exception noOrg = new Exception("No organization entered");
            Exception CardVehicleError = new Exception("Ошибка в базе данных. Нет связи Карта - ТС!");

            if (organizationID == 0)
                throw noOrg;

            if (DATA_BLOCK_ID == -1)
                throw (new Exception("Can't find this Data Block"));
            else
            {
                //SQLDB sqlDB = new SQLDB(connectionString);
                SQLDB_Records sqlDB_rec = new SQLDB_Records(connectionString, sqlDb.GETMYSQLCONNECTION());
                ReflectObjectToTableClass reflectedItemsList;
                Type type = null;
                object myParseObject = new object();
                PARSER.DDDParser dddParser = new DDDParser();
                string fileName = "";

                try
                {

                    fileName = sqlDB_rec.Get_ParamValue(DATA_BLOCK_ID, "DataBlock_FileName");
                    byte[] blockDataBlob = sqlDb.GetDataBlock(DATA_BLOCK_ID);
                    blockDataBlob = UnZipBytes(blockDataBlob);//АнЗипим файл!
                    dddParser.ParseFile(blockDataBlob, fileName);

                    int cardType = dddParser.GetCardType();
                    currentCardType = cardType;

                    //test
                    //OpenConnection();
                    //OpenTransaction();
                    //

                    if (cardType == 0)// 0 - card(driver)
                    {
                        int cardId;
                        if (dddParser.cardUnitClass.ef_identification.driverCardHolderIdentification != null)
                        {
                            string drName = dddParser.cardUnitClass.ef_identification.driverCardHolderIdentification.cardHolderName.ToString();
                            string drNumber = dddParser.cardUnitClass.ef_identification.cardIdentification.cardNumber.ToString();
                            //sqlDB.OpenConnection();
                            cardId = cardsTable.GetCardId(drName, drNumber, cardsTable.driversCardTypeId);
                            if (cardId <= 0)
                            {
                                int grId = cardsTable.GetAllGroupIds(organizationID, 0)[0];
                                UserFromTable userData = new UserFromTable();
                                userData.name = "";
                                userData.pass = "";
                                int newUserId = usersTable.AddNewUser(userData, usersTable.DriverUserTypeId, 1, organizationID, userId);
                                string[] arr=drName.Split(' ');
                                usersTable.AddUserInfoValue(newUserId, DataBaseReference.UserInfo_Name, arr[0]);
                                usersTable.AddUserInfoValue(newUserId, DataBaseReference.UserInfo_Surname, arr[1]);
                                cardId = cardsTable.CreateNewCard(drName, drNumber, cardsTable.driversCardTypeId, organizationID, newUserId, "Init DataBlockId = " + DATA_BLOCK_ID, userId, grId);
                            }
                            sqlDb.SetDataBlock_CardId(DATA_BLOCK_ID, cardId);
                            //sqlDB.CloseConnection();
                        }
                        else
                        {
                            //sqlDB.OpenConnection();
                            sqlDb.SetDataBlockState(DATA_BLOCK_ID, 4);
                            //sqlDB.CloseConnection();
                            throw new Exception("Поддерживаются только водительские карты и информация с бортового устройства.");
                        }
                        type = dddParser.cardUnitClass.GetType();
                        myParseObject = dddParser.cardUnitClass;
                    }
                    else if (cardType == 1)//vehicle
                    {
                        /////////////////////////
                        int vehicleId;
                        if (dddParser.vehicleUnitClass.vehicleOverview.vehicleRegistrationIdentification != null)
                        {
                            int cardId;
                            string vehRegNumber = dddParser.vehicleUnitClass.vehicleOverview.vehicleRegistrationIdentification.vehicleRegistrationNumber.ToString();
                            string vin = dddParser.vehicleUnitClass.vehicleOverview.vehicleIdentificationNumber.ToString();
                            cardId = cardsTable.GetCardId(vehRegNumber, vin, cardsTable.vehicleCardTypeId);
                            vehicleId = vehiclesTables.GetVehicleId_byVinRegNumbers(vin, vehRegNumber);
                            if ((vehicleId <= 0 && cardId > 0) || (vehicleId > 0 && cardId <= 0))
                                throw CardVehicleError;

                            if (cardId <= 0)
                            {
                                string marka = "";
                                DateTime BLOCKED = dddParser.vehicleUnitClass.vehicleOverview.vuDownloadablePeriod.maxDownloadableTime.getTimeRealDate();
                                int grId = cardsTable.GetAllGroupIds(organizationID,0)[0];
                                cardId = cardsTable.CreateNewCard(vehRegNumber, vin, cardsTable.vehicleCardTypeId, organizationID, userId, "Init DataBlockId = " + DATA_BLOCK_ID, userId, grId);
                                //vehiclesTables.OpenConnection();
                                vehicleId = vehiclesTables.AddNewVehicle(vehRegNumber, marka, vin, 0, 1, cardId, BLOCKED, 1);
                                //vehiclesTables.CloseConnection();
                                // SetAllVehiclesIDS(vehicleId);
                            }
                            sqlDb.SetDataBlock_CardId(DATA_BLOCK_ID, cardId);
                        }
                        /////////////////////////
                        type = dddParser.vehicleUnitClass.GetType();
                        myParseObject = dddParser.vehicleUnitClass;
                    }
                    else if (cardType == 2)//plf
                    {
                        //////////////////////устанавливаем PLF карту нужного водителя. Незнаю почему именно здесь, но так получилось.
                        int plfDriversCardType = sqlDB_rec.Get_DataBlockCardType(DATA_BLOCK_ID);
                        sqlDb.SetDataBlock_CardId(DATA_BLOCK_ID, plfDriversCardType);
                        // sqlDB.OpenConnection();
                        int cardTypeParamId = sqlDb.AddParam("cardType", 0, 255);
                        //sqlDB.OpenConnection();
                        sqlDb.DeleteDataRecord(DATA_BLOCK_ID, cardTypeParamId);
                        // sqlDB.CloseConnection();
                        //////////////////////
                        type = dddParser.plfUnitClass.GetType();
                        myParseObject = dddParser.plfUnitClass;
                    }
                    else if (cardType == -1)
                        throw new Exception("Информация непригодна для разбора(не опознан тип карты");

                    //sqlDB.OpenConnection();
                    SetParseBDate(sqlDb);
                    //sqlDB.CloseConnection();

                    List<ReflectObjectToTableClass> allRecordsToAdd = new List<ReflectObjectToTableClass>();

                    foreach (PropertyInfo pi in type.GetProperties(BindingFlags.Public | BindingFlags.Instance))
                    {
                        reflectedItemsList = new ReflectObjectToTableClass();
                        string fieldName = pi.Name;
                        object field2 = pi.GetValue(myParseObject, null);

                        if (field2 != null)
                        {
                            reflectedItemsList.ReflectObjectToTable(fieldName, field2);//Не удалять!
                            allRecordsToAdd.Add(AddRecords(reflectedItemsList));//не удалять
                        }
                    }

                    foreach (ReflectObjectToTableClass recordList in allRecordsToAdd)
                    {
                        dataRecord.AddDataArray(recordList.reflectedItemsList);
                    }

                    //sqlDB.OpenConnection();
                    SetParseEDate(sqlDb);
                    sqlDb.SetDataBlockState(DATA_BLOCK_ID, 2);
                    int dataBlockParseRecords = sqlDb.SetDataBlockParseRecords(DATA_BLOCK_ID);
                    Console.WriteLine("\n\r" + dataBlockParseRecords.ToString() + " records added");
                    //XML GENERATING
                    if (generateXML)
                        dddParser.GenerateXmlFile(output);
                    //
                    //Добавляем лог для каждого типа блока данных свой.
                    string logNote;
                    HistoryTable historyTable = new HistoryTable(connectionString, CurrentLanguage, sqlDb);
                    if (currentCardType == 0)//driver
                    {
                        string drName = dddParser.cardUnitClass.ef_identification.driverCardHolderIdentification.cardHolderName.ToString();
                        string drNumber = dddParser.cardUnitClass.ef_identification.cardIdentification.cardNumber.ToString();
                        logNote = "Driver: " + drName + "(" + drNumber + ")" + ", records number: " + dataBlockParseRecords.ToString();
                        historyTable.AddHistoryRecord("fn_data_block", "DATA_BLOCK_ID", DATA_BLOCK_ID, userId, historyTable.DDDDriversDataBlockLoaded, logNote, sqlDb);
                    }
                    if (currentCardType == 1)//vehicle
                    {
                        string logVehRegNumber = dddParser.vehicleUnitClass.vehicleOverview.vehicleRegistrationIdentification.vehicleRegistrationNumber.ToString();
                        string logVin = dddParser.vehicleUnitClass.vehicleOverview.vehicleIdentificationNumber.ToString();
                        logNote = "Vehicle: " + logVehRegNumber + "(" + logVin + ")" + ", records number: " + dataBlockParseRecords.ToString();
                        historyTable.AddHistoryRecord("fn_data_block", "DATA_BLOCK_ID", DATA_BLOCK_ID, userId, historyTable.DDDVehiclesDataBlockLoaded, logNote, sqlDb);
                    }
                    if (currentCardType == 2)//plf
                    {
                        string vehPlfIdent = dddParser.plfUnitClass.VEHICLE;
                        string plfDeviceId = dddParser.plfUnitClass.ID_DEVICE;
                        string period = dddParser.plfUnitClass.START_PERIOD.GetSystemTime().ToShortDateString() + " - " + dddParser.plfUnitClass.END_PERIOD.GetSystemTime().ToShortDateString();
                        logNote = "PLF File: " + vehPlfIdent + "(" + plfDeviceId + ")" + ", period: " + period + ", records number: " + dataBlockParseRecords.ToString();
                        historyTable.AddHistoryRecord("fn_data_block", "DATA_BLOCK_ID", DATA_BLOCK_ID, userId, historyTable.PLFDataBlockLoaded, logNote, sqlDb);
                    }
                    //
                    //sqlDb.CommitConnection();
                    //sqlDb.CloseConnection();
                }
                catch (Exception ex)
                {
                    //sqlDb.RollbackConnection();
                    //sqlDb.CloseConnection();
                    throw ex;
                }
                finally
                {
                }
                return myParseObject;
            }
        }
    protected void SaveAccountButton_Click(object sender, EventArgs e)
    {
        string connectionString = ConfigurationSettings.AppSettings["fleetnetbaseConnectionString"];
        DataBlock dataBlock = new DataBlock(connectionString, ConfigurationManager.AppSettings["language"]);
        int orgId = Convert.ToInt32(Session["CURRENT_ORG_ID"]);

        try
        {
            int accountId = -1;
            int userId = -1;

            string Login = DetailedInfo_Login_TextBox.Text;
            string password = DetailedInfo_Password_TextBox.Text;
            string passwordConfirm = DetailedInfo_PasswordConfirm_TextBox.Text;
            string accountName = DetailedInfo_AccountName_TextBox.Text;
            int accountType = Convert.ToInt32(AccountTypeDropDown.SelectedValue);
            int countryId = Convert.ToInt32(DetailedInfo_Country_DropDown.SelectedValue);

            dataBlock.OpenConnection();
            dataBlock.OpenTransaction();
            int curUserId = dataBlock.usersTable.Get_UserID_byName(Page.User.Identity.Name);
            int orgTypeId = dataBlock.organizationTable.GetOrgTypeId(orgId);
            switch (NewOrEditUser_hdnField.Value)
            {
                case "new":
                    {
                        accountId = dataBlock.organizationTable.AddNewOrganization(accountName, accountType, countryId, 1, orgId);
                        UserFromTable newUser = new UserFromTable(Login, password, "", "", DateTime.Now, "");
                        if (accountType != dataBlock.organizationTable.ClientTypeId)
                            userId = dataBlock.usersTable.AddNewUser(newUser, dataBlock.usersTable.DealerUserTypeId, 1, accountId, 0);
                        else
                        {
                            userId = dataBlock.usersTable.AddNewUser(newUser, dataBlock.usersTable.AdministratorUserTypeId, 1, accountId, curUserId);
                            dataBlock.usersTable.AddUserInfoValue(userId, DataBaseReference.UserInfo_DealerId, orgId.ToString());
                        }
                    } break;
                case "edit":
                    {
                        accountId = Convert.ToInt32(Selected_AccountsDataGrid_Index.Value);
                        string oldName = dataBlock.organizationTable.GetOrganizationName(accountId);
                        //dataBlock.organizationTable.SetOrganizationName(accountName, accountId);
                        //dataBlock.organizationTable.SetOrgCountryAndRegion(accountId, countryId, 1);//тут регион ставится в 1, если надо будет регать где-то регион - поправить!
                        dataBlock.organizationTable.EditOrganization(oldName, accountName, accountType, countryId, 1);
                        /*userId = dataBlock.usersTable.Get_AllUsersId(accountId, dataBlock.usersTable.AccountUserTypeId)[0];
                        int userRoleId = dataBlock.usersTable.GetUserRoleId(userId);
                        string OldPass = dataBlock.usersTable.Get_UserPassword(userId);
                        string oldName = dataBlock.usersTable.Get_UserName(userId);
                        UserFromTable newUser = new UserFromTable(Login, password, "", "", DateTime.Now, "");
                        dataBlock.usersTable.EditUser(OldPass, oldName, newUser, dataBlock.usersTable.AccountUserTypeId, userRoleId, accountId, curUserId);*/
                    } break;
            }
            if (accountId < 0)
                throw new Exception("Не выбран аккаунт или произошла ошибка редактирования!");

            SaveAdditionalInformation(accountId, dataBlock);
            dataBlock.CommitTransaction();
            dataBlock.CloseConnection();
        }
        catch (Exception ex)
        {
            dataBlock.RollbackConnection();
            dataBlock.CloseConnection();
            RaiseException(ex);
        }
        finally
        {
            DetailedInformationPanel.Enabled = false;
            EditAccount(false);
            LoadAccountsTable();
            //AccountsTabContainer.ActiveTab = AccountsTab;   Сделать переключение вкладок!
            DetailedInformationUpdatePanel.Update();
            //this.Parent.
           // ((UpdatePanel)Page.FindControl("AccountsTreeUpdatePanel")).Update();
        }
    }
    protected void SaveClientButton_Click(object sender, EventArgs e)
    {
        string connectionString = ConfigurationSettings.AppSettings["fleetnetbaseConnectionString"];
        DataBlock dataBlock = new DataBlock(connectionString, ConfigurationManager.AppSettings["language"]);
        int orgId = Convert.ToInt32(Session["CURRENT_ORG_ID"]);

        try
        {
            int newClientId = -1;
            int userId = -1;

            string clientName = DetailedInfo_ClientName_TextBox.Text;
            int countryId = Convert.ToInt32(DetailedInfo_Country_DropDown.SelectedValue);

            dataBlock.OpenConnection();
            dataBlock.OpenTransaction();
            int curUserId = dataBlock.usersTable.Get_UserID_byName(Page.User.Identity.Name);
            int orgTypeId = dataBlock.organizationTable.GetOrgTypeId(orgId);
            switch (NewOrEditUser_hdnField.Value)
            {
                case "new":
                    {
                        int neworgTypeId = dataBlock.organizationTable.ClientTypeId;
                        newClientId = dataBlock.organizationTable.AddNewOrganization(clientName, neworgTypeId, countryId, 1, orgId);
                        if (clientName.Length > 9)
                            clientName = clientName.Substring(0, 9);

                        UserFromTable newUser = new UserFromTable(clientName, "123", "", "", DateTime.Now, "");
                        userId = dataBlock.usersTable.AddNewUser(newUser, dataBlock.usersTable.AdministratorUserTypeId, 1, newClientId, 0);
                        dataBlock.usersTable.AddUserInfoValue(userId, DataBaseReference.UserInfo_DealerId, orgId.ToString());
                    } break;
                case "edit":
                    {
                        newClientId = Convert.ToInt32(Selected_ClientsDataGrid_Index.Value);
                        dataBlock.organizationTable.SetOrganizationName(clientName, newClientId);
                        dataBlock.organizationTable.SetOrgCountryAndRegion(newClientId, countryId, 1);//тут регион ставится в 1, если надо будет регать где-то регион - поправить!
                    } break;
            }
            if (userId < 0)
                throw new Exception("Не выбран пользователь или произошла ошибка редактирования!");

            SaveAdditionalInformation(newClientId, dataBlock);
            dataBlock.CommitTransaction();
            dataBlock.CloseConnection();
        }
        catch (Exception ex)
        {
            dataBlock.RollbackConnection();
            dataBlock.CloseConnection();
            RaiseException(ex);
        }
        finally
        {
            DetailedInformationPanel.Enabled = false;
            EditClient(false);
            LoadClientsTable();
            //DealersTabContainer.ActiveTab = DealersTab;   Сделать переключение вкладок!
            UpdatePanel1.Update();
        }
    }
    protected void SaveUserButton_Click(object sender, EventArgs e)
    {
        string connectionString = ConfigurationSettings.AppSettings["fleetnetbaseConnectionString"];
        DataBlock dataBlock = new DataBlock(connectionString, ConfigurationManager.AppSettings["language"]);

        try
        {
            int userId = -1;
            int orgId = Convert.ToInt32(Session["CURRENT_ORG_ID"]);
            string Login = DetailedInfo_Login_TextBox.Text;
            string password = DetailedInfo_Password_TextBox.Text;
            string passwordConfirm = DetailedInfo_PasswordConfirm_TextBox.Text;
            int UserRoleId = Convert.ToInt32(DetailedInfo_UserRole_DropDown.SelectedValue);
            int userTypeId = Convert.ToInt32(DetailedInfo_UserType_DropDown.SelectedValue);

            dataBlock.OpenConnection();
            dataBlock.OpenTransaction();
            int curUserId = dataBlock.usersTable.Get_UserID_byName(Page.User.Identity.Name);

            switch (NewOrEditUser_hdnField.Value)
            {
                case "new":
                    {
                        UserFromTable newUser = new UserFromTable(Login, password, "", "", DateTime.Now, "");
                        userId = dataBlock.usersTable.AddNewUser(newUser, userTypeId, UserRoleId, orgId, curUserId);
                    } break;
                case "edit":
                    {
                        userId = Convert.ToInt32(Selected_UsersDataGrid_Index.Value);
                        string OldPass = dataBlock.usersTable.Get_UserPassword(userId);
                        string oldName = dataBlock.usersTable.Get_UserName(userId);
                        UserFromTable newUser = new UserFromTable(Login, password, "", "", DateTime.Now, "");
                        dataBlock.usersTable.EditUser(OldPass, oldName, newUser, userTypeId, UserRoleId, orgId, curUserId);
                    } break;
            }
            if (userId < 0)
                throw new Exception("Не выбран пользователь!");

            SaveAdditionalInformation(userId, dataBlock);
            dataBlock.CommitTransaction();
            dataBlock.CloseConnection();
        }
        catch (Exception ex)
        {
            dataBlock.RollbackConnection();
            dataBlock.CloseConnection();
            RaiseException(ex);
        }
        finally
        {
            DetailedInformationPanel.Enabled = false;
            EditUser(false);
            LoadUsersTable();
            //UsersTabContainer.ActiveTab = UsersTab;
            UpdatePanel1.Update();
        }
    }