private void btnLevel3_Click(object sender, RoutedEventArgs e)
        {
            LevelThree main = new LevelThree();

            App.Current.MainWindow = main;
            this.Close();
            main.Show();
        }
        private void btnNextLevel_Click(object sender, RoutedEventArgs e)
        {
            gameTime.Stop();
            playTime = 0;
            LevelThree main = new LevelThree();

            App.Current.MainWindow = main;
            this.Close();
            main.Show();
        }
        public void SeedLevelThreePassword()
        {
            LevelThree levelThree = new LevelThree();

            levelThree.PassWord = "******";

            List <LevelThree> listToCheckIfEmpty = _context.LevelThree.AsNoTracking().ToList();

            if (listToCheckIfEmpty.Count() == 0)
            {
                _context.LevelThree.Add(levelThree);
                _context.SaveChanges();
            }
        }
Beispiel #4
0
        public void Init(Game theGame, SpriteBatch spriteBatchToUse)
        {
            Levels         = new List <ILevel>();
            TheGame        = theGame;
            TheSpriteBatch = spriteBatchToUse;
            CurLevelNR     = 0;

            ILevel levelOne   = new LevelOne();
            ILevel levelTwo   = new LevelTwo();
            ILevel levelThree = new LevelThree();

            Levels.Add(levelOne);
            Levels.Add(levelTwo);
            Levels.Add(levelThree);
        }
Beispiel #5
0
    static void CreateDefaultObjects()
    {
        using (UnitOfWork uow = GetNewUnitOfWork()) {
            LevelOne parent1 = new LevelOne(uow);
            parent1.Text = "Nokia";

            LevelOne parent2 = new LevelOne(uow);
            parent2.Text = "Samsung";

            LevelTwo child11 = new LevelTwo(uow);
            child11.Text   = "Cellphone";
            child11.Parent = parent1;

            LevelThree grand111 = new LevelThree(uow);
            grand111.Text  = "N91";
            grand111.Owner = child11;

            LevelThree grand112 = new LevelThree(uow);
            grand112.Text  = "N8";
            grand112.Owner = child11;


            LevelTwo child21 = new LevelTwo(uow);
            child21.Text   = "Cellphone";
            child21.Parent = parent2;

            LevelThree grand211 = new LevelThree(uow);
            grand211.Text  = "Galaxy";
            grand211.Owner = child21;

            LevelThree grand212 = new LevelThree(uow);
            grand212.Text  = "Wave";
            grand212.Owner = child21;


            LevelTwo child22 = new LevelTwo(uow);
            child22.Text   = "Display";
            child22.Parent = parent2;

            LevelThree grand221 = new LevelThree(uow);
            grand221.Text  = "SyncMaster";
            grand221.Owner = child22;

            uow.CommitChanges();
        }
    }
Beispiel #6
0
        /// <summary>
        /// Initializes the game manager and sets all the levels.
        /// </summary>
        public void Initialize()
        {
            LevelOne   levelOne   = new LevelOne();
            LevelTwo   levelTwo   = new LevelTwo();
            LevelThree levelThree = new LevelThree();

            levelOne.EndOfLevel   += onEndOfLevel;
            levelTwo.EndOfLevel   += onEndOfLevel;
            levelThree.EndOfLevel += onEndOfLevel;
            levelOne.Initialize();
            levelTwo.Initialize();
            levelThree.Initialize();
            m_levels.Add(levelOne);
            m_levels.Add(levelTwo);
            m_levels.Add(levelThree);
            m_currentStage     = Stage.Introduction;
            m_oldKeyboardState = Keyboard.GetState();
        }
Beispiel #7
0
    void Start()
    {
        fl = GameObject.FindObjectOfType(typeof(LevelThree)) as LevelThree;

        //hide tutorial box
        tutorialBox.GetComponent <MeshRenderer>().enabled    = true;
        tutorialBoxTwo.GetComponent <MeshRenderer>().enabled = false;

        tutorialTitle.GetComponent <Text>().enabled     = true;
        tutorialUnderline.GetComponent <Text>().enabled = true;
        tutorialMessage.GetComponent <Text>().enabled   = true;

        //hide tutorial elements
        dismissTutorialButton.GetComponent <Image>().enabled    = true;
        dismissTutorialButtonText.GetComponent <Text>().enabled = true;

        hintButton.onClick.AddListener(onHintClick);
        dismissTutorialButton.onClick.AddListener(onDismissTutorialClick);

        tutorialMessage.text = "Oh, looks like someone moved the platform up. Let's get it back down so we can cross:\n\nfor(int i = 0; i < 4; i++)\n{\n\tmovingPlatform.y--;\n}\n\n";
    }
Beispiel #8
0
        private void btnConfirm_Click(object sender, RoutedEventArgs e)
        {
            foreach (Window window in Application.Current.Windows.OfType <LevelOne>())
            {
                LevelOne openAgainLevelOne = new LevelOne();
                App.Current.MainWindow = openAgainLevelOne;
                this.Close();
                openAgainLevelOne.Show();
                if (window != openAgainLevelOne)
                {
                    window.Close();
                }
            }

            foreach (Window window in Application.Current.Windows.OfType <LevelTwo>())
            {
                LevelTwo openAgainLevelTwo = new LevelTwo();
                App.Current.MainWindow = openAgainLevelTwo;
                this.Close();
                openAgainLevelTwo.Show();
                if (window != openAgainLevelTwo)
                {
                    window.Close();
                }
            }



            foreach (Window window in Application.Current.Windows.OfType <LevelThree>())
            {
                LevelThree openAgainLevelThree = new LevelThree();
                App.Current.MainWindow = openAgainLevelThree;
                this.Close();
                openAgainLevelThree.Show();
                if (window != openAgainLevelThree)
                {
                    window.Close();
                }
            }
        }
        //GENERERAR BANOR.
        public void GenerateLevel()
        {
            for (int x = 0; x < g_levelWidth; x++)
            {
                for (int y = 0; y < g_levelHeight; y++)
                {
                    if (m_level == 2)
                    {
                        m_tiles[x, y] = Tile.T_EMPTY;//set every tile to empty
                        m_tiles3[x, y] = TileLevel3.T_EMPTY;//set every tile to empty
                    }
                    else if (m_level == 1)
                    {
                        m_tiles2[x, y] = TileLevel2.T_EMPTY;
                        m_tiles3[x, y] = TileLevel3.T_EMPTY;
                    }
                    else if (m_level == 3)
                    {
                        m_tiles2[x, y] = TileLevel2.T_EMPTY;
                        m_tiles[x, y] = Tile.T_EMPTY;
                    }
                }
            }
                //OM m_level = 1 SÅ HÄMTAS LEVELONE.
                if (m_level == 1)
                {

                    LevelOne m_level1 = new LevelOne();

                    m_tiles = m_level1.GenerateLevel();
                }

                //OM m_level = 2 SÅ HÄMTAS LEVELTWO
                if (m_level == 2)
                {

                    LevelTwo m_level2 = new LevelTwo();
                    m_tiles2= m_level2.GenerateLevel();
                }

                //OM m_level = 3 SÅ HÄMTAS LEVELTHREE
                if (m_level == 3)
                {

                    LevelThree m_level3 = new LevelThree();
                    m_tiles3 = m_level3.GenerateLevel();
                }
                if (m_level == 4)
                {

                    lastLevel = true;

                }
               // }
        }
Beispiel #10
0
        public TopMenu GetMenuForUser(int UserId)
        {
            var result = new TopMenu {
                Id          = 0,
                DivCssClass = "navbar",
                Divisions   = new List <TopMenuDivision>()
            };
            var userObjects  = UserAccessMenuList(UserId);
            var menu1        = _context.MENU_L1.Where(m => userObjects.Any(k => k == m.object_auto) && m.active).OrderBy(m => m.sorder);
            var menu2        = _context.MENU_L2.Where(m => m.active && userObjects.Any(k => k == m.object_auto) && menu1.Any(k => k.menu_L1_auto == m.menu_L1_auto)).OrderBy(m => m.sorder);
            var menu3        = _context.MENU_L3.Where(m => m.active && userObjects.Any(k => k == m.object_auto) && menu2.Any(k => k.menu_L2_auto == m.menu_L2_auto)).OrderBy(m => m.sorder);
            var leftDivision = new TopMenuDivision {
                Id           = 1,
                DivCssClass  = "navbar-left",
                UlCssClass   = "menu-container",
                OrderIndex   = 1,
                levelOneList = new List <LevelOne>()
            };
            var rightDivision = new TopMenuDivision
            {
                Id           = 2,
                DivCssClass  = "navbar-right",
                UlCssClass   = "menu-container",
                OrderIndex   = 1,
                levelOneList = new List <LevelOne>()
            };

            foreach (var level1Menu in menu1.ToList())
            {
                var levelOne = new LevelOne
                {
                    Id            = level1Menu.menu_L1_auto,
                    isMenuNotLink = false,
                    LiCssClass    = "menu-item",
                    OrderIndex    = 0,
                    Span          = new TopMenuSpan
                    {
                        IconCssClass = "material-icons arrow",
                        IconText     = "&#xE313;",
                        OrderIndex   = level1Menu.sorder == null ? 99 : (int)level1Menu.sorder,
                        SpanText     = level1Menu.label
                    },
                    levelTwoList = new List <LevelTwo>(),
                    Link         = new TopMenuLink()
                };
                if (HasSubMenu(level1Menu.menu_L1_auto, menu2.Select(m => m.menu_L1_auto).ToList()))
                {
                    levelOne.isMenuNotLink = true;
                    foreach (var level2Menu in menu2.Where(m => m.menu_L1_auto == level1Menu.menu_L1_auto).ToList())
                    {
                        var levelTwo = new LevelTwo
                        {
                            Id            = level2Menu.menu_L2_auto,
                            isMenuNotLink = false,
                            ParentId      = level1Menu.menu_L1_auto,
                            UlCssClass    = "sub-menu-container",
                            LiCssClass    = "sub-menu-item",
                            Span          = new TopMenuSpan {
                                IconCssClass = "material-icons arrow",
                                IconText     = "&#xE313;",
                                OrderIndex   = level2Menu.sorder == null ? 99 : (int)level2Menu.sorder,
                                SpanText     = level2Menu.label
                            },
                            levelThreeList = new List <LevelThree>(),
                            Link           = new TopMenuLink()
                        };
                        if (HasSubMenu(level2Menu.menu_L2_auto, menu3.Select(m => m.menu_L2_auto).ToList()))
                        { //Level3 Links
                            levelTwo.isMenuNotLink = true;
                            foreach (var level3Menu in menu3.Where(m => m.menu_L2_auto == level2Menu.menu_L2_auto).ToList())
                            {
                                var levelThree = new LevelThree
                                {
                                    Id         = level3Menu.menu_L3_auto,
                                    ParentId   = level2Menu.menu_L2_auto,
                                    UlCssClass = "sub-menu-container",
                                    LiCssClass = "sub-menu-item",
                                    Span       = new TopMenuSpan
                                    {
                                        IconCssClass = "material-icons arrow",
                                        IconText     = "&#xE313;",
                                        OrderIndex   = level2Menu.sorder == null ? 99 : (int)level2Menu.sorder,
                                        SpanText     = level2Menu.label
                                    },
                                    Link = new TopMenuLink {
                                        Id              = level3Menu.menu_L3_auto,
                                        Text            = level3Menu.label,
                                        Href            = level3Menu.targetpath,
                                        OrderIndex      = level3Menu.sorder == null ? 99 : (int)level3Menu.sorder,
                                        OpenInNewWindow = level3Menu.new_window
                                    }
                                };
                                levelTwo.levelThreeList.Add(levelThree);
                            }
                        }
                        else //Level2 Links
                        {
                            levelTwo.Link = new TopMenuLink {
                                Id              = level2Menu.menu_L2_auto,
                                Text            = level2Menu.label,
                                Href            = level2Menu.targetpath,
                                OrderIndex      = level2Menu.sorder == null ? 99 : (int)level2Menu.sorder,
                                OpenInNewWindow = level2Menu.new_window
                            };
                        }
                        levelOne.levelTwoList.Add(levelTwo);
                    }
                }
                else //Level1 Links
                {
                    levelOne.Link = new TopMenuLink
                    {
                        Id              = level1Menu.menu_L1_auto,
                        Text            = level1Menu.label,
                        Href            = level1Menu.targetpath,
                        OrderIndex      = level1Menu.sorder == null ? 99 : (int)level1Menu.sorder,
                        OpenInNewWindow = true
                    };
                }
                if (levelOne.Id == 7 || levelOne.Id == 8)
                {
                    rightDivision.levelOneList.Add(levelOne);
                }
                else
                {
                    leftDivision.levelOneList.Add(levelOne);
                }
            }

            result.Divisions.Add(leftDivision);
            result.Divisions.Add(rightDivision);
            return(result);
        }
Beispiel #11
0
 /// <summary>
 /// Returns/sets the value with the <paramref name="key1"/>, <paramref name="key2"/>, <paramref name="key3"/>, <paramref name="key4"/> provided.
 /// </summary>
 /// <param name="key1">The <typeparamref name="TKey1"/> which
 /// is the first key of the element to set/retrieve.</param>
 /// <param name="key2">The <typeparamref name="TKey2"/> which
 /// is the second key of the element to set/retrieve.</param>
 /// <param name="key3">The <typeparamref name="TKey3"/> which
 /// is the third key of the element to set/retrieve.</param>
 /// <param name="key4">The <typeparamref name="TKey4"/> which
 /// is the fourth key of the element to set/retrieve.</param>
 public TValue this[TKey1 key1, TKey2 key2, TKey3 key3, TKey4 key4]
 {
     get
     {
         LevelOne   levelOne;
         LevelTwo   levelTwo;
         LevelThree levelThree;
         if (((object)(key1)) == null)
         {
             throw new ArgumentNullException("key1");
         }
         bool topLevelLock = false;
         Monitor.Enter(this.dataCopy, ref topLevelLock);
         if (this.dataCopy.TryGetValue(key1, out levelOne))
         {
             if (topLevelLock)
             {
                 Monitor.Exit(this.dataCopy);
             }
             if (((object)(key2)) == null)
             {
                 throw new ArgumentNullException("key2");
             }
             bool levelOneLock = false;
             Monitor.Enter(levelOne, ref levelOneLock);
             if (levelOne.TryGetValue(key2, out levelTwo))
             {
                 if (levelOneLock)
                 {
                     Monitor.Exit(levelOne);
                 }
                 if (((object)(key3)) == null)
                 {
                     throw new ArgumentNullException("key3");
                 }
                 bool levelTwoLock = false;
                 Monitor.Enter(levelTwo, ref levelTwoLock);
                 if (levelTwo.TryGetValue(key3, out levelThree))
                 {
                     TValue value;
                     if (levelTwoLock)
                     {
                         Monitor.Exit(levelTwo);
                     }
                     if (((object)(key4)) == null)
                     {
                         throw new ArgumentNullException("key4");
                     }
                     bool levelThreeLock = false;
                     Monitor.Enter(levelThree, ref levelThreeLock);
                     if (levelThree.TryGetValue(key4, out value))
                     {
                         if (levelThreeLock)
                         {
                             Monitor.Exit(levelThree);
                         }
                         return(value);
                     }
                     else
                     {
                         if (levelThreeLock)
                         {
                             Monitor.Exit(levelThree);
                         }
                         throw new SubKeyNotFoundException("key4");
                     }
                 }
                 else
                 {
                     if (levelTwoLock)
                     {
                         Monitor.Exit(levelTwo);
                     }
                     throw new SubKeyNotFoundException("key3");
                 }
             }
             else
             {
                 if (levelOneLock)
                 {
                     Monitor.Exit(levelOne);
                 }
                 throw new SubKeyNotFoundException("key2");
             }
         }
         else
         {
             if (topLevelLock)
             {
                 Monitor.Exit(this.dataCopy);
             }
             throw new SubKeyNotFoundException("key1");
         }
     }
     set
     {
         LevelOne   levelOne;
         LevelTwo   levelTwo;
         LevelThree levelThree;
         if (((object)(key1)) == null)
         {
             throw new ArgumentNullException("key1");
         }
         bool topLevelLock = false;
         Monitor.Enter(this.dataCopy, ref topLevelLock);
         if (this.dataCopy.TryGetValue(key1, out levelOne))
         {
             if (topLevelLock)
             {
                 Monitor.Exit(this.dataCopy);
             }
             if (((object)(key2)) == null)
             {
                 throw new ArgumentNullException("key2");
             }
             bool levelOneLock = false;
             Monitor.Enter(levelOne, ref levelOneLock);
             if (levelOne.TryGetValue(key2, out levelTwo))
             {
                 if (levelOneLock)
                 {
                     Monitor.Exit(levelOne);
                 }
                 if (((object)(key3)) == null)
                 {
                     throw new ArgumentNullException("key3");
                 }
                 bool levelTwoLock = false;
                 Monitor.Enter(levelTwo, ref levelTwoLock);
                 if (levelTwo.TryGetValue(key3, out levelThree))
                 {
                     if (levelTwoLock)
                     {
                         Monitor.Exit(levelTwo);
                     }
                     if (((object)(key4)) == null)
                     {
                         throw new ArgumentNullException("key4");
                     }
                     bool levelThreeLock = false;
                     Monitor.Enter(levelThree, ref levelThreeLock);
                     if (levelThree.ContainsKey(key4))
                     {
                         if (levelThreeLock)
                         {
                             Monitor.Exit(levelThree);
                         }
                         levelThree[key4] = value;
                     }
                     else
                     {
                         levelThree.Add(key4, value);
                         if (levelThreeLock)
                         {
                             Monitor.Exit(levelThree);
                         }
                     }
                 }
                 else
                 {
                     levelTwo.Add(key3, (levelThree = new LevelThree()));
                     levelThree.Add(key4, value);
                     if (levelTwoLock)
                     {
                         Monitor.Exit(levelTwo);
                     }
                 }
             }
             else
             {
                 levelOne.Add(key2, (levelTwo = new LevelTwo()));
                 levelTwo.Add(key3, (levelThree = new LevelThree()));
                 levelThree.Add(key4, value);
                 if (levelOneLock)
                 {
                     Monitor.Exit(levelOne);
                 }
             }
         }
         else
         {
             this.dataCopy.Add(key1, (levelOne = new LevelOne()));
             levelOne.Add(key2, (levelTwo = new LevelTwo()));
             levelTwo.Add(key3, (levelThree = new LevelThree()));
             levelThree.Add(key4, value);
             if (topLevelLock)
             {
                 Monitor.Exit(this.dataCopy);
             }
         }
     }
 }
Beispiel #12
0
        /// <summary>
        /// Attempts to add the <paramref name="value"/> with the keys
        /// <paramref name="key1"/>, <paramref name="key2"/>, <paramref name="key3"/>, <paramref name="key4"/>.
        /// </summary>
        /// <param name="key1">The <typeparamref name="TKey1"/> which
        /// is the first key of the <paramref name="value"/>
        ///  to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/>.</param>
        /// <param name="key2">The <typeparamref name="TKey2"/> which
        /// is the second key of the <paramref name="value"/>
        ///  to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/>.</param>
        /// <param name="key3">The <typeparamref name="TKey3"/> which
        /// is the third key of the <paramref name="value"/>
        ///  to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/>.</param>
        /// <param name="key4">The <typeparamref name="TKey4"/> which
        /// is the fourth key of the <paramref name="value"/>
        ///  to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/>.</param>
        /// <param name="value">The <typeparamref name="TValue"/> to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/></param>
        public bool TryAdd(TKey1 key1, TKey2 key2, TKey3 key3, TKey4 key4, TValue value)
        {
            // Declare the locals relative to the different levels.
            LevelOne   levelOne;
            LevelTwo   levelTwo;
            LevelThree levelThree;

            /* ------------------------------------------------------\
            |  Check each level individually, if the key set is      |
            |  already present, indicate that nothing was done, and  |
            |  yield; otherwise note that it was inserted.           |
            \------------------------------------------------------ */
            if (((object)(key1)) == null)
            {
                throw new ArgumentNullException("key1");
            }
            bool topLevelLock = false;

            Monitor.Enter(this.dataCopy, ref topLevelLock);
            if (this.dataCopy.TryGetValue(key1, out levelOne))
            {
                if (topLevelLock)
                {
                    Monitor.Exit(this.dataCopy);
                }
                if (((object)(key2)) == null)
                {
                    throw new ArgumentNullException("key2");
                }
                bool levelOneLock = false;
                Monitor.Enter(levelOne, ref levelOneLock);
                if (levelOne.TryGetValue(key2, out levelTwo))
                {
                    if (levelOneLock)
                    {
                        Monitor.Exit(levelOne);
                    }
                    if (((object)(key3)) == null)
                    {
                        throw new ArgumentNullException("key3");
                    }
                    bool levelTwoLock = false;
                    Monitor.Enter(levelTwo, ref levelTwoLock);
                    if (levelTwo.TryGetValue(key3, out levelThree))
                    {
                        if (levelTwoLock)
                        {
                            Monitor.Exit(levelTwo);
                        }
                        if (((object)(key4)) == null)
                        {
                            throw new ArgumentNullException("key4");
                        }
                        bool levelThreeLock = false;
                        Monitor.Enter(levelThree, ref levelThreeLock);
                        if (levelThree.ContainsKey(key4))
                        {
                            if (levelThreeLock)
                            {
                                Monitor.Exit(levelThree);
                            }
                            return(false);
                        }
                        else
                        {
                            levelThree.Add(key4, value);
                            if (levelThreeLock)
                            {
                                Monitor.Exit(levelThree);
                            }
                        }
                    }
                    else
                    {
                        levelTwo.Add(key3, (levelThree = new LevelThree()));
                        levelThree.Add(key4, value);
                        if (levelTwoLock)
                        {
                            Monitor.Exit(levelTwo);
                        }
                    }
                }
                else
                {
                    levelOne.Add(key2, (levelTwo = new LevelTwo()));
                    levelTwo.Add(key3, (levelThree = new LevelThree()));
                    levelThree.Add(key4, value);
                    if (levelOneLock)
                    {
                        Monitor.Exit(levelOne);
                    }
                }
            }
            else
            {
                this.dataCopy.Add(key1, (levelOne = new LevelOne()));
                levelOne.Add(key2, (levelTwo = new LevelTwo()));
                levelTwo.Add(key3, (levelThree = new LevelThree()));
                levelThree.Add(key4, value);
                if (topLevelLock)
                {
                    Monitor.Exit(this.dataCopy);
                }
            }
            return(true);
        }
Beispiel #13
0
        /// <summary>
        /// Adds the <paramref name="value"/> with the keys
        /// <paramref name="key1"/>, <paramref name="key2"/>, <paramref name="key3"/>, <paramref name="key4"/>.
        /// </summary>
        /// <param name="key1">The <typeparamref name="TKey1"/> which
        /// is the first key of the <paramref name="value"/>
        /// to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/>.</param>
        /// <param name="key2">The <typeparamref name="TKey2"/> which
        /// is the second key of the <paramref name="value"/>
        /// to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/>.</param>
        /// <param name="key3">The <typeparamref name="TKey3"/> which
        /// is the third key of the <paramref name="value"/>
        /// to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/>.</param>
        /// <param name="key4">The <typeparamref name="TKey4"/> which
        /// is the fourth key of the <paramref name="value"/>
        /// to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/>.</param>
        /// <param name="value">The <typeparamref name="TValue"/> to add to the <see cref="MultikeyedDictionary{TKey1, TKey2, TKey3, TKey4, TValue}"/>.</param>
        public void Add(TKey1 key1, TKey2 key2, TKey3 key3, TKey4 key4, TValue value)
        {
            // Declare the locals relative to the different levels.
            LevelOne   levelOne;
            LevelTwo   levelTwo;
            LevelThree levelThree;

            /* ------------------------------------------------------\
            |  Check each level individually, if the key set is      |
            |  already present, throw an the appropriate exception.  |
            \------------------------------------------------------ */
            if (((object)(key1)) == null)
            {
                throw new ArgumentNullException("key1");
            }
            bool topLevelLock = false;

            Monitor.Enter(this.dataCopy, ref topLevelLock);
            if (this.dataCopy.TryGetValue(key1, out levelOne))
            {
                if (topLevelLock)
                {
                    Monitor.Exit(this.dataCopy);
                }
                if (((object)(key2)) == null)
                {
                    throw new ArgumentNullException("key2");
                }
                bool levelOneLock = false;
                Monitor.Enter(levelOne, ref levelOneLock);
                if (levelOne.TryGetValue(key2, out levelTwo))
                {
                    if (levelOneLock)
                    {
                        Monitor.Exit(levelOne);
                    }
                    if (((object)(key3)) == null)
                    {
                        throw new ArgumentNullException("key3");
                    }
                    bool levelTwoLock = false;
                    Monitor.Enter(levelTwo, ref levelTwoLock);
                    if (levelTwo.TryGetValue(key3, out levelThree))
                    {
                        if (levelTwoLock)
                        {
                            Monitor.Exit(levelTwo);
                        }
                        if (((object)(key4)) == null)
                        {
                            throw new ArgumentNullException("key4");
                        }
                        bool levelThreeLock = false;
                        Monitor.Enter(levelThree, ref levelThreeLock);
                        if (levelThree.ContainsKey(key4))
                        {
                            if (levelThreeLock)
                            {
                                Monitor.Exit(levelThree);
                            }
                            throw new InvalidOperationException();
                        }
                        else
                        {
                            levelThree.Add(key4, value);
                            if (levelThreeLock)
                            {
                                Monitor.Exit(levelThree);
                            }
                        }
                    }
                    else
                    {
                        levelTwo.Add(key3, (levelThree = new LevelThree()));
                        levelThree.Add(key4, value);
                        if (levelTwoLock)
                        {
                            Monitor.Exit(levelTwo);
                        }
                    }
                }
                else
                {
                    levelOne.Add(key2, (levelTwo = new LevelTwo()));
                    levelTwo.Add(key3, (levelThree = new LevelThree()));
                    levelThree.Add(key4, value);
                    if (levelOneLock)
                    {
                        Monitor.Exit(levelOne);
                    }
                }
            }
            else
            {
                this.dataCopy.Add(key1, (levelOne = new LevelOne()));
                levelOne.Add(key2, (levelTwo = new LevelTwo()));
                levelTwo.Add(key3, (levelThree = new LevelThree()));
                levelThree.Add(key4, value);
                if (topLevelLock)
                {
                    Monitor.Exit(this.dataCopy);
                }
            }
        }
Beispiel #14
0
        public string CheckLevelThreePassword()
        {
            LevelThree correctLevelThree = _context.LevelThree.FirstOrDefault();

            return(correctLevelThree.PassWord);
        }
Beispiel #15
0
 public LevelTwo(LevelThree levelThree)
 {
     LevelThree = levelThree;
 }
Beispiel #16
0
 public LevelTwo(LevelThree levelThree)
 {
     this._levelThree = levelThree;
 }
Beispiel #17
0
 // save level 3 state to file
 public static void SaveLevelThree(LevelThree level) => Save(level.CurrentState,
                                                             Path.Combine(Application.persistentDataPath, LEVEL_THREE_SAVE_FILE));
Beispiel #18
0
 public LevelTwo(LevelThree three)
 {
     Three = three;
 }
Beispiel #19
0
 public LevelTwo(LevelThree three)
 {
     Three = three;
 }