예제 #1
0
        public int DichVu(DatabaseConstant.Action action, ref DICHVU objDichVu,
                          ref List <ClientResponseDetail> listClientResponseDetail)
        {
            SMSServiceClient client   = null;
            SMSRequest       request  = null;
            SMSResponse      response = null;
            int iret = 1;

            try
            {
                // Kiểm tra kết nối, server, service trước khi request
                Common.Utilities.IsRequestAllow(ApplicationConstant.SystemService.SMSService.layGiaTri());

                client   = SMSServiceClient(ApplicationConstant.SystemService.SMSService);
                request  = Common.Utilities.PrepareRequest(new SMSRequest());
                response = new SMSResponse();

                //Khởi tạo request
                request.Function  = DatabaseConstant.Function.SMS_DANG_KY_DVU;
                request.Action    = action;
                request.objDichVu = objDichVu;

                // make a call to service client here
                response = client.SMS(request);

                //Kiểm tra kết quả trả về
                Common.Utilities.ValidResponse(request, response);

                if (response == null)
                {
                    iret = 0;
                }
                else
                {
                    listClientResponseDetail = Common.Utilities.convertToClientResponseDetail(response);
                    objDichVu = response.objDichVu;
                    if (response.ResponseStatus.Equals(ApplicationConstant.ResponseStatus.THANH_CONG))
                    {
                        iret = 1;
                    }
                    else
                    {
                        iret = 0;
                    }
                }
            }
            catch (Exception ex)
            {
                iret = 0;
                LLogging.WriteLog(System.Reflection.MethodInfo.GetCurrentMethod().ToString(), LLogging.LogType.ERR, ex);
                throw ex;
            }
            finally
            {
                if (client.State == CommunicationState.Faulted)
                {
                    client.Abort();
                }
                else
                {
                    client.Close();
                }

                client   = null;
                request  = null;
                response = null;
            }
            return(iret);
        }