コード例 #1
0
        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"));
        }