public async Task <IActionResult> Edit(int id, [Bind("UsageHistoryId,UserId,ToolId,TaskFor,Inspection,Serviceable,CheckoutTime,ExpectedReturn,PromiseReturn")] UsageHistory usageHistory) { ModelState.Remove("UserId"); if (ModelState.IsValid) { try { ApplicationUser user = await GetCurrentUserAsync(); usageHistory.UserId = user.Id; _context.Update(usageHistory); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!UsageHistoryExists(usageHistory.UsageHistoryId)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["ToolId"] = new SelectList(_context.Tools, "ToolId", "Description", usageHistory.ToolId); ViewData["UserId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", usageHistory.UserId); return(View(usageHistory)); }
public async Task <IActionResult> Create(int?id, [Bind("UsageHistoryId,UserId,ToolId,TaskFor,Inspection,Serviceable,CheckoutTime,ExpectedReturn,PromiseReturn")] UsageHistory usageHistory) { //UsageHistory.UserId = user.Id; ModelState.Remove("CheckoutTime"); ModelState.Remove("PromiseReturn"); ModelState.Remove("UserId"); if (ModelState.IsValid) { ApplicationUser user = await GetCurrentUserAsync(); var tool = await _context.Tools .FirstOrDefaultAsync(t => t.ToolId == id); usageHistory.UserId = user.Id; usageHistory.ToolId = tool.ToolId; _context.Add(usageHistory); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["ToolId"] = new SelectList(_context.Tools, "ToolId", "Description", usageHistory.ToolId); ViewData["UserId"] = new SelectList(_context.ApplicationUsers, "Id", "Id", usageHistory.UserId); return(View(usageHistory)); }
// GET: UsageHistories/Create public async Task <IActionResult> Create(int?id) { var tool = await _context.Tools .FirstOrDefaultAsync(t => t.ToolId == id); var usageHistory = new UsageHistory(); usageHistory.Tool = tool; return(View(usageHistory)); }
public bool Remove(string token) { if (UsageHistory.Remove(token)) { Queue <string> newQueue = new Queue <string>(); foreach (string workingToken in ExpiryQueue) { if (workingToken != token) { newQueue.Enqueue(workingToken); } } ExpiryQueue = newQueue; TokenCount--; return(true); } return(false); }
private async Task ReadEdyAsync(SmartCardConnection connection) { EDYReader reader = new EDYReader(connection); // システムコードを指定してPolling await LogMessageAsync("EDYカードをポーリング: "); byte[] idm = await reader.Polling(); if (idm.Length > 0) { await LogMessageAsync(BitConverter.ToString(idm)); // ReadWithoutEncryptionでサービスコードを指定してデータ取得 // 属性情報 byte[] attributeData = await reader.GetAttribute(idm); await LogMessageAsync("属性情報: " + BitConverter.ToString(attributeData)); // 残額情報 byte[] balanceData = await reader.GetBalance(idm); await LogMessageAsync("残額情報: " + BitConverter.ToString(balanceData)); // 利用履歴 // 参考) http://iccard.jennychan.at-ninja.jp/format/edy.html#170F UsageHistory result = await reader.GetUsageHistory(idm); await LogMessageAsync("利用履歴: " + BitConverter.ToString(result.PacketData)); if (result.HasData) { await LogMessageAsync("■利用履歴の解析結果"); await LogMessageAsync("利用区分: 0x" + result.UsageType.ToString("X")); await LogMessageAsync("取引通番: " + result.RunningNumber); await LogMessageAsync("利用日時: " + result.UsedDateTime.ToString("yyyy/MM/dd HH:mm:ss")); await LogMessageAsync("利用金額: " + result.UsedAmount); await LogMessageAsync("残額: " + result.Balance); } } return; }
public void Add(string token) { if (!UsageHistory.ContainsKey(token)) { UsageHistory[token] = new LinkedList <RecentToken>(); } RecentToken recentToken = new RecentToken(); recentToken.TimeOfAction = DateTime.UtcNow; UsageHistory[token].AddLast(recentToken); ExpiryQueue.Enqueue(token); TokenCount++; // Check if some should be expired // Since we're using a linkedlist, removal at head is efficient while (TokenCount > TokenCountLimit) { string tokenToRemove = ExpiryQueue.Dequeue(); UsageHistory[tokenToRemove].RemoveFirst(); TokenCount--; } }
private async Task <bool> WasCreatedByUser(UsageHistory usageHistory) { var user = await GetUserAsync(); return(usageHistory.UserId == user.Id); }