Ejemplo n.º 1
0
        private void TasksList_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            TaskModel task = TasksList.SelectedItem as TaskModel;

            if (task != null)
            {
                TitleTxt.Text = task.TaskName;
                bool IsAlreadyFav = UserDB.IsFavouriteTask(task.TaskId, App.CurrentUser);
                if (!IsAlreadyFav)
                {
                    UserDB.AddFavouriteTaskIds(task.TaskId, App.CurrentUser);
                }
                fav = UserDB.GetFavorite(task.TaskId, App.CurrentUser);
                StarBtnDetails.DataContext = fav;
                comments = CommentDB.GetComments(task.TaskId);
                CommentsList.ItemsSource = comments;
                AddButton.Tag            = task.TaskId;
                DetailsFrame.Navigate(typeof(DetailView), task, new SuppressNavigationTransitionInfo());
            }
            double Acutalwidth = this.ActualWidth;

            if (ActualWidth < 700)
            {
                TasksList.Visibility           = Visibility.Collapsed;
                ComboboxPanel.Visibility       = Visibility.Collapsed;
                DetailAndDiscussion.Visibility = Visibility.Visible;
                BackBtn.Visibility             = Visibility.Visible;
            }
            if (ActualWidth >= 700)
            {
                TasksList.Visibility           = Visibility.Visible;
                DetailAndDiscussion.Visibility = Visibility.Visible;
            }
        }
Ejemplo n.º 2
0
        public void OnLoaded(TaskModel ZTask)
        {
            bool isAlreadyFav = UserDB.IsFavouriteTask(ZTask.TaskId, App.CurrentUser);

            if (!isAlreadyFav)
            {
                UserDB.AddFavouriteTaskIds(ZTask.TaskId, App.CurrentUser);
            }
            _favorite = UserDB.GetFavorite(ZTask.TaskId, App.CurrentUser);
            this.StarBtn.DataContext = _favorite;
        }
Ejemplo n.º 3
0
        protected override void Context()
        {
            _eventPublisher     = A.Fake <IEventPublisher>();
            _favoriteRepository = A.Fake <IFavoriteRepository>();
            _entityPathResolver = A.Fake <IEntityPathResolver>();
            _serializationTask  = A.Fake <ISerializationTask>();
            _dialogCreator      = A.Fake <IDialogCreator>();

            sut = new FavoriteTask(_favoriteRepository, _entityPathResolver, _eventPublisher, _dialogCreator, _serializationTask);

            _favorites = new Favorites();
            A.CallTo(() => _favoriteRepository.Favorites).Returns(_favorites);
        }
Ejemplo n.º 4
0
        public static FavoriteTask GetFavorite(long taskId, string userName)
        {
            FavoriteTask fav   = new FavoriteTask();
            var          query = DBAdapter.Connection.Table <FavoriteTask>();

            foreach (FavoriteTask task in query)
            {
                if (task.TaskId == taskId && task.UserName.Equals(userName))
                {
                    fav = task;
                    break;
                }
            }
            return(fav);
        }
Ejemplo n.º 5
0
 public static void AddFavouriteTaskIds(long taskId, string userName)
 {
     if (!(UserDB.IsFavouriteTask(taskId, userName)))
     {
         FavoriteTask favorite = new FavoriteTask()
         {
             TaskId = taskId, UserName = userName, IsFavourite = false
         };
         DBAdapter.Connection.Insert(favorite);
     }
     else
     {
         var query   = DBAdapter.Connection;
         var comment = query.Table <FavoriteTask>().Where(excomment => excomment.TaskId == taskId && excomment.UserName.Equals(userName)).SingleOrDefault();
         comment.IsFavourite = true;
         query.Update(comment);
     }
 }
Ejemplo n.º 6
0
        protected override void OnBackgroundActivated(BackgroundActivatedEventArgs args)
        {
            base.OnBackgroundActivated(args);


            // Run the background task accordingly
            if (args.TaskInstance.Task.Name.CompareTo(nameof(TileUpdateTask)) == 0)
            {
                var activity = new TileUpdateTask();
                activity.Run(args.TaskInstance);
            }
            else if (args.TaskInstance.Task.Name.CompareTo(nameof(WallpaperUpdateTask)) == 0)
            {
                var activity = new WallpaperUpdateTask();
                activity.Run(args.TaskInstance);
            }
            else if (args.TaskInstance.Task.Name.CompareTo(nameof(LockscreenUpdateTask)) == 0)
            {
                var activity = new LockscreenUpdateTask();
                activity.Run(args.TaskInstance);
            }
            else if (args.TaskInstance.Task.Name.CompareTo("ToastActionTask") == 0)
            {
                ToastNotificationActionTriggerDetail d = (ToastNotificationActionTriggerDetail)args.TaskInstance.TriggerDetails;
                QueryString queryString = QueryString.Parse(d.Argument);

                switch (queryString["action"])
                {
                case "favorite":
                    var favoriteTask = new FavoriteTask();
                    favoriteTask.Run(args.TaskInstance);
                    break;

                case "undoLockscreen":
                    var wallpaperUndoTask = new LockscreenUndoTask();
                    wallpaperUndoTask.Run(args.TaskInstance);
                    break;

                case "undoWallpaper":
                    var lockscreenUndoTask = new WallpaperUndoTask();
                    lockscreenUndoTask.Run(args.TaskInstance);
                    break;

                default:
                    break;
                }
            }
            else if (args.TaskInstance.Task.Name.StartsWith(nameof(FavoriteTask)))
            {
                var activity = new FavoriteTask();
                activity.Run(args.TaskInstance);
            }
            else if (args.TaskInstance.Task.Name.StartsWith(nameof(WallpaperUndoTask)))
            {
                var activity = new WallpaperUndoTask();
                activity.Run(args.TaskInstance);
            }
            else
            {
                var x         = args.TaskInstance.Task.Trigger;
                var details   = args.TaskInstance.TriggerDetails as BackgroundTransferCompletionGroupTriggerDetails;
                var downloads = details.Downloads.ToList();
                // TODO: validate the download
                ToastService.ToastDebug("Download Finished", $"{downloads.Where(o => o.Progress.Status == BackgroundTransferStatus.Completed).Count()}/{downloads.Count} images downloaded successfully.");
            }
        }
Ejemplo n.º 7
0
        //проблема с многопоточностью
        //создаем новый контекст для каждого потока
        private static void ConnectionThread(FavoriteTask favConnect)
        {
            using (RconfigContext ctx = new RconfigContext())
            {
                var task = (from c in ctx.RemoteTasks
                            where c.Id == favConnect.TaskId
                            select c).Single();

                List <string> commands = favConnect.Commands;

                Favorite fav = (from c in ctx.Favorites
                                where c.Id == favConnect.FavoriteId
                                select c).Single();


                //данные для подключения к сетевому устройству
                ConnectionData data = new ConnectionData();
                data.address  = fav.Address;
                data.port     = fav.Port;
                data.username = fav.Credential.Username;
                data.password = fav.Credential.Password;

                //по типу протоколу выбираем требуемое подключение
                string        protocol = fav.Protocol.Name;
                Expect.Expect expect;
                switch (protocol)
                {
                case "Telnet": expect = new TelnetMintExpect(data); break;

                case "SSH": expect = new SshExpect(data); break;

                //по умолчанию для сетевых устройств протокол Telnet
                default: expect = new TelnetMintExpect(data); break;
                }

                //если объект expect успешно создан
                if (expect != null)
                {
                    //выполняем список команд
                    expect.ExecuteCommands(commands);
                    string result  = expect.GetResult();
                    bool   success = expect.isSuccess;
                    string error   = expect.GetError();
                    //если успешно сохраняем конфигурацию устройства
                    if (success)
                    {
                        Config config = new Config();
                        config.Current = result;
                        config.Date    = DateTime.Now;
                        fav.Configs.Add(config);
                    }
                    //создаем отчет о проделанном задании
                    Report report = new Report();
                    report.Date     = DateTime.Now;
                    report.Status   = success;
                    report.Info     = error;
                    report.Task     = task;
                    report.Favorite = fav;
                    ctx.Reports.Add(report);
                    ctx.SaveChanges();

                    //логгирование!!!
                }
            }
        }
Ejemplo n.º 8
0
        //многопоточный вариант обхода и сбора конфигураций с устройств по задаче
        #region TASK PARALLEL USAGE
        //возможен конфликт при параллельной вставке данных
        private static void LoadConfigurationThread(int taskId)
        {
            // CancellationToken token;
            using (RconfigContext context = new RconfigContext())
            {
                var task = (from c in context.RemoteTasks
                            where c.Id == taskId
                            select c).FirstOrDefault();

                if (task != null)
                {
                    List <Task> taskRunnerManager = new List <Task>();
                    //var tokenSource = new CancellationTokenSource();
                    // token = tokenSource.Token;
                    //int countFav = 0;  //для логгирования???
                    try
                    {
                        foreach (Favorite fav in task.Favorites)
                        {
                            //STARTED
                            //логгирование!!!
                            //Console.WriteLine("OPERATION started for {0}...", fav.Address);
                            List <string> commands = new List <string>();
                            //проходим по списку команд, выявляем соответствие используемой команды и категории избранного
                            foreach (Command command in task.Commands.OrderBy(c => c.Order))
                            {
                                foreach (Category category in command.Categories)
                                {
                                    if (fav.Category.CategoryName == category.CategoryName)
                                    {
                                        commands.Add(command.Name);
                                    }
                                }
                            }
                            //мультипоточность
                            //устанавливаем соединение
                            FavoriteTask connect = new FavoriteTask();
                            connect.Commands   = commands;
                            connect.FavoriteId = fav.Id;
                            connect.TaskId     = task.Id;

                            //логгирование !!!
                            //Console.WriteLine("Connection started for {0} favorites...", countFav++);

                            //создаем задачу и добавляем ее в менеджер
                            Task taskRunner = Task.Factory.StartNew(() =>
                                                                    ConnectionThread(connect));
                        }

                        //дожидаемся пока выполняться все задания
                        foreach (Task taskRunner in taskRunnerManager)
                        {
                            taskRunner.Wait();
                            // Console.WriteLine("Task {0} finished...", taskRunner.Id);
                        }
                    }
                    catch (Exception ex)
                    {
                        //Console.ForegroundColor = ConsoleColor.Red;
                        // Console.WriteLine(ex.Message);
                        //логгирование
                    }
                }
            }
        }