Exemple #1
0
        public async Task <IActionResult> PostExceptionRecord([FromBody] List <ExceptionRecordRequestDTO> exceptionRecords)
        {
            var claimSID = User.FindFirst(JwtRegisteredClaimNames.Sid)?.Value;

            if (claimSID == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest,
                                                   ErrorMessageEnum.杖中沒有發現指定使用者ID);
                return(BadRequest(apiResult));
            }
            UserID = Convert.ToInt32(claimSID);
            var fooUser = await _context.LobUsers.Include(x => x.Department).FirstOrDefaultAsync(x => x.Id == UserID);

            if (fooUser == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound,
                                                   ErrorMessageEnum.沒有發現指定的該使用者資料);
                return(NotFound(apiResult));
            }

            foreach (var item in exceptionRecords)
            {
                ExceptionRecord fooExceptionRecordObject = new ExceptionRecord()
                {
                    User          = fooUser,
                    CallStack     = item.CallStack,
                    DeviceModel   = item.DeviceModel,
                    DeviceName    = item.DeviceName,
                    ExceptionTime = item.ExceptionTime,
                    Message       = item.Message,
                    OSType        = item.OSType,
                    OSVersion     = item.OSVersion,
                };
                _context.ExceptionRecords.Add(fooExceptionRecordObject);
            }

            await _context.SaveChangesAsync();

            List <ExceptionRecordResponseDTO> ExceptionRecordResponseDTOs = new List <ExceptionRecordResponseDTO>();

            foreach (var item in exceptionRecords)
            {
                var foo = new ExceptionRecordResponseDTO()
                {
                    CallStack     = item.CallStack,
                    DeviceModel   = item.DeviceModel,
                    DeviceName    = item.DeviceName,
                    ExceptionTime = item.ExceptionTime,
                    Message       = item.Message,
                    OSType        = item.OSType,
                    OSVersion     = item.OSVersion,
                };
                ExceptionRecordResponseDTOs.Add(foo);
            }
            apiResult = APIResultFactory.Build(true, StatusCodes.Status200OK,
                                               ErrorMessageEnum.None, payload: ExceptionRecordResponseDTOs);
            return(Ok(apiResult));
        }
Exemple #2
0
        public async Task <IActionResult> GetExceptionRecords()
        {
            var claimSID = User.FindFirst(JwtRegisteredClaimNames.Sid)?.Value;

            if (claimSID == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest,
                                                   ErrorMessageEnum.杖中沒有發現指定使用者ID);
                return(BadRequest(apiResult));
            }
            UserID = Convert.ToInt32(claimSID);
            var fooUser = await _context.LobUsers.Include(x => x.Department).FirstOrDefaultAsync(x => x.Id == UserID);

            if (fooUser == null)
            {
                apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound,
                                                   ErrorMessageEnum.沒有發現指定的該使用者資料);
                return(NotFound(apiResult));
            }

            var fooList = await _context.ExceptionRecords.Include(x => x.User)
                          .Where(x => x.User.Id == fooUser.Id).OrderByDescending(x => x.ExceptionTime).Take(100).ToListAsync();

            List <ExceptionRecordResponseDTO> ExceptionRecordResponseDTOs = new List <ExceptionRecordResponseDTO>();

            foreach (var item in fooList)
            {
                ExceptionRecordResponseDTO fooNode = new ExceptionRecordResponseDTO()
                {
                    Id            = item.Id,
                    CallStack     = item.CallStack,
                    DeviceModel   = item.DeviceModel,
                    DeviceName    = item.DeviceName,
                    ExceptionTime = item.ExceptionTime,
                    Message       = item.Message,
                    OSType        = item.OSType,
                    OSVersion     = item.OSVersion,
                };
                ExceptionRecordResponseDTOs.Add(fooNode);
            }
            apiResult = APIResultFactory.Build(true, StatusCodes.Status200OK,
                                               ErrorMessageEnum.None, payload: ExceptionRecordResponseDTOs);
            return(Ok(apiResult));
        }