public async Task <IActionResult> Create([Bind("UserID,ElectricityMeterLastRead,ElectricityMeterID,ElectricityMeterImg,ImgPath")] ElectricityTransaction electricityTransaction) { if (ModelState.IsValid) { electricityTransaction.UserID = (int)HttpContext.Session.GetInt32("UserID"); string ImgPathAfterSave = Image.Save(electricityTransaction.UserID, electricityTransaction.ElectricityMeterImg, electricityTransaction.ElectricityMeterID, "Electricity"); if (ImgPathAfterSave == null) // Another file with same name is already exist - "UserID-ElectricityMeterID" has to be unique { ModelState.AddModelError("", "Another transaction with the same User ID Water Meter ID is already exist."); return(View()); } electricityTransaction.Status = Config.TransactionStatus.Open; // Init new transaction status electricityTransaction.ImgPath = ImgPathAfterSave; _context.Add(electricityTransaction); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["UserID"] = new SelectList(_context.User, "UserID", "UserID", electricityTransaction.UserID); return(View(electricityTransaction)); }
public async Task <IActionResult> Edit(int id, [Bind("UserID,ElectricityMeterLastRead,ElectricityMeterID,ElectricityMeterImg,Status")] ElectricityTransaction electricityTransactionAfterEdit) { var ElectricityTransactionBeforeEdit = await _context.ElectricityTransactions.FindAsync(id); if (ElectricityTransactionBeforeEdit == null) { return(NotFound()); } if (ModelState.IsValid) { try { if (electricityTransactionAfterEdit.ElectricityMeterImg != null) { string newImgRelativePath = Image.Edit(ElectricityTransactionBeforeEdit.UserID, ElectricityTransactionBeforeEdit.ImgPath, electricityTransactionAfterEdit.ElectricityMeterImg, ElectricityTransactionBeforeEdit.ElectricityMeterID, "Electricity"); ElectricityTransactionBeforeEdit.ImgPath = newImgRelativePath; } ElectricityTransactionBeforeEdit.ElectricityMeterLastRead = electricityTransactionAfterEdit.ElectricityMeterLastRead; ElectricityTransactionBeforeEdit.Status = electricityTransactionAfterEdit.Status; _context.Update(ElectricityTransactionBeforeEdit); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!ElectricityTransactionExists(electricityTransactionAfterEdit.ElectricityMeterID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["UserID"] = new SelectList(_context.User, "UserID", "UserID", electricityTransactionAfterEdit.UserID); return(View(electricityTransactionAfterEdit)); }