コード例 #1
0
        /*
         * Instantiate a StudentRead Object and then finds the currentuser in that Instances, we
         * then assign that User to the Object and then perform a LINQ command to find the Users who
         * have read that page, once done return that list to get Distinct.Count to find the total of
         * people who have viewed that page and display who haven't read it.
         */
        private IEnumerable <string> HowMany(Anouncement Anouncement)
        {
            StudentRead     Read1       = new StudentRead();
            string          CurrentUser = User.Identity.GetUserId();
            ApplicationUser Users       = db.Users.FirstOrDefault(x => x.Id == CurrentUser);
            var             UsersInRole = db.Roles.SingleOrDefault(r => r.Name == "Student").Users;
            var             LectId      = db.Roles.SingleOrDefault(l => l.Name == "Lecturer");
            var             Students    = UsersInRole.Count;

            if (User.IsInRole("Student"))
            {
                Read1.AnnounceId = Anouncement;
                Read1.UserId     = Users;
                db.StudentRead.Add(Read1);
                db.SaveChanges();
            }

            var Count = (from db in db.StudentRead
                         where db.AnnounceId.Id == Anouncement.Id
                         select db.UserId.Id).AsEnumerable();

            var Seen = (from db in db.StudentRead
                        where db.AnnounceId.Id == Anouncement.Id
                        select db.UserId).ToList();

            var AllUsers    = db.Users.ToList();
            var Lecturer    = db.Users.Where(Lec => Lec.Roles.Select(Rol => Rol.RoleId).Contains(LectId.Id));
            var RemovedNots = AllUsers.Except(Seen);

            ViewBag.NotRead = RemovedNots.Except(Lecturer);
            ViewBag.Seen    = Math.Round(100f * ((float)Seen.Distinct().Count() / (float)Students));

            return(Count);
        }
コード例 #2
0
        public async Task <bool> registerAnouncement([FromBody] Anouncement anouncement)//ActionResult<Anouncement>

        {
            bool flag = await context.insert(anouncement);

            return(flag);
        }
コード例 #3
0
        public async Task <IActionResult> OnPost()
        {
            if (!ModelState.IsValid)
            {
                return(RedirectToPage());
            }

            var newAnouncement = new Anouncement
            {
                Title     = ViewModel.Title,
                DateAdded = DateTime.Now
            };

            // process file upload
            if (ViewModel.Banner != null)
            {
                using (var memoryStream = new MemoryStream())
                {
                    await ViewModel.Banner.CopyToAsync(memoryStream);

                    newAnouncement.Banner = memoryStream.ToArray();
                }
            }

            _ = await _data.AddAnouncementAsync(newAnouncement);

            return(RedirectToPage());
        }
コード例 #4
0
        public async Task <IActionResult> Edit(int id, [Bind("IdAnouncement,Title,Description,CreationDate,ExpirationDate,Category,User")] Anouncement anouncement)
        {
            if (id != anouncement.IdAnouncement)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(anouncement);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!AnouncementExists(anouncement.IdAnouncement))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["Category"] = new SelectList(_context.Category, "IdCategory", "IdCategory", anouncement.Category);
            ViewData["User"]     = new SelectList(_context.User, "IdUser", "IdUser", anouncement.User);
            return(View(anouncement));
        }
コード例 #5
0
        public async Task <Anouncement> AddAnouncementAsync(Anouncement anouncement)
        {
            await _data.Anouncements.AddAsync(anouncement);

            await _data.SaveChangesAsync();

            return(anouncement);
        }
コード例 #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            Anouncement anouncement = db.Anouncements.Find(id);

            db.Anouncements.Remove(anouncement);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #7
0
 public ActionResult Edit([Bind(Include = "Id,Title,Description")] Anouncement anouncement)
 {
     if (ModelState.IsValid)
     {
         db.Entry(anouncement).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(anouncement));
 }
コード例 #8
0
        public IHttpActionResult GetAnouncement(int id)
        {
            Anouncement anouncement = db.Anouncements.Find(id);

            if (anouncement == null)
            {
                return(NotFound());
            }

            return(Ok(anouncement));
        }
コード例 #9
0
        public async Task <bool> insert(object obj)
        {
            try{
                Anouncement anouncement = (Anouncement)obj;
                await collection.InsertOneAsync((Anouncement)anouncement);

                return(true);
            }catch (Exception ex) {
                return(false);
            }
        }
コード例 #10
0
        public IHttpActionResult PostAnouncement(Anouncement anouncement)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Anouncements.Add(anouncement);
            db.SaveChanges();

            return(CreatedAtRoute("DefaultApi", new { id = anouncement.AnouncementID }, anouncement));
        }
コード例 #11
0
        public async Task <IActionResult> Create([Bind("IdAnouncement,Title,Description,CreationDate,ExpirationDate,Category,User")] Anouncement anouncement)
        {
            if (ModelState.IsValid)
            {
                _context.Add(anouncement);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["Category"] = new SelectList(_context.Category, "IdCategory", "IdCategory", anouncement.Category);
            ViewData["User"]     = new SelectList(_context.User, "IdUser", "IdUser", anouncement.User);
            return(View(anouncement));
        }
コード例 #12
0
        // GET: Anouncements/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Anouncement anouncement = db.Anouncements.Find(id);

            if (anouncement == null)
            {
                return(HttpNotFound());
            }
            return(View(anouncement));
        }
コード例 #13
0
        public IHttpActionResult DeleteAnouncement(int id)
        {
            Anouncement anouncement = db.Anouncements.Find(id);

            if (anouncement == null)
            {
                return(NotFound());
            }

            db.Anouncements.Remove(anouncement);
            db.SaveChanges();

            return(Ok(anouncement));
        }
コード例 #14
0
        public ActionResult Create([Bind(Include = "Id,Title,Description")] Anouncement anouncement)
        {
            if (ModelState.IsValid)
            {
                string          currentUser = User.Identity.GetUserId();
                ApplicationUser user        = db.Users.FirstOrDefault(
                    x => x.Id == currentUser);
                anouncement.Lecture = user;

                db.Anouncements.Add(anouncement);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(anouncement));
        }
コード例 #15
0
        public HttpResponseMessage PutAnouncement(Anouncement anouncement)
        {
            int result = 0;

            try
            {
                db.Anouncements.Attach(anouncement);
                db.Entry(anouncement).State = EntityState.Modified;
                db.SaveChanges();
            }
            catch (Exception e)
            {
                result = 0;
            }

            return(Request.CreateResponse(HttpStatusCode.OK, result));
        }
コード例 #16
0
 public ActionResult Edit([Bind(Include = "AnnouncementId,UserName,Title,Description,TimeMade")] Anouncement anouncement)
 {
     if (ModelState.IsValid)
     {
         var userName = User.Identity.GetUserName();
         if (User.IsInRole("Admin"))
         {
             anouncement.UserName = "******";
         }
         else
         {
             anouncement.UserName = userName;
         }
         anouncement.TimeMade        = DateTime.Now;
         db.Entry(anouncement).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(anouncement));
 }
コード例 #17
0
        /*
         * A ActionResults that will Display the page that contains the Announcement at the top and Display all the
         * comments at the Bottom. It takes in a int as a parameter but performs a check to see if there is a int in the
         * URL. Then uses the HowMany() method to find how many uniqe views there are for this announcement and then using a
         * AnounceDetailView model to display it all on the page
         */
        public ActionResult Details(int?id)
        {
            AnouncementDetailView vm          = new AnouncementDetailView();
            Anouncement           anouncement = db.Anouncements.Find(id);

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (anouncement == null)
            {
                return(HttpNotFound());
            }

            //return PartialView("_StudentCounter", HowMany(anouncement));

            var Output = HowMany(anouncement).Distinct().Count();

            anouncement.CountRe = Output;
            vm.Announcement     = anouncement;
            return(View(vm));
        }
コード例 #18
0
        public async Task <ActionResult> updateAnouncementProfile([FromBody] Anouncement anouncement)
        {
            await context.update(anouncement.anouncementId, anouncement);

            return(Ok(anouncement));
        }
コード例 #19
0
        public async Task <IActionResult> OnGet()
        {
            ViewModel = await _storyData.GetAnouncementAsync(Id);

            return(Page());
        }