Ejemplo n.º 1
0
        public void TestGetValidInstructions()
        {
            var drone = new Drone(new CoordinateInt2D()
            {
                X = 4, Y = 4
            })
            {
                Name        = "someDrone",
                StorageSize = 10,
                Speed       = 10
            };
            var playerCtx = new PlayerContext()
            {
                Level = 1
            };
            var dateStart   = new DateTime(2018, 1, 1, 0, 0, 0);
            var unloadValid = new Unload(playerCtx, drone, dateStart);

            drone.AddInstruction(unloadValid);
            var unloadAborted = new Unload(playerCtx, drone, dateStart);

            unloadAborted.AbortedAt = dateStart;

            var expected = new List <IInstruction>()
            {
                unloadValid
            };

            var actual = drone.GetValidInstructions();

            actual.Should().BeEquivalentTo(expected);
        }
Ejemplo n.º 2
0
        public void TestUnloadInstruction()
        {
            var drone = new Drone(new CoordinateInt2D()
            {
                X = 4, Y = 4
            })
            {
                Name        = "Drone_1",
                Speed       = 1,
                StorageSize = 10
            };


            var globalInstruction = new GlobalInstruction()
            {
                TYPE        = "Unload",
                Destination = null,
                DroneName   = "Drone_1"
            };
            var playerCtx = new PlayerContext()
            {
                Level = 1
            };


            var mapper = new InstructionMapper(playerCtx);
            var date   = new DateTime(2018, 1, 1);

            var expectedInstruction = new Unload(playerCtx, drone, date);


            var actualInstruction = mapper.ToSpecificInstruction(globalInstruction, drone, date);

            actualInstruction.Should().BeEquivalentTo(expectedInstruction);
        }
Ejemplo n.º 3
0
        public AndroidPlatformGameWindow(AndroidPlatformGameView gameView)
        {
            this.gameView = gameView;

            gameView.Load               += (o, e) => Load?.Invoke(o, e);
            gameView.Unload             += (o, e) => Unload?.Invoke(o, e);
            gameView.UpdateFrame        += (o, e) => UpdateFrame?.Invoke(o, e);
            gameView.RenderFrame        += (o, e) => RenderFrame?.Invoke(o, e);
            gameView.Resize             += (o, e) => Resize?.Invoke(o, e);
            gameView.Closed             += (o, e) => Closed?.Invoke(o, e);
            gameView.Disposed           += (o, e) => Disposed?.Invoke(o, e);
            gameView.TitleChanged       += (o, e) => TitleChanged?.Invoke(o, e);
            gameView.VisibleChanged     += (o, e) => VisibleChanged?.Invoke(o, e);
            gameView.WindowStateChanged += (o, e) => WindowStateChanged?.Invoke(o, e);
        }
Ejemplo n.º 4
0
 public AData(AddressableAssetEntry addressableAssetEntry, Setter setter)
 {
     Setter         = setter;
     ID             = addressableAssetEntry.guid;
     entry          = addressableAssetEntry;
     assetReference = new AssetReference(ID);
     assetPath      = addressableAssetEntry.AssetPath;
     obj            = addressableAssetEntry.MainAsset;
     loadOnScene    = SceneManager.GetSceneByBuildIndex(loadOnSceneIndex);
     autoLoad       = Setter.autoLoad;
     unload         = Unload.None;
     name           = addressableAssetEntry.MainAsset.name;
     group          = setter.Group;
     ManageAutoLoad(autoLoad);
 }
Ejemplo n.º 5
0
        /// <summary>
        /// Возвращает коллекцию
        /// </summary>
        /// <returns></returns>
        public List <Unload> Выгрузка()
        {
            //Объявим список классов для выгрузки
            List <Unload> list = new List <Unload>();

            //Выполним в единой транзакции
            using (OleDbConnection con = new OleDbConnection(ConnectionDB.ConnectionString()))
            {
                //откроем транзакцию
                con.Open();
                OleDbTransaction transact = con.BeginTransaction();

                string  queryЛК = "select * from ЛьготнаяКатегория where ЛьготнаяКатегория = '" + льготКатегория + "' ";
                DataRow rowЛК   = ТаблицаБД.GetTable(queryЛК, "ЛьготнаяКатегория", con, transact).Rows[0];

                //Получим данные таблицы договор за период
                //SELECT Договор.ДатаДоговора
                //FROM Договор
                //WHERE (([Договор]![ДатаДоговора]>#2/1/2013# And #3/6/2013#<[Договор]![ДатаДоговора]));

                //Рабочий вариант
                //string договор = "select * from Договор where ДатаДоговора > " + startDate + " And ДатаДоговора < " + endDate + " and id_льготнаяКатегория = " + Convert.ToInt32(rowЛК["id_льготнойКатегории"]) + " ";
                string договор = "select * from Договор where id_договор in (select id_договор from АктВыполнненныхРабот where ДатаПодписания >= " + startDate + " And ДатаПодписания < " + endDate + " ) and id_льготнаяКатегория = " + Convert.ToInt32(rowЛК["id_льготнойКатегории"]) + " and ДатаДоговора is not NULL";

                //string договор = "SELECT ЛьготнаяКатегория.ЛьготнаяКатегория AS ['Льготная категория'], Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, АктВыполнненныхРабот.НомерАкта, Договор.НомерДоговора, АктВыполнненныхРабот.ДатаПодписания, Sum(УслугиПоДоговору.Сумма) AS Сумма " +
                //                  "FROM (ЛьготнаяКатегория INNER JOIN Льготник ON ЛьготнаяКатегория.id_льготнойКатегории = Льготник.id_льготнойКатегории) INNER JOIN ((Договор INNER JOIN АктВыполнненныхРабот ON Договор.id_договор = АктВыполнненныхРабот.id_договор) INNER JOIN УслугиПоДоговору ON Договор.id_договор = УслугиПоДоговору.id_договор) ON Льготник.id_льготник = Договор.id_льготник " +
                //                  "WHERE (((ЛьготнаяКатегория.ЛьготнаяКатегория)='" + льготКатегория.Trim() + "') AND ((Договор.ФлагНаличияАкта)=True)) " +
                //                  "GROUP BY ЛьготнаяКатегория.ЛьготнаяКатегория, Льготник.Фамилия, Льготник.Имя, Льготник.Отчество, Договор.ДатаДоговора, Льготник.СерияДокумента, Льготник.НомерДокумента, Льготник.ДатаВыдачиДокумента, АктВыполнненныхРабот.НомерАкта, Договор.НомерДоговора, АктВыполнненныхРабот.ДатаПодписания " +
                //                  "HAVING (((АктВыполнненныхРабот.ДатаПодписания)>= " + startDate + " And (АктВыполнненныхРабот.ДатаПодписания)< " + endDate + "))"; //AND (Договор.ФлагНаличияАкта <> True)



                DataTable табДоговор = ТаблицаБД.GetTable(договор, "Договор", con, transact);

                //if (табДоговор.Rows["НомерДоговора"].ToString().Trim() == "АРБ/851 ")
                //{
                //    string sTest = "Test";
                //}

                //int iCountCol = табДоговор.Columns.Count;


                //пройдёмся по таблице
                foreach (DataRow rowДоговор in табДоговор.Rows)
                {
                    //Создадим объект типа Unload
                    Unload unload = new Unload();


                    //Выгрузим классификатор услуг
                    string    queryClassService = "select * from КлассификаторУслуги";
                    DataTable tabClassServices  = ТаблицаБД.GetTable(queryClassService, ConnectionDB.ConnectionString(), "КлассификаторУслуг");

                    unload.КлассификаторУслуг = tabClassServices;

                    //Выгрузим вид услуг
                    string    queryViewServices = "select * from ВидУслуги";
                    DataTable tabViewServices   = ТаблицаБД.GetTable(queryViewServices, ConnectionDB.ConnectionString(), "ВидУслуги");

                    unload.ВидУслуги = tabViewServices;

                    //if (Convert.ToInt32(rowДоговор["id_льготник"]) == 319)
                    //{
                    //    string sTest = "Test";
                    //}

                    //Получим льготника с которым составлен договор
                    string    queryЛьготник = "select * from Льготник where id_льготник = " + Convert.ToInt32(rowДоговор["id_льготник"]) + " ";
                    DataTable rowЛьготник   = ТаблицаБД.GetTable(queryЛьготник, "Льготник", con, transact);//.Rows[0];

                    //Добавим в клон таблицы строку содержащую текущий договор
                    DataTable tДоговор = new DataTable("ДоговорЛиния");
                    tДоговор = табДоговор.Clone();

                    //Заполним строку данными из текущего договора
                    DataRow row = tДоговор.NewRow();
                    row[0]  = rowДоговор[0];
                    row[1]  = rowДоговор[1];
                    row[2]  = rowДоговор[2];
                    row[3]  = rowДоговор[3];
                    row[4]  = rowДоговор[4];
                    row[5]  = rowДоговор[5];
                    row[6]  = rowДоговор[6];
                    row[7]  = rowДоговор[7];
                    row[8]  = rowДоговор[8];
                    row[9]  = rowДоговор[9];
                    row[10] = rowДоговор[10];
                    row[11] = rowДоговор[11];
                    row[12] = rowДоговор[12];

                    tДоговор.Rows.Add(row);

                    //присвоим договор
                    unload.Договор = tДоговор;


                    //Добавим в uhnload льготника с которым подписан текущий договор
                    unload.Льготник = rowЛьготник;

                    //получим название льготной категории
                    unload.ЛьготнаяКатегория = льготКатегория;

                    //сохраним данные по поликлиннике
                    string    queryПоликлинника = "select * from Поликлинника";
                    DataTable tabПоликлинника   = ТаблицаБД.GetTable(queryПоликлинника, "Поликлинника", con, transact);//.Rows[0];

                    unload.Поликлинника = tabПоликлинника;

                    //Сохраним ФИО Врача
                    string  queryФиоВрач = "select * from ГлавВрач where id_главВрач = " + Convert.ToInt32(tabПоликлинника.Rows[0]["id_главВрач"]) + " ";
                    DataRow rowФИО       = ТаблицаБД.GetTable(queryФиоВрач, "ГлавВрач", con, transact).Rows[0];

                    //запишем ФИО глав врача
                    unload.ФиоВрач = rowФИО["ФИО_ГлавВрач"].ToString();

                    //получим услуги по договору
                    string    queryУслугиДоговор = "select * from УслугиПоДоговору where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " ";
                    DataTable rowУслугиДоговор   = ТаблицаБД.GetTable(queryУслугиДоговор, "УслугиПоДоговору", con, transact);

                    //добавим услуги по договору
                    unload.УслугиПоДоговору = rowУслугиДоговор;

                    string    queryДопСоглашение = "select * from ДопСоглашение where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " ";
                    DataTable tabДопСоглашение   = ТаблицаБД.GetTable(queryДопСоглашение, "ДопСоглашение", con, transact);

                    //добавим доп соглашения
                    unload.ДопСоглашение = tabДопСоглашение;

                    //if (Convert.ToInt32(rowДоговор["id_договор"]) == 897)
                    //{
                    //    string sTest = "Test";
                    //}



                    //Получим акт выполненных работ
                    string    queryАктВыполненныхРабот = "select * from АктВыполнненныхРабот  where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " ";
                    DataTable tabАктВыполненныхРабот   = ТаблицаБД.GetTable(queryАктВыполненныхРабот, "АктВыполнненныхРабот", con, transact);



                    //Получим номер акта выполненных работ
                    int numAct = Convert.ToInt32(tabАктВыполненныхРабот.Rows[0]["id_акт"]);



                    foreach (еестр реестр in listРеестр)
                    {
                        if (реестр.Id_акт == numAct)
                        {
                            unload.АктВыполненныхРабот = tabАктВыполненныхРабот;
                        }
                    }
                    //добавим объект unload типа Unload в List

                    //Сохраним сторку ТипДокумента
                    string    queryТипДокумента = "select * from ТипДокумента where id_документ = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_документ"]) + " ";
                    DataTable rowТипДокумента   = ТаблицаБД.GetTable(queryТипДокумента, "ТипДокумента", con, transact);//.Rows[0];

                    unload.ТипДокумента = rowТипДокумента;

                    //получим наименование района
                    if (Convert.ToInt32(rowЛьготник.Rows[0]["id_район"]) != -1)
                    {
                        string    queryНазваниеРайона = "select * from НаименованиеРайона where id_район = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_район"]) + " ";
                        DataTable rТипДокумента       = ТаблицаБД.GetTable(queryНазваниеРайона, "НаименованиеРайона", con, transact);//.Rows[0];

                        unload.НаименованиеРайона = rТипДокумента;
                    }

                    //получим наименование населённого пункта
                    if (Convert.ToInt32(rowЛьготник.Rows[0]["id_насПункт"]) != -1)
                    {
                        string    queryНаселённыйПункт = "select * from НаселенныйПункт where id_насПункт = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_насПункт"]) + " ";
                        DataTable rwТипДокумента       = ТаблицаБД.GetTable(queryНаселённыйПункт, "НаселенныйПункт", con, transact);//.Rows[0];

                        unload.НаселённыйПункт = rwТипДокумента;
                    }
                    //else
                    //{
                    //    string queryСаратов = "select * from НаселенныйПункт where like %Саратов% ";
                    //    DataRow rowСаратов = ТаблицаБД.GetTable(queryСаратов, "НаселенныйПункт", con, transact).Rows[0];
                    //    unload.НаселённыйПункт = rowСаратов;
                    //}

                    list.Add(unload);
                }

                //явно закроем соединение с БД
                //con.Close();
                con.Dispose();
            }

            return(list);
        }
Ejemplo n.º 6
0
 internal static void UnloadMod()
 {
     Notification.Show(Strings.Unload);
     Unload?.Invoke(null, EventArgs.Empty);
 }
Ejemplo n.º 7
0
        //public List<Unload> Выгрузка(Dictionary<string, string> library)
        public Dictionary <string, Unload> Выгрузка(Dictionary <string, string> library)
        {
            //Словарь для хранения проектов договоров
            Dictionary <string, Unload> list = new Dictionary <string, Unload>();

            //Выполним в единой транзакции
            using (OleDbConnection con = new OleDbConnection(ConnectionDB.ConnectionString()))
            {
                //откроем транзакцию
                con.Open();
                OleDbTransaction transact = con.BeginTransaction();

                StringBuilder build = new StringBuilder();
                foreach (string val in library.Values)
                {
                    string zn = "'" + val + "'" + ",";
                    build.Append(zn);
                }

                if (build.Length != 0)
                {
                    //Узнаем длинну строки в символах
                    int numContracts = build.ToString().Length;

                    //Удалим последний символ ','
                    string numbersContr = build.ToString().Remove(numContracts - 1, 1);

                    string    договор    = "select * from Договор where НомерДоговора in (" + numbersContr + ") ";
                    DataTable табДоговор = ТаблицаБД.GetTable(договор, "Договор", con, transact);

                    //счётчик
                    int iCount = 1;

                    //пройдёмся по таблице договоров
                    foreach (DataRow rowДоговор in табДоговор.Rows)
                    {
                        //Создадим объект типа Unload
                        Unload unload = new Unload();

                        try
                        {
                            //Получим к какой льготной категории отностится льготник в текущем договоре
                            string  queryЛК = "select ЛьготнаяКатегория from ЛьготнаяКатегория where id_льготнойКатегории = " + Convert.ToInt32(rowДоговор["id_льготнаяКатегория"]) + " ";
                            DataRow rowЛК   = ТаблицаБД.GetTable(queryЛК, ConnectionDB.ConnectionString(), "ЛьготнаяКатегория").Rows[0];

                            //получим название льготной категории
                            unload.ЛьготнаяКатегория = rowЛК["ЛьготнаяКатегория"].ToString();
                        }
                        catch
                        {
                            unload.ЛьготнаяКатегория = "0";
                        }

                        //Выгрузим классификатор услуг
                        string    queryClassService = "select * from КлассификаторУслуги";
                        DataTable tabClassServices  = ТаблицаБД.GetTable(queryClassService, ConnectionDB.ConnectionString(), "КлассификаторУслуг");

                        unload.КлассификаторУслуг = tabClassServices;

                        //Выгрузим вид услуг
                        string    queryViewServices = "select * from ВидУслуги";
                        DataTable tabViewServices   = ТаблицаБД.GetTable(queryViewServices, ConnectionDB.ConnectionString(), "ВидУслуги");

                        unload.ВидУслуги = tabViewServices;

                        //Получим льготника с которым составлен договор
                        string    queryЛьготник = "select * from Льготник where id_льготник = " + Convert.ToInt32(rowДоговор["id_льготник"]) + " ";
                        DataTable rowЛьготник   = ТаблицаБД.GetTable(queryЛьготник, "Льготник", con, transact);//.Rows[0];

                        //Добавим в клон таблицы строку содержащую текущий договор
                        DataTable tДоговор = new DataTable("ДоговорЛиния");
                        tДоговор = табДоговор.Clone();

                        //Заполним строку данными из текущего договора
                        DataRow row = tДоговор.NewRow();
                        row[0]  = rowДоговор[0];
                        row[1]  = rowДоговор[1];
                        row[2]  = rowДоговор[2];
                        row[3]  = rowДоговор[3];
                        row[4]  = rowДоговор[4];
                        row[5]  = rowДоговор[5];
                        row[6]  = rowДоговор[6];
                        row[7]  = rowДоговор[7];
                        row[8]  = rowДоговор[8];
                        row[9]  = rowДоговор[9];
                        row[10] = rowДоговор[10];
                        row[11] = rowДоговор[11];
                        row[12] = rowДоговор[12];

                        tДоговор.Rows.Add(row);

                        //присвоим договор
                        unload.Договор = tДоговор;

                        //Добавим в uhnload льготника с которым подписан текущий договор
                        unload.Льготник = rowЛьготник;

                        // Проставим в виде строки дату льготника.
                        unload.DateBirdthPerson = Convert.ToDateTime(rowЛьготник.Rows[0]["ДатаРождения"]).ToShortDateString();

                        // Дата выдачи документа.
                        unload.DateDoc = Convert.ToDateTime(rowЛьготник.Rows[0]["ДатаВыдачиДокумента"]).ToShortDateString();

                        // Дата выдачи паспорта.
                        unload.DatePassword = Convert.ToDateTime(rowЛьготник.Rows[0]["ДатаВыдачиПаспорта"]).ToShortDateString();

                        //сохраним данные по поликлиннике
                        string    queryПоликлинника = "select * from Поликлинника";
                        DataTable tabПоликлинника   = ТаблицаБД.GetTable(queryПоликлинника, "Поликлинника", con, transact);//.Rows[0];

                        unload.Поликлинника = tabПоликлинника;

                        //Сохраним ФИО Врача
                        string  queryФиоВрач = "select * from ГлавВрач where id_главВрач = " + Convert.ToInt32(tabПоликлинника.Rows[0]["id_главВрач"]) + " ";
                        DataRow rowФИО       = ТаблицаБД.GetTable(queryФиоВрач, "ГлавВрач", con, transact).Rows[0];

                        //запишем ФИО глав врача
                        unload.ФиоВрач = rowФИО["ФИО_ГлавВрач"].ToString();

                        //получим услуги по договору
                        string    queryУслугиДоговор = "select * from УслугиПоДоговору where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " ";
                        DataTable rowУслугиДоговор   = ТаблицаБД.GetTable(queryУслугиДоговор, "УслугиПоДоговору", con, transact);

                        //добавим услуги по договору
                        unload.УслугиПоДоговору = rowУслугиДоговор;

                        string    queryДопСоглашение = "select * from ДопСоглашение where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " ";
                        DataTable tabДопСоглашение   = ТаблицаБД.GetTable(queryДопСоглашение, "ДопСоглашение", con, transact);

                        //добавим доп соглашения
                        unload.ДопСоглашение = tabДопСоглашение;

                        //Получим акт выполненных работ
                        string    queryАктВыполненныхРабот = "select * from АктВыполнненныхРабот  where id_договор = " + Convert.ToInt32(rowДоговор["id_договор"]) + " ";
                        DataTable tabАктВыполненныхРабот   = ТаблицаБД.GetTable(queryАктВыполненныхРабот, "АктВыполнненныхРабот", con, transact);

                        unload.АктВыполненныхРабот = tabАктВыполненныхРабот;
                        //добавим объект unload типа Unload в List

                        //Сохраним сторку ТипДокумента
                        string    queryТипДокумента = "select * from ТипДокумента where id_документ = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_документ"]) + " ";
                        DataTable rowТипДокумента   = ТаблицаБД.GetTable(queryТипДокумента, "ТипДокумента", con, transact);//.Rows[0];

                        unload.ТипДокумента = rowТипДокумента;

                        //получим наименование района
                        if (Convert.ToInt32(rowЛьготник.Rows[0]["id_район"]) != -1)
                        {
                            string    queryНазваниеРайона = "select * from НаименованиеРайона where id_район = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_район"]) + " ";
                            DataTable rТипДокумента       = ТаблицаБД.GetTable(queryНазваниеРайона, "НаименованиеРайона", con, transact);//.Rows[0];

                            unload.НаименованиеРайона = rТипДокумента;
                        }

                        //получим наименование населённого пункта
                        if (Convert.ToInt32(rowЛьготник.Rows[0]["id_насПункт"]) != -1)
                        {
                            string    queryНаселённыйПункт = "select * from НаселенныйПункт where id_насПункт = " + Convert.ToInt32(rowЛьготник.Rows[0]["id_насПункт"]) + " ";
                            DataTable rwТипДокумента       = ТаблицаБД.GetTable(queryНаселённыйПункт, "НаселенныйПункт", con, transact);//.Rows[0];

                            unload.НаселённыйПункт = rwТипДокумента;
                        }


                        //Получим номер договора
                        string numDog = rowДоговор["НомерДоговора"].ToString().Trim();

                        try
                        {
                            list.Add(numDog, unload);
                        }
                        catch
                        {
                            if (this.FlagВыгрузка == false)
                            {
                                //Выкиним из списка задвоенные номера
                                list.Remove(numDog);
                            }

                            if (this.FlagВыгрузка == true)
                            {
                                //Получим номер договора
                                string numDogAdd = rowДоговор["НомерДоговора"].ToString().Trim() + " " + iCount.ToString();
                                list.Add(numDogAdd, unload);

                                iCount++;
                            }
                        }
                    }
                }
                else
                {
                    System.Windows.Forms.MessageBox.Show("Не выбраны проекты договоров.", "Ошибка");
                }

                //явно закроем соединение с БД
                //con.Close();
                con.Dispose();
            }

            return(list);
        }
Ejemplo n.º 8
0
 public static void CallUnload() => Unload?.Invoke();
Ejemplo n.º 9
0
 protected virtual void OnUnload()
 {
     Unload.SafeInvoke(this, EventArgs.Empty);
 }
        internal void Create(IReadOnlyList <AData> list, SerializedProperty serializedProperty, AutoLoad autoLoadLabel, UnityEditor.Editor mainEditor)
        {
            if (list.Count <= 0)
            {
                return;
            }
            mainEditor.serializedObject.Update();
            BeginVertical("Box");

            var column = Headers(list, autoLoadLabel).Length;

            BeginHorizontal("Box");
            ApplyToAllButton = UButton("Apply To All", column);
            switch (autoLoadLabel)
            {
            case AutoLoad.None:

                AutoLoadPopUpNone  = Popup(AutoLoadPopUpNone, AutoLoadOptions, GUILayout.MaxWidth(currentViewWidth / column));
                AutoLoadIndexValue = (AutoLoad)Enum.Parse(typeof(AutoLoad), AutoLoadOptions[AutoLoadPopUpNone]);
                LoadWithSceneIndex = 0;
                UnloadIndexValue   = Unload.None;
                break;

            case AutoLoad.OnStart:
                AutoLoadPopUpOnStart = Popup(AutoLoadPopUpOnStart, AutoLoadOptions, GUILayout.MaxWidth(currentViewWidth / column));
                AutoLoadIndexValue   = (AutoLoad)Enum.Parse(typeof(AutoLoad), AutoLoadOptions[AutoLoadPopUpOnStart]);

                OnStartLoadWithSceneIndex = Popup(OnStartLoadWithSceneIndex, SceneNamesArray, GUILayout.MaxWidth(currentViewWidth / column));
                LoadWithSceneIndex        = OnStartLoadWithSceneIndex;

                UnloadOnStartIndex = Popup(UnloadOnStartIndex, UnloadOptions, GUILayout.MaxWidth(currentViewWidth / column));
                UnloadIndexValue   = (Unload)Enum.Parse(typeof(Unload), UnloadOptions[UnloadOnStartIndex]);

                break;

            case AutoLoad.OnAwake:

                AutoLoadPopUpOnAwake = Popup(AutoLoadPopUpOnAwake, AutoLoadOptions, GUILayout.MaxWidth(currentViewWidth / column));
                AutoLoadIndexValue   = (AutoLoad)Enum.Parse(typeof(AutoLoad), AutoLoadOptions[AutoLoadPopUpOnAwake]);

                OnAwakeLoadWithSceneIndex = Popup(OnAwakeLoadWithSceneIndex, SceneNamesArray, GUILayout.MaxWidth(currentViewWidth / column));
                LoadWithSceneIndex        = OnAwakeLoadWithSceneIndex;

                UnloadOnAwakeIndex = Popup(UnloadOnAwakeIndex, UnloadOptions, GUILayout.MaxWidth(currentViewWidth / column));
                UnloadIndexValue   = (Unload)Enum.Parse(typeof(Unload), UnloadOptions[UnloadOnAwakeIndex]);

                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(autoLoadLabel), autoLoadLabel, null);
            }
            EndHorizontal();

            if (list.Count > 0)
            {
                for (var i = 0; i < list.Count; i++)
                {
                    BeginHorizontal();
                    var item     = serializedProperty.GetArrayElementAtIndex(i);
                    var obj      = item.FindPropertyRelative(Obj);
                    var unload   = item.FindPropertyRelative(UnloadStr);
                    var autoLoad = item.FindPropertyRelative(AutoLoadStr);

                    PropertyField(obj, GUIContent.none, GUILayout.MaxWidth(currentViewWidth / column));
                    PropertyField(autoLoad, GUIContent.none, GUILayout.MaxWidth(currentViewWidth / column));

                    if (autoLoadLabel != AutoLoad.None)
                    {
                        list[i].loadOnSceneIndex = Popup(list[i].loadOnSceneIndex, SceneNamesArray, GUILayout.MaxWidth(currentViewWidth / column));
                        PropertyField(unload, GUIContent.none, GUILayout.MaxWidth(currentViewWidth / column));
                    }

                    if (ApplyToAllButton)
                    {
                        list[i].loadOnSceneIndex = LoadWithSceneIndex;
                        list[i].unload           = UnloadIndexValue;
                        list[i].autoLoad         = AutoLoadIndexValue;
                    }

                    serializedProperty.serializedObject.ApplyModifiedProperties();
                    serializedProperty.serializedObject.Update();

                    EndHorizontal();
                }
            }
            mainEditor.serializedObject.ApplyModifiedProperties();
            mainEditor.serializedObject.Update();
            EndVertical();
        }