// @territory
        private bool _setTerritory(IDictionary <string, string> args, NetArgs netArgs)
        {
            Debug.Log("Buildings received");

            var territory = args["territory"].Deserialize <CommonTerritory>(Encoding);

            BuildingsContainer.Instance.BuildingsGrid
                = new Building[
                      territory.PatternIDs.GetLength(0),
                      territory.PatternIDs.GetLength(1)];

            for (var y = 0; y < territory.PatternIDs.GetLength(1); y++)
            {
                for (var x = 0; x < territory.PatternIDs.GetLength(0); x++)
                {
                    BuildingsContainer.Instance.CreateBuilding(
                        territory.PatternIDs[x, y],
                        new Vector2(x, y));
                }
            }

            netArgs.MainSocket.Send("get-resources", Encoding);

            return(true);
        }
        // @resources
        private bool _resources(Dictionary <string, string> args, NetArgs netArgs)
        {
            var resources =
                args["resources"].Deserialize <CommonStructures.Resources>(Encoding);

            for (var i = 0; i < resources.ResourcesArray.Length; i++)
            {
                Ui.Resources[i].Content = resources.ResourcesArray[i];
            }

            return(true);
        }
        // @actions
        private bool _setBuildingActions(Dictionary <string, string> args, NetArgs netArgs)
        {
            var actions = args["actions"].Deserialize <List <CommonBuildingAction> >(Encoding);

            foreach (var action in actions)
            {
                Debug.Log(action.Active + ", " + action.Name);
            }

            UiController.BuildingActions = new ReadOnlyCollection <CommonBuildingAction>(actions);

            return(true);
        }
        // @building
        private bool _upgradeResult(Dictionary <string, string> args, NetArgs netArgs)
        {
            if (args["building"] == "-1")
            {
                return(false);
            }

            var result = args["building"].Deserialize <UpgradeResult>(Encoding);

            var building = BuildingsContainer.Instance
                           .BuildingsGrid[result.Position.X, result.Position.Y];

            building.ChangeBuildingSprite(
                BuildingPrefabsContainer.Instance
                .Get(BuildingsContainer.Instance.PrefabsNames[result.ID])
                .BuildingSpriteRenderer.sprite);

            return(true);
        }
        // @result
        private bool _loginResult(IDictionary <string, string> args, NetArgs netArgs)
        {
            try
            {
                switch ((LoginResult)int.Parse(args["result"]))
                {
                case LoginResult.Successful:
                    netArgs.MainSocket.Send("get-territory", Encoding);

                    Ui.LoginStatus.Content = LoginStatus.Succes;

                    LoginButtonController.AuthenticationFormActive = false;

                    Ui.ResourcesLineForm.GameObject.SetActive(true);
                    return(true);

                case LoginResult.Unsuccessful:
                    Ui.LoginStatus.Content =
                        LoginStatus.LoginFail;
                    return(true);

                case LoginResult.Banned:
                    Ui.LoginStatus.Content =
                        LoginStatus.Banned;
                    return(true);

                default:
                    throw new NotImplementedException();
                }
            }
            catch (Exception ex)
            {
                Debug.LogError(string.Format("[{0}; message = {1}]", ex.GetType(), ex.Message));
                return(true);
            }
        }