Пример #1
0
    private void Update()
    {
        if (firstVehicle == null)
        {
            firstVehicle = GameManager.Instance().spawnedVehicles[0].GetComponent <DrivingModule>(); // firstVehicle에 스폰된 첫번째 차량을 넣는다.
        }
        if (secondVehicle == null)
        {
            secondVehicle = GameManager.Instance().spawnedVehicles[1].GetComponent <DrivingModule>(); // secondVehicle에 스폰된 두번째 차량을 넣는다.
        }
        firstVehicle.TurnLeft(lTurnLeft);                                                             // firstVehicle의 TurnLeft함수에 lTurnLeft값을 넣는다. lTurnLeft 값에 따라 TurnLeft가 동작할지 말지를 결정한다.
        firstVehicle.TurnRight(lTurnRight);                                                           // firstVehicle의 TurnRight함수에 lTurnRight값을 넣는다.

        secondVehicle.TurnLeft(rTurnLeft);
        //secondVehicle.turnLeft = rTurnLeft;
        secondVehicle.TurnRight(rTurnRight);

        firstVehicle.UseSkill(lSkill);
        secondVehicle.UseSkill(rSkill);
    }
        protected override void OnProcess(object sender, EventArgs e)
        {
            string LocalFileName;

            System.Data.DataTable DrivingTable;

            try
            {
                //Make sure at least one target directory has been specified in the configuration file.
                if (DestinationContainer == null || DestinationContainer.Count == 0)
                {
                    Logger.WriteLine("LanPoster.OnProcess", "Module [" + Name + "]: No destinations are defined for the poster.", System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                    return;
                }

                //Upload all listed files to each destination.
                foreach (Destination Destination in DestinationContainer.List)
                {
                    //Get the driving module from the shared data.
                    if (SharedData.Data.Contains(DrivingModule.Name))
                    {
                        DrivingTable = DrivingModule.Process();

                        Logger.WriteLine("LanPoster.OnProcess", "", System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);

                        if (Destination.URL.Contains(DrivingModule.Name))
                        {
                            Logger.WriteLine("LanPoster.OnProcess", "    REMOTE DIRECTORY: " + Destination.URL, System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                            Logger.WriteLine("LanPoster.OnProcess", "          FILE COUNT: " + DrivingTable.Rows.Count, System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                        }
                        else
                        {
                            Logger.WriteLine("LanPoster.OnProcess", "    REMOTE DIRECTORY: " + TextParser.Parse(Destination.URL, DrivingData, SharedData, ModuleCommands), System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                            Logger.WriteLine("LanPoster.OnProcess", "          FILE COUNT: " + DrivingTable.Rows.Count, System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                        }

                        Logger.WriteLine("LanPoster.OnProcess", "", System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);

                        foreach (System.Data.DataRow row in DrivingTable.Rows)
                        {
                            DrivingData = row;

                            if (Destination.URL.Contains(DrivingModule.Name))
                            {
                                Logger.WriteLine("LanPoster.OnProcess", "         PARSED PATH: " + TextParser.Parse(Destination.URL, DrivingData, SharedData, ModuleCommands), System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                            }

                            LocalFileName = TextParser.Parse(FileName, DrivingData, SharedData, ModuleCommands);

                            //Retrieve the file from the temp directory or from the table.
                            if (DrivingTable.Columns.Contains("_Memory_Management_"))
                            {
                                if (DrivingData["_Memory_Management_"].ToString() == "disk")
                                {
                                    PostFromDisk(LocalFileName, Destination);
                                }
                                else if (DrivingData["_Memory_Management_"].ToString() == "stream")
                                {
                                    PostFromMemory(LocalFileName, (byte[])DrivingData["_Raw_Report_"], Destination);
                                }
                                else
                                {
                                    throw new Exception("Error retrieving report data buffer from memory.");
                                }
                            }
                            else
                            {
                                //The referenced table was not created by a GAH module!
                                //Assume the file was saved in the temp directory...
                                PostFromDisk(LocalFileName, Destination);
                            }
                        }
                    }
                    else
                    {
                        throw new Exception("Module [" + Name + "]: The driving module [" + DrivingModule.Name + "] does not exist.");
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        protected override void OnProcess(object sender, EventArgs e)
        {
            System.Data.DataTable DrivingTable;
            int index = 0;

            try
            {
                Logger.Aquire();
                Logger.Write("RestService.OnProcess", "", System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                Logger.Write("RestService.OnProcess", "            ENDPOINT: " + TextParser.Parse(Endpoint, DrivingData, SharedData, ModuleCommands), System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                Logger.Write("RestService.OnProcess", "                VERB: " + TextParser.Parse(Verb, DrivingData, SharedData, ModuleCommands), System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);

                if (DrivingModule != null)
                {
                    Logger.Write("RestService.OnProcess", "       SOURCE MODULE: " + DrivingModule.Name, System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);

                    if (DrivingModule.Filter != null && !String.IsNullOrEmpty(DrivingModule.Filter.Expression))
                    {
                        Logger.Write("RestService.OnProcess", "              FILTER: " + TextParser.Parse(DrivingModule.Filter.Expression, DrivingData, SharedData, ModuleCommands), System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                    }
                    else
                    {
                        Logger.Write("RestService.OnProcess", "              FILTER: None", System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                    }

                    //Get the driving module from the shared data.
                    if (SharedData.Data.Contains(DrivingModule.Name))
                    {
                        DrivingTable = DrivingModule.Process();

                        Logger.Write("RestService.OnProcess", "           ROW COUNT: " + DrivingTable.Rows.Count, System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);
                        Logger.Write("RestService.OnProcess", "", System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);

                        foreach (System.Data.DataRow row in DrivingTable.Rows)
                        {
                            DrivingData = row;
                            index++;

                            Logger.Write("RestService.OnProcess", "    INVOKING SERVICE: " + index, System.Diagnostics.TraceEventType.Information, 2, 0, SharedData.LogCategory);

                            Invoke();
                        }
                    }
                    else
                    {
                        throw new Exception(string.Format("The referenced source table {0} does not exist in the global cache set.", DrivingModule.Name));
                    }
                }
                else
                {
                    Invoke();
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                Logger.Release();
            }
        }