public static bool UpdateRide(string id, UpdateRideDTO dto)
        {
            try
            {
                Ride r = UpdateRideDTO.FromDTO(dto);
                r.Id = id;

                //RideRelationship rideRel = new RideRelationship(r);
                Dictionary <string, object> queryDict = new Dictionary <string, object>
                {
                    { "RidePrice", dto.RidePrice },
                    { "RideType", dto.RideType },
                    { "TakeOfTime", r.TakeOfTime },
                    { "ArrivalTime", r.ArrivalTime },
                    { "DayOfWeek", dto.DayOfWeek }
                };

                var query = DataLayer.Client.Cypher
                            .Match("(ride:Ride)", "(takeOf:Station) - [rel: RIDE] -> (arrival:Station)")
                            .Where((Ride ride) => ride.Id == id)
                            .AndWhere((Ride rel) => rel.Id == id)
                            .Set("ride = {newRide}")
                            .WithParam("newRide", r)
                            .Set("rel.RidePrice = {RidePrice}")
                            .Set("rel.RideType = {RideType}")
                            .Set("rel.TakeOfTime = {TakeOfTime}")
                            .Set("rel.ArrivalTime = {ArrivalTime}")
                            .Set("rel.DayOfWeek = {DayOfWeek}")
                            .WithParams(queryDict)
                            .Return <Ride>("ride")
                            .Results;

                if (query != null && query.Count() > 0)
                {
                    RedisDataProvider.RedisRideDataProvider.UpdateRide(id, dto.NumberOfSeats);
                    return(true);
                }

                return(false);
            }
            catch (Exception e)
            {
                return(false);
            }
        }
Esempio n. 2
0
 // PUT: api/Ride/5
 public bool Put(string id, [FromBody] UpdateRideDTO value)
 {
     return(RideDataProvider.UpdateRide(id, value));
 }