Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
 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);
     }
 }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        /// <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());
        }
Exemplo n.º 7
0
        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;
                });
            }
        }
Exemplo n.º 8
0
 public WorkItemModel(WorkItemDTO workItem)
 {
     Id = workItem.WorkItemIDGuid;
     WorkItemEngineerFullName = workItem.EngineerFullName;
     WorkItemTitle            = workItem.Title;
     WorkItemEventDate        = WpfUtils.DateTimeToString(workItem.EventDateDateTime);
     WorkItemPrice            = WpfUtils.DecimalToString((decimal?)workItem.Price);
 }
Exemplo n.º 9
0
        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));
        }
Exemplo n.º 10
0
 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,
     });
 }
Exemplo n.º 11
0
 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;
         }
     }
 }
Exemplo n.º 12
0
        public IActionResult Get([FromQuery] WorkItemDTO workItemDTO)
        {
            try
            {
                var workItens = _azureWorkItemAppService.GetAll(workItemDTO);

                return(Ok(workItens));
            }
            catch (Exception ex)
            {
                return(BadRequest());
            }
        }
Exemplo n.º 13
0
        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);
            }
        }
Exemplo n.º 14
0
 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));
     }
 }
Exemplo n.º 15
0
 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));
     }
 }
Exemplo n.º 16
0
        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()));
        }
Exemplo n.º 17
0
 /// <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
 }
Exemplo n.º 18
0
        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);
        }