示例#1
0
        //подгрузка данных при редактировании
        //не работает!!!
        private async void LoadPrevData()
        {            
            var queryRemoteTask=await (from c in context.RemoteTasks
                                where c.Id==prevTaskId
                                select c).FirstOrDefaultAsync();
            if (queryRemoteTask != null)
            {
                currentTask = queryRemoteTask;
                textBoxName.Text = currentTask.TaskName;
                textBoxDesc.Text = currentTask.Description;
                //указываем выбранные ранее устройства
                foreach (Favorite fav in queryRemoteTask.Favorites)
                {
                    int index = checkedListBoxFavorites.Items.IndexOf(fav.Hostname);

                    if (index >= 0)
                    {
                        checkedListBoxFavorites.SetItemChecked(index, true);
                    }
                }
                //указываем ранее выбранные команды
                foreach (Command command in queryRemoteTask.Commands)
                {
                    int index = checkedListBoxCommands.Items.IndexOf(command.Name);
                    if (index >= 0)
                    {
                        checkedListBoxCommands.SetItemChecked(index, true);
                    }
                }
            }
            
        }
 //сбор данных задачи для исполнения команд
 private void LoadConfiguration(RemoteTask task)
 {
     //  Logging("STARTED");
     foreach (Favorite fav in task.Favorites)
     {
         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);
                 }
             }
         }
         //устанавливаем соединение
         FavoriteConnect connect = new FavoriteConnect();
         connect.commands = commands;
         connect.favorite = fav;
         connect.task = task;
         try
         {
             Connection(connect);
         }
         catch (Exception ex)
         {
             //записать в логи!!!
             Logging(string.Format("TASK {0} failed!!! Exception: {1}!!!", _taskId, ex.Message));
         }
     }
     //************************************************************
     //создаем событие и уведомляем о том, что все задачи выполнены
     taskCompleted();
 }   
示例#3
0
        //добавить задачу
        private void TaskAdd()
        {
            currentTask = new RemoteTask();
            currentTask.TaskName = textBoxName.Text.Trim();
            currentTask.Description=textBoxDesc.Text.Trim();
            currentTask.Date = DateTime.UtcNow;

            HashSet<Favorite> favs = new HashSet<Favorite>();
            //если устройства выбраны по устройствам
            if (byFavorite)
            {
                foreach (var item in checkedListBoxFavorites.CheckedItems)
                {
                    string favorite = item.ToString();
                    var queryFav = (from c in context.Favorites
                                    where c.Hostname == favorite
                                    select c).FirstOrDefault();

                    if (queryFav != null)
                        favs.Add(queryFav);
                }
            }
            //по категориям устройств
            else
            {
                foreach (var item in checkedListBoxFavorites.CheckedItems)
                {
                    string category = item.ToString();
                    var queryCategory = (from c in context.Categories
                                    where c.CategoryName == category
                                    select c).FirstOrDefault();

                    if (queryCategory != null)
                    {
                        foreach (Favorite fav in queryCategory.Favorites)
                        {
                            favs.Add(fav);
                        }
                    }
                }
            }
            currentTask.Favorites = favs;
            HashSet<Command> commands = new HashSet<Command>();
            foreach (var item in checkedListBoxCommands.CheckedItems)
            {
                string command = item.ToString();
                var queryCommand = (from c in context.Commands
                                where c.Name== command
                                select c).FirstOrDefault();

                if (queryCommand != null)
                    commands.Add(queryCommand);
            }
            currentTask.Commands = commands;
            context.RemoteTasks.Add(currentTask);
            context.SaveChanges();
        }