Example #1
0
        public bool AddMessage(MessageModel messageModel, out string error)
        {
            if (messageModel.TextOfMessage == null || string.IsNullOrWhiteSpace(messageModel.TextOfMessage))
            {
                error = "Сообщение пусто. Введите сообщение заново.";
                return(false);
            }

            lock (lockObj)
            {
                messageModel.MessageID = CurrentOrderNumber.ToString();
                var MessageIdInDB = Guid.NewGuid().ToString();
                OrderNumber_MessageSqlID.Add(CurrentOrderNumber++, MessageIdInDB);


                MessagesCache.Add(messageModel);

                SqlConnection.Open();
                var sqlCommand = new SqlCommand("INSERT INTO [Messages] (Id,Username, TextOfMessage, TimeOfMessage) " +
                                                "VALUES(@Id ,@Username, @TextOfMessage, @TimeOfMessage)",
                                                SqlConnection);

                sqlCommand.Parameters.AddWithValue("Id", MessageIdInDB);
                sqlCommand.Parameters.AddWithValue("Username", messageModel.UserName);
                sqlCommand.Parameters.AddWithValue("TextOfMessage", messageModel.TextOfMessage);
                sqlCommand.Parameters.AddWithValue("TimeOfMessage", messageModel.TimeOfMessage.ToString("dd.MM.yyyy HH:mm:ss.ffff"));
                sqlCommand.ExecuteNonQuery();
                SqlConnection.Close();

                error = null;
                return(true);
            }
        }
Example #2
0
        public override void Render()
        {
            if (DebugDrawInfo.Count == 0 && DebugLog.Count == 0)
            {
                return;
            }

            Vector2 startPosition = StartDrawPointFunc();
            Vector2 position      = startPosition;
            int     maxWidth      = 0;

            position.Y += 10;
            position.X -= 100;

            foreach (var msg in DebugDrawInfo)
            {
                var size = Graphics.DrawText(msg, 15, position, Color.Green, FontDrawFlags.Right);
                position.Y += size.Height;
                maxWidth    = Math.Max(size.Width, maxWidth);
            }
            DebugDrawInfo.Clear();
            foreach (var msg in DebugLog.ToList())
            {
                string displayText = msg.Message;
                if (msg.MessagesCount > 0)
                {
                    displayText = $"({msg.MessagesCount}) {displayText}";
                }

                var size = Graphics.DrawText(displayText, 15, position, msg.Color, FontDrawFlags.Right);

                position.Y += size.Height;
                maxWidth    = Math.Max(size.Width, maxWidth);
                if (msg.Exhausted)
                {
                    DebugLog.Remove(msg);
                    MessagesCache.Remove(msg.Message);
                }
            }

            if (maxWidth <= 0)
            {
                return;
            }
            var bounds = new RectangleF(startPosition.X - maxWidth - 45, startPosition.Y - 5,
                                        maxWidth + 50, position.Y - startPosition.Y + 10);


            Graphics.DrawImage("preload-start.png", bounds, Color.White);
            Graphics.DrawImage("preload-end.png", bounds, Color.White);
            Size   = bounds.Size;
            Margin = new Vector2(0, 5);
        }
Example #3
0
        public EntityService()
        {
            _dialogsCache = new DialogsCache();
            _friendsCache = new FriendsCache();
            _usersCache = new UsersCache();
            _imageCache = new ImageCache();
            _messagesCache = new MessagesCache();

            Dialogs = new ObservableCollection<Dialog>();
            Contacts = new ObservableCollection<PhoneContact>();
            Friends = new ObservableCollection<FriendViewModel>();
            FriendsRequests = new ObservableCollection<FriendViewModel>();
            FriendsMutual = new ObservableCollection<FriendViewModel>();
            AttachmentPhotos = new Dictionary<string, Stream>();
            OtherUsers = new ObservableCollection<UserInfo>();

            IsLoadingMessagesHistory = false;

            _settings = new Settings(new ProtectDataAdapter());

            _stateCounter = new StateCounter(0, new List<int>());

            DefaultAvatar = ResourceHelper.GetBitmap(@"/SlXnaApp1;component/Images/Photo_Placeholder.png");
            CurrentUser = new CurrentUserInfo(null, DefaultAvatar);

            App.Current.UpdatesService.UserBecomeOffline += UpdatesService_UserBecomeOffline;
            App.Current.UpdatesService.UserBecomeOnline += UpdatesService_UserBecomeOnline;
            App.Current.UpdatesService.MessageAdded += UpdatesService_MessageAdded;
            App.Current.UpdatesService.MessageDeleted += UpdatesService_MessageDeleted;
            App.Current.UpdatesService.MessageFlagsChanged += UpdatesService_MessageFlagsChanged;
            App.Current.UpdatesService.MessageRemovedFlags += UpdatesService_MessageRemovedFlags;
            App.Current.UpdatesService.MessageSetFlags += UpdatesService_MessageSetFlags;
            App.Current.UpdatesService.ChatChanged += UpdatesService_ChatChanged;
            App.Current.UpdatesService.TypingInChatStarted += UpdatesService_TypingInChatStarted;
            App.Current.UpdatesService.TypingInGroupChatStarted += UpdatesService_TypingInGroupChatStarted;

            try
            {
                var info = App.GetResourceStream(new Uri("Resources/Untitled.wav", UriKind.Relative));
                _soundEffect = SoundEffect.FromStream(info.Stream);
            }
            catch (Exception ex)
            {
                Debug.WriteLine("Loading SoundEffect failed: " + ex.Message);
            }
        }
Example #4
0
 public bool AddMessage(MessageModel message, out string error)
 {
     message.MessageID = (LastMessageID++).ToString();
     MessagesCache.Add(message);
     return(TryWriteMessage(message, MainMessagesFileName, FileMode.Append, out error));
 }