예제 #1
0
    public void OnPhone(NetworkMessage netMsg)
    {
        PhoneMessage msg = netMsg.ReadMessage <PhoneMessage>();

        Debug.Log(msg.sound);
        RoomManagerLocal.instance.Phone(msg.sound);
    }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        public void Excute(PhoneMessage phoneMessage)
        {
            BasicConfirm handleConfirm;

            switch (phoneMessage.PhoneMessageType.PhoneMessageEnumType)
            {
            case PhoneMessageEnumType.LeaveRequest:
            {
                handleConfirm = new LeaveRequestConfirm(phoneMessage);
                handleConfirm.Excute();
                break;
            }

            case PhoneMessageEnumType.OutApplication:
            {
                handleConfirm = new OutApplicationConfirm(phoneMessage);
                handleConfirm.Excute();
                break;
            }

            case PhoneMessageEnumType.OverWork:
            {
                handleConfirm = new OverWorkConfirm(phoneMessage);
                handleConfirm.Excute();
                break;
            }
            }
        }
예제 #3
0
        static void Main() {
            Console.WriteLine("Start of publisher");

            Bus.Initialize(cfg => {
                cfg.ReceiveFrom("msmq://localhost/mytestqueue");
                cfg.UseMsmq(mq => mq.UseMulticastSubscriptionClient());
                cfg.VerifyMsDtcConfiguration();
            });
            
            IServiceBus bus = Bus.Instance;
            for (;;) {
                Console.Write("Messsage: ");
                string text = Console.ReadLine();
                if (string.IsNullOrEmpty(text))
                    break;
                char command = text.ToLower()[0];
                string name = text.Substring(1);

                switch (command) {
                    case 'e':
                        var emailMessage = new EmailMessage { Name = name, EmailAddress = "*****@*****.**" };
                        bus.Publish(emailMessage);
                        break;
                    case 'p':
                        var phoneMessage = new PhoneMessage {Name = name, Received = DateTime.Now, PhoneNumber = "(212) 555-1212"};
                        bus.Publish(phoneMessage);
                        break;
                    default:
                        Console.WriteLine("Preceed message with e for email or p for phone call.");
                        break;
                }
            }
        }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public List <PhoneMessage> GetPhoneMessageByCondition(int assessorID, PhoneMessageStatus status)
        {
            List <PhoneMessage> phoneMessageList = new List <PhoneMessage>();
            SqlCommand          cmd = new SqlCommand();

            cmd.Parameters.Add(_AssessorID, SqlDbType.Int).Value = assessorID;
            cmd.Parameters.Add(_Status, SqlDbType.Int).Value     = status;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetPhoneMessageByCondition", cmd))
            {
                while (sdr.Read())
                {
                    PhoneMessage phoneMessage = new PhoneMessage();
                    phoneMessage.Message          = sdr[_DBMessage].ToString();
                    phoneMessage.PhoneMessageType = new PhoneMessageType((PhoneMessageEnumType)sdr[_DBType], Convert.ToInt32(sdr[_DBTypeID]));
                    phoneMessage.PKID             = Convert.ToInt32(sdr[_DBPKID]);
                    phoneMessage.Requester        = new Account(Convert.ToInt32(sdr[_DBRequesterID]), "", "");
                    phoneMessage.Assessor         = new Account(Convert.ToInt32(sdr[_DBAssessorID]), "", "");
                    phoneMessage.Answer           = sdr[_DBAnswer].ToString();
                    phoneMessage.Status           = (PhoneMessageStatus)sdr[_DBStatus];
                    phoneMessage.SendTime         = sdr[_DBSendTime] == DBNull.Value ? Convert.ToDateTime("2008-11-1") : Convert.ToDateTime(sdr[_DBSendTime]);
                    phoneMessageList.Add(phoneMessage);
                }
            }
            return(phoneMessageList);
        }
예제 #5
0
    public void UpdatePhone(string lastText)
    {
        phoneLMessageBottom = GameObject.FindGameObjectWithTag("PhoneLBot").GetComponent <PhoneMessage>();
        phoneLMessageTop    = GameObject.FindGameObjectWithTag("PhoneLTop").GetComponent <PhoneMessage>();
        phoneRMessageBottom = GameObject.FindGameObjectWithTag("PhoneRBot").GetComponent <PhoneMessage>();
        phoneRMessageTop    = GameObject.FindGameObjectWithTag("PhoneRTop").GetComponent <PhoneMessage>();



        phoneRMessageTop.myMessage    = phoneRMessageBottom.myMessage;
        phoneRMessageBottom.myMessage = lastText;
        if (phoneRMessageTop.isGreen)
        {
            phoneRMessageTop.isGreen    = false;
            phoneRMessageBottom.isGreen = true;
        }
        else
        {
            phoneRMessageTop.isGreen    = true;
            phoneRMessageBottom.isGreen = false;
        }

        phoneLMessageTop.myMessage    = phoneLMessageBottom.myMessage;
        phoneLMessageBottom.myMessage = lastText;
        if (phoneLMessageTop.isGreen)
        {
            phoneLMessageTop.isGreen    = false;
            phoneLMessageBottom.isGreen = true;
        }
        else
        {
            phoneLMessageTop.isGreen    = true;
            phoneLMessageBottom.isGreen = false;
        }
    }
예제 #6
0
    public void readMessage()
    {
        PhoneMessage toDisp = messagesAdded[messageIndex];

        displayParent.SetActive(true);
        menuParent.SetActive(false);
        messageDisplaySender.text  = toDisp.sender;
        messageDisplayMessage.text = toDisp.messageText;
    }
예제 #7
0
        public async Task <List <PhoneMessage> > GetPhoneMessagesByStatus(Guid application, int status)
        {
            var result = new List <PhoneMessage>();

            Logger.Trace("BEGIN | Matrix.Server.Postman.Database.EmailRepository.GetPhoneMessagesByStatus");

            DbConnection connection = null;

            try
            {
                using (connection = GetDbConnection())
                {
                    await connection.OpenAsync();

                    dynamic entity = await connection.QueryAsync <dynamic>("SELECT [Id], [Application], [From], [Message], [Status] FROM [PhoneMessages] WHERE [Application] = @application AND [Status] = @status AND [Deleted] = @deleted", new { application, status, @deleted = false });

                    if (entity != null)
                    {
                        foreach (var i in entity)
                        {
                            var o = new PhoneMessage()
                            {
                                Id          = Parse.Guid(i.Id),
                                Application = Parse.Guid(i.Application),
                                From        = i.From,
                                Message     = i.Message,
                            };

                            dynamic list = await connection.QueryAsync <dynamic>("SELECT [Numer] FROM [EmailAddress] WHERE [PhoneMessageId] = @id AND [Deleted] = @deleted", new { o.Id, @deleted = false });

                            if (list != null)
                            {
                                foreach (var x in list)
                                {
                                    o.To.Add(x.Number);
                                }
                            }

                            result.Add(o);
                        }
                    }

                    connection.Close();
                }
            }
            catch (Exception e)
            {
                Logger.Trace("ERROR | Matrix.Server.Postman.Database.EmailRepository.GetPhoneMessagesByStatus");
                Logger.Error(e);
            }

            Logger.Trace("END | Matrix.Server.Postman.Database.EmailRepository.GetPhoneMessagesByStatus");

            return(result);
        }
예제 #8
0
        public void FinishPhoneMessageOperation(PhoneMessageType phoneMessageType)
        {
            PhoneMessage phoneMessage = _PhoneMessageDal.GetPhoneMessageByType(phoneMessageType);

            if (phoneMessage != null)
            {
                _PhoneMessageDal.FinishPhoneMessageByPKID(phoneMessage.PKID);
            }

            SendMessage();
        }
        public async Task <PhoneMessage> GetPhoneMessageById(Guid id)
        {
            PhoneMessage result = null;

            await Task.Run(() =>
            {
                result = Mapper.Map <Entities.PhoneMessage, PhoneMessage>(db.PhoneMessages.FirstOrDefault(i => i.Id.Equals(id)));
            });

            return(result);
        }
예제 #10
0
 /// <summary>
 /// 发送消息给下一个审核人
 /// </summary>
 public void SendConfirmMessage(Account nextassessor, PhoneMessageType phoneMessageType)
 {
     nextassessor = _AccountBll.GetAccountById(nextassessor.Id);
     if (nextassessor.IsAcceptSMS)
     {
         PhoneMessage phoneMessage = _PhoneMessageDal.GetPhoneMessageByType(phoneMessageType);
         phoneMessage.Assessor = nextassessor;
         phoneMessage.Status   = PhoneMessageStatus.ToBeSent;
         _PhoneMessageDal.UpdatePhoneMessage(phoneMessage);
     }
     SendMessage();
 }
예제 #11
0
        public void AddMessage()
        {
            PhoneMessage testMessage     = new PhoneMessage(new Contact("Nick", 0), "Test Message", DateTime.Now);
            PhoneMessage receivedMessage = new PhoneMessage(new Contact("Nick", 0), "Received Message", DateTime.Now);

            MessageStorage storage = new MessageStorage();

            storage.SMSShow += m => receivedMessage = m[0];
            storage.AddMessage(testMessage);

            Assert.AreEqual(testMessage, receivedMessage);
        }
예제 #12
0
        /// <summary>
        /// 修改短信内容
        /// </summary>
        public int UpdatePhoneMessage(PhoneMessage phoneMessage)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Value                  = phoneMessage.PKID;
            cmd.Parameters.Add(_AssessorID, SqlDbType.Int).Value            = phoneMessage.Assessor.Id;
            cmd.Parameters.Add(_AssessorName, SqlDbType.NVarChar, 50).Value = phoneMessage.Assessor.Name;
            cmd.Parameters.Add(_Message, SqlDbType.NVarChar, 1000).Value    = phoneMessage.Message;
            cmd.Parameters.Add(_Status, SqlDbType.Int).Value                = phoneMessage.Status;
            cmd.Parameters.Add(_Answer, SqlDbType.NVarChar, 1000).Value     = phoneMessage.Answer;
            cmd.Parameters.Add(_SendTime, SqlDbType.DateTime).Value         = phoneMessage.SendTime == null ? DBNull.Value : (object)phoneMessage.SendTime.Value;
            return(SqlHelper.ExecuteNonQuery("PhoneMessageUpdate", cmd));
        }
예제 #13
0
 /// <summary>
 /// 发送取消短消息
 /// </summary>
 public void SendCancelMessage(Account assessor, string message, PhoneMessageType phoneMessageType)
 {
     assessor = _AccountBll.GetAccountById(assessor.Id);
     if (assessor.IsAcceptSMS)
     {
         PhoneMessage phoneMessage = _PhoneMessageDal.GetPhoneMessageByType(phoneMessageType);
         phoneMessage.Assessor = assessor;
         phoneMessage.Message  = message;
         phoneMessage.Status   = PhoneMessageStatus.ToBeSent;
         _PhoneMessageDal.UpdatePhoneMessage(phoneMessage);
     }
     SendMessage();
 }
예제 #14
0
        /// <summary>
        ///
        /// </summary>
        public void FinishPhoneMessageOperationByAssessorID(PhoneMessageType phoneMessageType, int assessorID)
        {
            PhoneMessage phoneMessage = _PhoneMessageDal.GetPhoneMessageByType(phoneMessageType);

            if (phoneMessage != null)
            {
                if (phoneMessage.Assessor.Id == assessorID)
                {
                    _PhoneMessageDal.FinishPhoneMessageByPKID(phoneMessage.PKID);
                }
            }

            SendMessage();
        }
예제 #15
0
        public async Task <PhoneMessage> GetPhoneMessageById(Guid id)
        {
            PhoneMessage result = null;

            Logger.Trace("BEGIN | Matrix.Server.Postman.Database.EmailRepository.GetPhoneMessageById");

            DbConnection connection = null;

            try
            {
                using (connection = GetDbConnection())
                {
                    await connection.OpenAsync();

                    dynamic entity = await connection.QueryFirstOrDefaultAsync <dynamic>("SELECT [Id], [Application], [From], [Message] FROM [PhoneMessages] WHERE [Id] = @id AND [Deleted] = @deleted", new { id, @deleted = false });

                    if (entity != null)
                    {
                        result = new PhoneMessage()
                        {
                            Id          = Parse.Guid(entity.Id),
                            Application = Parse.Guid(entity.Application),
                            From        = entity.From,
                            Message     = entity.Message,
                        };

                        dynamic list = await connection.QueryAsync <dynamic>("SELECT [Numer] FROM [EmailAddress] WHERE [PhoneMessageId] = @id AND [Deleted] = @deleted", new { id, @deleted = false });

                        if (list != null)
                        {
                            foreach (var i in list)
                            {
                                result.To.Add(i.Number);
                            }
                        }
                    }

                    connection.Close();
                }
            }
            catch (Exception e)
            {
                Logger.Trace("ERROR | Matrix.Server.Postman.Database.EmailRepository.GetPhoneMessageById");
                Logger.Error(e);
            }

            Logger.Trace("END | Matrix.Server.Postman.Database.EmailRepository.GetPhoneMessageById");

            return(result);
        }
예제 #16
0
 /// <summary>
 /// 发送可被发送的消息
 /// </summary>
 /// <param name="phoneMessage"></param>
 private void SendCanSendMessage(PhoneMessage phoneMessage)
 {
     if (CanSend(phoneMessage))
     {
         if (phoneMessage.Status == PhoneMessageStatus.ToBeSent)
         {
             phoneMessage.Assessor = _AccountBll.GetAccountById(phoneMessage.Assessor.Id);
             _Sms.SendOneMessage(
                 new SendMessageDataModel(phoneMessage.PKID, phoneMessage.Assessor.MobileNum,
                                          phoneMessage.Message + _Format, SmsClientProcessCenter._HrmisId));
             phoneMessage.Status   = PhoneMessageStatus.ToBeConfirm;
             phoneMessage.SendTime = DateTime.Now;
             _PhoneMessageDal.UpdatePhoneMessage(phoneMessage);
         }
     }
 }
예제 #17
0
 /// <summary>
 /// 发送新的加班,外出,等业务
 /// </summary>
 public void SendNewMessage(Account requester, Account assessor, string message,
                            PhoneMessageType phoneMessageType)
 {
     assessor = _AccountBll.GetAccountById(assessor.Id);
     if (assessor.IsAcceptSMS)
     {
         PhoneMessage phoneMessage = new PhoneMessage();
         phoneMessage.Requester        = requester;
         phoneMessage.Message          = message;
         phoneMessage.PhoneMessageType = phoneMessageType;
         phoneMessage.Assessor         = assessor;
         phoneMessage.Status           = PhoneMessageStatus.ToBeSent;
         phoneMessage.Answer           = "";
         phoneMessage.PKID             = _PhoneMessageDal.InsertPhoneMessage(phoneMessage);
     }
     SendMessage();
 }
예제 #18
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="phoneMessage"></param>
        /// <returns></returns>
        public int InsertPhoneMessage(PhoneMessage phoneMessage)
        {
            int        pkid;
            SqlCommand cmd = new SqlCommand();

            cmd.Parameters.Add(_PKID, SqlDbType.Int).Direction               = ParameterDirection.Output;
            cmd.Parameters.Add(_RequesterID, SqlDbType.Int).Value            = phoneMessage.Requester.Id;
            cmd.Parameters.Add(_RequesterName, SqlDbType.NVarChar, 50).Value = phoneMessage.Requester.Name;
            cmd.Parameters.Add(_Type, SqlDbType.Int).Value                  = phoneMessage.PhoneMessageType.PhoneMessageEnumType;
            cmd.Parameters.Add(_TypeID, SqlDbType.Int).Value                = phoneMessage.PhoneMessageType.PKID;
            cmd.Parameters.Add(_Message, SqlDbType.NVarChar, 1000).Value    = phoneMessage.Message ?? "";
            cmd.Parameters.Add(_InsertTime, SqlDbType.DateTime).Value       = DateTime.Now;
            cmd.Parameters.Add(_AssessorID, SqlDbType.Int).Value            = phoneMessage.Assessor.Id;
            cmd.Parameters.Add(_AssessorName, SqlDbType.NVarChar, 50).Value = phoneMessage.Assessor.Name;
            cmd.Parameters.Add(_Status, SqlDbType.Int).Value                = phoneMessage.Status;
            cmd.Parameters.Add(_Answer, SqlDbType.NVarChar, 1000).Value     = phoneMessage.Answer ?? "";
            SqlHelper.ExecuteNonQueryReturnPKID("PhoneMessageInsert", cmd, out pkid);
            return(pkid);
        }
예제 #19
0
    void resetDisplay()
    {
        for (int x = 0; x < 4; x++)
        {
            if (messageIndex + x < messagesAdded.Count)
            {
                if (x == 0)
                {
                    messageDisplayText[x].color = Color.white;
                }
                else
                {
                    messageDisplayText[x].color = Color.grey;
                }

                messageDisplayText[x].gameObject.SetActive(true);
                PhoneMessage toDisp = messagesAdded[messageIndex + x];
                messageDisplayText[x].text = toDisp.sender + ":" + toDisp.daySend + "/" + toDisp.monthSend + "/" + toDisp.yearSend;
            }
            else
            {
                messageDisplayText[x].gameObject.SetActive(false);
            }
        }

        if (shouldWeDisplayAboveIndicator())
        {
            above.gameObject.SetActive(true);
        }
        else
        {
            above.gameObject.SetActive(false);
        }

        if (shouldWeDisplayBelowIndicator())
        {
            below.gameObject.SetActive(true);
        }
        else
        {
            below.gameObject.SetActive(false);
        }
    }
예제 #20
0
        public void SetFormatting()
        {
            string       testString      = "Test Message";
            PhoneMessage testMessage     = new PhoneMessage(new Contact("Nick", 0), testString, DateTime.Now);
            PhoneMessage receivedMessage = new PhoneMessage(new Contact("Nick", 0), "Received Message", DateTime.Now);

            MessageStorage storage = new MessageStorage();

            MessageStorage.SMSShowDelegate receive = m => receivedMessage = m[0];
            storage.SMSShow += receive;

            storage.SetViewSettings(new MessagesSettings(4, null, "", false, DateTime.Now, false, DateTime.Now, false));
            storage.AddMessage(testMessage);
            string receivedString = receivedMessage.FormatText;

            storage.SetViewSettings(new MessagesSettings(0, null, "", false, DateTime.Now, false, DateTime.Now, false));
            string expectingString = "TEST MESSAGE";

            Assert.AreEqual(expectingString, receivedString);
            Assert.AreEqual(testString, receivedMessage.FormatText);
        }
예제 #21
0
        public void ApplyFiltersAndCombined()
        {
            DateTime date1 = new DateTime(2019, 09, 01);
            DateTime date2 = new DateTime(2019, 09, 02);
            DateTime date3 = new DateTime(2019, 09, 03);

            PhoneMessage testMessage1 = new PhoneMessage(new Contact("Nick", 1), "Test Message51", date1);
            PhoneMessage testMessage2 = new PhoneMessage(new Contact("Nick", 2), "Test Message62", date2);
            PhoneMessage testMessage3 = new PhoneMessage(new Contact("Nick", 3), "Test Message73", date3);
            PhoneMessage testMessage4 = new PhoneMessage(new Contact("Nick", 1), "Test Message82", DateTime.MinValue);
            PhoneMessage testMessage5 = new PhoneMessage(new Contact("Nick", 1), "Test Message94", date3);
            PhoneMessage testMessage6 = new PhoneMessage(new Contact("Nick", 4), "Test Message02", date3);
            PhoneMessage testMessage7 = new PhoneMessage(new Contact("Nick", 1), "Test Message552", date3);

            MessageStorage storage = new MessageStorage();

            storage.AddMessage(testMessage1);
            storage.AddMessage(testMessage2);
            storage.AddMessage(testMessage3);
            storage.AddMessage(testMessage4);
            storage.AddMessage(testMessage5);
            storage.AddMessage(testMessage6);
            storage.AddMessage(testMessage7);
            storage.SetViewSettings(new MessagesSettings(0, "Nick 1", "2", false, DateTime.Now, false, DateTime.Now, true));
            List <PhoneMessage> contactTextTest = storage.ApplyFilters();

            storage.SetViewSettings(new MessagesSettings(0, "Nick 1", "", true, date3, true, date3, true));
            List <PhoneMessage> contactDateTest = storage.ApplyFilters();

            storage.SetViewSettings(new MessagesSettings(0, null, "2", true, date3, true, date3, true));
            List <PhoneMessage> textDateTest = storage.ApplyFilters();

            storage.SetViewSettings(new MessagesSettings(0, "Nick 1", "2", true, date3, true, date3, true));
            List <PhoneMessage> allFilterTest = storage.ApplyFilters();

            Assert.AreEqual(testMessage4, contactTextTest[0]);
            Assert.AreEqual(testMessage5, contactDateTest[0]);
            Assert.AreEqual(testMessage6, textDateTest[0]);
            Assert.AreEqual(testMessage7, allFilterTest[0]);
        }
예제 #22
0
        /// <summary>
        ///
        /// </summary>
        public PhoneMessage GetToBeConfirmPhoneMessageByAssessorID(int employeeID)
        {
            PhoneMessage phoneMessage = null;
            SqlCommand   cmd          = new SqlCommand();

            cmd.Parameters.Add(_AssessorID, SqlDbType.Int).Value = employeeID;
            using (SqlDataReader sdr = SqlHelper.ExecuteReader("GetToBeConfirmPhoneMessageByAssessorID", cmd))
            {
                while (sdr.Read())
                {
                    phoneMessage                  = new PhoneMessage();
                    phoneMessage.Message          = sdr[_DBMessage].ToString();
                    phoneMessage.PhoneMessageType = new PhoneMessageType((PhoneMessageEnumType)sdr[_DBType], Convert.ToInt32(sdr[_DBTypeID]));
                    phoneMessage.PKID             = Convert.ToInt32(sdr[_DBPKID]);
                    phoneMessage.Requester        = new Account(Convert.ToInt32(sdr[_DBRequesterID]), "", "");
                    phoneMessage.Assessor         = new Account(Convert.ToInt32(sdr[_DBAssessorID]), "", "");
                    phoneMessage.Answer           = sdr[_DBAnswer].ToString();
                    phoneMessage.Status           = (PhoneMessageStatus)sdr[_DBStatus];
                    phoneMessage.SendTime         = sdr[_DBSendTime] == DBNull.Value ? Convert.ToDateTime("2008-11-1") : Convert.ToDateTime(sdr[_DBSendTime]);
                }
            }
            return(phoneMessage);
        }
예제 #23
0
        public void ApplyFiltersOrCombined()
        {
            DateTime date1 = new DateTime(2019, 09, 01);
            DateTime date2 = new DateTime(2019, 09, 02);
            DateTime date3 = new DateTime(2019, 09, 03);

            PhoneMessage testMessage1 = new PhoneMessage(new Contact("Nick", 1), "Test Message1", date1);
            PhoneMessage testMessage2 = new PhoneMessage(new Contact("Nick", 2), "Test Message2", date2);
            PhoneMessage testMessage3 = new PhoneMessage(new Contact("Nick", 3), "Test Message3", date3);

            MessageStorage storage = new MessageStorage();

            storage.AddMessage(testMessage1);
            storage.AddMessage(testMessage2);
            storage.AddMessage(testMessage3);
            storage.SetViewSettings(new MessagesSettings(0, "Nick 1", "2", false, DateTime.Now, false, DateTime.Now, false));
            List <PhoneMessage> contactTextTest = storage.ApplyFilters();

            storage.SetViewSettings(new MessagesSettings(0, "Nick 1", "", true, date3, true, date3, false));
            List <PhoneMessage> contactDateTest = storage.ApplyFilters();

            storage.SetViewSettings(new MessagesSettings(0, null, "2", true, date3, true, date3, false));
            List <PhoneMessage> textDateTest = storage.ApplyFilters();

            storage.SetViewSettings(new MessagesSettings(0, "Nick 1", "2", true, date3, true, date3, false));
            List <PhoneMessage> allFilterTest = storage.ApplyFilters();

            Assert.AreEqual(testMessage1, contactTextTest[0]);
            Assert.AreEqual(testMessage2, contactTextTest[1]);
            Assert.AreEqual(testMessage1, contactDateTest[0]);
            Assert.AreEqual(testMessage3, contactDateTest[1]);
            Assert.AreEqual(testMessage2, textDateTest[0]);
            Assert.AreEqual(testMessage3, textDateTest[1]);
            Assert.AreEqual(testMessage1, allFilterTest[0]);
            Assert.AreEqual(testMessage2, allFilterTest[1]);
            Assert.AreEqual(testMessage3, allFilterTest[2]);
        }
예제 #24
0
        /// <summary>
        /// 当收到消息时的业务处理
        /// </summary>
        public void ReceiveMessage(Account assessor, string message)
        {
            assessor = _AccountBll.GetAccountById(assessor.Id);
            string returnMessage;

            if (ValideMessage(message))
            {
                PhoneMessage phoneMessage =
                    _PhoneMessageDal.GetToBeConfirmPhoneMessageByAssessorID(assessor.Id);
                if (phoneMessage != null)
                {
                    //处理审核信息,并发送消息
                    if (phoneMessage.Assessor.Id == assessor.Id && phoneMessage.Status == PhoneMessageStatus.ToBeConfirm)
                    {
                        phoneMessage.Answer = message;
                        _PhoneMessageDal.UpdatePhoneMessage(phoneMessage);
                        HandleConfirmMessage(phoneMessage);
                        //删除处理的记录
                        _PhoneMessageDal.FinishPhoneMessageByPKID(phoneMessage.PKID);
                        //发送被暂停的消息
                        SendMessage();
                    }
                }
                else
                {
                    returnMessage = "没有要处理的记录";
                    _Sms.SendOneMessage(
                        new SendMessageDataModel(-1, assessor.MobileNum, returnMessage, SmsClientProcessCenter._HrmisId));
                }
            }
            else
            {
                returnMessage = "格式错误,请再发一次" + _Format;
                _Sms.SendOneMessage(
                    new SendMessageDataModel(-1, assessor.MobileNum, returnMessage, SmsClientProcessCenter._HrmisId));
            }
        }
예제 #25
0
        public void ApplyFiltersSeparate()
        {
            PhoneMessage testMessage1 = new PhoneMessage(new Contact("Nick", 0), "Test Message1", DateTime.Now);
            PhoneMessage testMessage2 = new PhoneMessage(new Contact("Nick", 1), "Test Message2", DateTime.MaxValue);
            PhoneMessage testMessage3 = new PhoneMessage(new Contact("Nick", 2), "Test Message3", DateTime.Now);

            MessageStorage storage = new MessageStorage();

            storage.AddMessage(testMessage1);
            storage.AddMessage(testMessage2);
            storage.AddMessage(testMessage3);
            storage.SetViewSettings(new MessagesSettings(0, "Nick 0", "", false, DateTime.Now, false, DateTime.Now, false));
            List <PhoneMessage> contactFilterTest = storage.ApplyFilters();

            storage.SetViewSettings(new MessagesSettings(0, null, "3", false, DateTime.Now, false, DateTime.Now, false));
            List <PhoneMessage> textFilterTest = storage.ApplyFilters();

            storage.SetViewSettings(new MessagesSettings(0, null, "", true, DateTime.MaxValue, true, DateTime.MaxValue, false));
            List <PhoneMessage> dateFilterTest = storage.ApplyFilters();

            Assert.AreEqual(testMessage1, contactFilterTest[0]);
            Assert.AreEqual(testMessage3, textFilterTest[0]);
            Assert.AreEqual(testMessage2, dateFilterTest[0]);
        }
 /// <summary>
 ///
 /// </summary>
 public OutApplicationConfirm(PhoneMessage phoneMessage)
     : base(phoneMessage)
 {
 }
예제 #27
0
 /// <summary>
 /// 判断是否可以被发送
 /// </summary>
 private static bool CanSend(PhoneMessage phonemessage)
 {
     return(_PhoneMessageDal.CountToBeConfirmMessageWithSameAssessor(phonemessage.Assessor.Id) < 1);
 }
예제 #28
0
 private void HandleConfirmMessage(PhoneMessage phoneMessage)
 {
     _HandelConfirm.Excute(phoneMessage);
 }
예제 #29
0
 /// <summary>
 ///
 /// </summary>
 public OverWorkConfirm(PhoneMessage phoneMessage)
     : base(phoneMessage)
 {
 }
예제 #30
0
 /// <summary>
 ///
 /// </summary>
 public BasicConfirm(PhoneMessage phoneMessage)
 {
     _PhoneMessage          = phoneMessage;
     _PhoneMessage.Assessor = _AccountBll.GetAccountById(_PhoneMessage.Assessor.Id);
 }
예제 #31
0
        public static void ExcelToClass(string path)
        {
            FileInfo File = new FileInfo(path);

            using (ExcelPackage pck = new ExcelPackage(File))
            {
                var format = new ExcelTextFormat();
                format.Delimiter = '/';
                int            k  = pck.Workbook.Worksheets.Count;
                ExcelWorksheet ws = null;

                ws = pck.Workbook.Worksheets[1];
                bool flag = true;
                int  i    = 10;
                int  j    = 0;
                while (flag)
                {
                    string   tmp  = ws.Cells[i, 1].Value.ToString().Trim();
                    IMessage temp = null;
                    int      l    = i;
                    switch (ws.Cells[i, 2].Value.ToString().Trim())
                    {
                    case "0":
                    {
                        TextMessage text = new TextMessage();
                        text.Stage     = int.Parse(ws.Cells[i, 1].Value.ToString().Trim());
                        text.Message   = ws.Cells[i, 3].Value.ToString().Trim();
                        text.NextStage = int.Parse(ws.Cells[i, 5].Value.ToString().Trim());
                        temp           = text;
                        i++;
                        break;
                    }

                    case "1":
                    {
                        Question text = new Question();
                        int      p    = i;
                        text.Stage   = int.Parse(ws.Cells[i, 1].Value.ToString().Trim());
                        text.Message = ws.Cells[i, 3].Value.ToString().Trim();
                        while (ws.Cells[i, 1].Value.ToString().Trim() == tmp.Trim())
                        {
                            Answer ans = new Answer(ws.Cells[i, 4].Value.ToString().Trim(), int.Parse(ws.Cells[i, 5].Value.ToString().Trim()));
                            text.Answers.Add(ans);
                            i++;
                            if (ws.Cells[i, 1].Value == null)
                            {
                                break;
                            }
                        }
                        temp = text;
                        break;
                    }

                    case "2":
                    {
                        break;
                    }

                    case "3":
                    {
                        InlineImageGallery text = new InlineImageGallery();
                        int p = i;
                        text.Stage     = int.Parse(ws.Cells[i, 1].Value.ToString().Trim());
                        text.Message   = ws.Cells[i, 3].Value.ToString().Trim();
                        text.NextStage = int.Parse(ws.Cells[i, 5].Value.ToString().Trim());
                        while (ws.Cells[i, 1].Value.ToString().Trim() == tmp.Trim())
                        {
                            ImageGallery ans = new ImageGallery(text.Stage, "https://myvelde.com/data/bot/" + ws.Cells[i, 6].Value.ToString().Trim(), ws.Cells[i, 4].Value.ToString().Trim());
                            text.ImageGalleries.Add(ans);
                            i++;
                            if (ws.Cells[i, 1].Value == null)
                            {
                                break;
                            }
                        }
                        temp = text;

                        break;
                    }

                    case "4":
                    {
                        PhoneMessage text = new PhoneMessage();
                        text.Stage     = int.Parse(ws.Cells[i, 1].Value.ToString().Trim());
                        text.Message   = ws.Cells[i, 3].Value.ToString().Trim();
                        text.NextStage = int.Parse(ws.Cells[i, 5].Value.ToString().Trim());
                        temp           = text;
                        i++;
                        break;
                    }

                    case "5":
                    {
                        QuestionKitchen text = new QuestionKitchen();
                        int             p    = i;
                        text.Stage   = int.Parse(ws.Cells[i, 1].Value.ToString().Trim());
                        text.Message = ws.Cells[i, 3].Value.ToString().Trim();
                        while (ws.Cells[i, 1].Value.ToString().Trim() == tmp.Trim())
                        {
                            Answer ans = new Answer(ws.Cells[i, 4].Value.ToString().Trim(), int.Parse(ws.Cells[i, 5].Value.ToString().Trim()));
                            text.Answers.Add(ans);
                            i++;
                            if (ws.Cells[i, 1].Value == null)
                            {
                                break;
                            }
                        }
                        temp = text;
                        break;
                    }
                    }
                    if (flag != false)
                    {
                        messages.Add(temp);
                        // tmp = ws.Cells[i, 1].Value.ToString();
                    }

                    if (ws.Cells[i, 1].Value == null)
                    {
                        flag = false;
                    }
                }
            }
        }