コード例 #1
0
        public async Task <ActionResult> Edit(int id, University collection)
        {
            try
            {
                // TODO: Add update logic here
                var un = await _context.University.SingleOrDefaultAsync(m => m.Id == id);

                un.Name = collection.Name;
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }
            catch
            {
                return(View());
            }
        }
コード例 #2
0
        public ActionResult Create(Class model, int CreatorId, int UnivirsetyId)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    Class cls = new Class
                    {
                        Name         = model.Name,
                        CreatorId    = CreatorId,
                        UnivirsetyId = UnivirsetyId
                    };
                    cls = _context.Add(cls).Entity;
                    _context.SaveChanges();


                    return(RedirectToAction("Join", "ClassStudents", new { id = cls.Id }));
                }
                else
                {
                    return(View("Error"));
                }
            }
            catch
            {
                return(View());
            }
        }
コード例 #3
0
        public async Task <ActionResult> Create(List <IFormFile> files)
        {
            try
            {
                // TODO: Add insert logic here
                long size = files.Sum(f => f.Length);

                var filePaths = new List <string>();
                foreach (var formFile in files)
                {
                    if (formFile.Length > 0)
                    {
                        // full path to file in temp location
                        var path = Path.Combine(
                            Directory.GetCurrentDirectory(), "wwwroot//ClassFile",
                            formFile.FileName);
                        //var filePath = Path.Combine(_hostingEnvironment.WebRootPath, "ClassFile");
                        //filePaths.Add(filePath);
                        using (var stream = new FileStream(path, FileMode.Create))
                        {
                            await formFile.CopyToAsync(stream);
                        }
                        _context.Add(new FileStorage
                        {
                            Name      = formFile.FileName,
                            Path      = path,
                            ClassId   = HttpContext.Session.GetInt32("classid"),
                            StudentId = HttpContext.Session.GetInt32("userId")
                        });
                        _context.SaveChanges();
                    }
                }

                // process uploaded files
                // Don't rely on or trust the FileName property without validation.
                ViewBag.Message = "file uploaded";
                // return RedirectToAction(nameof(Index), new { id = HttpContext.Session.GetInt32("userId") });
                return(View("Create"));
            }
            catch
            {
                return(View());
            }
        }
コード例 #4
0
        public async Task SendMessage(int classID, string message, int studentId, string studentname)
        {
            Chat chat = new Chat
            {
                ClassId         = classID,
                StudentId       = studentId,
                Message         = message,
                MessageDateTime = DateTime.Now,
                SenderName      = studentname
            };

            _context.Add(chat);
            _context.SaveChanges();
            await Clients.All.SendAsync("ReceiveMessage", classID, message, studentname);
        }
コード例 #5
0
        public async Task <ActionResult> Delete(int id, Student student)
        {
            try
            {
                var st = await _context.Student.SingleOrDefaultAsync(m => m.Id == student.Id);

                _context.Student.Remove(st);
                _context.SaveChanges();
                return(RedirectToAction(nameof(Index)));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
コード例 #6
0
        public ActionResult Join(int id)
        {
            int uid = HttpContext.Session.GetInt32("userId").Value;

            var r = _context.ClassStudents.Select(x => x).Where(x => x.ClassId == id && x.StudentId == uid).FirstOrDefault();

            ClassStudents classStudents = new ClassStudents
            {
                ClassId   = id,
                StudentId = uid
            };

            if (r == null)
            {
                _context.ClassStudents.Add(classStudents);
                _context.SaveChanges();
            }
            ViewBag.classId = id;
            var classname = _context.Class.Select(x => x).Where(x => x.Id == id).FirstOrDefault().Name;

            HttpContext.Session.SetString("ClassName", classname);
            HttpContext.Session.SetInt32("classid", id);
            var messages = from x in _context.Chat
                           where x.ClassId == id
                           select x;

            var files = from x in _context.FileStorage
                        where x.ClassId == id
                        select x;

            var cid = from x in _context.Class
                      where x.Id == id
                      select x.CreatorId;

            JoinViewModel joinViewModel = new JoinViewModel
            {
                Chats        = messages.ToList(),
                FileStorages = files.ToList()
                ,
                CreatorId = cid.FirstOrDefault().HasValue ? cid.FirstOrDefault().Value : 0
            };

            return(View(joinViewModel));
        }