예제 #1
0
        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));
        }