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())); }
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)); }