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; } } }
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; }