예제 #1
0
        public async Task <IActionResult> CreateNewUserAsync([FromBody] UserCreate newUser, CancellationToken ct)
        {
            if (!_accountsService.CanExecuteAdminRequest(User))
            {
                return(Unauthorized());
            }

            if (string.IsNullOrEmpty(newUser?.UserName))
            {
                return(BadRequest(new ApiError(Resources.InvalidParameters, Resources.NameFieldRequired)));
            }
            if (string.IsNullOrEmpty(newUser.Email))
            {
                return(BadRequest(new ApiError(Resources.InvalidParameters, Resources.EmailFieldRequired)));
            }
            if (string.IsNullOrEmpty(newUser.Password))
            {
                return(BadRequest(new ApiError(Resources.InvalidParameters, Resources.PasswordFieldRequired)));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(new ApiError(ModelState)));
            }

            var result = await _accountsService.CreateUserAsync(newUser);

            if (result.Succeeded)
            {
                return(Created(Url.Link(nameof(VerifyLoginStatus), null), null));
            }

            return(BadRequest(result.Errors));
        }
예제 #2
0
        public async Task <IActionResult> CreateNewPointAsync([FromBody] PointCreate newPoint, CancellationToken ct)
        {
            if (!_accountsService.CanExecuteAdminRequest(User))
            {
                return(Unauthorized());
            }

            if (string.IsNullOrEmpty(newPoint?.PointName))
            {
                return(BadRequest(new ApiError(Resources.InvalidParameters, Resources.NameFieldRequired)));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ApiError(ModelState)));
            }

            var pointId = await _pointsService.CreatePointAsync(newPoint.PointName, ct);

            return(Created(Url.Link(nameof(GetPointByIdAsync), new { pointId }), null));
        }
        public async Task <IActionResult> CreateNewRouteAsync([FromBody] RouteCreate newRoute, CancellationToken ct)
        {
            if (!_accountsService.CanExecuteAdminRequest(User))
            {
                return(Unauthorized());
            }

            if (string.IsNullOrEmpty(newRoute?.RouteName))
            {
                return(BadRequest(new ApiError(Resources.InvalidParameters, Resources.NameFieldRequired)));
            }
            if (newRoute.Origin == Guid.Empty)
            {
                return(BadRequest(new ApiError(Resources.InvalidParameters, Resources.InvalidOriginPointId)));
            }
            if (newRoute.Destination == Guid.Empty)
            {
                return(BadRequest(new ApiError(Resources.InvalidParameters, Resources.InvalidDestinationPointId)));
            }
            if (newRoute.Cost <= 0)
            {
                return(BadRequest(new ApiError(Resources.InvalidParameters, Resources.InvalidCostMustBeGreaterThanZero)));
            }
            if (newRoute.Time <= 0)
            {
                return(BadRequest(new ApiError(Resources.InvalidParameters, Resources.InvalidTimeMustBeGreaterThanZero)));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest(new ApiError(ModelState)));
            }

            var routeId = await _routesService.CreateRouteAsync(newRoute, ct);

            return(Created(Url.Link(nameof(GetRouteByIdAsync), new { routeId }), null));
        }