//Создаем заявку public JsonResult CreateRideRequest(TMRequestPM data) { try { using (ApplicationDbContext db = new ApplicationDbContext()) { //Куки текущего пользователя var cookie = Request.Cookies["user_guid"]; string userGuid = cookie != null ? cookie.Value : ""; TMRideRequest request = new TMRideRequest { CreationTime = DateTime.Now, StartLocation = data.Start, FinalDestination = data.Destination, Status = 0, UserGUID = userGuid }; db.RideRequests.Add(request); db.SaveChanges(); //Если все получилось - возвращаем ID новой заявки (на всякий) return(Json(new { Id = request.Id })); } } catch (Exception e) { //Если что-то пошло не так - возвращаем сообщение об ошибке return(Json(new { ErrorMessage = e.Message })); } }
//Изменяем заявку public JsonResult EditRideRequest(TMRequestPM data) { try { //Только водитель или диспетчер могут менять заявки if (!User.IsInRole("Диспетчер") && !User.IsInRole("Водитель")) { throw new Exception("Неавторизованный доступ"); } using (ApplicationDbContext db = new ApplicationDbContext()) { //Ищем заявку по ID TMRideRequest request = db.RideRequests.Include("Driver").Single(m => m.Id == data.Id); //Назначаем статус if (data.Status != -1) { request.Status = data.Status; if (data.Status == 4) { request.FinishTime = DateTime.Now; } } //Назначаем водителя if (!string.IsNullOrEmpty(data.DriverId)) { ApplicationUser driver = db.Users.SingleOrDefault(m => m.Id == data.DriverId); request.Driver = driver; request.Status = 1; } //Отказ водителя от заявки if (data.Reject) { request.Driver = null; request.Status = 1; } db.SaveChanges(); return(Json(new { Id = request.Id })); } } catch (Exception e) { return(Json(new { ErrorMessage = e.Message })); } }