示例#1
0
 public AkamaiPurger(List <Option> options, Logable logger, Purgable purger)
 {
     _decorator = new PurgeOptionsDecorator(options);
     _view      = logger;
     _options   = options;
     _purgable  = purger;
 }
示例#2
0
        public Task <List <DetectionResult> > VerifyFacesAsync(string facesDir)
        {
            return(Task.Run(() =>
            {
                var client = new FaceServiceClient(FaceApiSubscriptionKey);
                var originFace = GetOriginFaceId(client);
                var faceFiles = Directory.GetFiles(facesDir);
                List <DetectionResult> detectionResults = new List <DetectionResult>();
                foreach (var faceFile in faceFiles)
                {
                    Logable.WriteLog("Verifying " + faceFile);
                    try
                    {
                        var result = VerifyFace(client, originFace, faceFile);

                        if (result != null)
                        {
                            detectionResults.Add(result);
                            Logable.WriteLog("OK! " + result.Confidence);
                        }
                        else
                        {
                            Logable.WriteLog("NOT!");
                        }
                    }
                    catch (Exception ex)
                    {
                        Logable.WriteLog(ex.Message);
                    }
                }
                return detectionResults;
            }));
        }
示例#3
0
文件: Ammo.cs 项目: zrisher/ARMS
            public static AmmoDescription CreateFrom(MyAmmoDefinition ammo)
            {
                if (string.IsNullOrWhiteSpace(ammo.DescriptionString))
                {
                    return(null);
                }

                AmmoDescription desc = new AmmoDescription();

                try
                {
                    XML_Amendments <AmmoDescription> ammender = new XML_Amendments <AmmoDescription>(desc);
                    ammender.primarySeparator = new char[] { ';' };
                    ammender.AmendAll(ammo.DescriptionString, true);
                    desc = ammender.Deserialize();
                    desc.CosAcquisitionAngle = (float)Math.Cos(desc.AcquisitionAngle);
                    return(desc);
                }
                catch (Exception ex)
                {
                    Logger.DebugNotify("Failed to load description for an ammo", 10000, Logger.severity.ERROR);
                    Logable Log = new Logable(ammo.Id.SubtypeName);
                    Log.AlwaysLog("Failed to load description for an ammo", Logger.severity.ERROR);
                    Log.AlwaysLog("Exception: " + ex, Logger.severity.ERROR);
                    return(null);
                }
            }
示例#4
0
        private IEnumerable <FrameHighlight> DetectFaces(string subscriptionKey, string filePath)
        {
            Logable.WriteLog("Start face tracking");
            VideoServiceClient client = new VideoServiceClient(subscriptionKey);

            client.Timeout = TimeSpan.FromMinutes(10);

            using (FileStream originalStream = new FileStream(filePath, FileMode.Open, FileAccess.Read))
            {
                // Creates a video operation of face tracking
                Logable.WriteLog("Start uploading video");
                Operation operation = client.CreateOperationAsync(originalStream, new FaceDetectionOperationSettings()).Result;
                Logable.WriteLog("Uploading video done");

                // Starts querying service status
                OperationResult result = client.GetOperationResultAsync(operation).Result;
                while (result.Status != OperationStatus.Succeeded && result.Status != OperationStatus.Failed)
                {
                    Logable.WriteLog(string.Format("Server status: {0}, wait {1} seconds...", result.Status, QueryWaitTime.TotalSeconds));
                    Task.Delay(QueryWaitTime).Wait();
                    result = client.GetOperationResultAsync(operation).Result;
                }
                Logable.WriteLog("Finish processing with server status: " + result.Status);

                // Processing finished, checks result
                if (result.Status == OperationStatus.Succeeded)
                {
                    // Gets output JSON
                    Logable.WriteLog("Downloading result done");
                    Debug.WriteLine(JsonHelper.FormatJson <FaceTracking>(result.ProcessingResult));
                    var frameHighlights = GetHighlights(result.ProcessingResult).ToList();
                    return(frameHighlights);
                }
                else
                {
                    // Failed
                    Logable.WriteLog("Fail reason: " + result.Message);
                }
            }
            return(null);
        }
示例#5
0
        private static WeaponDescription CreateFrom(MyCubeBlockDefinition definition)
        {
            if (string.IsNullOrWhiteSpace(definition.DescriptionString))
            {
                return(new WeaponDescription());
            }

            WeaponDescription desc = new WeaponDescription();

            try
            {
                XML_Amendments <WeaponDescription> ammender = new XML_Amendments <WeaponDescription>(desc);
                ammender.AmendAll(definition.DescriptionString, true);
                return(ammender.Deserialize());
            }
            catch (Exception ex)
            {
                Logger.DebugNotify("Failed to load description for a weapon", 10000, Logger.severity.ERROR);
                Logable Log = new Logable(definition.Id.ToString());
                Log.AlwaysLog("Failed to load description for a weapon", Logger.severity.ERROR);
                Log.AlwaysLog("Exception: " + ex, Logger.severity.ERROR);
                return(new WeaponDescription());
            }
        }
 public CommandLineParser(Logable logger)
 {
     _logger = logger;
     SetOptions();
 }
示例#7
0
 public ListSplitter(Logable logger, Chunkable chunker)
 {
     _logger    = logger;
     _chunkable = chunker;
 }
示例#8
0
 public ListSplitter(Logable logger)
 {
     _logger = logger;
 }
 public void ListSplitterSetup()
 {
     _logger    = DoMockLogable();
     _chunkable = DoMockChunkable(50);
 }
示例#10
0
 public PurgeApi(Logable logger)
 {
     _logger = logger;
 }
示例#11
0
 public PurgeContext(IContainer container, Logable logger, Purgable purgable)
 {
     _container = container;
     _logger    = logger;
     _purgable  = purgable;
 }