Пример #1
0
 public void AddResult(string i_Name, eOperationType i_OperationType, TimeSpan i_Elapsed, bool i_Done, string i_Exception = "")
 {
     InnerResults.Add(new Result()
     {
         Name = i_Name, OperationType = i_OperationType, Elapsed = i_Elapsed, Done = i_Done, Exception = i_Exception
     });
 }
        public void TakeAction(string i_MachineName, string i_IP, string i_ServiceName,string i_DisplayName, eOperationType i_OperationType)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            LogManager.Instance.WriteInfo("Action " + Enum.GetName(typeof(eOperationType), i_OperationType) + "on all agents started ");
            m_AgentsManager.TakeAction(i_MachineName, i_IP, i_ServiceName, i_DisplayName, i_OperationType);
            sw.Stop();
            LogManager.Instance.WriteInfo("Action " + Enum.GetName(typeof(eOperationType), i_OperationType) + "on all agents ended, took: "+sw.ToString());

        }
        bool isMainOperationDone(Result i_Result, eOperationType i_MostImportantAction)
        {
            bool   mainOperationDone = false;
            Result LastOperationInProdecureResult = i_Result.InnerResults.Find(x => x.OperationType == i_MostImportantAction);

            if (LastOperationInProdecureResult != null)
            {
                mainOperationDone = LastOperationInProdecureResult.Done;
            }
            return(mainOperationDone);
        }
Пример #5
0
 protected void AddItem(eOperationType type, Object3d obj, double x, double y, double z)
 {
     if (obj == null)
         return;
     while (m_undopointer < m_undoItemList.Count)
     {
         m_undoItemList.RemoveAt(m_undopointer);
     }
     UndoItem item = new UndoItem();
     item.opType = type;
     item.obj = obj;
     item.x = x;
     item.y = y;
     item.z = z;
     item.linkedToPrev = false;
     m_undoItemList.Add(item);
     m_undopointer++;
     UpdateButtons();
 }
Пример #6
0
        private void ZThrowFailure(eOperationType pType)
        {
            if (MessageHandle.Expunged)
            {
                throw new cMessageExpungedException(MessageHandle);
            }

            switch (pType)
            {
            case eOperationType.fetch:

                throw new cRequestedDataNotReturnedException();

            case eOperationType.store:

                throw new cSingleMessageStoreException();

            default:

                throw new cInternalErrorException();
            }
        }
Пример #7
0
        protected void AddItem(eOperationType type, Object3d obj, double x, double y, double z)
        {
            if (obj == null)
            {
                return;
            }
            while (m_undopointer < m_undoItemList.Count)
            {
                m_undoItemList.RemoveAt(m_undopointer);
            }
            UndoItem item = new UndoItem();

            item.opType       = type;
            item.obj          = obj;
            item.x            = x;
            item.y            = y;
            item.z            = z;
            item.linkedToPrev = false;
            m_undoItemList.Add(item);
            m_undopointer++;
            UpdateButtons();
        }
        public void TakeActionOnAllAgents(eOperationType i_OperationType)
        {
            Stopwatch sw = new Stopwatch();
            sw.Start();
            ThreadPool.SetMaxThreads(5, 5);
            LogManager.Instance.WriteInfo(Enum.GetName(i_OperationType.GetType(),i_OperationType)+" action on all agents started.");
            AgentInstance agent = null;
            bool finalResult = false;
            int numOfOperations = 0;
            int faultedOperations = 0;
            Task task = null;
            List<Task> tasks = new List<Task>();
            foreach (var keyvalueAgent in m_Agents)
            {

                task = new Task(() =>
                {
                    AgentInstance agente = keyvalueAgent.Value;

                    foreach (var service in agente.Services)
                    {
                        numOfOperations++;
                        finalResult = TakeAction(agente.ComputerName, agente.IP, service.Value, service.Key, i_OperationType);
                        if (!finalResult)
                        {
                            faultedOperations++;
                        }
                    }
                });
                task.Start();
                tasks.Add(task);
            }

                Task.WaitAll(tasks.ToArray());
                LogManager.Instance.WriteInfo(Enum.GetName(i_OperationType.GetType(),i_OperationType)+" action on all agents ended, elapsed: " + sw.Elapsed);
                LogManager.Instance.WriteInfo("Results : " + faultedOperations + "  out of " + numOfOperations + " operations failed");
        }
        public Result TakeAction(string i_ServiceName, eOperationType i_OperationType)
        {
            Stopwatch stopWatch     = new Stopwatch();
            string    exception     = string.Empty;
            bool      operationDone = true;
            Result    result        = new Result();

            result.OperationType = i_OperationType;
            stopWatch.Start();
            LogManager.Instance.WriteInfo(i_ServiceName + " => " + Enum.GetName(typeof(eOperationType), i_OperationType) + ", action started");
            try
            {
                switch (i_OperationType)
                {
                case eOperationType.StartService:
                    if (!ServiceUtils.isServiceRunning(i_ServiceName))
                    {
                        Thread.Sleep(TimeSpan.FromSeconds(m_Configurations.WaitTimeBetweenActions));
                        ServiceUtils.StartService(i_ServiceName, m_Configurations.ServiceChangeStateWaitTime);
                    }
                    break;

                case eOperationType.StopService:
                    if (ServiceUtils.isServiceRunning(i_ServiceName))
                    {
                        ServiceUtils.StopService(i_ServiceName, m_Configurations.ServiceChangeStateWaitTime);
                        Thread.Sleep(TimeSpan.FromSeconds(m_Configurations.WaitTimeBetweenActions));
                    }
                    break;

                case eOperationType.RestartService:
                    try
                    {
                        result.AddResult(TakeAction(i_ServiceName, eOperationType.StopService));
                        result.AddResult(TakeAction(i_ServiceName, eOperationType.StartService));
                        if (isMainOperationDone(result, eOperationType.StartService))
                        {
                            operationDone = true;
                        }
                        else
                        {
                            if (ServiceUtils.isServiceRunning(i_ServiceName))
                            {
                                operationDone = true;
                            }
                            else
                            {
                                operationDone = false;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        exception     = ex.Message;
                        operationDone = false;
                    }
                    break;
                }
            }
            catch (Exception ex)
            {
                operationDone = false;
                exception     = ex.Message;
                LogManager.Instance.WriteError(i_ServiceName + " => " + Enum.GetName(typeof(eOperationType), i_OperationType) + " faulted! with exception: " + ex.Message);
            }

            LogManager.Instance.WriteInfo(i_ServiceName + " => " + Enum.GetName(typeof(eOperationType), i_OperationType) + ", action ended ,took: " + stopWatch.Elapsed.ToString());

            stopWatch.Stop();
            result.Elapsed   = stopWatch.Elapsed;
            result.Exception = exception;
            result.Done      = operationDone;
            return(result);
        }
 bool isMainOperationDone(Result i_Result, eOperationType i_MostImportantAction)
 {
     bool mainOperationDone = false;
     Result LastOperationInProdecureResult = i_Result.InnerResults.Find(x => x.OperationType == i_MostImportantAction);
     if(LastOperationInProdecureResult != null)
     {
         mainOperationDone= LastOperationInProdecureResult.Done;
     }
     return mainOperationDone;
 }
        public Result TakeAction(string i_ServiceName, eOperationType i_OperationType)
        {
            Stopwatch stopWatch = new Stopwatch();
            string exception = string.Empty;
            bool operationDone = true;
            Result result = new Result();
            result.OperationType = i_OperationType;
            stopWatch.Start();
            LogManager.Instance.WriteInfo(i_ServiceName + " => " + Enum.GetName(typeof(eOperationType), i_OperationType) + ", action started");
            try
            {
                switch (i_OperationType)
                {
                    case eOperationType.StartService:
                        if (!ServiceUtils.isServiceRunning(i_ServiceName))
                        {
                            Thread.Sleep(TimeSpan.FromSeconds(m_Configurations.WaitTimeBetweenActions));
                            ServiceUtils.StartService(i_ServiceName, m_Configurations.ServiceChangeStateWaitTime);

                        }
                        break;
                    case eOperationType.StopService:
                        if (ServiceUtils.isServiceRunning(i_ServiceName))
                        {
                            ServiceUtils.StopService(i_ServiceName, m_Configurations.ServiceChangeStateWaitTime);
                            Thread.Sleep(TimeSpan.FromSeconds(m_Configurations.WaitTimeBetweenActions));
                        }
                        break;
                    case eOperationType.RestartService:
                        try
                        {
                            result.AddResult(TakeAction(i_ServiceName, eOperationType.StopService));
                            result.AddResult(TakeAction(i_ServiceName, eOperationType.StartService));
                            if (isMainOperationDone(result, eOperationType.StartService))
                            {
                                operationDone = true;
                            }
                            else
                            {
                                if (ServiceUtils.isServiceRunning(i_ServiceName))
                                {
                                    operationDone = true;
                                }
                                else
                                {
                                    operationDone = false;
                                }

                            }

                        }
                        catch (Exception ex)
                        {
                            exception = ex.Message;
                            operationDone = false;
                        }
                        break;
                }
            }
            catch (Exception ex)
            {
                operationDone = false;
                exception = ex.Message;
                LogManager.Instance.WriteError(i_ServiceName + " => " + Enum.GetName(typeof(eOperationType), i_OperationType) + " faulted! with exception: " + ex.Message);
            }

            LogManager.Instance.WriteInfo(i_ServiceName + " => " + Enum.GetName(typeof(eOperationType), i_OperationType) + ", action ended ,took: " + stopWatch.Elapsed.ToString());

            stopWatch.Stop();
            result.Elapsed = stopWatch.Elapsed;
            result.Exception = exception;
            result.Done = operationDone;
            return result;
        }
Пример #12
0
    /*
     * 0-引擎
     * 1-主炮
     * 2-观测
     * 3-通讯
     */
    public void OnSwitchOperation(eOperationType eOper)
    {
        MainPanel.SetActive (true);
        txtMainCanon.GetComponent<Text>().color = Color.gray;
        txtEngine.GetComponent<Text>().color = Color.gray;
        txtScout.GetComponent<Text>().color = Color.gray;
        txtCommunication.GetComponent<Text>().color = Color.gray;
        bool fMainCanon		= false;
        bool fEngine		= false;
        bool fScout			= false;
        bool fCommunication	= false;
        switch (eOper) {
        case eOperationType.MainCanon:

            Ship ship = GameObject.Find("This ship").GetComponent<Ship>();
            txtMainCanon.GetComponent<Text>().color = Color.white;
            fMainCanon	= true;
            break;
        case eOperationType.Engine:
            txtEngine.GetComponent<Text>().color = Color.white;
            fEngine 	= true;
            break;
        case eOperationType.Scout:
            txtScout.GetComponent<Text>().color = Color.white;
            fScout		= true;
            break;
        case eOperationType.Communication:
            txtCommunication.GetComponent<Text>().color = Color.white;
            fCommunication	= true;
            break;
        }
        uigMainCanon.SetActive(fMainCanon);
        uigEngine.SetActive(fEngine);
        //		btnScout.SetActive(fScout);
        uigCommunication.SetActive(fCommunication);
    }
        public bool TakeAction(string i_MachineName, string i_IP, string i_ServiceName, string i_DisplayName, eOperationType i_OperationType)
        {
            string ServiceID = Guid.NewGuid().ToString();
            LogManager.Instance.WriteInfo("["+ServiceID+"][Action]: " + Enum.GetName(typeof(eOperationType), i_OperationType) + " , [MachineName]: " + i_MachineName + " [IP]: " + i_IP + " [ServiceName]: " + i_ServiceName + " [DisplayName]: " + i_DisplayName + " => Started");
            AgentInstance agentInstance;
            bool finalResult = false;
            try
            {
                agentInstance = m_Agents[i_IP];
                Result result = agentInstance.RestartServiceContract.RestartService(i_ServiceName);
                finalResult = result.Done;
                if (result.Done == true)
                {

                    SystemLogManager.Instance.Log(eLogType.Info, agentInstance, i_DisplayName, "Success", result.Elapsed.ToString());
                    LogManager.Instance.WriteInfo("[" + ServiceID + "][Action]: " + Enum.GetName(typeof(eOperationType), i_OperationType) + " , [MachineName]: " + i_MachineName + " [IP]: " + i_IP + " [ServiceName]: " + i_ServiceName + " [DisplayName]: " + i_DisplayName + " => Done, [Result]: Success" + " [Elapsed]: " + result.Elapsed.ToString());
                }
                else
                {
                    LogManager.Instance.WriteError("[" + ServiceID + "][Action]: " + Enum.GetName(typeof(eOperationType), i_OperationType) + " , [MachineName]: " + i_MachineName + " [IP]: " + i_IP + " [ServiceName]: " + i_ServiceName + " [DisplayName]: " + i_DisplayName + " => Done, [Result]: Failed");

                    foreach (Result res in result.InnerResults)
                    {
                        LogManager.Instance.WriteError("[" + ServiceID + "][Service]: " + res.Name + " [Action]: " + Enum.GetName(typeof(eOperationType), res.OperationType) + " [Done]: " + res.Done + " [Exception]: " + res.Exception + " [Elapsed]: " + res.Elapsed.ToString());
                    }
                    SystemLogManager.Instance.Log(eLogType.Error, agentInstance, i_DisplayName, "Failed", result.Elapsed.ToString());

                }
            }
            catch (Exception ex)
            {
                LogManager.Instance.WriteInfo("[" + ServiceID + "][Action]: " + Enum.GetName(typeof(eOperationType), i_OperationType) + " , [MachineName]: " + i_MachineName + " [IP]: " + i_IP + " [ServiceName]: " + i_ServiceName + " [DisplayName]: " + i_DisplayName + " [Error]: " + ex.Message);

            }
            return finalResult;
        }
Пример #14
0
 public void AddResult(string i_Name, eOperationType i_OperationType, TimeSpan i_Elapsed, bool i_Done, string i_Exception = "")
 {
     InnerResults.Add(new Result() { Name = i_Name, OperationType = i_OperationType, Elapsed = i_Elapsed, Done = i_Done, Exception = i_Exception });
 }
Пример #15
0
        public void TakeAction(string i_MachineName, string i_IP, string i_ServiceName, string i_DisplayName, eOperationType i_OperationType)
        {
            Stopwatch sw = new Stopwatch();

            sw.Start();
            LogManager.Instance.WriteInfo("Action " + Enum.GetName(typeof(eOperationType), i_OperationType) + "on all agents started ");
            m_AgentsManager.TakeAction(i_MachineName, i_IP, i_ServiceName, i_DisplayName, i_OperationType);
            sw.Stop();
            LogManager.Instance.WriteInfo("Action " + Enum.GetName(typeof(eOperationType), i_OperationType) + "on all agents ended, took: " + sw.ToString());
        }