public async Task <Result <SpotPostResponse> > CreateSpot(SpotPostRequest request)
        {
            var validate = await request.ValidateAsync();

            if (!validate.IsValid)
            {
                var error = validate.Errors.FirstOrDefault();
                return(Error <SpotPostResponse>(error.ToMetaError()));
            }

            var spot = new Spot
            {
                Message  = request.Message,
                Status   = Status.Pending,
                PostDate = DateTime.UtcNow,
            };

            try { spot = await _repository.Create(spot); }
            catch { return(Error <SpotPostResponse>(Errors.SpotCreatingOnDatabaseError)); }

            return(Success(spot.ToSpotPostResponse()));
        }
Exemple #2
0
        public static async Task <ValidationResult> ValidateAsync(this SpotPostRequest request)
        {
            var validator = new SpotPostRequestValidator();

            return(await validator.ValidateAsync(request));
        }
        public async Task <IActionResult> Post(SpotPostRequest request)
        {
            var result = await _service.CreateSpot(request);

            return(HttpHelper.Convert(result));
        }