public void TestAddMessage()
        {
            MessageDetail message = new MessageDetail
            {
                MessageId = "1",
                Subject   = "First Message",
                Body      = "Body for First Message",
                TenantId  = "FirstTenant",
                SentBy    = "user1",
                SentTo    = new List <string> {
                    "user2", "user3"
                },
                CreatedOn      = DateTime.Now,
                LastModifiedOn = DateTime.Now,
                SentOn         = DateTime.Now,
                Status         = "DRAFT"
            };

            // Currently Dont know how the repository can be tested in LF framework
            //var repository = new MessageMongoRepository();
            //var service = new MessageService(repository);

            //var result = service.Add(message);

            //result.Wait();
            //Assert.True(result.Result);
        }
Example #2
0
        public void AdminSendMessage(string toUserId, string message)
        {
            string fromAdminId   = Context.ConnectionId;
            var    toUser        = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == toUserId);
            var    fromAdminUser = ConnectedUsers.FirstOrDefault(x => x.ConnectionId == fromAdminId);

            if (toUser != null && fromAdminUser != null)
            {
                var meeting = ListMeeting.SingleOrDefault(x => x.Id == toUserId);

                if (meeting != null)
                {
                    meeting.Messages = SetStatusAllMessageInMeeting(meeting, 1);
                    var message_ = new MessageDetail {
                        ConnectionId = toUserId, UserName = toUser.UserName, IsAdmin = 1, Status = 0, CreateDate = DateTime.Now, Message = message
                    };
                    var messages_ = meeting.Messages;
                    messages_.Add(message_);
                    meeting.Messages = messages_;
                }
                var last_message = meeting.Messages.Where(x => x.Status == 0).OrderByDescending(x => x.CreateDate).FirstOrDefault();

                Clients.Client(toUserId).SendAsync("onGuestReceivedMessage", fromAdminId, fromAdminUser.UserName, message, "left") /*.onGuestReceivedMessage(fromAdminId, fromAdminUser.UserName, message, "left");*/;
                Clients.Caller.SendAsync("onAdminReceivedMessage", toUserId, fromAdminUser.UserName, message, "right", new { lastmessage = last_message, countunread = 0 }) /*.onAdminReceivedMessage(toUserId, fromAdminUser.UserName, message, "right", new { lastmessage = last_message, countunread = 0 })*/;
            }
        }
Example #3
0
        public MessageResponeModel Add(MessageDetail message)
        {
            MessageResponeModel returnModel = new MessageResponeModel();

            if (message.MessageGroupID == 0)
            {
                returnModel.MessageID = "002";
                returnModel.Message   = MessageList.GetMessage("002", new string[] { "group id" });
                return(returnModel);
            }

            if (string.IsNullOrEmpty(message.Content))
            {
                returnModel.MessageID = "002";
                returnModel.Message   = MessageList.GetMessage("002", new string[] { "nội dung" });
                return(returnModel);
            }
            int result = messageDetailDA.Add(message);

            if (result == 1)
            {
                returnModel.MessageID = "003";
                returnModel.Message   = MessageList.GetMessage("003", new string[] { });
            }
            else
            {
                returnModel.MessageID = "002";
                returnModel.Message   = MessageList.GetMessage("002", new string[] { });
            }
            return(returnModel);
        }
Example #4
0
        public IEnumerable <Conversation> GetByUserId(string id)
        {
            var conversations = _conversations.AsQueryable()
                                .Where(x => x.Receivers.Contains(id))
                                .ToList();
            MessageDetail tempMessage = null;

            conversations.ForEach(c =>
            {
                c.Users     = GetAllUserInConversation(c.Id).ToList();
                tempMessage = _messages.Find(m => m.ConversationId == c.Id)
                              .SortByDescending(m => m.Time)
                              .Limit(1)
                              .FirstOrDefault();
                if (tempMessage == null)
                {
                    tempMessage = new MessageDetail()
                    {
                        Time           = c.CreatedDate,
                        Content        = "",
                        ConversationId = c.Id
                    };
                }
                c.LastMessage = tempMessage;
            });

            conversations = conversations.OrderByDescending(c => c.LastMessage.Time).ToList();

            return(conversations);
        }
        public async Task <bool> SendEmailAsync(string token, string subject, string body)
        {
            var model = new MessageDetail()
            {
                Body    = body,
                Subject = subject
            };
            var myContent   = JsonConvert.SerializeObject(model);
            var buffer      = System.Text.Encoding.UTF8.GetBytes(myContent);
            var byteContent = new ByteArrayContent(buffer);

            byteContent.Headers.ContentType = new MediaTypeHeaderValue(HttpConstants.MEDIA_TYPE_APPLICATION_FORM);
            byteContent.Headers.Add(App.Configuration.AppConfig.TokenHeaderName, token);
            var requestUri = ClientService.GetRequestUri(ControllerName, "send");
            var response   = await ClientService.PostAsync(requestUri, byteContent);

            if (response != null)
            {
                Task <string> jsonTask = response.Content.ReadAsStringAsync();
                var           result   = JsonConvert.DeserializeObject(jsonTask.Result);
                if (jsonTask.Result.Contains(HttpConstants.SUCCESS))
                {
                    return(true);
                }
            }

            return(false);
        }
Example #6
0
        private int AddMessageinCache(MessageDetail _MessageDetail)
        {
            int Recent_id = 0;

            #region Save Message Detail in Database
            using (var conn = new MySqlConnection(ConnectionString.Get("EscademyMDB")))
            {
                conn.Open();
                using (var cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "INSERT INTO esc_chat (Sender_Id, Receiver_id, Message, Status, Created_at) VALUES (@senderId, @receiverId, @message, @status, @createdAt)";

                    cmd.Parameters.AddWithValue("@senderId", _MessageDetail.FromUserID);
                    cmd.Parameters.AddWithValue("@receiverId", _MessageDetail.ToUserID);
                    cmd.Parameters.AddWithValue("@message", _MessageDetail.Message);
                    cmd.Parameters.AddWithValue("@status", 0);
                    cmd.Parameters.AddWithValue("@createdAt", _MessageDetail.ExactMessageSentDateTime);
                    cmd.ExecuteNonQuery();
                    Recent_id = Convert.ToInt32(cmd.LastInsertedId);
                }
                conn.Close();
            }
            #endregion

            #region Add Message in Cache
            CurrentMessage.Add(_MessageDetail);
            if (CurrentMessage.Count > 100)
            {
                CurrentMessage.RemoveAt(0);
            }
            #endregion

            return(Recent_id);
        }
Example #7
0
        public MessageDetail AddMessage(string senderId, string receiverId, MessageDetail message)
        {
            var conversation = _conversationRepository.FindPrivateConversationByReceiverId(senderId, receiverId);

            if (conversation == null)
            {
                conversation = new Conversation()
                {
                    Id        = ObjectId.GenerateNewId().ToString(),
                    Type      = "private",
                    Receivers = new List <string>()
                    {
                        message.FromUserId, receiverId
                    },
                    CreatedDate = DateTime.Now,
                    SeenIds     = new List <string>()
                    {
                        message.FromUserId
                    }
                };
                conversation = _conversationRepository.Add(conversation);
            }
            else
            {
                conversation.SeenIds = new List <string>()
                {
                    message.FromUserId
                };
                _conversationRepository.Update(conversation);
            }

            message.ConversationId = conversation.Id;

            return(_messageRepository.Add(message));
        }
Example #8
0
        /// <summary>
        /// 添加一条信息详情
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public int AddMessageDetail(MessageDetail model)
        {
            StringBuilder strSql = new StringBuilder();

            strSql.Append(
                "insert into MessageDetail (BatchId,AccId,Title,Content,ArriveMark,OpenMark,ChannelId,Remark,CreateTime,AccIdNumber,ContentType,ContentUrl) " +
                "Values(@BatchId,@AccId,@Title,@Content,@ArriveMark,@OpenMark,@ChannelId,@Remark,@CreateTime,@AccIdNumber,@ContentType,@ContentUrl)");

            try
            {
                int reVal = DapperHelper.Execute(strSql.ToString(), new
                {
                    BatchId     = model.BatchId,
                    AccId       = model.AccId,
                    Title       = model.Title,
                    Content     = model.Content,
                    ArriveMark  = 0,
                    OpenMark    = 0,
                    ChannelId   = model.ChannelId,
                    Remark      = model.Remark,
                    CreateTime  = DateTime.Now,
                    AccIdNumber = model.AccIdNumber,
                    ContentType = model.ContentType,
                    ContentUrl  = model.ContentUrl
                });

                return(reVal);
            }
            catch (Exception ex)
            {
                Logger.Error("插入批次" + model.BatchId + "消息详情出错", ex);
                return(0);
            }
        }
Example #9
0
        public static void Main()
        {
            try
            {
                BulkSMS_API api = new BulkSMS_API(sAPIBaseURL, sAPITokenId, sSecret);

                Console.WriteLine("==[ ReadProfile() ]==========================================================");
                Profile p = api.ReadProfile();
                Console.WriteLine("First Name: " + p.firstName);

                Console.WriteLine("==[ QueryMessages(...) ]=====================================================");
                var qm = api.QueryMessages();
                if (qm != null)
                {
                    foreach (MessageDetail qm_md in qm)
                    {
                        Console.WriteLine(qm_md.id);
                    }
                }

                Console.WriteLine("==[ BlockedNumbers(...) ]====================================================");
                var bns = api.BlockedNumbers();
                if (bns != null)
                {
                    foreach (BlockedNumber bn in bns)
                    {
                        Console.WriteLine("Blocked Number: " + bn.phoneNumber);
                    }
                }

                Console.WriteLine("==[ GetMessage(...) ]========================================================");
                MessageDetail md = api.GetMessage("799777944003158017");
                Console.WriteLine("GetMessage: " + md.id);

                Console.WriteLine("==[ GetRelatedMessages(...) ]================================================");
                var rm = api.GetRelatedMessages("799777944003158017");
                if (rm != null)
                {
                    foreach (MessageDetail rm_md in rm)
                    {
                        Console.WriteLine(rm_md.id);
                    }
                }

                SendMessages();
            }
            catch (BulkSMSException bx)
            {
                Console.WriteLine("BulkSms error occurred.");

                Console.WriteLine(bx.Message);
                Console.WriteLine(bx.BulkSmsError.title);
                Console.WriteLine(bx.BulkSmsError.status);
                Console.WriteLine(bx.BulkSmsError.type);
                Console.WriteLine(bx.BulkSmsError.detail);
            }

            Console.Write("Press <ENTER>.");
            Console.ReadLine();
        }
Example #10
0
        public async Task <IActionResult> SendPrivateMessage(MessageDetail message)
        {
            if (!ConnectedUsers.Any(x => x.UserId.Equals(message.FromUserId)))
            {
                throw new InvalidOperationException(Resources.UserIsDisconnected);
            }

            var toUser = ConnectedUsers.FirstOrDefault(x => x.UserId == message.ToUserId);

            if (toUser is null)
            {
                throw new InvalidOperationException(Resources.UserIsDisconnected);
            }

            await Clients.AllExcept(Context.ConnectionId)
            .SendAsync(ChatHubMethods.UpdateUnreadMessages, message.FromUserId);

            // send a private message to listener user
            await Clients.Client(toUser.ConnectionId)
            .SendAsync(ChatHubMethods.ReceiveMessage, message);

            AddMessageInCache(message);

            return(new OkResult());
        }
Example #11
0
        /// <summary>
        /// Updates geocodable information.
        /// </summary>
        /// <param name="needMessage">Need show message.</param>
        /// <param name="candidate">Geocoded candidate (can be NULL).</param>
        /// <param name="obj">Source object to geocoded candidate.</param>
        private void _UpdateGeocodableInfo(bool needMessage,
                                           AddressCandidate candidate,
                                           AppData.DataObject obj)
        {
            Debug.Assert(null != obj); // Created.

            IGeocodable geocodable = _GetGeocodable(obj);

            geocodable.GeoLocation = null;

            if ((null == candidate) || (candidate.Score <= App.Current.Geocoder.MinimumMatchScore))
            {
                // Not geocoded.
                geocodable.Address.MatchMethod = string.Empty;
            }
            else
            {
                GeocodeHelpers.SetCandidate(geocodable, candidate);
                ++_geocodedCount;

                // Store warning.
                if (needMessage)
                {
                    string objectName      = _informer.ObjectName;
                    string errorTextFormat =
                        App.Current.GetString("ImportProcessStatusRecordOutMapExtendGeocodedFormat",
                                              objectName.ToLower(),
                                              "{0}",
                                              objectName);
                    var description =
                        new MessageDetail(MessageType.Warning, errorTextFormat, obj);
                    _details.Add(description);
                }
            }
        }
Example #12
0
        public Task SendMessage(MessageDetail message)
        {
            string methodName = Guid.Empty.Equals(message.ToUserId) ?
                                ChatHubMethods.CacheMessage : ChatHubMethods.SendPrivateMessage;

            return(_connection.InvokeAsync(methodName, message));
        }
Example #13
0
    /// <summary>
    /// 点击好友列表页面的发送消息按钮
    /// </summary>
    /// <param name="param"></param>
    private void ClickSendToFriend(object param)
    {
        button.clip = sendMsg;
        button.Play();
        var chatMsg = new mmopb.sendMessageToOnlineFriend_req();

        friendView.chatPanle.SetActive(true);
        GameObject   friend       = (GameObject)param;
        FriendDetail friendDetail = friend.GetComponentInChildren <FriendDetail>();

        roleId_chat = friendDetail.friendId;
        friendDetail.messageNotice.SetActive(false);

        //加载预制体
        GameObject _message = Resources.Load("MessageFriend") as GameObject;

        LinkedList <Message> friendMsg;

        if (messages.TryGetValue(roleId_chat, out friendMsg))
        {
            foreach (Message friend_message in friendMsg)
            {
                // 对象初始化
                GameObject    message       = Instantiate(_message, friendView.chatParentTransForm);
                MessageDetail messageDetail = message.GetComponent <MessageDetail>();

                DateTime dt = DateTime.Parse("1970-01-01 00:00:00").AddSeconds(friend_message.Time);
                dt = dt.AddSeconds(8 * 60 * 60);     // +8h的时差
                string time = dt.ToString("HH:mm:ss");
                messageDetail.time.text    = "【" + time + "】";
                messageDetail.name.text    = friend_message.Name;
                messageDetail.content.text = ":" + friend_message.Content;
            }
        }
    }
Example #14
0
        public MessageDetail SendMessage(string message)
        {
            MessageDetail ret = new MessageDetail();

            ret.sendHistory.Add(String.Format("ABCProvider : {0}", message));
            return(ret);
        }
        public int Read(byte[] recieveBuffer, ref IPEndPoint ipFrom)
        {
            lock (messagesBuffer)
            {
                if (messageDetails.Count == 0)
                {
                    return(0);
                }

                MessageDetail detail = messageDetails.Dequeue();

                // If no more details remain all messages have been read from buffer, reset index
                // so future messages can re-use the messagesBuffer.
                //
                // ASSUMPTION: We will never receive more messages than messageBuffer can hold
                //             between reads to read all messages
                //
                if (messageDetails.Count == 0)
                {
                    messagesBufferIndex = 0;
                }

                // Try assign ipFrom to IPEndPoint message received from
                if (!IPEndPoint.TryParse(detail.RemoteAddress.RawName, detail.RemotePort, out ipFrom))
                {
                    localPeer.Log(LogLevel.Error, String.Format("Failed to parse remote end point: {0}:{1}", detail.RemoteAddress.RawName, detail.RemotePort));
                    return(0);
                }

                System.Buffer.BlockCopy(messagesBuffer, detail.Index, recieveBuffer, 0, detail.Count);

                return(detail.Count);
            }
        }
Example #16
0
        private async void SendMessage()
        {
            var message = new MessageDetail
            {
                FromUserId   = FromUser.UserId,
                FromUserName = FromUser.UserName,
                ToUserId     = ToUser.UserId,
                MessageDate  = DateTime.Now,
                Message      = Message
            };

            try
            {
                await _chatHub.SendMessage(message);

                Device.BeginInvokeOnMainThread(() =>
                {
                    IsProcessing         = true;
                    message.FromUserName = "******";
                    Messages.Add(message);
                    RaisePropertyChanged(nameof(MessagesCount));
                    Message      = "";
                    IsProcessing = false;
                });
            }
            catch (Exception)
            {
                await _dialogService.DisplayAlertAsync("Error", Resources.UnableToSendTheMessage, "Ok");
            }
        }
Example #17
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Showes process results with details in message window.
        /// </summary>
        /// <param name="importer">Importer object.</param>
        /// <param name="geocoder">Geocoder object (can be NULL).</param>
        /// <param name="storage">Storage object</param>
        /// <param name="status">Status text.</param>
        public void Inform(Importer importer, Geocoder geocoder, Storage storage, string status)
        {
            Debug.Assert(!string.IsNullOrEmpty(status)); // not empty
            Debug.Assert(null != importer);              // created
            Debug.Assert(null != storage);               // created

            var details = new List <MessageDetail>();

            // add statistic
            string statistic = _CreateStatistic(importer, geocoder, storage);

            Debug.Assert(!string.IsNullOrEmpty(statistic));
            var statisticDetail = new MessageDetail(MessageType.Information, statistic);

            details.Add(statisticDetail);

            // add geocoder exception
            if ((null != geocoder) &&
                (null != geocoder.Exception))
            {
                details.Add(_GetServiceMessage(geocoder.Exception));
            }

            // add steps deatils
            details.AddRange(importer.Details);
            if (null != geocoder)
            {
                details.AddRange(geocoder.Details);
            }
            details.AddRange(storage.Details);

            // show status with details
            App.Current.Messenger.AddMessage(status, details);
        }
Example #18
0
        public void SendToConversation(string senderId, string conversationId, string message)
        {
            var messageObject = new MessageDetail()
            {
                Id             = ObjectId.GenerateNewId().ToString(),
                Content        = message,
                ConversationId = conversationId,
                FromUserId     = senderId,
                Time           = DateTime.Now
            };

            _conversationRepository.UpdateSeenIds(conversationId, new List <string>()
            {
                senderId
            });
            _messageRepository.Add(messageObject);

            var users = _conversationRepository.GetAllUserInConversation(conversationId);

            foreach (var user in users)
            {
                if (user.Connections != null)
                {
                    Clients.Clients(user.Connections).SendAsync("clientMessageListener", conversationId, messageObject);
                }
            }
        }
        public async Task <IActionResult> PutMessageDetail(string id, MessageDetail messageDetail)
        {
            if (id != messageDetail.MessageSid)
            {
                return(BadRequest());
            }

            _context.Entry(messageDetail).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MessageDetailExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #20
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Showes process results with details in message window.
        /// </summary>
        /// <param name="importer">Importer object.</param>
        /// <param name="geocoder">Geocoder object (can be NULL).</param>
        /// <param name="storage">Storage object</param>
        /// <param name="status">Status text.</param>
        public void Inform(Importer importer, Geocoder geocoder, Storage storage, string status)
        {
            Debug.Assert(!string.IsNullOrEmpty(status)); // not empty
            Debug.Assert(null != importer); // created
            Debug.Assert(null != storage); // created

            var details = new List<MessageDetail>();

            // add statistic
            string statistic = _CreateStatistic(importer, geocoder, storage);
            Debug.Assert(!string.IsNullOrEmpty(statistic));
            var statisticDetail = new MessageDetail(MessageType.Information, statistic);
            details.Add(statisticDetail);

            // add geocoder exception
            if ((null != geocoder) &&
                (null != geocoder.Exception))
            {
                details.Add(_GetServiceMessage(geocoder.Exception));
            }

            // add steps deatils
            details.AddRange(importer.Details);
            if (null != geocoder)
                details.AddRange(geocoder.Details);
            details.AddRange(storage.Details);

            // show status with details
            App.Current.Messenger.AddMessage(status, details);
        }
        public async Task <ActionResult <MessageDetail> > PostMessageDetail(MessageDetail messageDetail)
        {
            _context.MessageDetails.Add(messageDetail);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetMessageDetail", new { id = messageDetail.MessageSid }, messageDetail));
        }
Example #22
0
        // GET: Message/Details/5
        public ActionResult Details(int id)
        {
            MessageDetail messageDetail = null;

            using (DBManager db = new DBManager())
            {
                string UserID                = User.Identity.Name;
                string procedureName         = "CPK.uspMessageDetail";
                List <SqlParameter> paraList = new List <SqlParameter>();
                paraList.Add(Common.GetParameter("MessageID", DbType.String, id, ParameterDirection.Input));
                if (User.IsInRole("Admin"))
                {
                    UserID = "Administrator";
                }
                paraList.Add(Common.GetParameter("UserID", DbType.String, UserID, ParameterDirection.Input));
                DataSet DbSet = db.GetSelectQuery(paraList, procedureName);
                messageDetail = Common.DataToClass <MessageDetail>(DbSet.Tables[0].Rows[0]);
                if (!User.IsInRole("Admin"))
                {
                    messageDetail.Recipients = string.Empty;
                }
                else
                {
                    string temp = messageDetail.Recipients;
                    messageDetail.Recipients = temp.Remove(temp.Length - 1);
                }
            }
            return(View(messageDetail));
        }
        public async Task <IActionResult> PutMessageDetail([FromRoute] int id, [FromBody] MessageDetail messageDetail)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != messageDetail.MsgId)
            {
                return(BadRequest());
            }

            _context.Entry(messageDetail).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MessageDetailExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Example #24
0
        /// <summary>
        /// Does import object.
        /// </summary>
        /// <param name="references">Dictionary property name to field position in data source.</param>
        /// <param name="currentNumber">Current record number.</param>
        private void _ImportObject(Dictionary <string, int> references, int currentNumber)
        {
            Debug.Assert(null != _profile);     // inited
            Debug.Assert(null != _provider);    // inited
            Debug.Assert(null != _projectData); // inited
            Debug.Assert(null != references);   // created

            try
            {
                ImportType   type = _profile.Type;
                ImportResult res  = CreateHelpers.Create(type,
                                                         references,
                                                         _provider,
                                                         _projectData,
                                                         _defaultDate);
                _IsObjectSkipped(res, currentNumber);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);

                // store problem description
                string text =
                    App.Current.GetString("ImportProcessStatusRecordFailed",
                                          _informer.ObjectName,
                                          currentNumber);
                var description = new MessageDetail(MessageType.Warning, text);
                _details.Add(description);
                ++_failedCount;
            }
        }
Example #25
0
 private static void AddMessageInCache(MessageDetail _MessageDetail)
 {
     CurrentMessages.Add(_MessageDetail);
     if (CurrentMessages.Count > 1000)
     {
         CurrentMessages.RemoveAt(0);
     }
 }
Example #26
0
 private void AddMessageinCache(MessageDetail _MessageDetail)
 {
     CurrentMessage.Add(_MessageDetail);
     if (CurrentMessage.Count > 100)
     {
         CurrentMessage.RemoveAt(0);
     }
 }
        private void UpdateDS(string message)
        {
            var messageDetail = new MessageDetail(user.Id, int.Parse(comboBoxUser.SelectedValue.ToString()), 1, message, DateTime.Now.ToString());
            var json          = new JavaScriptSerializer().Serialize(messageDetail);

            server.Send("AddMessage@" + json + "\n");
            string[] answer = boardcastView.Recv().Split('&');
            messageDetail.Massageid = int.Parse(answer[1]);
        }
Example #28
0
        protected void GetMessage(string ID)
        {
            DataSet dt = DbHelperSQL.Query("select * from sys_UserMessage where id ='" + ID + "'");

            DbHelperSQL.ExecuteSql("update sys_UserMessage set bRead='True' where id ='" + ID + "'");
            DataView dv = dt.Tables[0].DefaultView;

            MessageDetail.DataSource = dv;
            MessageDetail.DataBind();
        }
        public void TestAddMessage()
        {
            mockConversationRepository.Setup(x => x.FindPrivateConversationByReceiverId(It.IsAny <string>())).Returns(conversation);
            mockConversationRepository.Setup(x => x.Update(It.IsAny <Conversation>())).Returns(conversation);
            mockMessageRepository.Setup(x => x.Add(It.IsAny <MessageDetail>())).Returns(messageDetail);
            var           chatService         = new ChatService.Services.ChatService(mockConversationRepository.Object, mockMessageRepository.Object);
            MessageDetail messageDetailActual = chatService.AddMessage("5d4d0x2613376b00013a898z", messageDetail);

            Assert.AreEqual(messageDetailActual, messageDetail);
        }
Example #30
0
    public static string GetGroupMessages()
    {
        JavaScriptSerializer TheSerializer = new JavaScriptSerializer();

        //Si groupFacade est null on l'instancie
        if (groupFacade == null)
        {
            groupFacade = new GroupFacade();
        }

        //Si homeFacade est null on l'instancie
        if (homeFacade == null)
        {
            homeFacade = new HomeFacade();
        }

        //On ajoute a la liste following tous les groups aux quels l'utilisateur participe
        following = homeFacade.GetPersonGroups(theUser.Id);

        //On instance une nouvelle liste qui contiendera les id des groups aux quels l'utilisateur participe
        groupsId = new List <int>();

        //On initialise une nouvelle liste, qui contiendera des objets de MessageDetail
        List <MessageDetail> listMessageDetail = new List <MessageDetail>();

        //Pour chaque group dans la liste following
        foreach (group followingId in following)
        {
            //On initialise une nouvelle liste qui contiendera les messages
            List <Message> listMessage = new List <Message>();

            //On ajoute dans la liste groupMessages tous les messages des groups dans lesquels l'utilisateur participe
            groupMessages = groupFacade.GetGroupChatHistory(followingId.Id);

            //Pour chaque message de la liste groupMessages
            foreach (chathistory msg in groupMessages)
            {
                //..On ajoute dans la liste listMessage les messages qui se trouve dans la liste prit a partir des messages de groupe
                listMessage.Add(new Message
                {
                    authorName  = msg.person.Name,
                    message     = msg.Message,
                    dateMessage = msg.CreationDate.ToString()
                });
            }
            MessageDetail messageDetail = new MessageDetail
            {
                groupId = followingId.Id,
                Message = listMessage
            };
            listMessageDetail.Add(messageDetail);
        }
        // TheSerializer.Serialize(personId);
        return(TheSerializer.Serialize(listMessageDetail));
    }
Example #31
0
 /// <summary>
 /// 保存(新增、修改)
 /// </summary>
 /// <param name="keyValue">主键值</param>
 /// <param name="list">实体</param>
 /// <returns></returns>
 public bool SaveForm(string keyValue, MessageEntity ds)
 {
     try
     {
         if (!string.IsNullOrEmpty(keyValue))
         {
             ds.Modify(keyValue);
             this.BaseRepository().Update(ds);
         }
         else
         {
             ds.Create();
             this.BaseRepository().Insert(ds);
         }
         var num = this.BaseRepository().ExecuteBySql(string.Format("select count(id) from base_messagedetail where messageid='{0}'", ds.Id));
         if (num > 0)
         {
             this.BaseRepository().ExecuteBySql(string.Format("delete from base_messagedetail where messageid='{0}'", ds.Id));
         }
         if (!string.IsNullOrWhiteSpace(ds.UserId))
         {
             var arr = ds.UserId.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
             for (int i = 0; i < arr.Length; i++)
             {
                 var userEntity = new UserInfoService().GetUserInfoByAccount(arr[i]);
                 if (userEntity != null)
                 {
                     MessageDetail md = new MessageDetail();
                     md.UserAccount = userEntity.Account;
                     md.UserId      = userEntity.UserId;
                     md.UserName    = userEntity.RealName;
                     md.DeptCode    = userEntity.DepartmentCode;
                     md.DeptId      = userEntity.DepartmentId;
                     md.DeptName    = userEntity.DeptName;
                     if (userEntity.Account == ds.SendUser)
                     {
                         md.Status   = 1;
                         md.LookTime = DateTime.Now;
                     }
                     else
                     {
                         md.Status = 0;
                     }
                     md.MessageId = ds.Id;
                     new MessageDetailService().SaveForm(md.Id, md);
                 }
             }
         }
         return(true);
     }
     catch
     {
         return(false);
     }
 }
 internal void Setup(TextBox textBox, MessageDetail[] messages, bool showDetailsPanel)
 {
     this.lbxItems.Items.Clear();
     this.scPanels.Panel2Collapsed = !showDetailsPanel;
     if ((textBox == null) || (messages == null) || (messages.Length == 0))
     {
         this._textBox = null;
     }
     else
     {
         this._textBox = textBox;
         this.lbxItems.Items.AddRange(messages);
     }
     this.UpdateSelected();
 }
        /// <summary>
        /// Reports error occured due to failure of the specified service.
        /// </summary>
        /// <param name="service">The name of the failed service.</param>
        /// <param name="exception">The exception occured during reports building.</param>
        private void _ReportServiceError(string service, Exception exception)
        {
            Debug.Assert(exception != null);
            Debug.Assert(service != null);

            Logger.Error(exception);

            var message =
                App.Current.GetString(REPORT_SERVICE_FAILED_MESSAGE_KEY, service);

            if (exception is CommunicationException)
            {
                var detailsMessage =
                    App.Current.GetString(REPORT_SERVICE_CONNECTION_ERROR_KEY, service);

                var detail = new MessageDetail(MessageType.Error, detailsMessage);
                ICollection<MessageDetail> details =
                    CommonHelpers.CreateCollectionWithOneObject(detail);

                App.Current.Messenger.AddError(message, details);
            }
            else
            {
                CommonHelpers.AddServiceMessageWithDetail(message, service, exception);
            }
        }
Example #34
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        /// <summary>
        /// Gets service message as detail.
        /// </summary>
        /// <param name="ex">Service exception to conversion.</param>
        /// <returns>Created message detail.</returns>
        private MessageDetail _GetServiceMessage(Exception ex)
        {
            Debug.Assert(null != ex); // created

            App currentApp = App.Current;
            string service = currentApp.FindString("ServiceNameGeocoding");

            MessageDetail detail = null;

            var exCommunication = ex as CommunicationException;
            if (null == exCommunication)
            {   // other exception
                var exAuthentication = ex as AuthenticationException;
                if (null == exAuthentication)
                {   // all other exception
                    Debug.Assert(false); // not supported
                    Logger.Error(ex);

                    detail = new MessageDetail(MessageType.Warning, ex.Message);
                }
                else
                {   // authentication exception
                    string message = currentApp.GetString("ServiceAuthError",
                                                          service,
                                                          exAuthentication.ServiceName);
                    // create link to license page
                    var link = new Link(currentApp.FindString("LicencePanelText"),
                                        Pages.PagePaths.LicensePagePath,
                                        LinkType.Page);
                    detail = new MessageDetail(MessageType.Warning, message, link);
                }
            }
            else
            {   // communication exception
                string message =
                    CommonHelpers.FormatServiceCommunicationError(service, exCommunication);
                detail = new MessageDetail(MessageType.Warning, message);
            }

            return detail;
        }
 internal frmEntryMessages(IEntryMessageResultsConnection connector, TextBox textBox, MessageDetail[] messages, bool showDetailsPanel)
     : this(connector)
 {
     this.Setup(textBox, messages, showDetailsPanel);
 }
        /// <summary>
        /// Does print report.
        /// </summary>
        /// <param name="generator">Report generator object.</param>
        /// <param name="description">Report state description.</param>
        /// <param name="showPrintDialog">Need show print dialog flag.</param>
        /// <param name="copiesCount">Selecetd copies count.</param>
        /// <param name="isCanceled">Is operation ccancel by user.</param>
        /// <returns>Operation status message.</returns>
        private MessageDetail _DoPrint(ReportsGenerator generator,
                                       ReportStateDescription description,
                                       bool showPrintDialog,
                                       ref int copiesCount,
                                       ref bool isCanceled)
        {
            Debug.Assert(null != generator);
            Debug.Assert(null != description);

            isCanceled = false;
            MessageDetail detail = null;
            try
            {
                // generate report
                if (null == description.Report)
                    generator.RunReport(description);

                // init print dialog
                DDActiveReports.Document.Document document = description.Report.Document;
                document.PrintAborted +=
                    new DDActiveReports.Document.PrintAbortedEventHandler(Document_PrintAborted);
                DDActiveReports.Document.Printer printer = document.Printer;
                printer.PrinterSettings.PrintRange = PrintRange.SomePages;
                printer.PrinterSettings.FromPage = 1;
                printer.PrinterSettings.ToPage = description.Report.Document.Pages.Count;
                printer.PrinterSettings.PrintRange = PrintRange.AllPages;

                // select application printer
                ArcLogistics.App.PrinterSettingsStore settings = App.Current.PrinterSettingsStore;
                if (!string.IsNullOrEmpty(settings.PrinterName))
                {
                    description.Report.Document.Printer.PrinterName = settings.PrinterName;
                    description.Report.Document.Printer.DefaultPageSettings = settings.PageSettings;
                }

                // do printing
                if (!description.Report.Document.Print(showPrintDialog, true))
                    isCanceled = true;
                else
                {
                    if (showPrintDialog)
                    {
                        // store copies count
                        copiesCount = description.Report.Document.Printer.PrinterSettings.Copies;

                        // store printer settings in application
                        var prntSettings = description.Report.Document.Printer.PrinterSettings;
                        if (!string.IsNullOrEmpty(prntSettings.PrinterName))
                            settings.StoreSetting(prntSettings.PrinterName,
                                                  prntSettings.DefaultPageSettings);
                    }

                    string message = App.Current.GetString("ReportPreviewPrintDoneFormat",
                                                           description.ReportName);
                    detail = new MessageDetail(MessageType.Information, message);
                }
            }
            catch (Exception ex)
            {
                string message = App.Current.GetString("ReportPreviewPrintFailFormat",
                                                       description.ReportName);
                detail = _DoExceptionRoutine(message, ex, generator, description);
            }

            return detail;
        }
Example #37
0
        /// <summary>
        /// Updates geocodable information.
        /// </summary>
        /// <param name="needMessage">Need show message.</param>
        /// <param name="candidate">Geocoded candidate (can be NULL).</param>
        /// <param name="obj">Source object to geocoded candidate.</param>
        private void _UpdateGeocodableInfo(bool needMessage,
                                           AddressCandidate candidate,
                                           AppData.DataObject obj)
        {
            Debug.Assert(null != obj); // Created.

            IGeocodable geocodable = _GetGeocodable(obj);
            geocodable.GeoLocation = null;

            if ((null == candidate) || (candidate.Score <= App.Current.Geocoder.MinimumMatchScore))
            {
                // Not geocoded.
                geocodable.Address.MatchMethod = string.Empty;
            }
            else
            {
                GeocodeHelpers.SetCandidate(geocodable, candidate);
                ++_geocodedCount;

                // Store warning.
                if (needMessage)
                {
                    string objectName = _informer.ObjectName;
                    string errorTextFormat =
                        App.Current.GetString("ImportProcessStatusRecordOutMapExtendGeocodedFormat",
                                              objectName.ToLower(),
                                              "{0}",
                                              objectName);
                    var description =
                        new MessageDetail(MessageType.Warning, errorTextFormat, obj);
                    _details.Add(description);
                }
            }
        }
        /// <summary>
        /// Do deploying to route server.
        /// </summary>
        /// <param name="routes">Routes to deploy.</param>
        /// <param name="deploymentDate">Date/time to deploy routes for.</param>
        private void _DeployToRouteServer(
            IEnumerable<Route> routes,
            DateTime deploymentDate)
        {
            bool savedSuccessfully = false;
            var hasRoutesBeenSent = false;
            List<MessageDetail> details = new List<MessageDetail>();

            try
            {
                // Try to deploy.
                hasRoutesBeenSent = _app.Tracker.Deploy(routes, deploymentDate); // Exception

                // Save schedule changes to db.
                _app.Project.Save();

                savedSuccessfully = true;
            }
            catch (Exception ex)
            {
                // if some error occurs during.
                MessageDetail detail = new MessageDetail(MessageType.Error, ex.Message);
                details.Add(detail);

                Logger.Error(ex);
            }

            // Show deploy message in UI.
            // If routes was deployed.
            if (savedSuccessfully && hasRoutesBeenSent)
                _app.Messenger.AddInfo((string)_resourceDictionary["AllRoutesSent"]);
            // If there was nothing to deploy.
            else if (savedSuccessfully && !hasRoutesBeenSent)
                _app.Messenger.AddWarning((string)_resourceDictionary["NothingWasSent"]);
            // If there was error.
            else
                _app.Messenger.AddError((string)_resourceDictionary["FailedToSendRoutes"], details);
        }
        /// <summary>
        /// Check deploying type.
        /// </summary>
        /// <param name="routesConfigs">Config of routes to deploy.</param>
        /// <returns>True if need to deploy to tracking server. False otherwise.</returns>
        private bool _IsDeployToTrackingServer(IList<SentRouteConfig> routesConfigs)
        {
            // Get first selected route and check its type.
            foreach (SentRouteConfig sendedRouteConfig in routesConfigs)
            {
                if (sendedRouteConfig.IsChecked)
                {
                    MobileDevice mobileDevice = sendedRouteConfig.Route.Driver.MobileDevice;

                    if (mobileDevice == null)
                    {
                        mobileDevice = sendedRouteConfig.Route.Vehicle.MobileDevice;
                    }

                    if (mobileDevice.SyncType != SyncType.WMServer)
                    {
                        return false;
                    }
                }
            }

            // Show error in case of not all used mobile devices has unique tracking ID.
            if (!_IsTrackingIDUnique(routesConfigs))
            {
                string sendedMessage = (string)_resourceDictionary["FailedToSendRoutes"];

                List<MessageDetail> details = new List<MessageDetail>();
                string messageDetailText = (string)_resourceDictionary["MobileDevicesShouldHaveUniqueIDs"];
                MessageDetail detail = new MessageDetail(MessageType.Error, messageDetailText);
                details.Add(detail);
                _app.Messenger.AddError(sendedMessage, details);

                return false;
            }
            else
            {
                // Check that all routes has mobile device and its types is "Tracking server".
                if (!_IsMobileDevicesPresentWithTrackingType(routesConfigs))
                {
                    string messageDetailText = (string)_resourceDictionary["AllMobileDevicesShouldBePresentWithTrackingType"];
                    _app.Messenger.AddWarning(messageDetailText);
                }
            }

            return true;
        }
Example #40
0
 private void AddMessageinCache(string userName, string message)
 {
     string groupName = ConnectedUsers.FirstOrDefault(u => u.UserName == userName) == null ? "" : ConnectedUsers.FirstOrDefault(u => u.UserName == userName).Event;
     var m = new MessageDetail()
     {
         UserName = userName,
         Message = message,
         Sent = System.DateTime.Now,
         GroupName =groupName
     };
     CurrentMessage.Add(m);
     m.Save();
     if (CurrentMessage.Count > 100)
         CurrentMessage.RemoveAt(0);
 }
        /// <summary>
        /// Add info about failed layers in messagewindow.
        /// </summary>
        private void _AddFailedLayersInfo()
        {
            if (_failedLayers.Count > 0)
            {
                List<MessageDetail> details = new List<MessageDetail>();

                foreach (AgsLayer agsLayer in _failedLayers)
                {
                    string message = string.Format((string)App.Current.FindResource("LayerFailed"), agsLayer.MapLayer.Name);
                    MessageDetail messageDetail = new MessageDetail(MessageType.Error, message);
                    details.Add(messageDetail);
                }

                App.Current.Messenger.AddError((string)App.Current.FindResource("SomeMapLayersFailed"), details);

                // Clear to prevent error copies.
                _failedLayers.Clear();
            }
        }
        /// <summary>
        /// Add available service layers to map and process unavailable.
        /// </summary>
        private void _InitServiceLayers()
        {
            // Save AgsLayers to list
            _agsLayers = new List<AgsLayer>();
            map.Layers.Clear();
            foreach (MapLayer layer in this.Map.Layers)
            {
                AgsMapLayer agsMapLayer = layer as AgsMapLayer;
                AgsLayer wrap = AgsLayerFactory.CreateLayer(agsMapLayer.Server, layer);
                _agsLayers.Add(wrap);

                // subscribe to StateChanged event to react on server state changing
                agsMapLayer.Server.StateChanged += new EventHandler(Server_StateChanged);
                wrap.ArcGISLayer.InitializationFailed += new EventHandler<EventArgs>(ArcGISLayer_InitializationFailed);
                if (agsMapLayer.Server.State == ESRI.ArcLogistics.Services.AgsServerState.Authorized)
                    map.Layers.Add(wrap.ArcGISLayer);
            }

            // Check all layers availability and save it to details list
            List<MessageDetail> details = new List<MessageDetail>();

            foreach (MapLayer mapLayer in Map.Layers)
            {
                AgsMapLayer agsMapLayer = mapLayer as AgsMapLayer;
                if (agsMapLayer != null)
                {
                    if (agsMapLayer.Server.State == AgsServerState.Unavailable)
                    {
                        string format = (string)App.Current.FindResource("LayerUnavailable");
                        string errorMessage = string.Format(format, mapLayer.Name);
                        MessageDetail detail = new MessageDetail(MessageType.Error, errorMessage);
                        details.Add(detail);
                    }
                    else if (agsMapLayer.Server.State == AgsServerState.Unauthorized)
                    {
                        string format = (string)App.Current.FindResource("LayerNotAuthorized");
                        string errorMessage = string.Format(format, mapLayer.Name, agsMapLayer.Server.Title);
                        Link link = new Link((string)App.Current.FindResource("LicencePanelText"),
                            Pages.PagePaths.LicensePagePath, LinkType.Page);
                        MessageDetail detail = new MessageDetail(MessageType.Error, errorMessage, link);
                        details.Add(detail);
                    }
                }
            }

            // Add info to messenger in case of at least one unavailable layer
            if (details.Count > 0)
                App.Current.Messenger.AddError((string)App.Current.FindResource("SomeMapLayersCannotBeLoaded"), details);
        }
        /// <summary>
        /// Saves report routine.
        /// </summary>
        /// <param name="exporter">Exporter object.</param>
        /// <param name="exportDir">Export directory.</param>
        /// <param name="fileName">Export report file name (can be null).</param>
        /// <param name="fileExt">Export file extension.</param>
        /// <param name="generator">Report generator.</param>
        /// <param name="description">Report state descriiption.</param>
        /// <returns>Status messages.</returns>
        private MessageDetail _DoSaveReport(IDocumentExport exporter,
                                            string exportDir,
                                            string fileName,
                                            string fileExt,
                                            ReportsGenerator generator,
                                            ReportStateDescription description)
        {
            Debug.Assert(null != exporter);
            Debug.Assert(null != generator);
            Debug.Assert(null != description);
            Debug.Assert((null != exportDir) && (null != fileExt));

            MessageDetail detail = null;
            string fullFileName = null;
            try
            {
                string filename = (string.IsNullOrEmpty(fileName)) ?
                                    _ValidateFileName(description.ReportName) : fileName;
                fullFileName = Path.Combine(exportDir, filename + fileExt);

                if (null == description.Report)
                    generator.RunReport(description);

                exporter.Export(description.Report.Document, fullFileName);
                string message = App.Current.GetString("ReportPreviewSaveDoneFormat",
                                                       description.ReportName, fullFileName);
                detail = new MessageDetail(MessageType.Information, message);
            }
            catch (Exception ex)
            {
                string message = App.Current.GetString("ReportPreviewSaveFailFormat",
                                                       description.ReportName, fullFileName);
                detail = _DoExceptionRoutine(message, ex, generator, description);
            }

            return detail;
        }
        /// <summary>
        /// Method gets details messages about successfully assigned orders during
        /// routing operation. Details message are expanded by route names.
        /// </summary>
        /// <param name="schedule">Schedule.</param>
        /// <param name="info">Operation info.</param>
        /// <returns>Collection of message details.</returns>
        private ICollection<MessageDetail> _GetSuccessfullyAssignedOrdersDetails(
            Schedule schedule, AsyncOperationInfo info)
        {
            var routedOrdersDetails = new Collection<MessageDetail>();
            ICollection<Order> ordersToAssign = _GetOrdersToAssign(info);

            if (ordersToAssign == null)
                return routedOrdersDetails;

            // Find all pairs Route & Order.
            var detailsPairs = new List<KeyValuePair<Route, Order>>();

            foreach (Order order in ordersToAssign)
                foreach (Route route in schedule.Routes)
                    foreach (Stop stop in route.Stops)
                        if (stop.AssociatedObject is Order &&
                            ((Order)stop.AssociatedObject).Equals(order))
                        {
                            var pair = new KeyValuePair<Route, Order>(
                                route, order);

                            detailsPairs.Add(pair);
                        }

            string formatString =
                (string)App.Current.FindResource(ORDERS_SUCCESSFULLY_ASSIGNED);

            // Add messages expanded by Routes.
            foreach (Route route in schedule.Routes)
                foreach (KeyValuePair<Route, Order> pair in detailsPairs)
                {
                    if (pair.Key.Name == route.Name)
                    {
                        DataObject[] parameters = new DataObject[] { pair.Value, pair.Key };
                        MessageDetail detail = new MessageDetail(MessageType.Information,
                            formatString, parameters);
                        routedOrdersDetails.Add(detail);
                    }
                }

            return routedOrdersDetails;
        }