public async Task <IActionResult> Create([Bind("UserID,WaterMeterLastReadDate,WaterMeterID,WaterMeterImg,ImgPath")] WaterTransaction waterTransaction) { if (ModelState.IsValid) { waterTransaction.UserID = (int)HttpContext.Session.GetInt32("UserID"); string ImgPathAfterSave = Image.Save(waterTransaction.UserID, waterTransaction.WaterMeterImg, waterTransaction.WaterMeterID, "Water"); if (ImgPathAfterSave == null) // Another file with same name is already exist - "UserID-WaterMeterID" has to be unique { ModelState.AddModelError("", "Another transaction with the same User ID Water Meter ID is already exist."); return(View()); } waterTransaction.Status = Config.TransactionStatus.Open; // Init new transaction status waterTransaction.ImgPath = ImgPathAfterSave; _context.Add(waterTransaction); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["UserID"] = new SelectList(_context.User, "UserID", "UserID", waterTransaction.UserID); return(View(waterTransaction)); }
public async Task <IActionResult> Edit(int id, [Bind("UserID,WaterMeterLastReadDate,WaterMeterID,ImgPath")] WaterTransaction waterTransaction) { if (id != waterTransaction.WaterMeterID) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(waterTransaction); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WaterTransactionExists(waterTransaction.WaterMeterID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["UserID"] = new SelectList(_context.User, "UserID", "UserID", waterTransaction.UserID); return(View(waterTransaction)); }
public async Task <IActionResult> Create([Bind("UserID,WaterMeterLastReadDate,WaterMeterID,ImgPath")] WaterTransaction waterTransaction) { if (ModelState.IsValid) { _context.Add(waterTransaction); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } ViewData["UserID"] = new SelectList(_context.User, "UserID", "UserID", waterTransaction.UserID); return(View(waterTransaction)); }
public IActionResult CreateNewTransaction(WaterTransaction userInput) { string newFileName = userInput.UserID.ToString() + Path.GetExtension(userInput.WaterMeterImg.FileName); string PhysicalAddressOfSaveNewFile = Path.Combine(Config.PhysicalWaterFilesPath, newFileName); userInput.WaterMeterImg.CopyTo(new FileStream(PhysicalAddressOfSaveNewFile, FileMode.Create)); string RelativeAddressOfNewFile = Path.Combine(Config.RelativeWaterFilesPath, newFileName); WaterTransaction insertToDb = new WaterTransaction { UserID = userInput.UserID, ImgPath = RelativeAddressOfNewFile, WaterMeterID = userInput.WaterMeterID, WaterMeterLastReadDate = userInput.WaterMeterLastReadDate }; _context.WaterTransactions.Add(insertToDb); _context.SaveChanges(); return(RedirectToAction("Index")); }
public async Task <IActionResult> Edit(int id, [Bind("UserID,WaterMeterLastReadDate,WaterMeterID,WaterMeterImg,ImgPath,Status")] WaterTransaction waterTransactionAfterEdit) { var waterTransactionBeforeEdit = await _context.WaterTransactions.FindAsync(id); if (waterTransactionBeforeEdit == null) { return(NotFound()); } if (ModelState.IsValid) { try { if (waterTransactionAfterEdit.WaterMeterImg != null) { string newImgRelativePath = Image.Edit(waterTransactionBeforeEdit.UserID, waterTransactionBeforeEdit.ImgPath, waterTransactionAfterEdit.WaterMeterImg, waterTransactionBeforeEdit.WaterMeterID, "Water"); waterTransactionBeforeEdit.ImgPath = newImgRelativePath; } waterTransactionBeforeEdit.Status = waterTransactionAfterEdit.Status; waterTransactionBeforeEdit.WaterMeterLastReadDate = waterTransactionAfterEdit.WaterMeterLastReadDate; _context.Update(waterTransactionBeforeEdit); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!WaterTransactionExists(waterTransactionAfterEdit.WaterMeterID)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } ViewData["UserID"] = new SelectList(_context.User, "UserID", "UserID", waterTransactionAfterEdit.UserID); return(View(waterTransactionAfterEdit)); }