コード例 #1
0
        private void SMSApproveProcess(string FROM, string CONTENT)
        {
            string ReplyApproveFlag = CONTENT.Equals(string.Empty) ? "" : CONTENT.Substring(CONTENT.Length - 1, 1);
            string ReplyTokenResult = CONTENT.Equals(string.Empty) ? "" : CONTENT.TrimEnd(new Char[] { 'Y', 'N', 'y', 'n' });


            if (ReplyApproveFlag.ToUpper().Equals("Y"))
            {
                ReplyApproveFlag = "Approve"; //Accept
            }
            else if (ReplyApproveFlag.ToUpper().Equals("N"))
            {
                ReplyApproveFlag = "Reject"; //Decline
            }
            long userID = 0;
            IList <WorkFlowResponseToken> responseTokens = WorkFlowQueryProvider.WorkFlowResponseTokenQuery.FindByTokenCode(ReplyTokenResult);

            foreach (WorkFlowResponseToken responseToken in responseTokens)
            {
                userID = responseToken.UserID;
                break;
            }
            //1. SignIn by UserName (From)

            if (userID == 0)
            {
                //แจ้งเตือนในกรณีที่มีการ approved ผ่านมือถือ แต่ว่า approve อีกรอบจะทำให้ tokencode หาย
                long smsLogID = AddSMSLog(DateTime.Now, FROM, "Receive", CONTENT, TRANSID);
                SCGSMSService.SendSMS08(CONTENT, FROM, true);
            }
            else
            {
                SuUser userAccount = SS.SU.Query.QueryProvider.SuUserQuery.FindByIdentity(userID);
                if (userAccount != null && userAccount.MobilePhoneNo == FROM)
                {
                    string userName = userAccount.UserName;

                    UserEngine.SignIn(userName);
                    UserAccount.CurrentLanguageID  = ParameterServices.SMSDefaultLanguageID;
                    UserAccount.CurrentProgramCode = this.ProgramCode;


                    long smsLogID = AddSMSLog(DateTime.Now, FROM, "Receive", CONTENT, TRANSID);

                    bool approveFalg = CallWorkFlow(ReplyTokenResult, ReplyApproveFlag, FROM);
                }
                else
                {
                    //แจ้งเตือนในกรณีที่มีการ approved ผ่านมือถือคนอื่นที่ไม่ใช่เครื่องที่รับ message นั้น
                    long smsLogID = AddSMSLog(DateTime.Now, FROM, "Receive", CONTENT, TRANSID);
                    SCGSMSService.SendSMS10(CONTENT, FROM, true);
                }
            }
        }
コード例 #2
0
        public void ReceiveSMS(string from, string to, string content, string transID)
        {
            SCGSMSService = (ISCGSMSService)ContextRegistry.GetContext().GetObject("SCGSMSService");

            if (from.Length > 9)
            {
                int startIndex = from.Length - 9;
                from = from.Substring(startIndex, 9);
                from = from.PadLeft(10, '0');
            }


            if (content.Length != 7)
            {
                //แจ้งเตือนกรณีใส่ข้อมูลการ approve มาผิด format
                long smsLogID = AddSMSLog(DateTime.Now, from, "Receive", content, transID);
                SCGSMSService.SendSMS07(content, from, true);
            }
            else
            {
                string ReplyApproveFlag = content.Equals(string.Empty) ? "" : content.Substring(content.Length - 1, 1);


                if (ReplyApproveFlag.ToUpper().Equals("Y") || ReplyApproveFlag.ToUpper().Equals("N"))
                {
                    //format การ approve ถูกต้องจะต้องมี 7 หลักเท่านั้น แล้วทำการ process ในการเรียก work flow

                    SMSApproveProcess(from, content, transID);
                }
                else
                {
                    //แจ้งเตือนกรณีใส่ข้อมูลการ approve มาผิด format ไม่ต้อบเป็น Y หรือ N
                    long smsLogID = AddSMSLog(DateTime.Now, from, "Receive", content, transID);
                    SCGSMSService.SendSMS07(content, from, true);
                }
            }
        }
コード例 #3
0
        private void SMSApproveProcess(string FROM, string CONTENT, string TRANSID)
        {
            IWorkFlowResponseTokenQuery WorkFlowResponseTokenQuery = (IWorkFlowResponseTokenQuery)ContextRegistry.GetContext().GetObject("WorkFlowResponseTokenQuery");

            string ReplyApproveFlag = CONTENT.Equals(string.Empty) ? "" : CONTENT.Substring(CONTENT.Length - 1, 1);
            string ReplyTokenResult = CONTENT.Equals(string.Empty) ? "" : CONTENT.TrimEnd(new Char[] { 'Y', 'N', 'y', 'n' });


            if (ReplyApproveFlag.ToUpper().Equals("Y"))
            {
                ReplyApproveFlag = "Approve"; //Accept
            }
            else if (ReplyApproveFlag.ToUpper().Equals("N"))
            {
                ReplyApproveFlag = "Reject"; //Decline
            }
            long userID = 0;
            IList <WorkFlowResponseToken> responseTokens = WorkFlowResponseTokenQuery.FindByTokenCode(ReplyTokenResult);

            foreach (WorkFlowResponseToken responseToken in responseTokens)
            {
                userID = responseToken.UserID;
                break;
            }
            //1. SignIn by UserName (From)

            if (userID == 0)
            {
                //แจ้งเตือนในกรณีที่มีการ approved ผ่านมือถือ แต่ว่า approve อีกรอบจะทำให้ tokencode หาย
                long smsLogID = AddSMSLog(DateTime.Now, FROM, "Receive", CONTENT, TRANSID);
                SCGSMSService.SendSMS08(CONTENT, FROM, true);
            }
            else
            {
                try
                {
                    UserEngine = (IUserEngine)ContextRegistry.GetContext().GetObject("UserEngine");
                    ISuUserQuery      SuUserQuery      = (ISuUserQuery)ContextRegistry.GetContext().GetObject("SuUserQuery");
                    IDbParameterQuery DbParameterQuery = (IDbParameterQuery)ContextRegistry.GetContext().GetObject("DbParameterQuery");

                    SuUser user = SuUserQuery.FindByIdentity(userID);
                    if (user != null && user.MobilePhoneNo == FROM)
                    {
                        string userName = user.UserName;

                        UserEngine.SignIn(userName);

                        UserAccount = (IUserAccount)ContextRegistry.GetContext().GetObject("UserAccount");
                        string smsDefaultLanguageID = DbParameterQuery.GetParameterByName("SMSDefaultLanguageID");
                        UserAccount.CurrentLanguageID  = string.IsNullOrEmpty(smsDefaultLanguageID) ? (short)1 : Convert.ToInt16(smsDefaultLanguageID);
                        UserAccount.CurrentProgramCode = "SmsWcfService";


                        long smsLogID = AddSMSLog(DateTime.Now, FROM, "Receive", CONTENT, TRANSID);

                        bool approveFalg = CallWorkFlow(ReplyTokenResult, ReplyApproveFlag, FROM);
                    }
                    else
                    {
                        //แจ้งเตือนในกรณีที่มีการ approved ผ่านมือถือคนอื่นที่ไม่ใช่เครื่องที่รับ message นั้น
                        long smsLogID = AddSMSLog(DateTime.Now, FROM, "Receive", CONTENT, TRANSID);
                        SCGSMSService.SendSMS10(CONTENT, FROM, true);
                    }
                }
                catch (Exception ex)
                {
                    Utilities.WriteLogs(ex.Message, "smslog", "Logs", "txt");
                    // error = ex.Message;
                }
            }
        }
コード例 #4
0
        private bool CallWorkFlow(string TokenCode, string approveFlag, string From)
        {
            //1.1 If cannot SignIn , we not need to call workflow

            IWorkFlowResponseTokenQuery WorkFlowResponseTokenQuery = (IWorkFlowResponseTokenQuery)ContextRegistry.GetContext().GetObject("WorkFlowResponseTokenQuery");

            string docNo = "";

            if (UserAccount != null && UserAccount.Authentication)
            {
                try
                {
                    IList <WorkFlowResponseToken> responseTokens = WorkFlowResponseTokenQuery.FindByTokenCode(TokenCode);

                    int?eventID = null;

                    foreach (WorkFlowResponseToken responseToken in responseTokens)
                    {
                        if (responseToken.WorkFlowStateEvent.Name.ToLower() == approveFlag.ToLower())
                        {
                            eventID = responseToken.WorkFlowStateEvent.WorkFlowStateEventID;
                            break;
                        }
                        else if (responseToken.WorkFlowStateEvent.Name.ToLower() == approveFlag.ToLower())
                        {
                            eventID = responseToken.WorkFlowStateEvent.WorkFlowStateEventID;
                            break;
                        }
                    }


                    WorkFlowResponseToken token = WorkFlowResponseTokenQuery.GetByTokenCode_WorkFlowStateEventID(TokenCode, eventID.Value);

                    if (token == null)
                    {
                        Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
                        string error = new Spring.Validation.ErrorMessage("InvalidTokenID").ToString();
                        //send sms notify error
                        SCGSMSService.SendSMS09(error, TokenCode, From, true);
                    }
                    else
                    {
                        docNo = token.WorkFlow.Document.DocumentNo;

                        WorkFlowService = (IWorkFlowService)ContextRegistry.GetContext().GetObject("WorkFlowService");

                        WorkFlowService.NotifyEventFromSMSToken(TokenCode, UserAccount.UserID, eventID.Value, TokenType.SMS);


                        //send sms notify approve comleted user
                        SCGSMSService.SendSMS05(TokenCode, UserAccount.UserID, true, approveFlag);
                    }
                }
                catch (ServiceValidationException ex)
                {
                    string error = ex.ValidationErrors.ToString();
                    //send sms notify error
                    SCGSMSService.SendSMS09(error, TokenCode, From, true);
                }
                catch (Exception exm)
                {
                    string error = exm.Message.ToString();
                    //send sms notify error
                    SCGSMSService.SendSMS09(error, TokenCode, From, true);
                }
                finally
                {
                    UserEngine.SignOut(UserAccount.UserID);
                }
            }
            else
            {
                //send sms notify approve comleted user
                SCGSMSService.SendSMS06(TokenCode, UserAccount.UserID, true);
            }
            return(true);
        }
コード例 #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (Request.Form["TRANSID"] == null ||
                    Request.Form["FROM"] == null ||
                    Request.Form["TO"] == null ||
                    Request.Form["CONTENT"] == null
                    )
                {
                    //Respone failed
                    string ResponseError = string.Empty;
                    if (Request.Form["TRANSID"] == null)
                    {
                        ResponseError = string.Format(ResponeERR, "Parameter TRANSID is null");
                    }
                    else if (Request.Form["FROM"] == null)
                    {
                        ResponseError = string.Format(ResponeERR, "Parameter FROM is null");
                    }
                    else if (Request.Form["TO"] == null)
                    {
                        ResponseError = string.Format(ResponeERR, "Parameter TO is null");
                    }
                    else if (Request.Form["CONTENT"] == null)
                    {
                        ResponseError = string.Format(ResponeERR, "Parameter CONTENT is null");
                    }
                    else
                    {
                        ResponseError = string.Format(ResponeERR, "Parameter is null");
                    }

                    Response.ClearHeaders();
                    Response.Clear();
                    Response.Write(ResponseError);
                    Response.End();
                }
                else
                {
                    TRANSID = Request.Form["TRANSID"] == null ? string.Empty : Request.Form["TRANSID"].Trim();
                    FROM    = Request.Form["FROM"] == null ? string.Empty : Request.Form["FROM"].Trim();
                    TO      = Request.Form["TO"] == null ? string.Empty : Request.Form["TO"].Trim();
                    CONTENT = Request.Form["CONTENT"] == null ? string.Empty : Request.Form["CONTENT"].Trim();


                    if (FROM.Length > 9)
                    {
                        int startIndex = FROM.Length - 9;
                        FROM = FROM.Substring(startIndex, 9);
                        FROM = FROM.PadLeft(10, '0');
                    }


                    if (Request.Form["CONTENT"].Trim().Length > 6 || Request.Form["CONTENT"].Trim().Length < 6)
                    {
                        //แจ้งเตือนกรณีใส่ข้อมูลการ approve มาผิด format
                        long smsLogID = AddSMSLog(DateTime.Now, FROM, "Receive", CONTENT, TRANSID);
                        SCGSMSService.SendSMS07(CONTENT, FROM, true);
                    }
                    else if (Request.Form["CONTENT"].Trim().Length == 6)
                    {
                        string ReplyApproveFlag = CONTENT.Equals(string.Empty) ? "" : CONTENT.Substring(CONTENT.Length - 1, 1);


                        if (ReplyApproveFlag.ToUpper().Equals("Y") || ReplyApproveFlag.ToUpper().Equals("N"))
                        {
                            //format การ approve ถูกต้องจะต้องมี 6 หลักเท่านั้น แล้วทำการ process ในการเรียก work flow

                            SMSApproveProcess(FROM, CONTENT);
                        }
                        else
                        {
                            //แจ้งเตือนกรณีใส่ข้อมูลการ approve มาผิด format ไม่ต้อบเป็น Y หรือ N
                            long smsLogID = AddSMSLog(DateTime.Now, FROM, "Receive", CONTENT, TRANSID);
                            SCGSMSService.SendSMS07(CONTENT, FROM, true);
                        }
                    }

                    //Respone OK ให้ทาง AIS ทราบว่าเราได้รับ message เรียบร้อยแล้ว
                    Response.ClearHeaders();
                    Response.Clear();
                    Response.Write(ResponeOK);
                    Response.End();
                }
            }
            catch (Exception ex)
            {
                Utilities.WriteLogs(ex.Message, "smslog", "Logs", "txt");
            }
        }
コード例 #6
0
        private bool CallWorkFlow(string TokenCode, string approveFlag, string From)
        {
            //1.1 If cannot SignIn , we not need to call workflow



            string docNo = "";

            if (UserAccount != null && UserAccount.Authentication)
            {
                try
                {
                    IList <WorkFlowResponseToken> responseTokens = WorkFlowQueryProvider.WorkFlowResponseTokenQuery.FindByTokenCode(TokenCode);

                    int?eventID = null;

                    foreach (WorkFlowResponseToken responseToken in responseTokens)
                    {
                        if (responseToken.WorkFlowStateEvent.Name.ToLower() == approveFlag.ToLower())
                        {
                            eventID = responseToken.WorkFlowStateEvent.WorkFlowStateEventID;
                            break;
                        }
                        else if (responseToken.WorkFlowStateEvent.Name.ToLower() == approveFlag.ToLower())
                        {
                            eventID = responseToken.WorkFlowStateEvent.WorkFlowStateEventID;
                            break;
                        }
                    }


                    WorkFlowResponseToken token = WorkFlowResponseTokenQuery.GetByTokenCode_WorkFlowStateEventID(TokenCode, eventID.Value);

                    if (token == null)
                    {
                        Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
                        string error = new Spring.Validation.ErrorMessage("InvalidTokenID").ToString();
                        //errors.AddError("General.Error", new Spring.Validation.ErrorMessage("InvalidTokenID"));

                        //send sms notify error
                        SCGSMSService.SendSMS09(error, TokenCode, From, true);

                        //throw new ServiceValidationException(errors);
                    }
                    else
                    {
                        docNo = token.WorkFlow.Document.DocumentNo;
                        string successText = GetMessage("ApproveRejectResultMessage",
                                                        token.WorkFlow.Document.DocumentNo,
                                                        WorkFlowStateEventQuery.GetTranslatedEventName(
                                                            token.WorkFlowStateEvent.WorkFlowStateEventID,
                                                            UserAccount.CurrentLanguageID));

                        WorkFlowService.NotifyEventFromSMSToken(TokenCode, UserAccount.UserID, eventID.Value, TokenType.SMS);


                        //send sms notify approve comleted user
                        SCGSMSService.SendSMS05(TokenCode, UserAccount.UserID, true, approveFlag);
                    }
                }
                catch (ServiceValidationException ex)
                {
                    this.ValidationErrors.MergeErrors(ex.ValidationErrors);

                    string error = ex.ValidationErrors.ToString();
                    //send sms notify approve comleted user
                    //SCGSMSService.SendSMS04(TokenCode + " " + approveFlag + " ", UserAccount.UserID, true);
                    //send sms notify error
                    SCGSMSService.SendSMS09(error, TokenCode, From, true);
                }
                catch (Exception exm)
                {
                    string error = exm.Message.ToString();
                    //send sms notify approve comleted user
                    //SCGSMSService.SendSMS04(TokenCode + " " + approveFlag + " ", UserAccount.UserID, true);
                    //send sms notify error
                    SCGSMSService.SendSMS09(error, TokenCode, From, true);
                }
                finally
                {
                    UserEngine.SignOut(UserAccount.UserID);
                }
            }
            else
            {
                this.ValidationErrors.AddError("General.Error",
                                               new Spring.Validation.ErrorMessage("ApproveRejectResultLoginFail"));

                //send sms notify approve comleted user
                SCGSMSService.SendSMS06(TokenCode, UserAccount.UserID, true);
            }
            return(true);
        }