Example #1
0
        private void AnalizeTask()
        {
            double progressCount;
            browser = new Browser();
            string empty = browser.GET(string.Format("{0}" ,Properties.Settings.Default["URL"]), Encoding.UTF8);
            if (empty == null)
                return;
            
            int i = 0;
            progressCount = (double)1 / TaskModel.Count;
            progressCount = Math.Round(progressCount, 4);
            double progressOne = progressCount;
            progressCount = 0;
            foreach (Task task in TaskModel)
            {
                if (!task.NeedAnalize)
                    continue;
                string taskInfo = browser.GET(string.Format("{0}/api/task/{1}",Properties.Settings.Default["URL"],task.TaskId) , Encoding.UTF8);
                XmlDocument newXmlDocument = new XmlDocument();
                if (taskInfo == null)
                    browser.GET(string.Format("{0}/api/task/{1}", Properties.Settings.Default["URL"], task.TaskId), Encoding.UTF8);
                newXmlDocument.LoadXml(taskInfo);
                foreach (XmlElement xmlElement in newXmlDocument.DocumentElement)
                {
                    string taskId;
                    string creater;
                    string taskStatus;
                    string taskName;
                    string taskPerfomer;
                    string observers;
                    string serviceName;
                    string type;
                    string description;
                    string priorityName;
                    string statusName;
                    string completionStatus;
                   
                    taskId = xmlElement.GetElementsByTagName("Id")[0].InnerText;
                    if(controller != null)
                        controller.SetMessage(string.Format("Обновление заявки {0}", taskId));
                    creater = xmlElement.GetElementsByTagName("Creator")[0].InnerText;
                    taskStatus = xmlElement.GetElementsByTagName("StatusId")[0].InnerText;
                    taskName = xmlElement.GetElementsByTagName("Name")[0].InnerText;
                    taskPerfomer = xmlElement.GetElementsByTagName("Executors")[0].InnerText;

                    observers = xmlElement.GetElementsByTagName("Observers")[0].InnerText;
                    serviceName = xmlElement.GetElementsByTagName("ServiceName")[0].InnerText;
                    type = xmlElement.GetElementsByTagName("Type")[0].InnerText;
                    description = xmlElement.GetElementsByTagName("Description")[0].InnerText;
                    priorityName = xmlElement.GetElementsByTagName("PriorityName")[0].InnerText;
                    statusName = xmlElement.GetElementsByTagName("StatusName")[0].InnerText;
                    completionStatus = xmlElement.GetElementsByTagName("CompletionStatus")[0].InnerText;
                    if (TaskStatus == null)
                        TaskStatus = new BindingList<Models.TaskStatus>();
                    ObservableCollection<AnalizeTask.Models.TaskStatus> filtererdTests;
                    filtererdTests = new ObservableCollection<Models.TaskStatus>(TaskStatus.Where(t => t.Id == taskStatus));
                    if (filtererdTests.Count == 0)
                    {
                        this.addTaskStatus();
                        filtererdTests = new ObservableCollection<Models.TaskStatus>(TaskStatus.Where(t => t.Id == taskStatus));
                    }

                    if (TaskType == null)
                        TaskType = new BindingList<TaskType>();
                    ObservableCollection<AnalizeTask.Models.TaskType> filtererdTaskType;
                    string serviceId = xmlElement.GetElementsByTagName("ServiceId")[0].InnerText;
                    string typeId = xmlElement.GetElementsByTagName("TypeId")[0].InnerText;
                    filtererdTaskType = new ObservableCollection<Models.TaskType>(TaskType.Where(t => t.Id == typeId));
                    if (filtererdTaskType.Count == 0)
                    {
                        this.addTaskType(serviceId);
                        filtererdTaskType = new ObservableCollection<Models.TaskType>(TaskType.Where(t => t.Id == typeId));
                    }
                    TaskModel[i].TaskId = taskId;
                    TaskModel[i].Creater = creater;
                    TaskModel[i].Image = filtererdTests[0].ImageUrl;
                    TaskModel[i].Image24 = filtererdTests[0].ImageUrl24;
                    TaskModel[i].ImageTaskType = filtererdTaskType[0].ImgUrl;
                    TaskModel[i].TaskStatus = filtererdTests[0].Name;
                    TaskModel[i].StatusId = filtererdTests[0].Id;
                    TaskModel[i].TaskName = taskName;
                    TaskModel[i].TaskPerfomer = taskPerfomer;
                    TaskModel[i].Observers = observers;
                    TaskModel[i].ServiceName = serviceName;
                    TaskModel[i].Type = type;
                    TaskModel[i].Description = description;
                    TaskModel[i].StatusName = statusName;
                    TaskModel[i].PriorityName = priorityName;
                    TaskModel[i].CompletionStatus = completionStatus;
                    if (!this.needAnalizeDate(filtererdTests[0].Id))
                    {
                        if (TaskModel[i].Divergence == null)
                            TaskModel[i].Divergence = "";
                        TaskModel[i].Divergence = Convert.ToString((TaskModel[i].TaskDeadLine - DateTime.Now).Days);
                    }
                    if (i == 1)
                    {
                        SelectedIndex = 1;
                        SelectedIndex = 0;
                    }
                    i++;
                    if (controller != null)
                    {
                        controller.SetMessage(string.Format("Заявка {0} обновлена", taskId));
                        controller.SetProgress(progressCount);
                    }
                    Application.Current.Dispatcher.Invoke((Action)delegate
                    {
                        this.AnalazeChanged(taskId);
                        string test = "";
                    });
                        progressCount += progressOne;


                }
            }
            
        }
Example #2
0
        private bool AnalizeOneTask(string _taskId)
        {
            if (browser == null)
            {
                browser = new Browser();
                string empty = browser.GET(/*"http://servicedesk.gradient.ru/"*/string.Format("{0}", Properties.Settings.Default["URL"]), Encoding.UTF8);
            }
            if (TaskStatus == null || TaskStatus.Count == 0)
            {

                TaskStatus = new BindingList<Models.TaskStatus>();//new ObservableCollection<Models.TaskStatus>();
                string taskStatusXML = browser.GET(/*"http://servicedesk.gradient.ru/api/taskstatus"*/string.Format("{0}/api/taskstatus", Properties.Settings.Default["URL"]), Encoding.UTF8);
                XmlDocument newXmlDocument = new XmlDocument();
                newXmlDocument.LoadXml(taskStatusXML);

                foreach (XmlElement xmlElement in newXmlDocument.DocumentElement)
                {
                    string description;
                    string id;
                    string imageUrl;
                    string name;
                    description = xmlElement.GetElementsByTagName("Description")[0].InnerText;
                    id = xmlElement.GetElementsByTagName("Id")[0].InnerText;

                    imageUrl = this.findOrAddImage(xmlElement.GetElementsByTagName("Image16Url")[0].InnerText);
                    name = xmlElement.GetElementsByTagName("Name")[0].InnerText;

                    TaskStatus.Add(new Models.TaskStatus() { Name = name, Description = description, Id = id, ImageUrl = imageUrl });

                }
            }
            
            ObservableCollection<Models.Task> filtererdTask;
            filtererdTask = new ObservableCollection<Models.Task>(TaskModel.Where(t => t.TaskId == _taskId));
            //BindingList<AnalizeTask.Models.Task> taskBinding = new BindingList<AnalizeTask.Models.Task>(){}
            int i = TaskModel.IndexOf(filtererdTask[0]);
            string taskInfo = browser.GET(/*string.Format("http://servicedesk.gradient.ru/api/task/{0}",task.TaskId)*/string.Format("{0}/api/task/{1}", Properties.Settings.Default["URL"], _taskId), Encoding.UTF8);
            if (taskInfo == null)
            {
                TaskModel.Remove(filtererdTask[0]);
                return false;
            }
            
            
            XmlDocument newXmlDocumentTask = new XmlDocument();
            newXmlDocumentTask.LoadXml(taskInfo);
            
            foreach (XmlElement xmlElement in newXmlDocumentTask.DocumentElement)
            {
                string taskId;
                string creater;
                string taskStatus;
                string taskName;
                string taskPerfomer;
                string observers;
                string serviceName;
                string type;
                string description;
                string priorityName;
                string statusName;
                string completionStatus;

                taskId = xmlElement.GetElementsByTagName("Id")[0].InnerText;
                creater = xmlElement.GetElementsByTagName("Creator")[0].InnerText;
                taskStatus = xmlElement.GetElementsByTagName("StatusId")[0].InnerText;
                taskName = xmlElement.GetElementsByTagName("Name")[0].InnerText;
                taskPerfomer = xmlElement.GetElementsByTagName("Executors")[0].InnerText;
                observers = xmlElement.GetElementsByTagName("Observers")[0].InnerText;
                serviceName = xmlElement.GetElementsByTagName("ServiceName")[0].InnerText;
                type = xmlElement.GetElementsByTagName("Type")[0].InnerText;
                description = xmlElement.GetElementsByTagName("Description")[0].InnerText;
                priorityName = xmlElement.GetElementsByTagName("PriorityName")[0].InnerText;
                statusName = xmlElement.GetElementsByTagName("StatusName")[0].InnerText;
                completionStatus = xmlElement.GetElementsByTagName("CompletionStatus")[0].InnerText;

                if (TaskStatus == null)
                    TaskStatus = new BindingList<Models.TaskStatus>();

                ObservableCollection<AnalizeTask.Models.TaskStatus> filtererdTests;
                filtererdTests = new ObservableCollection<Models.TaskStatus>(TaskStatus.Where(t => t.Id == taskStatus));
                if (filtererdTests.Count == 0)
                {
                    this.addTaskStatus();
                    filtererdTests = new ObservableCollection<Models.TaskStatus>(TaskStatus.Where(t => t.Id == taskStatus));
                }
                
                if (TaskType == null)
                    TaskType = new BindingList<TaskType>();
                ObservableCollection<AnalizeTask.Models.TaskType> filtererdTaskType;
                string serviceId = xmlElement.GetElementsByTagName("ServiceId")[0].InnerText;
                string typeId = xmlElement.GetElementsByTagName("TypeId")[0].InnerText;
                filtererdTaskType = new ObservableCollection<Models.TaskType>(TaskType.Where(t => t.Id == typeId));
                if (filtererdTaskType.Count == 0)
                {
                    this.addTaskType(serviceId);
                    filtererdTaskType = new ObservableCollection<Models.TaskType>(TaskType.Where(t => t.Id == typeId));
                }
                TaskModel[i].TaskId = taskId;
                TaskModel[i].Creater = creater;
                TaskModel[i].Image = filtererdTests[0].ImageUrl;
                TaskModel[i].Image24 = filtererdTests[0].ImageUrl24;
                TaskModel[i].ImageTaskType = filtererdTaskType[0].ImgUrl;
                TaskModel[i].TaskStatus = filtererdTests[0].Name;
                TaskModel[i].TaskName = taskName;
                TaskModel[i].TaskPerfomer = taskPerfomer;
                TaskModel[i].Observers = observers;
                TaskModel[i].ServiceName = serviceName;
                TaskModel[i].Type = type;
                TaskModel[i].Description = description;
                TaskModel[i].StatusName = statusName;
                TaskModel[i].PriorityName = priorityName;
                TaskModel[i].CompletionStatus = completionStatus;
                Application.Current.Dispatcher.Invoke((Action)delegate
                {

                   
                    /*AddCommnet addComment = new AddCommnet();
                    addComment.DataContext = new AnalizeTask.Models.AddComment() { Comment = "Тестирование добавление комментария", TaskId = taskId };
                    MainWindow mainWindow = (MainWindow)Application.Current.MainWindow;
                    mainWindow.Notification.ShowCustomBalloon(addComment, System.Windows.Controls.Primitives.PopupAnimation.Slide, 400);*/
                });
                if (i == 1)
                {
                    SelectedIndex = 1;
                    SelectedIndex = 0;
                }
                
                i++;


            }

            return true;
        }