Exemplo n.º 1
0
        public AdminViewModel()
        {
            _container = new UnityContainer();
            _container.RegisterType <IUserService, UserService>();
            _container.RegisterType <IClientService, ClientService>();
            _container.RegisterType <IClientMessageService, ClientMessageService>();
            _container.RegisterType <IDispatcherMessageService, DispatcherMessageService>();
            _modelUserService              = new ModelUserService(_container);
            _modelClientService            = new ModelClientService(_container);
            _modelClientMessageService     = new ModelClientMessageService(_container);
            _modelDespatcherMessageService = new ModelDespatcherMessageService(_container);

            _messages = new ObservableCollection <MessageAll>();

            _users              = _modelUserService.GetUsers();
            _clients            = _modelClientService.GetClients();
            _clentMessages      = _modelClientMessageService.GetClientMessage();
            _dispatcherMessages = _modelDespatcherMessageService.GetDispatcharMessage();

            _fromDate       = new DateTime(2019, 05, 01);
            _toDate         = DateTime.Now;
            _checkLoginText = "Enter Login!";

            OkCommandLinq = new RelayCommand(OnCommandLinq);
            SaveCommand   = new RelayCommand(OnSaveCommand, CanOnSaveExecute);
        }
        public DispatcherControlModel()
        {
            _botLogic  = new LogicBot();
            _container = new UnityContainer();
            _container.RegisterType <IClientMessageService, ClientMessageService>();
            _container.RegisterType <IClientService, ClientService>();
            _container.RegisterType <IDispatcherMessageService, DispatcherMessageService>();
            _container.RegisterType <IWorkTimeDispatcherService, WorkTimeDispatcherService>();
            _container.RegisterType <IUserService, UserService>();
            _modelClientMessageService     = new ModelClientMessageService(_container);
            _modelClientService            = new ModelClientService(_container);
            _modelDespatcherMessageService = new ModelDespatcherMessageService(_container);
            _modelUserService = new ModelUserService(_container);

            _clients     = _modelClientService.GetClients();
            _users       = _modelUserService.GetUsers();
            _clientsChat = new ObservableCollection <ClientInfo>();
            Messages     = new ObservableCollection <DisBotMessage>();

            _user         = new UserModel();
            _mainListBox  = new ListBox();
            _сhoiceClient = new ClientInfo();
            _isConnect    = true;


            Context            = SynchronizationContext.Current;
            SendMessageCommand = new RelayCommand(OnSendMessageCommandExecute);
            ConnectCommand     = new RelayCommand(OnConnectCommand);
            DisconnectCommand  = new RelayCommand(OnDisconnectCommand);

            _botLogic.LogStart += BotLogicLogStart;
            UserName            = ((MainWindow)Application.Current.MainWindow).tbLogin.Text;
            EventClosedWindow();
            InitUser();
        }
        private void BotLogicLogStart(object sender, BotEventArgs e)
        {
            Application.Current.Dispatcher.Invoke(() =>
            {
                AddClientInBdAndDTO(e);
                AddClientInCombaBox(e);

                var message = new DisBotMessage()
                {
                    Content   = e.Message.Content,
                    Date      = e.Message.Date,
                    LastName  = e.Message.LastName,
                    FirstName = e.Message.FirstName,
                    UserName  = e.Message.UserName,
                    FullName  = e.Message.FirstName,
                    Type      = DisBotMessage.MessageType.OutMessage,
                };

                Messages.Add(message);
                _mainListBox.ScrollIntoView(message);

                _clients  = _modelClientService.GetClients();
                var tmpId = 0;
                foreach (var item in _clients)
                {
                    if (item.TelegramId.Equals(e.Message.Id))
                    {
                        tmpId = item.Id;
                        break;
                    }
                }

                var messageDB = new ClientMessageInfo()
                {
                    MessageClient = e.Message.Content,
                    TimeMassage   = e.Message.Date,
                    UserId        = User.Id,
                    ClientId      = tmpId
                };

                _modelClientMessageService.Add(messageDB);

                if (_clients.Count != 0)
                {
                    IsSendMessage = true;
                }
            });
        }
        public DispatcherViewModel()
        {
            _botLogic  = new LogicBot();
            _container = new UnityContainer();
            _container.RegisterType <IClientMessageService, ClientMessageService>();
            _container.RegisterType <IClientService, ClientService>();
            _container.RegisterType <IDispatcherMessageService, DispatcherMessageService>();
            _container.RegisterType <IWorkTimeDispatcherService, WorkTimeDispatcherService>();
            _modelClientMessageService      = new ModelClientMessageService(_container);
            _modelClientService             = new ModelClientService(_container);
            _modelDespatcherMessageService  = new ModelDespatcherMessageService(_container);
            _modelWorkTimeDispatcherService = new ModelWorkTimeDispatcherService(_container);

            _clients     = _modelClientService.GetClients();
            _clientsChat = new ObservableCollection <ClientInfo>();

            _mainListBox = new ListBox();

            for (int i = 0; i < Application.Current.Windows.Count; i++)
            {
                var window = Application.Current.Windows[i];
                if (window.Tag == null)
                {
                    continue;
                }
                else if (window.Tag.Equals("DispatcherWindow"))
                {
                    Application.Current.Windows[i].Closing += DispatcherViewModel_Closed;
                    break;
                }
            }

            Messages           = new ObservableCollection <DisBotMessage>();
            _сhoiceClient      = new ClientInfo();
            _isConnect         = true;
            SendMessageCommand = new RelayCommand(OnSendMessageCommandExecute);
            ConnectCommand     = new RelayCommand(OnConnectCommand);
            DisconnectCommand  = new RelayCommand(OnDisconnectCommand);
            //EventPost();

            _botLogic.LogStart += _botLogic_LogStart;

            UserInfo = StaticLogicBot.UserInfo;
        }
        private void _botLogic_LogStart(object sender, BLL.Logic.EventsArgs.BotEventArgs e)
        {
            Application.Current.Dispatcher.Invoke(() =>
            {
                var countClientDB  = 0;
                var coutClientList = 0;

                if (_clients.Count == 0)
                {
                    var addClient = new ClientInfo()
                    {
                        FirstName  = _botLogic.Messages.FirstName,
                        LastName   = _botLogic.Messages.LastName,
                        TelegramId = _botLogic.Messages.Id,
                        Username   = _botLogic.Messages.UserName,
                    };

                    _modelClientService.Add(addClient);
                    _clients.Add(addClient);
                    _clientsChat.Add(addClient);
                }
                foreach (var client in _clients)
                {
                    if (client.TelegramId.Equals(_botLogic.Messages.Id))
                    {
                        break;
                    }
                    else if (!string.IsNullOrEmpty(client.TelegramId))
                    {
                        countClientDB++;
                    }

                    if (_clients.Count == countClientDB)
                    {
                        var addClient = new ClientInfo()
                        {
                            FirstName  = e.Message.FirstName,
                            LastName   = e.Message.LastName,
                            TelegramId = e.Message.Id,
                            Username   = e.Message.UserName,
                        };
                        _modelClientService.Add(addClient);
                        _clients.Add(addClient);
                        _clientsChat.Add(addClient);
                        break;
                    }
                }

                var addClientList = new ClientInfo()
                {
                    FirstName  = e.Message.FirstName,
                    LastName   = e.Message.LastName,
                    TelegramId = e.Message.Id,
                    Username   = e.Message.UserName,
                };


                if (_clientsChat.Count == 0)
                {
                    _clientsChat.Add(addClientList);
                }

                foreach (var item in _clientsChat)
                {
                    if (item.TelegramId.Equals(e.Message.Id))
                    {
                        break;
                    }
                    else if (!item.TelegramId.Equals(e.Message.Id))
                    {
                        coutClientList++;
                    }

                    if (coutClientList == _clientsChat.Count())
                    {
                        _clientsChat.Add(addClientList);
                        break;
                    }
                }
                var message = new DisBotMessage()
                {
                    Content   = e.Message.Content,
                    Date      = e.Message.Date,
                    LastName  = e.Message.LastName,
                    FirstName = e.Message.FirstName,
                    UserName  = e.Message.UserName,
                    Type      = DisBotMessage.MessageType.OutMessage,
                };


                Messages.Add(message);
                _mainListBox.ScrollIntoView(message);

                _clients  = _modelClientService.GetClients();
                var tmpId = 0;
                foreach (var item in _clients)
                {
                    if (item.TelegramId.Equals(e.Message.Id))
                    {
                        tmpId = item.Id;
                        break;
                    }
                }

                CheckUserName();

                var messageDB = new ClientMessageInfo()
                {
                    MessageClient = e.Message.Content,
                    TimeMassage   = e.Message.Date,
                    UserId        = UserInfo.Id,
                    ClientId      = tmpId
                };
                _modelClientMessageService.Add(messageDB);
                if (!String.IsNullOrEmpty(UserName))
                {
                    IsSendMessage = true;
                }
            });
        }
        private void EventPost()
        {
            UserInfo = StaticLogicBot.UserInfo;
            Console.WriteLine();
            _botLogic.Log += buffer =>
            {
                var countClientDB  = 0;
                var coutClientList = 0;

                if (_clients.Count == 0)
                {
                    var addClient = new ClientInfo()
                    {
                        FirstName  = _botLogic.Masseges.FirstName,
                        LastName   = _botLogic.Masseges.LastName,
                        TelegramId = _botLogic.Masseges.Id,
                        Username   = _botLogic.Masseges.UserName,
                    };

                    _modelClientService.Add(addClient);
                    _clients.Add(addClient);
                    _clientsChat.Add(addClient);
                }

                foreach (var client in _clients)
                {
                    if (client.TelegramId.Equals(_botLogic.Masseges.Id))
                    {
                        break;
                    }
                    else if (!string.IsNullOrEmpty(client.TelegramId))
                    {
                        countClientDB++;
                    }

                    if (_clients.Count == countClientDB)
                    {
                        var addClient = new ClientInfo()
                        {
                            FirstName  = _botLogic.Masseges.FirstName,
                            LastName   = _botLogic.Masseges.LastName,
                            TelegramId = _botLogic.Masseges.Id,
                            Username   = _botLogic.Masseges.UserName,
                        };
                        _modelClientService.Add(addClient);
                        _clients.Add(addClient);
                        _clientsChat.Add(addClient);
                        break;
                    }
                }

                var addClientList = new ClientInfo()
                {
                    FirstName  = _botLogic.Masseges.FirstName,
                    LastName   = _botLogic.Masseges.LastName,
                    TelegramId = _botLogic.Masseges.Id,
                    Username   = _botLogic.Masseges.UserName,
                };


                if (_clientsChat.Count == 0)
                {
                    _clientsChat.Add(addClientList);
                }

                foreach (var item in _clientsChat)
                {
                    if (item.TelegramId.Equals(_botLogic.Masseges.Id))
                    {
                        break;
                    }
                    else if (!item.TelegramId.Equals(_botLogic.Masseges.Id))
                    {
                        coutClientList++;
                    }

                    if (coutClientList == _clientsChat.Count())
                    {
                        _clientsChat.Add(addClientList);
                        break;
                    }
                }
                var message = new DisBotMessage()
                {
                    Content   = _botLogic.Masseges.Content,
                    Date      = _botLogic.Masseges.Date,
                    LastName  = _botLogic.Masseges.LastName,
                    FirstName = _botLogic.Masseges.FirstName,
                    UserName  = _botLogic.Masseges.UserName,
                    Type      = DisBotMessage.MessageType.OutMessage,
                };

                Messages.Add(message);
                _mainListBox.ScrollIntoView(message);

                _clients = _modelClientService.GetClients();
                var tmpId = 0;
                foreach (var item in _clients)
                {
                    if (item.TelegramId.Equals(_botLogic.Masseges.Id))
                    {
                        tmpId = item.Id;
                        break;
                    }
                }

                CheckUserName();

                var messageDB = new ClientMessageInfo()
                {
                    MessageClient = _botLogic.Masseges.Content,
                    TimeMassage   = _botLogic.Masseges.Date,
                    UserId        = UserInfo.Id,
                    ClientId      = tmpId
                };
                _modelClientMessageService.Add(messageDB);
                if (!String.IsNullOrEmpty(UserName))
                {
                    IsSendMessage = true;
                }
            };
        }