Exemplo n.º 1
0
        public RecognizerInfoOutput FetchInstruction([FromBody] RecognizerInfoInput input)
        {
            RecognizerInfoOutput output = new RecognizerInfoOutput();

            if (input == null)
            {
                Response.StatusCode = 400;
                output.Result       = "INPUT_IS_NULL";
            }
            else
            {
                RecognizerService recogService = new RecognizerService(input.RecognizerId, input.RecognizerKey, _db);
                if (recogService.IsAuthentic)
                {
                    RecognizerTask task = recogService.GetLastUnreadTask();
                    if (task == null)
                    {
                        output.Result = "NO_NEW_TASK";
                    }
                    else
                    {
                        task.Status       = 2;
                        task.DateModified = DateTime.UtcNow.AddHours(8);
                        _db.SaveChanges();

                        output.TaskId         = task.Id;
                        output.Command        = task.Command;
                        output.PrimaryValue   = task.PrimaryValue;
                        output.SecondaryValue = task.SecondaryValue;
                        output.Result         = "OK";
                    }
                }
                else
                {
                    Response.StatusCode = 400;
                    output.Result       = "CREDENTIAL_ERROR";
                }
            }

            return(output);
        }
Exemplo n.º 2
0
        public RecognizerInfoOutput MarkTaskComplete([FromBody] RecognizerInfoInput input)
        {
            RecognizerInfoOutput output = new RecognizerInfoOutput();

            if (input == null)
            {
                Response.StatusCode = 400;
                output.Result       = "INPUT_IS_NULL";
            }
            else
            {
                RecognizerService recogService = new RecognizerService(input.RecognizerId, input.RecognizerKey, _db);
                if (recogService.IsAuthentic)
                {
                    RecognizerTask task = recogService.Recognizer.List_RecognizerTask.Where(e => e.Id.Equals(input.RecognizerTaskId) && e.Deleted == false).FirstOrDefault();
                    if (task == null)
                    {
                        Response.StatusCode = 400;
                        output.Result       = "TASK_NOT_EXIST";
                    }
                    else
                    {
                        task.DateModified = DateTime.UtcNow.AddHours(8);
                        task.Status       = 3;
                        _db.SaveChanges();

                        output.Result = "OK";
                    }
                }
                else
                {
                    Response.StatusCode = 400;
                    output.Result       = "CREDENTIAL_ERROR";
                }
            }
            return(output);
        }
Exemplo n.º 3
0
        public async Task <RecognizerInfoOutput> GetStatus([FromBody] RecognizerInfoInput input)
        {
            RecognizerInfoOutput output = new RecognizerInfoOutput();

            if (input == null)
            {
                Response.StatusCode = 400;
                output.Result       = "INPUT_IS_NULL";
            }
            else
            {
                AspUserService aspUser = new AspUserService(_db, this);

                if (aspUser.IsAdmin)
                {
                    RecognizerService recogService = new RecognizerService(input.RecognizerId, _db);

                    if (!recogService.IsExist)
                    {
                        Response.StatusCode = 400;
                        output.Result       = "RECOGNIZER_NOT_EXIST";
                    }
                    else
                    {
                        string trainingStatus = "NONE";
                        if (!string.IsNullOrEmpty(input.Type))
                        {
                            if (input.Type.Equals("REGISTER_NEW_FACE"))
                            {
                                string            personGroupId = _db.SiteConfigs.Where(e => e.Key.Equals("PERSONGROUP")).FirstOrDefault().Value;
                                Uri               uri           = new Uri("https://bcp-facial.cognitiveservices.azure.com/face/v1.0/persongroups/" + personGroupId + "/training");
                                HttpClientHandler handler       = new HttpClientHandler();
                                HttpClient        client        = new HttpClient(handler);
                                //string respond = null;
                                client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", "8d4c42ecbb784d909275492115ea56f0");
                                HttpResponseMessage response = await client.GetAsync(uri);

                                string siteUrl = _db.SiteConfigs.Where(e => e.Key.Equals("SITEURL")).First().Value;
                                string respond = await response.Content.ReadAsStringAsync();

                                dynamic jsonObj = JsonConvert.DeserializeObject(respond);
                                if (jsonObj.status != null)
                                {
                                    trainingStatus = jsonObj.status;
                                }
                                else
                                {
                                    trainingStatus = "NONE";
                                }
                            }
                        }
                        output.RecognizerId     = recogService.Recognizer.Id;
                        output.RecognizerStatus = recogService.GetStatus();
                        output.LastActivity     = recogService.GetDurationSince();

                        if (trainingStatus == "running")
                        {
                            output.Result = "TRAINING_IN_PROGRESS";
                        }
                        else
                        {
                            output.Result = "OK";
                        }
                    }
                }
                else
                {
                    Response.StatusCode = 400;
                    output.Result       = "NO_PRIVILEGE";
                }
            }
            return(output);
        }