public async Task <IActionResult> DoneTransInfo(string transportId) { string message = String.Empty; var trans = await _transInfoServices.GetTransport(transportId); var user = await _userManager.GetUserAsync(User); if (trans != null) { if (trans.DateCompletedLocal > 0) { message = "Chuyến vận chuyển đã được kết thúc"; TempData["UserMessage"] = SystemUtilites.SendSystemNotification(NotificationType.Error, message); return(RedirectToAction(actionName: "Manage")); } if (await _transInfoServices.DoneTransInfo(trans, user.Id)) { var vehicle = await _vehicleServices.GetVehicle(trans.VehicleId); var listTransportByVehicle = await _transInfoServices.GetTransportsNotFinishByVehicle(vehicle.VehicleId); if (listTransportByVehicle != null && vehicle != null) { if (!listTransportByVehicle.Any() && vehicle.IsInUse) { await _vehicleServices.MakeVehicleIsFree(vehicle); } } var driver = await _userManager.FindByIdAsync(trans.DayJob.DriverId); var listTransportByDriver = await _transInfoServices.GetTransportsNotFinishByDriver(driver.Id); if (listTransportByDriver != null && driver != null) { if (!listTransportByDriver.Any() && !driver.IsAvailable) { await _userServices.MakeDriverIsFree(driver); } } message = "Đã hoàn thành chuyến vận chuyển"; TempData["UserMessage"] = SystemUtilites.SendSystemNotification(NotificationType.Success, message); return(RedirectToAction(actionName: "Manage")); } } message = "Lỗi không xác định, xin mời thao tác lại"; TempData["UserMessage"] = SystemUtilites.SendSystemNotification(NotificationType.Error, message); return(RedirectToAction(actionName: "Manage")); }