public async Task <IActionResult> Clean() { 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)); } _context.ExceptionRecords.RemoveRange(_context.ExceptionRecords.ToList()); await _context.SaveChangesAsync(); apiResult = APIResultFactory.Build(true, StatusCodes.Status200OK, ErrorMessageEnum.None); return(Ok(apiResult)); }
public async Task <IActionResult> PostNotificationToken([FromBody] NotificationTokenRequestDTO notificationToken) { 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)); } NotificationToken NotificationToken = new NotificationToken() { OSType = (OSType)Enum.Parse(typeof(OSType), notificationToken.OSType.ToString()), RegistrationTime = notificationToken.RegistrationTime, Token = notificationToken.Token, User = fooUser, }; _context.NotificationTokens.Add(NotificationToken); await _context.SaveChangesAsync(); NotificationTokenResponseDTO NotificationTokenResponseDTO = new NotificationTokenResponseDTO() { OSType = notificationToken.OSType, RegistrationTime = notificationToken.RegistrationTime, Token = notificationToken.Token, User = new UserDTO() { Id = fooUser.Id }, }; apiResult = APIResultFactory.Build(true, StatusCodes.Status200OK, ErrorMessageEnum.None, payload: NotificationTokenResponseDTO); return(Ok(apiResult)); }
private async Task CleanDB() { lobDatabaseContext.InvoiceDetails.RemoveRange(lobDatabaseContext.InvoiceDetails); lobDatabaseContext.Invoices.RemoveRange(lobDatabaseContext.Invoices); lobDatabaseContext.SystemEnvironment.RemoveRange(lobDatabaseContext.SystemEnvironment); lobDatabaseContext.Suggestions.RemoveRange(lobDatabaseContext.Suggestions); lobDatabaseContext.ExceptionRecords.RemoveRange(lobDatabaseContext.ExceptionRecords); lobDatabaseContext.NotificationTokens.RemoveRange(lobDatabaseContext.NotificationTokens); lobDatabaseContext.LeaveForms.RemoveRange(lobDatabaseContext.LeaveForms); lobDatabaseContext.LeaveFormTypes.RemoveRange(lobDatabaseContext.LeaveFormTypes); lobDatabaseContext.CommUserGroupItems.RemoveRange(lobDatabaseContext.CommUserGroupItems); lobDatabaseContext.CommUserGroups.RemoveRange(lobDatabaseContext.CommUserGroups); lobDatabaseContext.LobUsers.RemoveRange(lobDatabaseContext.LobUsers); lobDatabaseContext.Departments.RemoveRange(lobDatabaseContext.Departments); await lobDatabaseContext.SaveChangesAsync(); }
public async Task <IActionResult> PutLeaveForm([FromRoute] int id, [FromBody] LeaveFormRequestDTO leaveForm) { 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)); } if (!ModelState.IsValid) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.傳送過來的資料有問題, exceptionMessage: $"傳送過來的資料有問題 {ModelState}"); return(BadRequest(apiResult)); } if (leaveForm.id != id) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.紀錄更新所指定ID不一致); return(BadRequest(apiResult)); } var fooLeaveFormType = await _context.LeaveFormTypes.FindAsync(leaveForm.leaveFormType.Id); if (fooLeaveFormType == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的請假單類別); return(NotFound(apiResult)); } var leaveFormOnDB = await _context.LeaveForms.Include(x => x.LeaveFormType) .Include(x => x.User).ThenInclude(x => x.Department) .FirstOrDefaultAsync(x => x.Id == leaveForm.id); if (leaveFormOnDB == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的請假單); return(NotFound(apiResult)); } else if (leaveFormOnDB.User.Id != UserID) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.杖Token上標示的使用者與傳送過來的使用者不一致); return(BadRequest(apiResult)); } leaveFormOnDB.BeginTime = leaveForm.BeginTime; leaveFormOnDB.Description = leaveForm.Description; leaveFormOnDB.EndTime = leaveForm.EndTime; leaveFormOnDB.TotalHours = leaveForm.TotalHours; leaveFormOnDB.LeaveFormType = fooLeaveFormType; _context.Entry(leaveFormOnDB).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!await LeaveFormExists(leaveForm.id)) { apiResult = APIResultFactory.Build(false, StatusCodes.Status409Conflict, ErrorMessageEnum.要更新的紀錄_發生同時存取衝突_已經不存在資料庫上); return(Conflict(apiResult)); } else { apiResult = APIResultFactory.Build(false, StatusCodes.Status409Conflict, ErrorMessageEnum.紀錄更新時_發生同時存取衝突); return(Conflict(apiResult)); } } catch (Exception ex) { apiResult = APIResultFactory.Build(false, StatusCodes.Status500InternalServerError, Helpers.ErrorMessageEnum.Exception, exceptionMessage: $"({ex.GetType().Name}), {ex.Message}{Environment.NewLine}{ex.StackTrace}"); return(StatusCode(StatusCodes.Status500InternalServerError, apiResult)); } apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted, ErrorMessageEnum.None, payload: leaveForm); return(Accepted(apiResult)); }
public async Task <IActionResult> Put([FromRoute] int id, [FromBody] InvoiceDetailRequestDTO invoiceDetailRequestDTO) { 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)); } if (!ModelState.IsValid) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.傳送過來的資料有問題, exceptionMessage: $"傳送過來的資料有問題 {ModelState}"); return(BadRequest(apiResult)); } if (invoiceDetailRequestDTO.Id != id) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.紀錄更新所指定ID不一致); return(BadRequest(apiResult)); } var invoiceOnDB = await _context.Invoices .FirstOrDefaultAsync(x => x.Id == invoiceDetailRequestDTO.Invoice.Id); if (invoiceOnDB == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的發票); return(NotFound(apiResult)); } var invoiceDetailOnDB = await _context.InvoiceDetails .Include(x => x.Invoice) .FirstOrDefaultAsync(x => x.Id == invoiceDetailRequestDTO.Id); if (invoiceDetailOnDB == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的發票明細項目); return(NotFound(apiResult)); } invoiceDetailOnDB.Cnt = invoiceDetailRequestDTO.Cnt; invoiceDetailOnDB.Flag = invoiceDetailRequestDTO.Flag; invoiceDetailOnDB.Memo = invoiceDetailRequestDTO.Memo; invoiceDetailOnDB.PictureName = invoiceDetailRequestDTO.PictureName; invoiceDetailOnDB.Price = invoiceDetailRequestDTO.Price; invoiceDetailOnDB.Qty = invoiceDetailRequestDTO.Qty; invoiceDetailOnDB.SubTotal = invoiceDetailRequestDTO.SubTotal; invoiceDetailOnDB.TDate = invoiceDetailRequestDTO.TDate; _context.Entry(invoiceOnDB).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!await InvoiceDetailExists(invoiceDetailRequestDTO.Id)) { apiResult = APIResultFactory.Build(false, StatusCodes.Status409Conflict, ErrorMessageEnum.要更新的紀錄_發生同時存取衝突_已經不存在資料庫上); return(Conflict(apiResult)); } else { apiResult = APIResultFactory.Build(false, StatusCodes.Status409Conflict, ErrorMessageEnum.紀錄更新時_發生同時存取衝突); return(Conflict(apiResult)); } } catch (Exception ex) { apiResult = APIResultFactory.Build(false, StatusCodes.Status500InternalServerError, Helpers.ErrorMessageEnum.Exception, exceptionMessage: $"({ex.GetType().Name}), {ex.Message}{Environment.NewLine}{ex.StackTrace}"); return(StatusCode(StatusCodes.Status500InternalServerError, apiResult)); } apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted, ErrorMessageEnum.None, payload: invoiceDetailRequestDTO); return(Accepted(apiResult)); }
public async Task <IActionResult> Put([FromRoute] int id, [FromBody] InvoiceRequestDTO invoiceRequestDTO) { 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)); } if (!ModelState.IsValid) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.傳送過來的資料有問題, exceptionMessage: $"傳送過來的資料有問題 {ModelState}"); return(BadRequest(apiResult)); } if (invoiceRequestDTO.Id != id) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.紀錄更新所指定ID不一致); return(BadRequest(apiResult)); } var invoiceOnDB = await _context.Invoices .Include(x => x.User).ThenInclude(x => x.Department) .FirstOrDefaultAsync(x => x.Id == invoiceRequestDTO.Id); if (invoiceOnDB == null) { apiResult = APIResultFactory.Build(false, StatusCodes.Status404NotFound, ErrorMessageEnum.沒有發現指定的發票); return(NotFound(apiResult)); } else if (invoiceOnDB.User.Id != UserID) { apiResult = APIResultFactory.Build(false, StatusCodes.Status400BadRequest, ErrorMessageEnum.杖Token上標示的使用者與傳送過來的使用者不一致); return(BadRequest(apiResult)); } invoiceOnDB.InvoiceNo = invoiceRequestDTO.InvoiceNo; invoiceOnDB.Date = invoiceRequestDTO.Date; invoiceOnDB.Memo = invoiceRequestDTO.Memo; _context.Entry(invoiceOnDB).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!await InvoiceExists(invoiceRequestDTO.Id)) { apiResult = APIResultFactory.Build(false, StatusCodes.Status409Conflict, ErrorMessageEnum.要更新的紀錄_發生同時存取衝突_已經不存在資料庫上); return(Conflict(apiResult)); } else { apiResult = APIResultFactory.Build(false, StatusCodes.Status409Conflict, ErrorMessageEnum.紀錄更新時_發生同時存取衝突); return(Conflict(apiResult)); } } catch (Exception ex) { apiResult = APIResultFactory.Build(false, StatusCodes.Status500InternalServerError, Helpers.ErrorMessageEnum.Exception, exceptionMessage: $"({ex.GetType().Name}), {ex.Message}{Environment.NewLine}{ex.StackTrace}"); return(StatusCode(StatusCodes.Status500InternalServerError, apiResult)); } var fooItem = await _context.Invoices.FirstOrDefaultAsync(x => x.Id == invoiceRequestDTO.Id); InvoiceResponseDTO invoiceResponseDTO = new InvoiceResponseDTO() { Id = fooItem.Id, InvoiceNo = fooItem.InvoiceNo, Date = fooItem.Date, Memo = fooItem.Memo, user = new UserDTO() { Id = fooUser.Id } }; apiResult = APIResultFactory.Build(true, StatusCodes.Status202Accepted, ErrorMessageEnum.None, payload: invoiceResponseDTO); return(Accepted(apiResult)); }