コード例 #1
0
		public async static Task LoadFile(Subject subject, StorageFile file, int vertexCount)
		{
			DateTime dtStart = DateTime.Now;

			var fileName = file.Name;
			var fileParts = fileName.Split(new char[] { '-' });

			var idents = fileParts[0].Split(new char[] { '_' });
			var eventId = idents[0];

			StringBuilder sbAdjType = new StringBuilder();
			for (int i = 1; i < idents.Length; i++)
			{
				if (i > 1)
					sbAdjType.Append("-");

				sbAdjType.Append(idents[i]);
			}

			var adjType = sbAdjType.ToString();
			//var desc = fileParts[2];

			SubjectGraph subjectGraph = new SubjectGraph(vertexCount);
			subjectGraph.DataType = adjType;

			// Read in all the lines
			var lines = await Windows.Storage.FileIO.ReadLinesAsync(file);

			//subjectGraph.AddGraphLines(lines);

			for (int lineIdx = 0; lineIdx < lines.Count; lineIdx++)
			{
				var line = lines[lineIdx];
				var columns = line.TrimEnd().Split('\t');

				for (int colIdx = 0; colIdx < columns.Length; colIdx++)
				{
					if (lineIdx < vertexCount && colIdx < vertexCount)
					{
						// Only load the upper triangle
						if (colIdx > lineIdx)
							subjectGraph.AddEdge(lineIdx, colIdx, Math.Abs(Double.Parse(columns[colIdx])));
					}
				}
			}

			subject.AddGraph(subjectGraph);

			DateTime dtFinish = DateTime.Now;
			TimeSpan tsDiff = dtFinish - dtStart;
			double count = tsDiff.TotalMilliseconds;
		}
コード例 #2
0
        private void CreateSubject(ZSPD.Domain.Models.ApplicationDbContext context)
        {
            if (context.SubjectGraphs.Count() == 0)
            {
                // wczytanie z pliku tekstowego wartosci dla nastepnikow
                string poj = File.ReadAllText(MapPath("~/Resources/Lista_pojec.txt")); // Cofniêcie o 1 folder w drzewku
                // wczytanie z pliku tekstowego wartosci dla poprzednikow
                string poj1 = File.ReadAllText(MapPath("~/Resources/Lista_pojec1.txt"));
                // wczytanie z pliku tekstowego zadan dla odp pojec
                string zad = File.ReadAllText(MapPath("~/Resources/Lista_zadan.txt"));

                SubjectGraph graph = new SubjectGraph()
                {
                    Name             = "Algebra",
                    NextConcepts     = poj,
                    PreviousConcepts = poj1,
                    Exercises        = zad
                };

                context.SubjectGraphs.Add(graph);
                context.SaveChanges();
            }
        }
コード例 #3
0
        public void AddGraphFromFiles(string subjectName, string path1, string path2, string path3)
        {
            // wczytanie z pliku tekstowego wartosci dla nastepnikow
            string poj = System.IO.File.ReadAllText(path1); // Cofnięcie o 1 folder w drzewku
            // wczytanie z pliku tekstowego wartosci dla poprzednikow
            string poj1 = System.IO.File.ReadAllText(path2);
            // wczytanie z pliku tekstowego zadan dla odp pojec
            string zad = System.IO.File.ReadAllText(path3);

            SubjectGraph graph = new SubjectGraph()
            {
                Name             = subjectName,
                NextConcepts     = poj,
                PreviousConcepts = poj1,
                Exercises        = zad
            };

            using (var context = new ApplicationDbContext())
            {
                context.SubjectGraphs.Add(graph);
                context.SaveChanges();
            }
        }
コード例 #4
0
		public async static Task Load(StorageFolder folder, Dictionary<string, Subject> subjectsByEventId, int vertexCount)
		{
			DateTime dtStart = DateTime.Now;
			var files = await folder.GetFilesAsync(Windows.Storage.Search.CommonFileQuery.OrderByName);

			var multiFileLoad = files.Select(async file =>
			{
				var fileName = file.Name;
				var fileParts = fileName.Split(new char[] { '-' });

				var idents = fileParts[0].Split(new char[] { '_' });
				var eventId = idents[0];

				StringBuilder sbAdjType = new StringBuilder();
				for (int i = 1; i < idents.Length; i++)
				{
					if (i > 1)
						sbAdjType.Append("-");

					sbAdjType.Append(idents[i]);
				}

				var adjType = sbAdjType.ToString();
				//var desc = fileParts[2];

				Subject subject = null;
				if (!subjectsByEventId.ContainsKey(eventId))
					return null; //return; //continue;
				else
					subject = subjectsByEventId[eventId];

				SubjectGraph subjectGraph = new SubjectGraph(vertexCount);
				subjectGraph.DataType = adjType;

				// Read in all the lines
				var lines = await Windows.Storage.FileIO.ReadLinesAsync(file);

				//subjectGraph.AddGraphLines(lines);

				for (int lineIdx = 0; lineIdx < lines.Count; lineIdx++)
				{
					var line = lines[lineIdx];
					var columns = line.TrimEnd().Split('\t');

					for (int colIdx = 0; colIdx < columns.Length; colIdx++)
					{
						if (lineIdx < vertexCount && colIdx < vertexCount)
						{
							// Only load the upper triangle
							if (colIdx > lineIdx)
								subjectGraph.AddEdge(lineIdx, colIdx, Math.Abs(Double.Parse(columns[colIdx])));
						}
					}
				}

				subject.AddGraph(subjectGraph);

				return subjectGraph;
			});

			var graphs = await Task.WhenAll(multiFileLoad);

			DateTime dtFinish = DateTime.Now;
			TimeSpan tsDiff = dtFinish - dtStart;
			double count = tsDiff.TotalMilliseconds;
		}