private void WriteLoads(IBaseSerializer baseSerializer, Documents documents, string documentsPath)
        {
            if (documents.Loads == null)
            {
                return;
            }

            foreach (var load in documents.Loads)
            {
                if (load != null)
                {
                    WriteObject(baseSerializer, documentsPath, load, load.Id.ReferenceId, DatacardConstants.LoadFile);
                }
            }
        }
        private void WriteSummaries(IBaseSerializer baseSerializer, Documents documents, string documentsPath)
        {
            if (documents.Summaries == null)
            {
                return;
            }

            foreach (var summary in documents.Summaries)
            {
                if (summary != null)
                {
                    WriteObject(baseSerializer, documentsPath, summary, summary.Id.ReferenceId, DatacardConstants.SummaryFile);
                }
            }
        }
        private void WritePlans(IBaseSerializer baseSerializer, Documents documents, string documentsPath)
        {
            if (documents.Plans == null)
            {
                return;
            }

            foreach (var plan in documents.Plans)
            {
                if (plan != null)
                {
                    WriteObject(baseSerializer, documentsPath, plan, plan.Id.ReferenceId, DatacardConstants.PlanFile);
                }
            }
        }
        private void WriteGuidanceAllocations(IBaseSerializer baseSerializer, Documents documents, string documentsPath)
        {
            if (documents.GuidanceAllocations == null)
            {
                return;
            }

            foreach (var guidanceAllocation in documents.GuidanceAllocations)
            {
                if (guidanceAllocation != null)
                {
                    WriteObject(baseSerializer, documentsPath, guidanceAllocation, guidanceAllocation.Id.ReferenceId, DatacardConstants.GuidanceAllocationFile);
                }
            }
        }
        private void ExportSpatialRecords(IBaseSerializer baseSerializer, string documentsPath, OperationData operationData)
        {
            var fileName = string.Format(DatacardConstants.OperationDataFile, operationData.Id.ReferenceId);
            var filePath = Path.Combine(documentsPath, fileName);

            if (operationData.GetSpatialRecords == null)
            {
                baseSerializer.SerializeWithLengthPrefix(new List <SpatialRecord>(), filePath);
                return;
            }

            var spatialRecords = operationData.GetSpatialRecords();

            baseSerializer.SerializeWithLengthPrefix(spatialRecords, filePath);
        }
        private void WriteWorkItems(IBaseSerializer baseSerializer, Documents documents, string documentsPath)
        {
            if (documents.WorkItems == null)
            {
                return;
            }

            foreach (var workItem in documents.WorkItems)
            {
                if (workItem != null)
                {
                    WriteObject(baseSerializer, documentsPath, workItem, workItem.Id.ReferenceId, DatacardConstants.WorkItemFile);
                }
            }
        }
        private void WriteRecommendations(IBaseSerializer baseSerializer, Documents documents, string documentsPath)
        {
            if (documents.Recommendations == null)
            {
                return;
            }

            foreach (var recommendation in documents.Recommendations)
            {
                if (recommendation != null)
                {
                    WriteObject(baseSerializer, documentsPath, recommendation, recommendation.Id.ReferenceId, DatacardConstants.RecommendationFile);
                }
            }
        }
Example #8
0
    private IEnumerable<LoggedData> ReadLoggedData(IBaseSerializer baseSerializer, string documentsPath)
    {
      var loggedDataCol = new List<LoggedData>();

      var loggedDataFiles = Directory.EnumerateFiles(documentsPath, ConvertToSearchPattern(DatacardConstants.LoggedDataFile));
      foreach (var loggedDataFile in loggedDataFiles)
      {
        var loggedData = baseSerializer.Deserialize<LoggedData>(loggedDataFile);
        foreach (var operationData in loggedData.OperationData)
        {
          ImportSpatialRecords(baseSerializer, documentsPath, operationData);
          ImportSections(baseSerializer, documentsPath, operationData);
          ImportMeters(baseSerializer, documentsPath, operationData);
        }

        loggedDataCol.Add(loggedData);
      }

      return loggedDataCol;
    }
Example #9
0
        private void ButtonLoad_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialogLoad = new OpenFileDialog();

            if (openFileDialogLoad.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            string fileName      = openFileDialogLoad.FileName;
            string fileExtention = fileName.Split('.')[fileName.Split('.').Length - 1];

            if (fileName.Split('.').Length == 3)
            {
                IPlugin plugin = data.plugins.First(p => p.GetExt() == fileExtention);
                using (Stream inputStream = plugin.Dearchive(fileName))
                {
                    fileName      = fileName.Remove(fileName.LastIndexOf('.')).Substring(fileName.LastIndexOf('\\') + 1);
                    fileExtention = fileName.Split('.')[fileName.Split('.').Length - 1];
                    data.objects.Clear();
                    IBaseSerializer serializer = data.serializers.First(s => s.GetExtention() == fileExtention);
                    data.objects = (List <IBaseObject>)serializer.Deserialize(inputStream);
                }
            }
            else if (fileName.Split('.').Length == 2)
            {
                IBaseSerializer serializer = data.serializers.First(s => s.GetExtention() == fileExtention);
                if (serializer == null)
                {
                    MessageBox.Show("Unknown extention");
                    return;
                }
                data.objects.Clear();
                using (Stream inputStream = new FileStream(fileName, FileMode.Open))
                {
                    data.objects = (List <IBaseObject>)serializer.Deserialize(inputStream);
                }
            }
            data.FillListView(listviewObject);
            MessageBox.Show("Data has successfully loaded!");
        }
Example #10
0
        private void ButtonSave_Click(object sender, EventArgs e)
        {
            Control textboxFileName    = Controls.Find("textboxFileName", true)[0];
            Control comboboxSerializer = Controls.Find("comboboxSerializer", true)[0];
            Control comboboxPlugin     = Controls.Find("comboboxPlugin", true)[0];

            if ((textboxFileName.Text.Length == 0) || (comboboxSerializer.Text.Length == 0))
            {
                MessageBox.Show("Incorrect data!");
                return;
            }
            Type            serializerType = Data.serializerTypes.First(t => (t.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute).Description == comboboxSerializer.Text);
            IBaseSerializer serializer     = Data.serializers.First(s => s.GetType() == serializerType);
            string          fileName       = textboxFileName.Text + "." + serializer.GetExtention();

            using (Stream outputStream = new MemoryStream())
            {
                serializer.Serialize(outputStream, Data.objects);
                if (comboboxPlugin.Text.Length == 0)
                {
                    using (FileStream fileStream = new FileStream(fileName, FileMode.OpenOrCreate, FileAccess.Write))
                    {
                        outputStream.Seek(0, SeekOrigin.Begin);
                        byte[] bytes = new byte[outputStream.Length];
                        outputStream.Read(bytes, 0, (int)outputStream.Length);
                        fileStream.Write(bytes, 0, bytes.Length);
                    }
                }
                else
                {
                    Type    pluginType = Data.pluginTypes.First(t => (t.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute).Description == comboboxPlugin.Text);
                    IPlugin plugin     = Data.plugins.First(p => p.GetType() == pluginType);
                    fileName += "." + plugin.GetExt();
                    plugin.Archive(fileName, outputStream);
                }
            }
            MessageBox.Show("Data has successfully saved!");
            Dispose();
        }
Example #11
0
    public Documents Deserialize(IBaseSerializer baseSerializer, string dataPath)
    {
      var documentsPath = Path.Combine(dataPath, DatacardConstants.DocumentsFolder);
      if (!Directory.Exists(documentsPath))
      {
        return null;
      }

      var documents = new Documents();
      documents.LoggedData = ReadLoggedData(baseSerializer, documentsPath);
      documents.GuidanceAllocations = ReadGuidanceAllocations(baseSerializer, documentsPath);
      documents.Plans = ReadPlans(baseSerializer, documentsPath);
      documents.Recommendations = ReadRecommendations(baseSerializer, documentsPath);
      documents.Summaries = ReadSummaries(baseSerializer, documentsPath);
      documents.WorkRecords = ReadWorkRecords(baseSerializer, documentsPath);
      documents.WorkItemOperations = ReadWorkItemOperations(baseSerializer, documentsPath);
      documents.WorkItems = ReadWorkItems(baseSerializer, documentsPath);
      documents.WorkOrders = ReadWorkOrders(baseSerializer, documentsPath);
      documents.Loads = ReadLoads(baseSerializer, documentsPath);

      return documents;
    }
Example #12
0
    public void Serialize(IBaseSerializer baseSerializer, Documents documents, string dataPath)
    {
      if (documents == null)
      {
        return;
      }

      var documentsPath = Path.Combine(dataPath, DatacardConstants.DocumentsFolder);
      if (!Directory.Exists(documentsPath))
      {
        Directory.CreateDirectory(documentsPath);
      }

      WriteLoggedData(baseSerializer, documents, documentsPath);
      WriteGuidanceAllocations(baseSerializer, documents, documentsPath);
      WritePlans(baseSerializer, documents, documentsPath);
      WriteRecommendations(baseSerializer, documents, documentsPath);
      WriteSummaries(baseSerializer, documents, documentsPath);
      WriteWorkRecords(baseSerializer, documents, documentsPath);
      WriteWorkItemOperations(baseSerializer, documents, documentsPath);
      WriteWorkItems(baseSerializer, documents, documentsPath);
      WriteWorkOrders(baseSerializer, documents, documentsPath);
      WriteLoads(baseSerializer, documents, documentsPath);
    }
        private void WriteLoggedData(IBaseSerializer baseSerializer, Documents documents, string documentsPath)
        {
            if (documents.LoggedData == null)
            {
                return;
            }

            foreach (var loggedData in documents.LoggedData)
            {
                if (loggedData != null)
                {
                    if (loggedData.OperationData != null)
                    {
                        loggedData.OperationData = loggedData.OperationData.ToList();
                        foreach (var operationData in loggedData.OperationData)
                        {
                            ExportSpatialRecords(baseSerializer, documentsPath, operationData);
                            ExportSectionsAndMeters(baseSerializer, documentsPath, operationData);
                        }
                    }
                    WriteObject(baseSerializer, documentsPath, loggedData, loggedData.Id.ReferenceId, DatacardConstants.LoggedDataFile);
                }
            }
        }
 public void GivenSerializerWhenSerializeCalledWithNullThenShouldReturnNull(IBaseSerializer serializer)
 {
     Assert.Null(serializer.Serialize(null, null));
 }
Example #15
0
 private IEnumerable<WorkItem> ReadWorkItems(IBaseSerializer baseSerializer, string documentsPath)
 {
     var loggedDataFiles = Directory.EnumerateFiles(documentsPath, ConvertToSearchPattern(DatacardConstants.WorkItemFileOnly));
     return loggedDataFiles.Select(loggedDataFile => baseSerializer.Deserialize<WorkItem>(loggedDataFile));
 }
Example #16
0
 private IEnumerable<Summary> ReadSummaries(IBaseSerializer baseSerializer, string documentsPath)
 {
   var summaryFiles = Directory.EnumerateFiles(documentsPath, ConvertToSearchPattern(DatacardConstants.SummaryFile));
   return summaryFiles.Select(summaryFile => baseSerializer.Deserialize<Summary>(summaryFile));
 }
Example #17
0
 private IEnumerable<GuidanceAllocation> ReadGuidanceAllocations(IBaseSerializer baseSerializer, string documentsPath)
 {
   var loggedDataFiles = Directory.EnumerateFiles(documentsPath, ConvertToSearchPattern(DatacardConstants.GuidanceAllocationFile));
   return loggedDataFiles.Select(loggedDataFile => baseSerializer.Deserialize<GuidanceAllocation>(loggedDataFile));
 }
Example #18
0
 private IEnumerable<Load> ReadLoads(IBaseSerializer baseSerializer, string documentsPath)
 {
   var loadFiles = Directory.EnumerateFiles(documentsPath, ConvertToSearchPattern(DatacardConstants.LoadFile));
   return loadFiles.Select(loadFile => baseSerializer.Deserialize<Load>(loadFile));
 }
Example #19
0
 private void WriteObject<T>(IBaseSerializer baseSerializer, string documentsPath, T obj, int referenceId, string fileNameFormat)
 {
   var fileName = String.Format(fileNameFormat, referenceId);
   var filePath = Path.Combine(documentsPath, fileName);
   baseSerializer.Serialize(obj, filePath);
 }