示例#1
0
        //Создаем заявку
        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 }));
            }
        }
示例#2
0
        //Изменяем заявку
        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 }));
            }
        }