Esempio n. 1
0
        public static CourseFileModel Load(CourseFile courseFile)
        {
            var courseFileModel = new CourseFileModel();

            courseFileModel.Header = courseFile;
            courseFileModel.Folder = new FolderModel
            {
                Name    = "Root",
                Folders = LoadFolders(courseFile),
                Courses = LoadCourses(courseFile, 0)
            };
            courseFileModel.Folder.Courses.ForEach(course => course.Folder = courseFileModel.Folder);

            courseFileModel.Courses = courseFileModel.Folder
                                      .Courses
                                      .Concat(courseFileModel.Folder
                                              .Folders
                                              .SelectRecursive(folder => folder.Folders, folder => folder.Courses)
                                              .SelectMany(v => v)
                                              .ToList())
                                      .ToList();

            courseFileModel.Folder.IsChecked = true;

            return(courseFileModel);
        }
Esempio n. 2
0
        public ActionResult DeleteConfirmed(int id)
        {
            CourseFile courseFile = db.CourseFiles.Find(id);

            db.CourseFiles.Remove(courseFile);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Esempio n. 3
0
 public ActionResult Edit([Bind(Include = "ID,CourseID,File")] CourseFile courseFile)
 {
     if (ModelState.IsValid)
     {
         db.Entry(courseFile).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.CourseID = new SelectList(db.Courses, "ID", "Title", courseFile.CourseID);
     return(View(courseFile));
 }
Esempio n. 4
0
        public ActionResult Create([Bind(Include = "ID,CourseID,File")] CourseFile courseFile)
        {
            if (ModelState.IsValid)
            {
                db.CourseFiles.Add(courseFile);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.CourseID = new SelectList(db.Courses, "ID", "Title", courseFile.CourseID);
            return(View(courseFile));
        }
Esempio n. 5
0
        // Add new and remove old course file
        public async Task AddCourseFile(string courseId, Guid versionId, byte[] content)
        {
            var file = new CourseFile
            {
                CourseId        = courseId,
                CourseVersionId = versionId,
                File            = content
            };

            db.CourseFiles.RemoveRange(db.CourseFiles.Where(f => f.CourseId.Equals(courseId, StringComparison.OrdinalIgnoreCase)));
            db.CourseFiles.Add(file);
            await db.SaveChangesAsync();
        }
Esempio n. 6
0
        public Task DownloadFile(CourseFile file, StudentEvent studentEvent)
        {
            var path = file.ServerRelativeUrl.Replace(Path.GetFileName(file.ServerRelativeUrl), "");

            // Path.Combine(,) ist komisch wenn der zweite Pfad mit einem PathSeperator anfängt :/
            // siehe dazu https://docs.microsoft.com/de-de/dotnet/api/system.io.path.combine?view=netframework-4.7.2
            path = path.Substring(1);

            path = Path.Combine(studentEvent.CourseName, path);
            var destination = Path.Combine(GetFileStoragePath(), path);

            return(_oscaWebService.DowloadFile(file.DownloadUrl, destination, Path.GetFileName(file.ServerRelativeUrl)));
        }
Esempio n. 7
0
        // GET: CourseFiles/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CourseFile courseFile = db.CourseFiles.Find(id);

            if (courseFile == null)
            {
                return(HttpNotFound());
            }
            return(View(courseFile));
        }
Esempio n. 8
0
        /// <inheritdoc/>
        public void SaveTo(string courseId, IFormFile file)
        {
            byte[] fileData;
            using (var target = new MemoryStream())
            {
                file.CopyTo(target);
                fileData = target.ToArray();
            }

            Course course    = dbContext.Courses.FindById(courseId);
            var    fileToAdd = new CourseFile(fileData, file.FileName, file.ContentType, course);

            dbContext.Files.Add(fileToAdd);
        }
Esempio n. 9
0
        // GET: CourseFiles/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CourseFile courseFile = db.CourseFiles.Find(id);

            if (courseFile == null)
            {
                return(HttpNotFound());
            }
            ViewBag.CourseID = new SelectList(db.Courses, "ID", "Title", courseFile.CourseID);
            return(View(courseFile));
        }
Esempio n. 10
0
        private static List <CourseModel> LoadCourses(CourseFile courseFile, int folder)
        {
            var coursesList = courseFile.Courses
                              .Where(v => v.Parent == folder)
                              .Select(course => new CourseModel
            {
                Name      = course.Name,
                Waypoints = LoadWaypoints(course)
            })
                              .ToList();

            coursesList.ForEach(course => course.Lines = LoadLines(course));
            coursesList.ForEach(course => course.Waypoints.ForEach(v => v.Course = course));

            return(coursesList);
        }
Esempio n. 11
0
        private static List <FolderModel> LoadFolders(CourseFile courseFile, int parent = 0)
        {
            var folderList = courseFile.Folders
                             .Where(v => v.Parent == parent)
                             .Select(folder => new FolderModel
            {
                Name    = folder.Name,
                Courses = LoadCourses(courseFile, folder.Id),
                Folders = LoadFolders(courseFile, folder.Id)
            })
                             .ToList();

            folderList.ForEach(folder => folder.Courses.ForEach(v => v.Folder = folder));

            return(folderList);
        }
Esempio n. 12
0
        private static CourseFile Save(CourseFileModel courseFileModel)
        {
            var courseFile = new CourseFile
            {
                CourseplayHud       = courseFileModel.Header.CourseplayHud,
                Course2D            = courseFileModel.Header.Course2D,
                CourseManagement    = courseFileModel.Header.CourseManagement,
                CourseplayFields    = courseFileModel.Header.CourseplayFields,
                CourseplayInGameMap = courseFileModel.Header.CourseplayInGameMap,
                CourseplayWages     = courseFileModel.Header.CourseplayWages,
            };

            Dictionary <FolderModel, int> indexFolder;

            courseFile.Folders = SaveFolders(courseFileModel, out indexFolder);
            courseFile.Courses = SaveCourses(courseFileModel, indexFolder);
            return(courseFile);
        }
Esempio n. 13
0
 public bool CreateCourseFile(CourseFileViewModel clientCourseFile)
 {
     using (var transaction = db.Database.BeginTransaction())
     {
         try
         {
             CourseFile courseFiles = new CourseFile
             {
                 CourseId = clientCourseFile.CourseId,
                 Name     = clientCourseFile.Name,
                 Path     = clientCourseFile.Path
             };
             db.CourseFiles.Add(courseFiles);
             db.SaveChanges();
             transaction.Commit();
             return(true);
         }
         catch
         {
             throw;
         }
     }
 }
        public IActionResult Download(string fileId)
        {
            CourseFile file = fileService.GetFileById(fileId);

            return(File(file.Data, file.ContentType, file.Name));
        }