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); } }
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); }
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); } }
public bool AddMessage(MessageModel message, out string error) { message.MessageID = (LastMessageID++).ToString(); MessagesCache.Add(message); return(TryWriteMessage(message, MainMessagesFileName, FileMode.Append, out error)); }