コード例 #1
0
        public List <RideDto> GetFinishedPassengerRides(string passengerEmail)
        {
            List <PassengerDto> passengers = _passengerLogic.GetUnrepondedPassengersByEmail(passengerEmail);

            List <RideDto> dtoRides      = new List <RideDto>();
            DateTime       hourAfterRide = new DateTime();

            hourAfterRide = DateTime.Now;
            hourAfterRide.AddHours(1);
            foreach (PassengerDto passenger in passengers)
            {
                Ride ride = _rideRepository.GetRideById(passenger.RideId);
                if (ride != null)
                {
                    if (DateTime.Compare(ride.RideDateTime, hourAfterRide) < 0)
                    {
                        var     user    = _userLogic.GetUserByEmail(EmailType.LOGIN, ride.DriverEmail);
                        RideDto dtoRide = _mapper.Map <Ride, RideDto>(ride);
                        dtoRide.DriverFirstName = user.FirstName;
                        dtoRide.DriverLastName  = user.LastName;
                        dtoRides.Add(dtoRide);
                    }
                }
            }
            return(dtoRides);
        }
コード例 #2
0
        public void HandleIdleVisitors_VisitorWithoutLocation_ExpectLocationAndMovedToLocation()
        {
            ILocationDto     locationDto = new RideDto();
            Visitor          visitor     = new Visitor();
            Mock <IMediator> mediator    = new Mock <IMediator>();

            repo.Setup(repo => repo.IdleVisitors()).Returns(new List <Visitor>()
            {
                visitor
            });

            Mock <IVisitorLocationStrategy> strategyMock = new Mock <IVisitorLocationStrategy>();

            locationTypeStrategyMock.Setup(strategyMock => strategyMock.GetStrategy(It.IsAny <LocationType>()))
            .Returns(strategyMock.Object);
            strategyMock.Setup(mock => mock.SetNewLocation(visitor)).Callback <Visitor>((visitor) =>
            {
                visitor.TargetLocation = locationDto;
            });

            VisitorControl visitorControl = new VisitorControl(mediator.Object, logger, standClient, repo.Object,
                                                               visitorMovementService.Object, locationTypeStrategyMock.Object);

            visitorControl.HandleIdleVisitors();
            visitorMovementService.Verify(service => service.SetNextStepDistance(It.IsAny <Visitor>()), Times.Once);
            strategyMock.Verify(strategy => strategy.SetNewLocation(It.IsAny <Visitor>()), Times.Once);
            mediator.Verify(mediator => mediator.Publish(It.IsAny <VisitorEvent>(), CancellationToken.None), Times.Once);
        }
コード例 #3
0
ファイル: RidesController.cs プロジェクト: hodoje/web
        public IHttpActionResult AddCommentForARide(CommentDto commentDto)
        {
            string hash = Thread.CurrentPrincipal.Identity.Name;

            LoginModel loginModel = _accessService.GetLoginData(hash, _unitOfWork).Data;
            User       user       = _unitOfWork.UserRepository.GetUserByUsername(loginModel.Username, loginModel.Role);

            Ride ride = _unitOfWork.RideRepository.FilterRidesIncludeAll(r => r.Id == commentDto.RideId).FirstOrDefault();

            if (ride != null)
            {
                Comment comment;
                if ((comment = ride.Comments.FirstOrDefault(c => c.UserId == user.Id)) == null)
                {
                    comment             = _iMapper.Map <CommentDto, Comment>(commentDto);
                    comment.UserId      = user.Id;
                    comment.Description = (String.IsNullOrWhiteSpace(commentDto.Description)) ? "" : comment.Description;
                    comment.Timestamp   = DateTime.Now;
                    ride.Comments.Add(comment);
                    _unitOfWork.Complete();
                }
                else
                {
                    comment.Description = (String.IsNullOrWhiteSpace(commentDto.Description)) ? "" : commentDto.Description;
                    comment.Timestamp   = DateTime.Now;
                    _unitOfWork.CommentRepository.Update(comment);
                    _unitOfWork.Complete();
                }
                RideDto rideDto = _iMapper.Map <Ride, RideDto>(ride);
                return(Ok(rideDto));
            }
            return(BadRequest());
        }
コード例 #4
0
ファイル: MemberService.cs プロジェクト: markchan1209/GoBike
        /// <summary>
        /// 新增騎乘資料
        /// </summary>
        /// <param name="rideDto">rideDto</param>
        /// <returns>string</returns>
        public async Task <string> AddRideData(RideDto rideDto)
        {
            try
            {
                string verifyRideDataResult = this.VerifyRideData(rideDto);
                if (!string.IsNullOrEmpty(verifyRideDataResult))
                {
                    return(verifyRideDataResult);
                }

                RideData rideData   = this.mapper.Map <RideData>(rideDto);
                DateTime createDate = DateTime.Now;
                rideData.CreateDate = createDate;
                rideData.RideID     = Utility.GetSerialID(createDate);
                bool isSuccess = await this.rideRepository.CreateRideData(rideData);

                if (!isSuccess)
                {
                    return("新增騎乘資料失敗.");
                }

                return(string.Empty);
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Add Ride Data Error >>> Data:{JsonConvert.SerializeObject(rideDto)}\n{ex}");
                return("新增騎乘資料發生錯誤.");
            }
        }
コード例 #5
0
ファイル: RideLogic.cs プロジェクト: gerdasml/share-car-app
        public async Task <List <RideDto> > GetFinishedPassengerRidesAsync(string passengerEmail)
        {
            List <PassengerDto> passengers = _passengerLogic.GetUnrepondedPassengersByEmail(passengerEmail);

            //    IEnumerable<Ride> entityRides = _rideRepository.FindRidesByPassenger(_mapper.Map<PassengerDto,Passenger>(passengers));
            List <RideDto> dtoRides      = new List <RideDto>();
            DateTime       hourAfterRide = new DateTime();

            hourAfterRide = DateTime.Now;
            hourAfterRide.AddHours(1);
            foreach (PassengerDto passenger in passengers)
            {
                Ride ride = _rideRepository.GetRideById(passenger.RideId);
                if (ride != null)
                {
                    if (DateTime.Compare(ride.RideDateTime, hourAfterRide) < 0)
                    {
                        var user = await _userManager.FindByEmailAsync(ride.DriverEmail);

                        RideDto dtoRide = _mapper.Map <Ride, RideDto>(ride);
                        dtoRide.DriverFirstName = user.FirstName;
                        dtoRide.DriverLastName  = user.LastName;
                        dtoRides.Add(dtoRide);
                    }
                }
            }
            return(dtoRides);
        }
コード例 #6
0
        public List <RideRequestDto> ConvertRequestsToDto(IEnumerable <RideRequest> entityRequests, bool isDriver)
        {
            List <RideRequestDto> dtoRequests = new List <RideRequestDto>();

            int count = 0;

            foreach (var request in entityRequests)
            {
                dtoRequests.Add(_mapper.Map <RideRequest, RideRequestDto>(request));
                var route = _routeLogic.GetRouteByRequest(request.RideRequestId);

                dtoRequests[count].Route = route;

                if (isDriver)
                {
                    var user = _userLogic.GetUserByEmail(EmailType.LOGIN, request.PassengerEmail);
                    dtoRequests[count].PassengerFirstName = user.FirstName;
                    dtoRequests[count].PassengerLastName  = user.LastName;
                    dtoRequests[count].PassengerPhone     = user.Phone;
                }
                else
                {
                    var user = _userLogic.GetUserByEmail(EmailType.LOGIN, request.DriverEmail);
                    dtoRequests[count].DriverFirstName = user.FirstName;
                    dtoRequests[count].DriverLastName  = user.LastName;
                    dtoRequests[count].RideDateTime    = request.RequestedRide.RideDateTime;
                }
                AddressDto address = _addressLogic.GetAddressById(request.AddressId);

                dtoRequests[count].Address = address;
                RideDto ride = _rideLogic.GetRideById(request.RideId);
                count++;
            }
            return(dtoRequests);
        }
コード例 #7
0
        public AccelerometerReadingsScreenViewModel(MainContext context, RideDto ride)
            : base(context)
        {
            this.ride = ride;

            AccelerometerChartModel = CreateAccelerometerChartModel();
        }
コード例 #8
0
        public void HandleIdleVisitors_VisitorInRangeOfLocation_ExpectStrategyCalled()
        {
            ILocationDto locationDto = new RideDto();

            locationDto.Coordinates = new Coordinate(51.6491433, 5.0454834);
            Visitor visitor = new Visitor();

            visitor.CurrentLocation  = new Coordinate(51.6491420, 5.0454830);
            visitor.TargetLocation   = locationDto;
            visitor.NextStepDistance = 10.0;
            Mock <IMediator> mediator = new Mock <IMediator>();

            repo.Setup(repo => repo.IdleVisitors()).Returns(new List <Visitor>()
            {
                visitor
            });

            Mock <IVisitorLocationStrategy> strategyMock = new Mock <IVisitorLocationStrategy>();

            locationTypeStrategyMock.Setup(strategyMock => strategyMock.GetStrategy(It.IsAny <LocationType>()))
            .Returns(strategyMock.Object);
            visitor.LocationStrategy = strategyMock.Object;

            VisitorControl visitorControl = new VisitorControl(mediator.Object, logger, standClient, repo.Object,
                                                               visitorMovementService.Object, locationTypeStrategyMock.Object);

            visitorControl.HandleIdleVisitors();
            visitorMovementService.Verify(service => service.SetNextStepDistance(It.IsAny <Visitor>()), Times.Once);
            strategyMock.Verify(strategy => strategy.SetNewLocation(It.IsAny <Visitor>()), Times.Never);
            strategyMock.Verify(strategy => strategy.StartLocationActivity(It.IsAny <Visitor>()));
            mediator.Verify(mediator => mediator.Publish(It.IsAny <VisitorEvent>(), CancellationToken.None), Times.Never);
        }
コード例 #9
0
        public async Task <IActionResult> Post(RideDataPostData postData)
        {
            string memberID = this.HttpContext.Session.GetObject <string>(CommonFlagHelper.CommonFlag.SessionFlag.MemberID);

            try
            {
                RideDto rideDto = new RideDto()
                {
                    MemberID = memberID,
                    Climb    = postData.Climb,
                    Content  = postData.Content,
                    CityID   = postData.CityID,
                    Distance = postData.Distance,
                    Level    = postData.Level,
                    RideTime = postData.RideTime,
                    Title    = postData.Title
                };
                ResponseResultDto responseResult = await this.memberService.AddRideData(rideDto);

                if (responseResult.Ok)
                {
                    return(Ok(responseResult.Data));
                }

                return(BadRequest(responseResult.Data));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Add Ride Data Error >>> MemberID:{memberID} PostData:{JsonConvert.SerializeObject(postData)}\n{ex}");
                return(BadRequest("新增騎乘資料發生錯誤."));
            }
        }
コード例 #10
0
        public IActionResult GetSimillarRides(int rideId)
        {
            RideDto ride = _rideLogic.GetRideById(rideId);

            IEnumerable <RideDto> rides = _rideLogic.GetSimilarRides(ride);

            return(Ok(rides));
        }
コード例 #11
0
ファイル: RideLogic.cs プロジェクト: gerdasml/share-car-app
        public IEnumerable <RideDto> GetSimilarRides(RideDto ride)
        {
            string             driverEmail = ride.DriverEmail;
            int                routeId     = ride.RouteId;
            IEnumerable <Ride> rides       = _rideRepository.GetSimmilarRides(driverEmail, routeId, ride.RideId);

            return(MapToList(rides));
        }
コード例 #12
0
        public CreateTrailScreenViewModel(MainContext context, RideDto ride) : base(context)
        {
            trail       = new TrailDto();
            Ride        = ride;
            count       = 1;
            displayText = "Tap on the map to set a start point";

            MapTapped += MapViewModel_MapTapped;
        }
コード例 #13
0
ファイル: RideLogic.cs プロジェクト: gerdasml/share-car-app
        /*
         * public IEnumerable<RideDto> FindRidesByPassenger(PassengerDto passenger)
         * {
         *
         *    IEnumerable<Ride> rides =  _rideRepository.FindRidesByPassenger(_mapper.Map<PassengerDto,Passenger>(passenger));
         *
         *    return MapToList(rides);
         * }*/


        public bool AddRide(RideDto ride, string email)
        {
            ride.DriverEmail = email;

            ride.Requests = new List <RideRequestDto>();

            AddRouteIdToRide(ride);

            return(_rideRepository.AddRide(_mapper.Map <RideDto, Ride>(ride)));
        }
コード例 #14
0
        public async Task <IActionResult> SetRideAsInactive([FromBody] RideDto rideDto)
        {
            var userDto = await _userRepository.GetLoggedInUser(User);

            if (rideDto == null)
            {
                return(BadRequest());
            }
            _passengerLogic.RemovePassengerByRide(rideDto.RideId);
            _rideRequestLogic.DeletedRide(rideDto.RideId);
            _rideLogic.SetRideAsInactive(rideDto);
            return(Ok());
        }
コード例 #15
0
        public void Constructors_ConstructDto_ExpectDto()
        {
            RideDto rideDto = new RideDto(Guid.NewGuid(), "name", "status", 13, 1.64, TimeSpan.FromMinutes(11), 55, new Coordinate(5.23, 51.22), LocationType.RIDE);

            Assert.Equal("name", rideDto.Name);
            Assert.Equal(LocationType.RIDE, rideDto.LocationType);
            Assert.Equal(5.23, rideDto.Coordinates.Latitude);
            Assert.Equal(51.22, rideDto.Coordinates.Longitude);
            Assert.Equal("status", rideDto.Status);
            Assert.Equal(13, rideDto.MinimumAge);
            Assert.Equal(1.64, rideDto.MinimumLength);
            Assert.Equal(660, rideDto.DurationInSec);
        }
コード例 #16
0
        public void GetLastLocation_HasALocation_ExpectLocation()
        {
            RideDto ride = new RideDto();
            Mock <IOptions <VisitorSettings> > settingsMock = new Mock <IOptions <VisitorSettings> >();
            DateTime start   = DateTime.Now;
            Visitor  visitor = new Visitor(start, 1.73, startCoordinate, random);

            visitor.AddVisitedLocation(ride);

            Assert.NotEmpty(visitor.VisitedLocations);

            Assert.Equal(ride, visitor.GetLastLocation());
        }
コード例 #17
0
ファイル: RideLogic.cs プロジェクト: superhp/share-car-app
        public void AddRide(RideDto ride, string email)
        {
            ride.DriverEmail = email;
            ride.Requests    = new List <RideRequestDto>();
            AddRouteIdToRide(ride);
            var entity = _rideRepository.AddRide(_mapper.Map <RideDto, Ride>(ride));

            var note = _driverNoteLogic.AddNote(new DriverNoteDto {
                Text = ride.Note, RideId = entity.RideId
            });

            ride.DriverNoteId = note.DriverNoteId;
        }
コード例 #18
0
        public IActionResult GetSimillarRides(int rideId)
        {
            RideDto ride = _rideLogic.GetRideById(rideId);

            if (ride == null)
            {
                return(BadRequest("Invalid parameter"));
            }

            IEnumerable <RideDto> rides = _rideLogic.GetSimilarRides(ride);

            return(Ok(rides));
        }
コード例 #19
0
ファイル: RidesController.cs プロジェクト: GeLyk/Car-pooling
        public IHttpActionResult CancelSeats(RideDto rideDto) // Cancel seats from passenger
        {
            var rideDB    = unitOfWork.Rides.GetSpecificRide(rideDto.RideID);
            var requestDB = unitOfWork.Requests.SpecificRequest(rideDto.RideID, User.Identity.GetUserId());

            // Se periptwsh pou h akyrwsh thesewn afora oles tis theseis tote h "RefrechSeats" epistrefei -->false<-- kai kanei Delete tou Request apo th vash
            if (!RequestViewModel.RefrechSeats(rideDB, requestDB, rideDto.CancelSeats))
            {
                unitOfWork.Requests.Remove(requestDB);
            }

            unitOfWork.Complete();
            return(Ok());
        }
コード例 #20
0
ファイル: UserController.cs プロジェクト: brngcn96/Proje
        public RideDto EarlyStartRide(int userID, int veicleID)
        {
            RideDto rideDto = new RideDto();

            if (!ModelState.IsValid)
            {
                return(null);
            }

            User user = (from c in context.User where c.User_ID == userID select c).FirstOrDefault();

            try
            {
                if (user != null)
                {
                    Ride newRide = new Ride()
                    {
                        User_ID    = userID,
                        StartTime  = DateTime.Now,
                        FinishTime = null,
                        Status     = true,
                    };

                    rideDto.Ride_ID   = newRide.Ride_ID;
                    rideDto.User_ID   = newRide.User_ID;
                    rideDto.StartTime = DateTime.Now;
                    rideDto.Status    = newRide.Status;


                    Vehicle vehicle = (from c in context.Vehicle where c.Vehicle_ID == veicleID select c).FirstOrDefault();
                    if (vehicle != null)
                    {
                        vehicle.isReserved = true;
                    }
                    else
                    {
                        return(null);
                    }

                    context.Ride.Add(newRide);
                    context.Vehicle.Add(vehicle);
                    context.SaveChanges();
                }
            }
            catch (Exception exc)
            {
                return(null);
            }
            return(rideDto);
        }
コード例 #21
0
        public async Task <bool> Load(int id)
        {
            try {
                ride = await Context.Services.GetRide(id);

                OnPropertyChanged();

                return(true);
            } catch (ServiceException ex) {
                Toast.LongAlert(ex.Message);

                return(false);
            }
        }
コード例 #22
0
        public void SetNewLocation_GivenVisitorHasFairyTaleAsLatestLocation_ExpectRandomRequested()
        {
            Visitor visitor  = new Visitor();
            RideDto location = new RideDto();

            location.LocationType = LocationType.FAIRYTALE;
            visitor.VisitedLocations.Add(DateTime.Now, location);
            VisitorRideStrategy strategy =
                new VisitorRideStrategy(eventProducerMock.Object, rideClientMock.Object);

            strategy.SetNewLocation(visitor);

            rideClientMock.Verify(client => client.GetRandomRide(), Times.Once);
            rideClientMock.Verify(client => client.GetNextLocation(It.IsAny <Guid>(),
                                                                   It.IsAny <List <Guid> >()), Times.Never);
        }
コード例 #23
0
        public async Task <List <RideRequestDto> > ConvertRequestsToDtoAsync(IEnumerable <RideRequest> entityRequests, bool isDriver)
        {
            List <RideRequestDto> dtoRequests = new List <RideRequestDto>();

            int count = 0;

            foreach (var request in entityRequests)
            {
                dtoRequests.Add(_mapper.Map <RideRequest, RideRequestDto>(request));


                if (isDriver)
                {
                    var user = await _userManager.FindByEmailAsync(request.PassengerEmail);

                    dtoRequests[count].PassengerFirstName = user.FirstName;
                    dtoRequests[count].PassengerLastName  = user.LastName;
                }
                else
                {
                    var user = await _userManager.FindByEmailAsync(request.DriverEmail);

                    dtoRequests[count].DriverFirstName = user.FirstName;
                    dtoRequests[count].DriverLastName  = user.LastName;
                }

                AddressDto address = _addressLogic.GetAddressById(request.AddressId);

                dtoRequests[count].City        = address.City;
                dtoRequests[count].Street      = address.Street;
                dtoRequests[count].HouseNumber = address.Number;
                dtoRequests[count].Longtitude  = address.Longtitude;
                dtoRequests[count].Latitude    = address.Latitude;
                RideDto ride = _rideLogic.GetRideById(request.RideId);
                if (ride != null)
                {
                    dtoRequests[count].RideDate = ride.RideDateTime;
                }
                else
                {
                    dtoRequests[count].RideDate = new System.DateTime();
                }
                count++;
            }
            return(dtoRequests);
        }
コード例 #24
0
ファイル: RidesController.cs プロジェクト: hodoje/web
        public IHttpActionResult RequestRide(RideRequestModel rideRequestApiMessage)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            string hash = Thread.CurrentPrincipal.Identity.Name;

            LoginModel loginModel = _accessService.GetLoginData(hash, _unitOfWork).Data;
            User       user       = _unitOfWork.UserRepository.GetUserByUsername(loginModel.Username, loginModel.Role);

            Location newRideLocation = _iMapper.Map <LocationDto, Location>(rideRequestApiMessage.Location);

            try
            {
                _unitOfWork.LocationRepository.Add(newRideLocation);
                _unitOfWork.Complete();
            }
            catch (DbUpdateConcurrencyException)
            {
                return(BadRequest(ModelState));
            }

            Ride newRide = new Ride();

            newRide.StartLocationId = newRideLocation.Id;
            newRide.CarType         = (int)Enum.GetValues(typeof(CarType)).Cast <CarType>().FirstOrDefault(ct => ct.ToString() == rideRequestApiMessage.CarType);
            newRide.CustomerId      = user.Id;
            newRide.Timestamp       = DateTime.Now;

            try
            {
                _unitOfWork.RideRepository.Add(newRide);
                _unitOfWork.Complete();
            }
            catch (DbUpdateConcurrencyException)
            {
                return(BadRequest(ModelState));
            }

            RideDto newRideDto = _iMapper.Map <Ride, RideDto>(newRide);

            return(CreatedAtRoute("DefaultApi", new { controller = "rides", id = newRideDto.Id }, newRideDto));
        }
コード例 #25
0
        public void WalkToDestination_VisitorStepsIntoLine_ExpectHandledData()
        {
            Visitor visitor = new Visitor();
            RideDto ride    = new RideDto();

            ride.Coordinates         = new Coordinate(51.64984, 5.04858);
            visitor.CurrentLocation  = new Coordinate(51.64937, 5.04797);
            visitor.TargetLocation   = ride;
            visitor.NextStepDistance = 1.1;

            visitor.WalkToDestination();

            Assert.True(visitor.CurrentLocation.Latitude < ride.Coordinates.Latitude);
            Assert.True(visitor.CurrentLocation.Latitude > 51.64937);

            Assert.True(visitor.CurrentLocation.Longitude < ride.Coordinates.Longitude);
            Assert.True(visitor.CurrentLocation.Longitude > 5.04797);
        }
コード例 #26
0
ファイル: RidesController.cs プロジェクト: hodoje/web
        public IHttpActionResult FinishSuccessfulRide(RideDto successfulRideDto)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            if (successfulRideDto.Price == 0.0)
            {
                return(BadRequest());
            }

            if (successfulRideDto.DestinationLocation == null)
            {
                return(BadRequest());
            }

            string hash = Thread.CurrentPrincipal.Identity.Name;

            LoginModel loginModel   = _accessService.GetLoginData(hash, _unitOfWork).Data;
            User       user         = _unitOfWork.UserRepository.GetUserByUsername(loginModel.Username, loginModel.Role);
            Ride       rideToUpdate = _unitOfWork.RideRepository.FilterRidesIncludeAll(r => r.Id == successfulRideDto.Id).FirstOrDefault();

            if (rideToUpdate != null)
            {
                Ride successfulRide = _iMapper.Map <RideDto, Ride>(successfulRideDto);
                rideToUpdate.RideStatus          = (int)RideStatus.SUCCESSFUL;
                rideToUpdate.Price               = successfulRide.Price;
                rideToUpdate.DestinationLocation = successfulRide.DestinationLocation;

                Comment comment = successfulRide.Comments.FirstOrDefault();
                comment.UserId      = user.Id;
                comment.Description = (String.IsNullOrWhiteSpace(comment.Description)) ? "" : comment.Description;
                comment.Timestamp   = DateTime.Now;

                rideToUpdate.Comments.Add(comment);

                _unitOfWork.RideRepository.Update(rideToUpdate);
                _unitOfWork.Complete();

                return(Ok(rideToUpdate));
            }
            return(BadRequest());
        }
コード例 #27
0
ファイル: MemberService.cs プロジェクト: markchan1209/GoBike
        /// <summary>
        /// 驗證騎乘資料
        /// </summary>
        /// <param name="memberDto">memberDto</param>
        /// <param name="isVerifyPassword">isVerifyPassword</param>
        /// <returns>string</returns>
        private string VerifyRideData(RideDto rideDto)
        {
            if (string.IsNullOrEmpty(rideDto.MemberID))
            {
                return("會員編號無效.");
            }

            if (rideDto.RideTime == 0)
            {
                return("無騎乘時間.");
            }

            if (rideDto.Distance == 0)
            {
                return("無騎乘距離.");
            }

            if (rideDto.Climb == 0)
            {
                return("無爬升高度.");
            }

            if (rideDto.CityID == (int)CityType.None)
            {
                return("未設定騎乘市區.");
            }

            if (rideDto.Level == (int)RideLevelType.None)
            {
                return("未設定騎乘等級.");
            }

            if (string.IsNullOrEmpty(rideDto.Title))
            {
                rideDto.Title = $"{DateTime.Now:yyyy/MM/dd}";
            }

            if (string.IsNullOrEmpty(rideDto.Content))
            {
                return("未輸入分享內容.");
            }

            return(string.Empty);
        }
コード例 #28
0
ファイル: RidesController.cs プロジェクト: hodoje/web
        public IHttpActionResult CancelRideRequest(CancelRideRequestModel cancelRideRequestApiMessage)
        {
            string hash = Thread.CurrentPrincipal.Identity.Name;

            LoginModel loginModel = _accessService.GetLoginData(hash, _unitOfWork).Data;
            User       user       = _unitOfWork.UserRepository.GetUserByUsername(loginModel.Username, loginModel.Role);

            Ride oldRide = _unitOfWork.RideRepository.FilterRidesIncludeAll(r => r.CustomerId == user.Id && r.RideStatus == (int)RideStatus.CREATED).FirstOrDefault();

            if (oldRide != null)
            {
                oldRide.RideStatus = (int)RideStatus.CANCELLED;
                _unitOfWork.RideRepository.Update(oldRide);
                _unitOfWork.Complete();
                RideDto oldRideDto = _iMapper.Map <Ride, RideDto>(oldRide);
                return(Ok(oldRideDto));
            }
            return(BadRequest());
        }
コード例 #29
0
ファイル: MemberService.cs プロジェクト: markchan1209/GoBike
        /// <summary>
        /// 取得騎乘資料
        /// </summary>
        /// <param name="rideDto">rideDto</param>
        /// <returns>Tuple(RideDto, string)</returns>
        public async Task <Tuple <RideDto, string> > GetRideData(RideDto rideDto)
        {
            try
            {
                if (string.IsNullOrEmpty(rideDto.RideID))
                {
                    return(Tuple.Create <RideDto, string>(null, "騎乘編號無效."));
                }

                RideData rideData = await this.rideRepository.GetRideData(rideDto.RideID);

                return(Tuple.Create(this.mapper.Map <RideDto>(rideData), string.Empty));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Get Ride Data Error >>> RideID:{rideDto.RideID}\n{ex}");
                return(Tuple.Create <RideDto, string>(null, "取得騎乘資料發生錯誤."));
            }
        }
コード例 #30
0
        public async Task <IActionResult> Post(RideDto rideDto)
        {
            try
            {
                Tuple <RideDto, string> result = await this.memberService.GetRideData(rideDto);

                if (string.IsNullOrEmpty(result.Item2))
                {
                    return(Ok(result.Item1));
                }

                return(BadRequest(result.Item2));
            }
            catch (Exception ex)
            {
                this.logger.LogError($"Get Ride Data Error >>> RideID:{rideDto.RideID}\n{ex}");
                return(BadRequest("取得騎乘資料發生錯誤."));
            }
        }