コード例 #1
0
        public IActionResult Soft(ValidationModel validationModel)
        {
            if (ModelState.IsValid)
            {
                // create a logger
                Logger logger = NexmoLogger.GetLogger("SoftValidationLogger");;

                try
                {
                    if (logger == null)
                    {
                        logger = NexmoLogger.GetLogger("SoftValidationLogger");
                    }
                    logger.Open();

                    NumberInsightAdvancedResponse results = NexmoApi.AdvancedNumberInsightRequest(validationModel, configuration);
                    if (results.Status == "0" && results.NumberValidity == "valid")
                    {
                        logger.Log("Soft validation with NI advanced request successfully created with requestId: " + results.RequestId);
                        var responseObject = JsonConvert.SerializeObject(NexmoApi.GenerateAdvancedObject(results), Formatting.Indented);
                        ViewData["feedback"] = "Thanks " + validationModel.Name + ". We have checked your phone number and your account has been validated. More details: \n" + responseObject;
                    }
                    else if (results.NumberValidity != "valid")
                    {
                        logger.Log("Soft validation with NI advanced request failed with number validity: " + results.NumberValidity + " for requestId: " + results.RequestId);
                        ViewData["feedback"] = "Thanks " + validationModel.Name + ". Unfortunately it seems that the number you provided is invalid. Please try again with a different phone number.";
                    }
                    else
                    {
                        ViewData["error"] = "Your request could not be completed at this time. Please try again later.";
                        logger.Log(Level.Exception, "Response code: " + results.Status + " - Request could not be completed. Request ID: " + results.RequestId + " - Error Text: " + results.ErrorText);
                    }
                }
                catch (Exception e)
                {
                    logger.Log(Level.Exception, e);
                    ViewData["error"] = "There has been an issue dealing with your request. Please try again later.";
                }
                finally
                {
                    if (logger != null)
                    {
                        logger.Close();
                        logger.Deregister();
                    }
                }
            }

            return(View(validationModel));
        }
コード例 #2
0
        public IActionResult Index(ValidationModel validationModel)
        {
            if (ModelState.IsValid)
            {
                // create a logger placeholder
                Logger logger = null;

                try
                {
                    logger = NexmoLogger.GetLogger("ValidationLogger");
                    logger.Open();

                    switch (validationModel.Version)
                    {
                    case "basic":
                        NumberInsightBasicResponse response = NexmoApi.BasicNumberInsightRequest(validationModel, configuration);

                        if (response.Status == "0")
                        {
                            var responseObject = JsonConvert.SerializeObject(NexmoApi.GenerateBasicObject(response), Formatting.Indented);
                            logger.Log("Request ID: " + response.RequestId + " has completed successfully with status code: " + response.Status + " and status text: " + response.StatusMessage);
                            ViewData["feedback"] = "Your request completed successfully. Please see below the response: \n" + responseObject;
                        }
                        break;

                    case "standard":
                        NumberInsightStandardResponse standardResponse = NexmoApi.StandardNumberInsightRequest(validationModel, configuration);

                        if (standardResponse.Status == "0")
                        {
                            var responseObject = JsonConvert.SerializeObject(NexmoApi.GenerateStandardObject(standardResponse), Formatting.Indented);
                            logger.Log("Request ID: " + standardResponse.RequestId + " has completed successfully with status code: " + standardResponse.Status + " and status text: " + standardResponse.StatusMessage);
                            ViewData["feedback"] = "Your request completed successfully. Please see below the response: \n" + responseObject;
                        }
                        break;

                    case "advanced":
                        NumberInsightAdvancedResponse advancedResponse = NexmoApi.AdvancedNumberInsightRequest(validationModel, configuration);

                        if (advancedResponse.Status == "0")
                        {
                            var responseObject = JsonConvert.SerializeObject(NexmoApi.GenerateAdvancedObject(advancedResponse), Formatting.Indented);
                            logger.Log("Request ID: " + advancedResponse.RequestId + " has completed successfully with status code: " + advancedResponse.Status + " and status text: " + advancedResponse.StatusMessage);
                            ViewData["feedback"] = "Your request completed successfully. Please see below the response: \n" + responseObject;
                        }
                        break;
                    }
                }
                catch (Exception e)
                {
                    logger.Log(Level.Exception, e);
                    ViewData["error"] = "There has been an issue dealing with your request. Please try again later.";
                }
                finally
                {
                    logger.Close();
                    logger.Deregister();
                }
            }

            return(View());
        }