コード例 #1
0
        public async Task <IActionResult> CreateTrip([FromBody] CreateTripRequest modelRequest)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState
                                  ));
            }

            CultureInfo cultureInfo = new CultureInfo(modelRequest.CultureInfo);

            Resource.Culture = cultureInfo;

            UserEntity user = await _userHelper.GetUserAsync(new System.Guid(modelRequest.UserId));

            if (user == null)
            {
                return(BadRequest(Resource.UserDoesntExists
                                  ));
            }

            TripsEntity tripEntity = new TripsEntity()
            {
                StartDate   = modelRequest.StartDate,
                EndDate     = modelRequest.EndDate,
                Description = modelRequest.Description,
                City        = await _dataContext.Cities.FindAsync(modelRequest.CityId),
                User        = user
            };

            _dataContext.Trips.Add(tripEntity);

            await _dataContext.SaveChangesAsync();

            return(Ok(Resource.TripCreated));
        }
コード例 #2
0
        public async override Task <TripModel> CreateTrip(CreateTripRequest request, ServerCallContext context)
        {
            try
            {
                var newTrip = await _tripComponent.CreateTrip(new Business.Models.TripModel
                {
                    Name        = request.Name,
                    Destination = request.Destination,
                    EndDate     = System.DateTime.Parse(request.EndDate),
                    GeoLocation = request.GeoLocation,
                    Photos      = new List <Business.Models.PhotoModel>(),
                    StartDate   = System.DateTime.Parse(request.StartDate),
                    TripId      = Guid.NewGuid().ToString()
                });

                var reply = _mapper.Map <Business.Models.TripModel, TripModel>(newTrip);

                return(reply);
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, "CreateTrip({request})", request);
                throw new RpcException(new Status(StatusCode.Internal, "Internal Error"));
            }
        }
コード例 #3
0
        public async Task <IActionResult> Create([FromBody] CreateTripRequest tripRequest)
        {
            var trip = new Trip {
                Name = tripRequest.Name
            };

            await _tripService.CreateTripAsync(trip);

            var baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}";

            var locationUri = baseUrl + "/" + ApiRoutes.Trips.Get.Replace("{tripId}", trip.Id.ToString());

            var response = new TripResponse {
                Id = trip.Id
            };

            return(Created(locationUri, response));
        }