public ActionResult AddWorkItem(string txtItemTitle, string selAssigneeType, string txtAssignee) { control = (管理工作單Control)Session["ManageWorkItemControl"]; // get the control object from the Session Object. WorkItemDTO dto = new WorkItemDTO(); // new a WorkItem DTO object. // put the form's value to the WorkItem DTO object. dto.item_title = txtItemTitle; dto.assignee_name = txtAssignee; switch (selAssigneeType) { case "ORGANIZATION": dto.assign_type = AssigneeType.ORGANIZATION; break; case "ROLE": dto.assign_type = AssigneeType.ROLE; break; case "HUMAN": dto.assign_type = AssigneeType.HUMAN; break; } control.AddWorkItem(dto); // put the WorkItem DTO object into the List object. return(View()); }
public HttpResponseMessage setFileException(WorkItemDTO WorkItem) { DateTime start = DateTime.Now; try { int userID = int.Parse(Request.Headers.GetValues("userId").FirstOrDefault()); var doc = _IDocService.GetSouploads().Where(p => p.soKey == Guid.Parse(WorkItem.wiKey)).FirstOrDefault(); var batchProcessingWorkflow = _IWkflowdefService.GetWkflowdefs().Where(p => p.Code == "FPW").FirstOrDefault(); var statusID = batchProcessingWorkflow.WkflowDefWkflowStats.Where(p => p.WkflowStat.Code == "EXCP").FirstOrDefault().WkflowStatId; doc.WkflowInstanceDocs.FirstOrDefault().WkflowInstance.CurrWkflowStatId = statusID; var ccare = doc.WkflowInstanceDocs.FirstOrDefault().WkflowInstance.Org.OrgUsers.Where(p => p.Type == "CustomerCare"); if (ccare.Count() > 0) { doc.WkflowInstanceDocs.FirstOrDefault().WkflowInstance.CCUserId = ccare.FirstOrDefault().UserId; } } catch (Exception e) { throw new HttpResponseException(HttpStatusCode.NotFound); } ApiLog.Write("setFileException", start); return(Request.CreateResponse <bool>(HttpStatusCode.OK, true)); }
private void dispatcherTimer_Tick(object sender, EventArgs e) { try { if (_wkDTOInProgress == null) { return; } if (lstLog.Items.Count > 20) { lstLog.Items.Clear(); } int idleTime = (int)(TimeControl.GetIdleTime() / 1000); if (idleTime >= configdto.IdleCicle) { lstLog.Items.Add(FindResource("IdleTime").ToString() + ": " + idleTime); btnStatus.Fill = new SolidColorBrush(Colors.Red); } else { btnStatus.Fill = new SolidColorBrush(Colors.LightGreen); _wkDTOInProgress.TimeWorked += configdto.UpdateCicle; } if (_wkDTOInProgress.TimeWorked >= configdto.SyncCicle) { var boWkInProgress = _wkBO.GetValidInProgress(); if (boWkInProgress.isValid()) { if (boWkInProgress.ObjectList.Count() > 1) { ni.ShowBalloonTip(50000, FindResource("Job").ToString(), FindResource("MultiProgressMsg").ToString(), System.Windows.Forms.ToolTipIcon.Warning); return; } if (_wkDTOInProgress.RemainingWork == 0) { ni.ShowBalloonTip(50000, FindResource("Job").ToString(), FindResource("JobTimeMsg").ToString(), System.Windows.Forms.ToolTipIcon.Warning); return; } double percentTime = _wkDTOInProgress.TimeWorkedPercent; _wkDTOInProgress = boWkInProgress.ObjectList.First(); _wkDTOInProgress.CompletedWork += percentTime; var boUpdate = _wkBO.UpdateWorked(_wkDTOInProgress); if (boUpdate.isValid()) { _wkDTOInProgress = boUpdate.ObjectList.First(); _wkDTOInProgress.TimeWorked = 0; } } new Thread(() => { Start(); }).Start(); } if (_wkDTOInProgress.TimeWorked >= configdto.UpdateCicle * 20) { checkVersion(); } } catch (Exception ex) { lstLog.Items.Add(ex.Message); } }
private void Cell_Dgrid_DoubleClick(object sender, RoutedEventArgs e) { try { var wk = (sender as DataGridCell).BindingGroup.Items[0] as WorkItemDTO; if ((e.Source as DataGridCell).Column.Header.ToString() == "Start") { stkWait.Visibility = Visibility.Visible; stkWait.Refresh(); var bo = _wkBO.Play(wk, _wkDTOInProgress); if (bo.isValid()) { _wkDTOInProgress = bo.ObjectList.First(); new Thread(() => { Start(); }).Start(); } } else { Process.Start(configdto.TfsUrl + wk.TeamProject + string.Format("/_workitems?id={0}&triage=true&_a=edit", wk.Id)); } } catch (Exception ex) { lstLog.Items.Add(ex.Message); } }
private static void GetWorkItem(APIHelper aPIHelper, AzureServiceConfiguration azureServiceConfiguration) { Console.WriteLine($"Obtendo os dados do Work Item de ID {azureServiceConfiguration.LastWorkItemID}"); WorkItemDTO workItemDTO = aPIHelper.Get <WorkItemDTO>($"{azureServiceConfiguration.Organization}/{azureServiceConfiguration.Project}/_apis/wit/workitems/{azureServiceConfiguration.LastWorkItemID}?fields=System.Id,System.Title,System.WorkItemType,System.CreatedDate&api-version=5.1").GetAwaiter().GetResult(); if (workItemDTO != null) { Console.WriteLine($"Dados do Work Item de ID {azureServiceConfiguration.LastWorkItemID} foram encontrados e serão adicionados ao banco de dados"); WorkItemRepository workItemRepository = new WorkItemRepository(new AzureDevOpsDbContextFactory().CreateDbContext()); workItemRepository.Add(new WorkItem { ID = workItemDTO.fields.SystemId, Title = workItemDTO.fields.SystemTitle, Type = workItemDTO.fields.SystemWorkItemType, CreatedOn = workItemDTO.fields.SystemCreatedDate }); azureServiceConfiguration.LastWorkItemID++; GetWorkItem(aPIHelper, azureServiceConfiguration); } else { Console.WriteLine($"Dados do Work Item de ID {azureServiceConfiguration.LastWorkItemID} não foram encontrados a rotina será encerrada"); azureServiceConfiguration.LastWorkItemID--; azureServiceConfigurationRepository.Update(azureServiceConfiguration); } }
/// <summary> /// /// </summary> /// <param name="WorkItemID">工作單號</param> /// <returns></returns> public string Process(string WorkItemID) { WorkItemDTO dto = (WorkItemDTO)workitemList.SingleOrDefault(x => x.ID == WorkItemID); WorkItem wkItem = new WorkItem(); wkItem.ID = dto.ID; wkItem.item_title = dto.item_title; switch (dto.assign_type) { case AssigneeType.ORGANIZATION: wkItem.assignee = factory.CreateOrganizationParticipant(); wkItem.assignee.assignType = AssigneeType.ORGANIZATION; break; case AssigneeType.ROLE: wkItem.assignee = factory.CreateRoleParticipant(); wkItem.assignee.assignType = AssigneeType.ROLE; break; case AssigneeType.HUMAN: wkItem.assignee = factory.CreateHumanParticipant(); wkItem.assignee.assignType = AssigneeType.HUMAN; break; } wkItem.assignee.aggignee_name = dto.assignee_name; return(wkItem.assignee.process()); }
private void Start() { var bo = _wkBO.GetToDoInProgress(); if (bo.isValid()) { var lstWorkItems = bo.ObjectList; var inProgress = lstWorkItems.Where(t => t.State == "In Progress" && t.Blocked != "Yes").FirstOrDefault(); int wkId = 0; if (inProgress != null) { wkId = inProgress.Id; this.Dispatcher.Invoke(() => { _wkDTOInProgress = inProgress; if (_wkDTOInProgress.RemainingWork == 0) { ni.ShowBalloonTip(50000, FindResource("Job").ToString(), FindResource("JobTimeMsg").ToString(), System.Windows.Forms.ToolTipIcon.Warning); } processInProgress(); }); } var lstTodo = lstWorkItems.Where(t => t.Id != wkId).ToList(); this.Dispatcher.Invoke(() => { dtgToDo.ItemsSource = lstTodo; stkWait.Visibility = Visibility.Hidden; }); } }
public WorkItemModel(WorkItemDTO workItem) { Id = workItem.WorkItemIDGuid; WorkItemEngineerFullName = workItem.EngineerFullName; WorkItemTitle = workItem.Title; WorkItemEventDate = WpfUtils.DateTimeToString(workItem.EventDateDateTime); WorkItemPrice = WpfUtils.DecimalToString((decimal?)workItem.Price); }
public HttpResponseMessage WorkItemInPE(WorkItemDTO WorkItem) { DateTime start = DateTime.Now; int userID = int.Parse(Request.Headers.GetValues("userId").FirstOrDefault()); bool sucess = _IDocService.WorkItemInPE(userID, WorkItem); ApiLog.Write("WorkItemInPE", start); return(Request.CreateResponse <bool>(HttpStatusCode.OK, sucess)); }
private WorkItemGridItemModel CreateItem(WorkItemDTO entity) { return(new WorkItemGridItemModel { WorkItemEngineerFullName = entity.EngineerFullName, WorkItemEventDate = Utils.DateTimeToString(entity.EventDate), WorkItemPrice = Utils.DecimalToString(entity.Price), Id = entity.WorkItemID, WorkItemTitle = entity.Title, }); }
private void DeleteWorkItem() { if (WorksheetUnderEdit.SelectedItemListItem != null) { WorkItemDTO itemToDelete = WorksheetUnderEdit.Items.FirstOrDefault(item => item.Id == WorksheetUnderEdit.SelectedItemListItem.Id); if (itemToDelete != null) { WorksheetUnderEdit.Items.Remove(itemToDelete); WorksheetUnderEdit.FinalPrice -= itemToDelete.Price; } } }
public IActionResult Get([FromQuery] WorkItemDTO workItemDTO) { try { var workItens = _azureWorkItemAppService.GetAll(workItemDTO); return(Ok(workItens)); } catch (Exception ex) { return(BadRequest()); } }
public HttpResponseMessage ClearSelections(WorkItemDTO WorkItem) { DateTime start = DateTime.Now; bool sucess = true; try { var docs = _IDocService.GetSouploads().Where(p => p.LockID == WorkItem.instanceID && p.WkflowInstanceDocs.FirstOrDefault().WkflowInstance.WkflowStepHists.OrderByDescending(o => o.Id).FirstOrDefault().WkflowStat.Code == "SCSELECTED"); var batchProcessingWorkflow = _IWkflowdefService.GetWkflowdefs().Where(p => p.Code == "FPW").FirstOrDefault(); var statusID = batchProcessingWorkflow.WkflowDefWkflowStats.Where(p => p.WkflowStat.Code == "UPLOADED").FirstOrDefault().WkflowStatId; int userID = int.Parse(Request.Headers.GetValues("userId").FirstOrDefault()); if (docs != null) { foreach (soUpload doc in docs) { // Set INIT state for new workflow instance. doc.WkflowInstanceDocs.FirstOrDefault().WkflowInstance.WkflowStepHists.Add(new WkflowStepHist { CreateDate = DateTime.UtcNow, DateLastMaint = DateTime.UtcNow, WkflowStatId = statusID, CreatedUserId = userID }); doc.WkflowInstanceDocs.FirstOrDefault().WkflowInstance.CurrWkflowStatId = statusID; doc.LockID = null; _IDocService.UpdateSoupload(doc); } } ApiLog.Write("ClearSelections", start); return(Request.CreateResponse <bool>(HttpStatusCode.OK, sucess)); } catch (Exception e) { var createresponse = Request.CreateErrorResponse(HttpStatusCode.NotFound, "Failed to Clear Selections"); throw new HttpResponseException(createresponse); } }
public BusinessObject <WorkItemDTO> Play(WorkItemDTO wkPlayed, WorkItemDTO old = null) { try { if (string.IsNullOrEmpty(TfsUrl)) { throw new Exception("Tfs not defined."); } if (old != null) { old.Blocked = "Yes"; JsonPatchDocument j = new JsonPatchDocument(); j.Add(new JsonPatchOperation { Operation = Operation.Add, Path = "/fields/Microsoft.VSTS.CMMI.Blocked", Value = "Yes" }); UpdateWorkItem(old.Id, j); } JsonPatchDocument jnew = new JsonPatchDocument(); jnew.Add(new JsonPatchOperation { Operation = Operation.Add, Path = "/fields/Microsoft.VSTS.CMMI.Blocked", Value = "" }); jnew.Add(new JsonPatchOperation { Operation = Operation.Add, Path = "/fields/System.State", Value = "In Progress" }); return(new WorkItemDTO(UpdateWorkItem(wkPlayed.Id, jnew)).EntityToBusinessObject()); } catch (Exception ex) { return(ConstructError <WorkItemDTO> .Set(ex)); } }
public BusinessObject <WorkItemDTO> UpdateWorked(WorkItemDTO wik) { try { if (string.IsNullOrEmpty(TfsUrl)) { throw new Exception("Tfs not defined."); } JsonPatchDocument j = new JsonPatchDocument(); j.Add(new JsonPatchOperation { Operation = Operation.Add, Path = "/fields/Microsoft.VSTS.Scheduling.CompletedWork", Value = processDouble(wik.CompletedWork) }); j.Add(new JsonPatchOperation { Operation = wik.RemainingWork == 0 ? Operation.Add : Operation.Replace, Path = "/fields/Microsoft.VSTS.Scheduling.RemainingWork", Value = processDouble(wik.RemainingCalc) }); if (wik.OriginalEstimate == 0) { j.Add(new JsonPatchOperation { Operation = Operation.Add, Path = "/fields/Microsoft.VSTS.Scheduling.OriginalEstimate", Value = processDouble(wik.RemainingWork) }); } var ret = UpdateWorkItem(wik.Id, j); return(new WorkItemDTO(ret).EntityToBusinessObject()); } catch (Exception ex) { return(ConstructError <WorkItemDTO> .Set(ex)); } }
public IEnumerable <WorkItemDTO> GetAll(WorkItemDTO workItemDTO) { int pagination = 30; var query = _azureWorkItemRepository.GetAll() .Where(x => (string.IsNullOrEmpty(workItemDTO.Titulo) || x.Titulo.Contains(workItemDTO.Titulo)) && (workItemDTO.Tipo == AzureWorkItemTipoEnum.Todos || x.Tipo == workItemDTO.Tipo)); if (workItemDTO.Order == "ASC") { query = query.OrderBy(x => x.DataCriacao); } else { query = query.OrderByDescending(x => x.DataCriacao); } if (workItemDTO.Pagina > 0) { query = query.Skip(pagination * (workItemDTO.Pagina - 1)).Take(pagination); } return(_mapper.Map <List <WorkItemDTO> >(query.ToList())); }
/// <summary> /// 新增工作單 (WorkItem) /// </summary> public void AddWorkItem(WorkItemDTO wkdto) { wkdto.ID = (workitemList.Count() + 1).ToString(); // Set the WorkItem ID workitemList.Add(wkdto); // Add the WorkItem DTO to the List }
public void SaveRepairOrderRequestTest() { var message = new SaveRepairOrderRequest(); Assert.AreEqual(message.Kind, MessageKind.SaveRepairOrderRequest); var order = new RepairOrderDTO(); order.BranchID = Guid.NewGuid(); order.CallEventDate = new DateTime(2015, 06, 01); order.ClientAddress = "ClientAddress"; order.ClientEmail = "ClientEmail"; order.ClientFullName = "ClientFullName"; order.ClientPhone = "ClientPhone"; order.DateOfBeReady = new DateTime(2015, 07, 07); order.Defect = "Defect"; order.DeviceAppearance = "DeviceAppearance"; order.DeviceModel = "DeviceModel"; order.DeviceSN = "DeviceSN"; order.DeviceTitle = "DeviceTitle"; order.DeviceTrademark = "DeviceTrademark"; order.EngineerID = Guid.NewGuid(); order.EventDate = new DateTime(2014, 02, 05); order.GuidePrice = 44; order.IsUrgent = true; order.IssueDate = new DateTime(2013, 05, 04); order.IssuerID = Guid.NewGuid(); order.ManagerID = Guid.NewGuid(); order.Notes = "Notes"; order.Number = "Number" + Guid.NewGuid(); order.Options = "Options"; order.OrderKindID = Guid.NewGuid(); order.OrderStatusID = Guid.NewGuid(); order.PrePayment = 55; order.Recommendation = "Recommendation"; order.WarrantyTo = new DateTime(2017, 01, 2); var workItem = new WorkItemDTO(); workItem.WorkItemID = Guid.NewGuid(); workItem.EventDate = new DateTime(2015, 10, 7); workItem.Price = 55.66M; workItem.RepairOrderID = Guid.NewGuid(); workItem.UserID = Guid.NewGuid(); var deviceItem = new DeviceItemDTO(); deviceItem.DeviceItemID = Guid.NewGuid(); deviceItem.Count = 33; deviceItem.EventDate = new DateTime(2015, 01, 01); deviceItem.Price = 55.33M; deviceItem.RepairOrderID = Guid.NewGuid(); deviceItem.Title = "Title"; var timeLine = new OrderTimelineDTO(); timeLine.EventDateTime = new DateTime(2015, 06, 07, 01, 2, 3); timeLine.OrderTimelineID = Guid.NewGuid(); timeLine.RepairOrderID = Guid.NewGuid(); timeLine.TimelineKindID = 1; timeLine.Title = "Title"; order.WorkItems.Add(workItem); order.OrderTimelines.Add(timeLine); order.DeviceItems.Add(deviceItem); message.RepairOrder = order; var serializer = new ProtocolSerializer(ProtocolVersion.Version10); var data = serializer.Serialize(message); Assert.IsNotNull(data); var savedMessage = serializer.DeserializeSaveRepairOrderRequest(data); Assert.IsNotNull(savedMessage); Assert.AreEqual(serializer.GetMessageInfoOrNull(data).Kind, MessageKind.SaveRepairOrderRequest); Assert.IsNotNull(savedMessage.RepairOrder); Assert.AreEqual(savedMessage.RepairOrder.DeviceItems.Count, 1); Assert.AreEqual(savedMessage.RepairOrder.WorkItems.Count, 1); Assert.AreEqual(savedMessage.RepairOrder.OrderTimelines.Count, 1); var savedDeviceItem = savedMessage.RepairOrder.DeviceItems[0]; var savedWorkItem = savedMessage.RepairOrder.WorkItems[0]; var savedTimeline = savedMessage.RepairOrder.OrderTimelines[0]; var savedItem = savedMessage.RepairOrder; Assert.AreEqual(order.BranchID, savedItem.BranchID); Assert.AreEqual(order.CallEventDate, savedItem.CallEventDate); Assert.AreEqual(order.ClientAddress, savedItem.ClientAddress); Assert.AreEqual(order.ClientEmail, savedItem.ClientEmail); Assert.AreEqual(order.ClientFullName, savedItem.ClientFullName); Assert.AreEqual(order.ClientPhone, savedItem.ClientPhone); Assert.AreEqual(order.DateOfBeReady, savedItem.DateOfBeReady); Assert.AreEqual(order.Defect, savedItem.Defect); Assert.AreEqual(order.DeviceAppearance, savedItem.DeviceAppearance); Assert.AreEqual(order.DeviceModel, savedItem.DeviceModel); Assert.AreEqual(order.DeviceSN, savedItem.DeviceSN); Assert.AreEqual(order.DeviceTitle, savedItem.DeviceTitle); Assert.AreEqual(order.DeviceTrademark, savedItem.DeviceTrademark); Assert.AreEqual(order.EngineerID, savedItem.EngineerID); Assert.AreEqual(order.EventDate, savedItem.EventDate); Assert.AreEqual(order.GuidePrice, savedItem.GuidePrice); Assert.AreEqual(order.IsUrgent, savedItem.IsUrgent); Assert.AreEqual(order.IssueDate, savedItem.IssueDate); Assert.AreEqual(order.IssuerID, savedItem.IssuerID); Assert.AreEqual(order.ManagerID, savedItem.ManagerID); Assert.AreEqual(order.Notes, savedItem.Notes); Assert.AreEqual(order.Number, savedItem.Number); Assert.AreEqual(order.Options, savedItem.Options); Assert.AreEqual(order.OrderKindID, savedItem.OrderKindID); Assert.AreEqual(order.OrderStatusID, savedItem.OrderStatusID); Assert.AreEqual(order.PrePayment, savedItem.PrePayment); Assert.AreEqual(order.Recommendation, savedItem.Recommendation); Assert.AreEqual(order.WarrantyTo, savedItem.WarrantyTo); Assert.AreEqual(deviceItem.DeviceItemID, savedDeviceItem.DeviceItemID); Assert.AreEqual(deviceItem.CostPrice, savedDeviceItem.CostPrice); Assert.AreEqual(deviceItem.EventDate, savedDeviceItem.EventDate); Assert.AreEqual(deviceItem.Price, savedDeviceItem.Price); Assert.AreEqual(deviceItem.RepairOrderID, savedDeviceItem.RepairOrderID); Assert.AreEqual(deviceItem.Title, savedDeviceItem.Title); Assert.AreEqual(deviceItem.UserID, savedDeviceItem.UserID); Assert.AreEqual(deviceItem.WarehouseItemID, savedDeviceItem.WarehouseItemID); Assert.AreEqual(savedWorkItem.EventDate, workItem.EventDate); Assert.AreEqual(savedWorkItem.Price, workItem.Price); Assert.AreEqual(savedWorkItem.RepairOrderID, workItem.RepairOrderID); Assert.AreEqual(savedWorkItem.Title, workItem.Title); Assert.AreEqual(savedWorkItem.UserID, workItem.UserID); Assert.AreEqual(savedWorkItem.WorkItemID, workItem.WorkItemID); Assert.AreEqual(savedTimeline.EventDateTime, timeLine.EventDateTime); Assert.AreEqual(savedTimeline.OrderTimelineID, timeLine.OrderTimelineID); Assert.AreEqual(savedTimeline.RepairOrderID, timeLine.RepairOrderID); Assert.AreEqual(savedTimeline.TimelineKindID, timeLine.TimelineKindID); Assert.AreEqual(savedTimeline.Title, timeLine.Title); }