Esempio n. 1
0
        public async Task <object> MarkAsRead(string objectId)
        {
            var user         = _userService.CurrentUser.Id;
            var oid          = new ObjectId(objectId);
            var ccEvent      = (await _dbService.Events.FindAsync(i => i.Id == oid)).FirstOrDefault();
            var deletedCount = await _utilService.MarkNotificationAsReadAsync(ccEvent) +
                               await _utilService.MarkNotificationAsReadAsync(ccEvent?.ResultId, user);

            return(new
            {
                status = deletedCount >= 1 ? "ok" : "error",
                updated = deletedCount
            });
        }
Esempio n. 2
0
        public async Task <IActionResult> ResultGet(string objectId)
        {
            var user = _userService.CurrentUser;
            await _utilService.MarkNotificationAsReadAsync(new ObjectId(objectId), user.Id);

            var id   = new ObjectId(objectId);
            var item = (await _dbService.Data.SingleAsync(id))
                       .IncludeDirectories(_utilService)
                       .HideHiddenFiles(user.IsRoot);

            var result = new ApiResponse <CcData>(item);

            return(Ok(result));
        }
Esempio n. 3
0
        public async Task <object> SaveGrade(MarkSolutionItem item)
        {
            var oid    = new ObjectId(item.objectId);
            var ccData = await _dbService.Data.SingleAsync(oid);

            var sender     = _userService.CurrentUser.Id;
            var recipients = _utilService.GetUsersRelatedToResult(ccData);

            ccData.Points       = item.points;
            ccData.GradeComment = item.comment;

            await _utilService.MarkNotificationAsReadAsync(oid, sender);

            var result = await _dbService.Data.UpdateDocumentAsync(ccData);

            var notificationCount = default(int);

            if (result.IsAcknowledged)
            {
                notificationCount = await _utilService.SendNotificationAsync(recipients,
                                                                             new CcEvent
                {
                    ResultId = oid,
                    Type     = CcEventType.NewGrade,
                    IsNew    = true,
                    Subject  = $"**[{ccData.CourseName}]**: Received **{item.points}%** in problem **{ccData.Problem}**",
                    Sender   = sender,
                });
            }

            return(new
            {
                status = result.IsAcknowledged ? "ok" : "error",
                count = notificationCount
            });
        }