Example #1
0
        public void RefreshPage()
        {
            SchemaModels = DBHelper.Instance().SettingsSchemaDB.GetUsersSchemas();
            SMSs.Clear();

            List <SMSModel> tempSMSs = new List <SMSModel>();

            foreach (var item in SchemaModels)
            {
                var temp = item.SMSs
                           .Where(t => t.Date >= DtBeg && t.Date <= DtEnd)
                           .Select(t => { t.Checked = true; return(t); })
                           .ToList();

                if (!item.ShowAllMessages)
                {
                    temp.RemoveAll((t) => { return(t.Type == SmsType.Another); });
                }

                tempSMSs.AddRange(temp);
            }

            SMSs = tempSMSs;
            CalculateSalaryAndExpense();
            CheckNotSynchronizedSMS();
        }
Example #2
0
        /// <summary>
        /// 发送消息
        /// </summary>
        private void DoSendMsg()
        {
            int idx = 0;

            #region 发送消息
            SMSs sms             = new SMSs();
            BP.En.QueryObject qo = new BP.En.QueryObject(sms);
            sms.Retrieve(SMSAttr.EmailSta, (int)MsgSta.UnRun);
            foreach (SMS sm in sms)
            {
                if (sm.Email.Length == 0)
                {
                    sm.HisEmailSta = MsgSta.RunOK;
                    sm.Update();
                    continue;
                }
                try
                {
                    this.SendMail(sm);
                }
                catch (Exception ex)
                {
                    BP.DA.Log.DefaultLogWriteLineError(ex.Message);
                }
            }
            #endregion 发送消息
        }
Example #3
0
        public IActionResult CreateSMSs([FromBody] SMSsInput smssInput)
        {
            if (ModelState.IsValid)
            {
                var sms = new SMSs()
                {
                    Text = smssInput.Text, Number = smssInput.Number, ModifiedBy = smssInput.ModifiedBy, CreatedBy = smssInput.CreatedBy
                };
                this._SMSServise.SendSMS(sms);

                return(this.Ok(sms));
            }

            return(BadRequest(ModelState));
        }
Example #4
0
        /// <summary>
        /// 测试工作到达短消息
        /// </summary>
        public void Test002_zhoupeng_liping()
        {
            //删除消息.
            BP.DA.DBAccess.RunSQL("DELETE FROM Sys_SMS");

            // 让zhoupeng登录.
            BP.WF.Dev2Interface.Port_Login("zhoupeng");

            //创建空白工作, 发起开始节点.
            workID = BP.WF.Dev2Interface.Node_CreateBlankWork("002");

            //执行发送工作.
            BP.WF.Dev2Interface.Node_SendWork("002", workID, null, null);

            #region 检查消息是否 符合预期.
            BP.WF.SMSs smss = new SMSs();
            smss.RetrieveAllFromDBSource();
            if (smss.Count == 0)
            {
                throw new Exception("@执行了发送,应该产生消息,而没有产生。");
            }
            if (smss.Count != 2)
            {
                throw new Exception("@应该产生2 条,现在产生了" + smss.Count + "条。");
            }

            foreach (BP.WF.SMS item in smss)
            {
                if (item.MsgType == EventListOfNode.SendSuccess)
                {
                    if (item.HisEmailSta != MsgSta.UnRun)
                    {
                        throw new Exception("@应该在发送成功的事件里产生一条邮件信息.");
                    }
                }

                if (item.MsgType == EventListOfNode.WorkArrive)
                {
                    if (item.HisMobileSta != MsgSta.UnRun)
                    {
                        throw new Exception("@应该在工作到达的事件里产生一条短信息.");
                    }
                }
            }
            #endregion 检查消息是否 符合预期.
        }
Example #5
0
        public string SendSMS(SMSs SMSVals)
        {
            //var TwilioInfo = Configuration.GetSection("TwilioInfo");
            // const string accountSid = "AC0ebfc71733b1476cd56ccb057082d685";
            // const string authToken = "5545517edf7c3806d48b035d1760ab38";
            TwilioClient.Init(this._twilioConfig.AccountSid, this._twilioConfig.AuthToken);

            var to      = new PhoneNumber(SMSVals.Number);
            var message = MessageResource.Create(
                to,
                from: new PhoneNumber("+19387777010"),
                body: SMSVals.Text);

            this._SMSRepository.Create(SMSVals);

            return("Sent");
        }
Example #6
0
        /// <summary>
        /// 测试让liyan发起,发送并产生一个发送成功后的短消息.
        /// </summary>
        public void Test001_liyan_Start()
        {
            //删除消息.
            BP.DA.DBAccess.RunSQL("DELETE FROM Sys_SMS");

            // 让zhoupeng登录.
            BP.WF.Dev2Interface.Port_Login("liyan");

            //创建空白工作, 发起开始节点.
            workID = BP.WF.Dev2Interface.Node_CreateBlankWork("001");

            //执行发送工作.
            BP.WF.Dev2Interface.Node_SendWork("001", workID, null, null);


            #region 检查消息是否 符合预期.
            BP.WF.SMSs smss = new SMSs();
            smss.RetrieveAllFromDBSource();
            if (smss.Count != 1)
            {
                throw new Exception("@应该产生 1 条,现在产生了" + smss.Count + "条。");
            }

            foreach (BP.WF.SMS item in smss)
            {
                if (item.MsgType == EventListOfNode.SendSuccess)
                {
                    if (item.HisMobileSta != MsgSta.UnRun)
                    {
                        throw new Exception("@应该在工作到达的事件里产生一条短信息.");
                    }
                }
                else
                {
                    throw new Exception("@短消息的标记错误." + item.MsgType);
                }
            }
            #endregion 检查消息是否 符合预期.
        }
Example #7
0
 /// <summary>
 /// Update sms.
 /// </summary>
 /// <param name="sms">Updated sms</param>
 /// <returns></returns>
 public async Task UpdateAsync(SMS sms)
 => await SMSs.ReplaceOneAsync(x => x.Id == sms.Id, sms);
Example #8
0
 /// <summary>
 /// Delete one sms with specific id.
 /// </summary>
 /// <param name="id">Id of sms</param>
 /// <returns></returns>
 public async Task RemoveAsync(Guid id)
 => await SMSs.DeleteOneAsync(x => x.Id == id);
Example #9
0
 /// <summary>
 /// Method for getting one sms with specific id.
 /// </summary>
 /// <param name="id">Id of sms</param>
 /// <returns>SMS Model</returns>
 public async Task <SMS> GetAsync(Guid id)
 => await SMSs.AsQueryable().FirstOrDefaultAsync(x => x.Id == id);
Example #10
0
 /// <summary>
 /// Method for getting all sms's from database.
 /// </summary>
 /// <returns>Collection of sms's</returns>
 public async Task <IEnumerable <SMS> > GetAllAsync()
 => await SMSs.AsQueryable().ToListAsync();
Example #11
0
 /// <summary>
 /// Method for adding new sms into database.
 /// </summary>
 /// <param name="sms">New sms.</param>
 /// <returns></returns>
 public async Task AddAsync(SMS sms)
 => await SMSs.InsertOneAsync(sms);
Example #12
0
        /// <summary>
        /// 测试默认的请假流程发送与退回.
        /// zhanghaicheng登录,
        /// zhoupeng 审批.
        /// liping 核实.
        /// </summary>
        public void Test002()
        {
            //流程编号.
            string fk_flow = "002";

            userNo = "liyan";

            //给发起人赋值.
            starterEmp = new Port.Emp(userNo);

            //让 userNo 登录.
            BP.WF.Dev2Interface.Port_Login(userNo);

            //检查201节点是否有短消息?
            PushMsgs msgs = new PushMsgs(201);

            if (msgs.Count > 0)
            {
                throw new Exception("@测试模版变化,以下的测试将会不正确。");
            }

            //创建空白工作, 发起开始节点.
            workID = BP.WF.Dev2Interface.Node_CreateBlankWork(fk_flow);

            //删除消息.
            BP.DA.DBAccess.RunSQL("DELETE FROM Sys_SMS");

            //执行发送工作.
            BP.WF.Dev2Interface.Node_SendWork(fk_flow, workID, null, null);

            #region 检查是否有消息产生.
            BP.WF.SMSs smss = new SMSs();
            smss.RetrieveAllFromDBSource();
            if (smss.Count == 0)
            {
                throw new Exception("@执行了发送,应该产生消息,而没有产生。");
            }

            if (smss.Count != 1)
            {
                throw new Exception("@应该产生1条,现在产生了多条。");
            }

            foreach (BP.WF.SMS sm in smss)
            {
                if (sm.HisEmailSta != MsgSta.UnRun)
                {
                    throw new Exception("@应该是邮件启用状态,但是目前状态是:" + sm.HisEmailSta);
                }

                if (sm.MsgType != SMSMsgType.SendSuccess)
                {
                    throw new Exception("@应该是 SendSuccess 的类型,但是目前状态是:" + sm.MsgType);
                }

                if (sm.SendToEmpNo != "liping")
                {
                    throw new Exception("@应该是 liping 是接受人ID,但是目前是:" + sm.SendToEmpNo);
                }

                if (sm.Sender != BP.Web.WebUser.No)
                {
                    throw new Exception("@应该 Sender= " + BP.Web.WebUser.No + " ,但是目前是:" + sm.Sender);
                }

                if (sm.IsRead != 0)
                {
                    throw new Exception("@应该是 IsRead=0 ,但是目前是:" + sm.IsRead);
                }
            }
            #endregion 检查是否有消息产生.

            /*
             * 让 zhanghaicheng 登录,走申请 __>> 总经理审批 __>> 人力资源备案.
             */

            //让 zhanghaicheng 登录,
            BP.WF.Dev2Interface.Port_Login("zhanghaicheng");
            //创建空白工作, 发起开始节点.
            workID = BP.WF.Dev2Interface.Node_CreateBlankWork(fk_flow);
            //让zhanghaicheng发送.
            BP.WF.Dev2Interface.Node_SendWork(fk_flow, workID, null, null);

            //让 zhoupeng 登录.
            BP.WF.Dev2Interface.Port_Login("zhoupeng");

            //删除消息.
            BP.DA.DBAccess.RunSQL("DELETE FROM Sys_SMS");

            //让zhoupeng发送, 发送到人力资源备案. 并且人力资源有短消息提醒.
            SendReturnObjs objs = BP.WF.Dev2Interface.Node_SendWork(fk_flow, workID, null, null);

            //到达HR节点ID.
            int      nodeIDOfHR = objs.VarToNodeID;
            PushMsgs pms        = new PushMsgs(nodeIDOfHR);
            if (pms.Count != 1)
            {
                throw new Exception("@请假流程的消息机制模版, 人力资源部审批,设置的短消息到达,被改变。");
            }

            //检查是否有消息存在.
            smss = new SMSs();
            smss.RetrieveAllFromDBSource();
            if (smss.Count == 0)
            {
                throw new Exception("@执行了发送,应该产生消息,而没有产生,应该产生一条短消息.");
            }

            //遍历消息.
            foreach (BP.WF.SMS item in smss)
            {
                if (item.MsgType == "WorkArrive")
                {
                    if (item.SendToEmpNo != "liping")
                    {
                        throw new Exception("@应该是 liping 现在是:" + item.SendToEmpNo);
                    }

                    if (item.Sender != "zhoupeng")
                    {
                        throw new Exception("@应该是 zhoupeng 现在是:" + item.SendToEmpNo);
                    }

                    if (item.HisMobileSta != MsgSta.UnRun)
                    {
                        throw new Exception("@ MsgSta 状态写入不正确 UnRun 现在是:" + item.SendToEmpNo);
                    }
                }
            }
        }
Example #13
0
        /// <summary>
        /// 测试学生请假流程.
        /// </summary>
        public void Test055()
        {
            //先执行一次流程检查.
            BP.WF.Flow fl = new Flow("055");
            fl.DoCheck();

            //让客户登录 0001登录,光头强.
            BP.WF.Dev2InterfaceGuest.Port_Login("0001", "光头强");
            //删除消息.
            BP.DA.DBAccess.RunSQL("DELETE FROM Sys_SMS");

            //创建workid.
            workID = BP.WF.Dev2InterfaceGuest.Node_CreateBlankWork("055", null, null, BP.Web.GuestUser.No, BP.Web.GuestUser.Name);

            //生成参数格式,把他传入给流程引擎,让其向这个手机写入消息。
            Hashtable ht = new Hashtable();

            ht.Add("SQRSJH", "18660153393");

            //向下发送.
            SendReturnObjs objs = BP.WF.Dev2Interface.Node_SendWork("055", workID, ht, null);

            string empNo = objs.VarAcceptersID;

            if (empNo != "guoxiangbin")
            {
                throw new Exception("@应该发送给guoxiangbin 处理但是发送到了:" + empNo);
            }
            #region 检查消息发送的结果.

            //系统设置了向下一步接受人员发送邮件,向指定字段的作为手机号发送短信。
            BP.WF.SMSs smss = new SMSs();
            smss.RetrieveAllFromDBSource();
            if (smss.Count != 1)
            {
                throw new Exception("@应该产生 1 条,现在产生了" + smss.Count + "条。");
            }

            foreach (BP.WF.SMS sms in smss)
            {
                if (sms.MsgType != SMSMsgType.SendSuccess)
                {
                    throw new Exception("@应该是 SendSuccess 禁用状态,现在是:" + sms.MsgType);
                }

                if (sms.HisMobileSta != MsgSta.UnRun)
                {
                    throw new Exception("@应该是 短消息 禁用状态,但是目前状态是:" + sms.HisMobileSta);
                }

                if (sms.Sender != BP.Web.WebUser.No)
                {
                    throw new Exception("@应该 Sender= " + BP.Web.WebUser.No + " ,但是目前是:" + sms.Sender);
                }

                if (sms.IsRead != 0)
                {
                    throw new Exception("@应该是 IsRead=0 ,但是目前是:" + sms.IsRead);
                }
            }
            #endregion 检查消息发送的结果.

            //给发起人赋值.
            starterEmp = new Port.Emp(empNo);
            //让 userNo 登录.
            BP.WF.Dev2Interface.Port_Login(empNo);
        }