public virtual async Task <IActionResult> GetControlNumbersForEO([FromBody] GetControlNumbersForEOModel model) { BulkControlNumbersForEO response = null; try { Guid userUUID = Guid.Parse(HttpContext.User.Claims.Where(w => w.Type == "UserUUID").Select(x => x.Value).FirstOrDefault()); var officerId = new ValidationBase().GetOfficerIdByUserUUID(userUUID, _configuration); if (officerId == 0) { return(BadRequest(new { error_occured = true, error_message = "Officer not found" })); } var officerDetails = _payment.GetOfficerInfo(officerId); response = _payment.GetControlNumbersForEO(officerDetails.Code, model.ProductCode, model.AvailableControlNumbers); // Check if the product requested has enough CNs left _ = _payment.HandleControlNumbersToBeRequested(model.ProductCode); } catch (Exception ex) { return(BadRequest(new { error_occured = true, error_message = ex.Message })); } return(Ok(response)); }