[HttpPost] // Send SMS
        public async Task <ActionResult <InfoUserSms> > Post(InfoUserSms info)
        {
            try
            {
                Logger?.Info($"Info of Message {JsonConvert.SerializeObject(info)}");
                var messageHandler = new MessageHandler();
                Logger?.Info("Type of Message is Receive");

                // Cancel Task after 5s
                TokenSource.CancelAfter(TimeSpan.FromSeconds(5));

                // Push Message to SMS Service
                var pushMessageSuccess = await messageHandler.ReceiveInfoMessageToNexmoService(info, TokenSource.Token);

                Logger?.Info($"Push message is {pushMessageSuccess.Message}");

                Logger?.Info($"Status Code {StatusCodes.Status401Unauthorized}");
                return(StatusCode(StatusCodes.Status401Unauthorized, "Don't have type SMS"));
            }
            catch (Exception ex)
            {
                Logger?.Exception(ex, $"Status Code {StatusCodes.Status500InternalServerError}");
                return(StatusCode(StatusCodes.Status500InternalServerError, "Database Failure"));
            }
        }
예제 #2
0
        /// <summary>
        /// Release the specified transaction from the lock.
        /// If the lock now has no owners and there is a non-null TokenSource than cancel it to free other
        /// threads that may be waiting for the lock.
        /// </summary>
        /// <param name="id">Owner Id</param>
        /// <returns></returns>
        public bool Release(T id)
        {
            bool result;

            lock (_lockOwners)
            {
                result = _lockOwners.Remove(id);
                if (_lockOwners.Count == 0)
                {
                    LockMode = LockMode.Default;
                    if (TokenSource != null)
                    {
                        TokenSource.CancelAfter(0);
                        TokenSource = null;
                    }
                }
            }

            return(result);
        }
        [HttpPost] // Send SMS
        public async Task <BaseResponse <object> > Post(InfoUserSms info)
        {
            try
            {
                Logger?.Info($"Info of Message {JsonConvert.SerializeObject(info)}");
                var messageHandler = new MessageHandler();

                //Cancel Task after 3s
                TokenSource.CancelAfter(TimeSpan.FromSeconds(3));

                //Push Message to SMS Service
                var sendSuccess = await messageHandler.SendInfoMessageToSmsService(info, TokenSource.Token);

                Logger?.Info($"Send message {JsonConvert.SerializeObject(sendSuccess)}");
                return(sendSuccess);
            }
            catch (Exception ex)
            {
                Logger?.Exception(ex, $"Status Code {StatusCodes.Status500InternalServerError}");
                return(new BaseResponse <object> {
                    Code = 500, Data = "Internal Server Error", Message = ex.Message, Error = ex.StackTrace
                });
            }
        }