private static void AssociateWorkItemWithWorkOrder(TSK task, ApplicationDataModel.ADM.ApplicationDataModel dataModel, WorkOrder workOrder) { var fieldId = workOrder.FieldIds.FirstOrDefault(); var workItem = new WorkItem { GrowerId = workOrder.GrowerId, FarmId = workOrder.FarmIds.FirstOrDefault(), FieldId = fieldId, }; if (fieldId != 0) { var field = dataModel.Catalog.Fields.Single(f => f.Id.ReferenceId == fieldId); if (field.ActiveBoundaryId != 0) { workItem.BoundaryId = field.ActiveBoundaryId; } } dataModel.Documents.WorkItems = dataModel.Documents.WorkItems.Concat(new[] { workItem }); workOrder.WorkItemIds = new List <int> { workItem.Id.ReferenceId }; if (task.Items != null && task.Items.OfType <TZN>().Any()) { AssociateRxWithWorkItem(task, dataModel, workItem); } }
private static void AreEqual(LoggedData loggedData, TSK tsk, Catalog catalog, string cardPath) { var grower = catalog.Growers.SingleOrDefault(x => x.Id.ReferenceId == loggedData.GrowerId); var farm = catalog.Farms.SingleOrDefault(x => x.Id.ReferenceId == loggedData.FarmId); var field = catalog.Fields.SingleOrDefault(x => x.Id.ReferenceId == loggedData.FieldId); if (grower != null) { Assert.AreEqual(grower.Id.FindIsoId(), tsk.C); } if (farm != null) { Assert.AreEqual(farm.Id.FindIsoId(), tsk.D); } if (field != null) { Assert.AreEqual(field.Id.FindIsoId(), tsk.E); } if (loggedData.TimeScopes != null && loggedData.TimeScopes.Any()) { var tims = tsk.Items.Where(x => x.GetType() == typeof(TIM)).Cast <TIM>().ToList(); TimAssert.AreEqual(loggedData.TimeScopes, tims); } if (loggedData.OperationData != null && loggedData.OperationData.Any()) { var tlgs = tsk.Items.Where(x => x.GetType() == typeof(TLG)).Cast <TLG>().ToList(); TlgAssert.AreEqual(loggedData.OperationData.ToList(), tlgs, catalog, cardPath); } }
private static void AssociateRxWithWorkItem(TSK task, ApplicationDataModel.ADM.ApplicationDataModel dataModel, WorkItem workItem) { var matchingRx = dataModel.Catalog.Prescriptions.SingleOrDefault(p => p.Id.FindIsoId() == task.A); if (matchingRx != null) { var operation = new WorkItemOperation(); operation.PrescriptionId = matchingRx.Id.ReferenceId; dataModel.Documents.WorkItemOperations = dataModel.Documents.WorkItemOperations.Concat(new[] { operation }); workItem.WorkItemOperationIds = new List <int> { operation.Id.ReferenceId }; } }
public void Setup() { _task = new TSK(); _taskList = new List <TSK> { _task }; _dataPath = Path.GetTempPath(); _dataModel = new ApplicationDataModel { Catalog = new Catalog(), Documents = new Documents() }; _linkedIds = new Dictionary <string, List <UniqueId> >(); _statusUpdateMapperMock = new Mock <IStatusUpdateMapper>(); _mapper = new WorkOrderMapper(_statusUpdateMapperMock.Object); }
private void AssociatePersonWithWorkOrder(TSK task, ApplicationDataModel.ADM.ApplicationDataModel dataModel, WorkOrder workOrder) { var person = dataModel.Catalog.Persons.SingleOrDefault(p => p.Id.FindIsoId() == task.F); if (person != null) { var personRole = new PersonRole { PersonId = person.Id.ReferenceId, Role = new EnumeratedValue { Representation = RepresentationInstanceList.dtPersonRole.ToModelRepresentation(), Value = DefinedTypeEnumerationInstanceList.dtiPersonRoleOperator.ToModelEnumMember() } }; dataModel.Catalog.PersonRoles.Add(personRole); workOrder.PersonRoleIds = new List <int> { personRole.Id.ReferenceId }; } }
private TSK Map(LoggedData loggedData, Catalog catalog, string taskDataPath, int taskNumber, TaskDocumentWriter taskDocumentWriter) { var taskId = "TSK" + taskNumber; taskDocumentWriter.Ids.Add(taskId, loggedData.Id); var tsk = new TSK { A = taskId, B = loggedData.Description, C = FindGrowerId(loggedData.GrowerId, catalog), D = FindFarmId(loggedData.FarmId, catalog), E = FindFieldId(loggedData.FieldId, catalog), G = TSKG.Item4, Items = MapItems(loggedData, taskDataPath, taskDocumentWriter) }; return(tsk); }
public void Setup() { _tsk = new TSK(); _tsks = new List <TSK> { _tsk }; _dataPath = Path.GetTempPath(); _documents = new Documents(); _catalog = new Catalog(); _linkIds = new Dictionary <string, List <UniqueId> >(); _dataModel = new ApplicationDataModel(); _dataModel.Documents = _documents; _dataModel.Catalog = _catalog; _operationDataMapper = new Mock <IOperationDataMapper>(); _loggedDataMapper = new LoggedDataMapper(_operationDataMapper.Object); }
private WorkOrder Map(TSK task, ApplicationDataModel.ADM.ApplicationDataModel dataModel) { var workOrder = new WorkOrder(); workOrder.Id.UniqueIds.Add(_uniqueIdMapper.Map(task.A)); workOrder.Description = task.B; workOrder.GrowerId = GetGrower(dataModel.Catalog, task.C); workOrder.FarmIds = GetFarms(dataModel.Catalog, task.D); workOrder.FieldIds = GetFields(dataModel.Catalog, task.E); workOrder.StatusUpdates = new List <StatusUpdate>(); workOrder.StatusUpdates.Add(_statusUpdateMapper.Map(task.G)); if (!string.IsNullOrEmpty(task.F)) { AssociatePersonWithWorkOrder(task, dataModel, workOrder); } AssociateWorkItemWithWorkOrder(task, dataModel, workOrder); return(workOrder); }
private TSK Map(WorkOrder workOrder, ApplicationDataModel.ADM.ApplicationDataModel dataModel, int taskNumber, TaskDocumentWriter taskDocumentWriter) { var taskId = "TSK" + taskNumber; taskDocumentWriter.Ids.Add(taskId, workOrder.Id); var task = new TSK { A = taskId, B = workOrder.Description, C = FindGrowerId(workOrder.GrowerId, dataModel.Catalog), G = TSKG.Item1 //TaskStatus.Planned }; if (workOrder.WorkItemIds != null && workOrder.WorkItemIds.Any()) { var workItem = dataModel.Documents.WorkItems.FirstOrDefault(item => item.Id.ReferenceId == workOrder.WorkItemIds.First()); task.D = FindFarmId(workItem.FarmId, dataModel.Catalog); task.E = FindFieldId(workItem.FieldId, dataModel.Catalog); if (workItem.WorkItemOperationIds != null && workOrder.WorkItemIds.Any()) { var operation = dataModel.Documents.WorkItemOperations.First( item => item.Id.ReferenceId == workItem.WorkItemOperationIds.First()); if (operation.PrescriptionId != null && operation.PrescriptionId != 0) { var prescription = dataModel.Catalog.Prescriptions.FirstOrDefault( p => p.Id.ReferenceId == operation.PrescriptionId); if (prescription != null) { PrescriptionWriter.WriteSingle(taskDocumentWriter, prescription); } } } } return(task); }
private LoggedData Map(TSK tsk, string dataPath, ApplicationDataModel.ADM.ApplicationDataModel dataModel, Dictionary <string, List <UniqueId> > linkedIds) { if (tsk == null || dataModel.Documents.LoggedData == null) { return(null); } var existingLoggedData = dataModel.Documents.LoggedData.FirstOrDefault(x => x.Id.FindIsoId() == tsk.A); if (existingLoggedData == null) { return(null); } var taskId = null as int?; var grd = tsk.Items != null?tsk.Items.FirstOrDefault(x => x.GetType() == typeof(GRD)) : null; if (grd != null) { taskId = dataModel.Catalog.Prescriptions.Single(x => x.Id.FindIsoId() == tsk.A).Id.ReferenceId; } existingLoggedData.OperationData = _operationDataMapper.Map(tsk.Items.GetItemsOfType <TLG>(), taskId, dataPath, existingLoggedData.Id.ReferenceId, linkedIds); return(existingLoggedData); }
public List <TSK> Read(XPathNodeIterator iterator) { var tsks = new List <TSK>(); if (iterator.Count == 0) { return(tsks); } foreach (XPathNavigator node in iterator) { if (node.SelectChildren("TLG", node.NamespaceURI).Count == 0) { continue; } var tsk = new TSK { A = GetStringValue(node, "A"), B = GetStringValue(node, "B"), C = GetStringValue(node, "C"), D = GetStringValue(node, "D"), E = GetStringValue(node, "E"), F = GetStringValue(node, "F"), G = GetEnumValue(node, "G"), H = GetByteValue(node, "H"), I = GetByteValue(node, "I"), J = GetByteValue(node, "J"), Items = GetItems(node), }; tsks.Add(tsk); } return(tsks); }
public void Setup() { _tsk = new TSK(); _output = new StringBuilder(); _xmlBuilder = XmlWriter.Create(_output); }