Ejemplo n.º 1
0
 private static bool IsAccessToGiftsDeniedError(ExecuteError error)
 {
     if (error.method == "gifts.get")
     {
         return(error.error_code == 15);
     }
     return(false);
 }
        public IExecuteResult ExecuteCommand(string[] args)
        {
            var executeResult = new ExecuteResult { Name = Resources.Common.CreateOPN_Name };
            IExecuteResult finalResult = executeResult;
            try
            {
                var parser = new CreateOPNFromManifestArgumentParser();
                parser.Parse(args);

                var executable = new CreateOPNFromManifestExecutable { ManifestFiles = parser.ManifestFiles, ManifestDirectory = parser.ManifestDirectory };
                finalResult = executable.Execute();
                executeResult.ResultCode = (int)ResultCodes.Success;
            }
            catch (Exception e)
            {
                var executeError = new ExecuteError { ErrorText = e.Message };
                executeResult.ErrorsStore.Add(executeError);
                executeResult.ResultCode = (int)ResultCodes.Fail;
            }
            return finalResult;
        }
Ejemplo n.º 3
0
        private void Process(IAsyncResult ar)
        {
            var waiter  = (AutoResetEvent)ar.AsyncState;
            var context = _http.EndGetContext(ar);

            waiter.Set();
            var request = new NetApiRequest(context.Request);
            var setting = GetSetting(request.RequestMethod, request.Url.AbsolutePath);

            if (setting == null)
            {
                return;
            }

            var before = new NetApiBefore(request)
            {
                Instance = TypeResolve(setting.ClassType),
                Method   = setting.Method
            };

            try
            {
                ExecuteBefore?.Invoke(this, before);

                if (before.Result == null)
                {
                    ((NetApi)before.Instance).Request = request;
                    before.Result = before.Method.Invoke(before.Instance, null)?.ToString();
                }

                ExecuteAfter?.Invoke(this, new NetApiAfter(request)
                {
                    Instance = before.Instance,
                    Method   = before.Method,
                    Result   = before.Result
                });
            }
            catch (Exception ex)
            {
                var err = new NetApiError(request)
                {
                    Error    = ex,
                    Instance = before.Instance,
                    Method   = before.Method
                };
                ExecuteError?.Invoke(this, err);
                if (err.Result != null)
                {
                    before.Result = err.Result;
                }
            }

            var result = before.Result ?? string.Empty;
            var data   = Encoding.UTF8.GetBytes(result);

            context.Response.ContentType     = "application/json";
            context.Response.ContentLength64 = data.Length;
            context.Response.ContentEncoding = Encoding.UTF8;
            context.Response.StatusCode      = 200;
            context.Response.OutputStream.Write(data, 0, data.Length);
            context.Response.Close();
        }
        public IExecuteResult Execute()
        {
            var executeResult = new ExecuteResult { Name = Common.ClearManifest_Name };
            try
            {
                //detect Message analyzer path

                string analyzerPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), @"Microsoft\MessageAnalyzer\");

                //if not found throw exception
                if (!Directory.Exists(analyzerPath))
                {
                    throw new Exception(string.Format(Common.Format_MessageAnalyzerNotInstalled, analyzerPath));
                }

                IEnumerable<string> list = null;
                if (this.ManifestFiles != null && this.ManifestFiles.Count > 0)
                {
                    list = this.ManifestFiles;
                }

                if (list == null)
                {
                    if (this.ManifestDirectory != null)
                    {
                        list = Directory.EnumerateFiles(this.ManifestDirectory, "*.etwManifest.man");
                    }
                    else
                    {
                        list = new string[] { };
                    }
                }
                else
                {
                    if (this.ManifestDirectory != null)
                    {
                        list = list.Union(Directory.EnumerateFiles(this.ManifestDirectory, "*.etwManifest.man"));
                    }
                }

                foreach (var file in list)
                {
                    var fi = new FileInfo(file);
                    if (!fi.Exists)
                    {
                        throw new Exception(string.Format(Common.Format_FileNotFound, fi.FullName));
                    }

                    //find etw provider id
                    XmlNamespaceManager nsMgr = new XmlNamespaceManager(new NameTable());
                    nsMgr.AddNamespace("etw", "http://schemas.microsoft.com/win/2004/08/events");
                    XDocument document = XDocument.Load(fi.FullName);

                    //find cache entries in analyzer path
                    Guid providerID;
                    string providerName;

                    XElement providerElement = document.XPathSelectElement("/etw:instrumentationManifest/etw:instrumentation/etw:events/etw:provider", nsMgr);
                    if (providerElement != null)
                    {
                        providerName = providerElement.Attribute("name").Value;
                        providerID = Guid.Parse(providerElement.Attribute("guid").Value);
                    }
                    else
                    {
                        throw new Exception(string.Format(Common.Format_ProviderNotFound));
                    }

                    ToolkitHelper.DeleteETWProviderCache(analyzerPath, providerName);
                }
            }
            catch (Exception e)
            {
                var executeError = new ExecuteError { ErrorText = e.Message };
                executeResult.ErrorsStore.Add(executeError);
            }
            LastResult = executeResult;
            return LastResult;
        }
Ejemplo n.º 5
0
 private void OnExecuteErrorMsg(string ErrorMsg)
 {
     ExecuteError?.Invoke(this, new PcdmisEventArgs(ErrorMsg));
 }