Example #1
0
        public IActionResult SetValidationData_TextSpeech(int UserId, int DestAutoId, int DatasetId, int IsMatch)
        {
            DatasetSubcategoryMappingValidation datasetSubcategoryMappingValidation = _masterContext.DatasetSubcategoryMappingValidation
                                                                                      .Where(x => x.DatasetId == DatasetId)
                                                                                      .SingleOrDefault();

            if (datasetSubcategoryMappingValidation != null)
            {
                SubCategories destTableNameValidation = _masterContext.SubCategories.Find(datasetSubcategoryMappingValidation.DestinationSubcategoryId);

                if (destTableNameValidation.Name == "TEXTSPEECH_VALIDATION_RESPONSE_DETAIL")
                {
                    int IsValidFlag = 0;
                    if (IsMatch == 1 /*&& NoCrossTalk == 1 && IsClear == 1*/)
                    {
                        IsValidFlag = 1;
                    }
                    _validationInfoContext.TextspeechValidationResponseDetail.Add(new TextspeechValidationResponseDetail
                    {
                        UserId    = UserId,
                        RefAutoid = DestAutoId,
                        IsMatch   = IsMatch,
                        //NoCrossTalk = NoCrossTalk,
                        //IsClear = IsClear,
                        ValidationFlag = IsValidFlag
                    });



                    ///set count
                    DatasetSubcategoryMapping datasetSubcategoryMapping = _masterContext.DatasetSubcategoryMapping
                                                                          .Where(x => x.DatasetId == DatasetId)
                                                                          .SingleOrDefault();

                    if (datasetSubcategoryMapping != null)
                    {
                        SubCategories destTableName = _masterContext.SubCategories.Find(datasetSubcategoryMapping.DestinationSubcategoryId);

                        if (destTableName.Name == "TextSpeech")
                        {
                            TextSpeech textSpeech = _texttoSpeechContext.TextSpeech.Where(x => x.AutoId == DestAutoId).Select(x => x).SingleOrDefault();
                            if (textSpeech != null)
                            {
                                textSpeech.TotalValidationUsersCount += 1;
                                if (IsMatch == 1 /*&& NoCrossTalk == 1 && IsClear == 1*/)
                                {
                                    if (textSpeech.VoteCount == null)
                                    {
                                        textSpeech.VoteCount = 1;
                                    }
                                    else
                                    {
                                        textSpeech.VoteCount += 1;
                                    }
                                }
                                int?maxValidationUsers = _masterContext.Datasets.Where(x => x.DatasetId == DatasetId)
                                                         .Select(x => x.MaxValidationUsers)
                                                         .FirstOrDefault();
                                if (maxValidationUsers != null)
                                {
                                    if (maxValidationUsers * 0.5 < textSpeech.VoteCount)
                                    {
                                        textSpeech.IsValid = 1;
                                    }
                                    else if (maxValidationUsers * 0.5 < (textSpeech.TotalValidationUsersCount - textSpeech.VoteCount))
                                    {
                                        textSpeech.IsValid = 0;
                                    }

                                    try
                                    {
                                        _validationInfoContext.SaveChangesAsync();
                                        _texttoSpeechContext.SaveChangesAsync();
                                    }
                                    catch (Exception)
                                    {
                                        _jsonResponse.Response = "Internal Exception";
                                        return(BadRequest(_jsonResponse));
                                    }
                                    _jsonResponse.IsSuccessful = true;
                                    _jsonResponse.Response     = "Saved";
                                    return(Ok(_jsonResponse));
                                }
                            }
                        }
                    }
                }
            }
            _jsonResponse.IsSuccessful = false;
            _jsonResponse.Response     = "Details not match";
            return(NotFound(_jsonResponse));
        }