public async Task <IActionResult> NewDonation([FromBody] NewDonationRequest request) { await _donationReceivedCommandHandler.HandleAsync( new DonationReceivedCommand { Name = request.Name, PostCode = request.PostCode, DonationAmount = request.DonationAmount }); return(Ok()); }
public NewDonationResponse HandleNewDonationRequest(NewDonationRequest request) { NewDonationResponse ret; SqlCommand com = new SqlCommand( $"select MaterialID, MaterialName, MaterialQuantity " + $"from Materials " + $"where " + $"MaterialId = {request.MaterialId}", Connect.Connection); SqlDataAdapter da = new SqlDataAdapter(com); DataSet ds = new DataSet(); int n = da.Fill(ds, "Materials"); if (n != 0) { DateTime now = DateTime.Now; com.CommandText = $"INSERT INTO Tranc (UserId, Address, MaterialId, MaterialQuantity, TransactionState, TransactionType, StartTime, AdminId) " + $"OUTPUT INSERTED.TransactionId values ({UserId}, '{request.Address}', {request.MaterialId}, {request.Quantity}, " + $"{(int)ApplicationState.Applying}, {(int)TransactionType.DONATION}, '{now}', -1)"; // https://stackoverflow.com/questions/18373461/execute-insert-command-and-return-inserted-id-in-sql int modified = Convert.ToInt32(com.ExecuteScalar()); ret = new NewDonationResponse() { Item = new GetDonationListResponse.Item() { ID = modified, Name = ds.Tables[0].Rows[0]["MaterialName"].ToString(), Quantity = request.Quantity, State = DonationState.Applying, StartTime = now } }; } else { Console.WriteLine($"DEBUG: material {request.MaterialId} doesn't exist"); ret = new NewDonationResponse() { }; } return(ret); }
public void GivenNameIsNullOrEmpty_ShouldReturnInvalid() { // Arrange NewDonationRequestValidator validator = new NewDonationRequestValidator(); NewDonationRequest request = new NewDonationRequest { PostCode = "AB12CD", DonationAmount = 20.0m }; // Act var result = validator.Validate(request); // Assert Assert.False(result.IsValid); }
public void GivenDonationAmountIsLessThan2_ShouldReturnInvalid() { // Arrange NewDonationRequestValidator validator = new NewDonationRequestValidator(); NewDonationRequest request = new NewDonationRequest { Name = "Test User", PostCode = "AB12CD", DonationAmount = 1.99m }; // Act var result = validator.Validate(request); // Assert Assert.False(result.IsValid); }
public void GivenPostCodeIsNullOrEmpty_ShouldReturnAppropriateError() { // Arrange NewDonationRequestValidator validator = new NewDonationRequestValidator(); NewDonationRequest request = new NewDonationRequest { Name = "Test User", DonationAmount = 20.0m }; // Act var result = validator.Validate(request); // Assert Assert.IsNotEmpty(result.Errors); Assert.True( result.Errors.Any( x => x.ErrorMessage.Contains("not be empty") )); }
public void GivenDonationAmountIsMoreThan100000_ShouldReturnAppropriateError() { // Arrange NewDonationRequestValidator validator = new NewDonationRequestValidator(); NewDonationRequest request = new NewDonationRequest { Name = "Test User", PostCode = "AB12CD", DonationAmount = 100001.01m }; // Act var result = validator.Validate(request); // Assert Assert.IsNotEmpty(result.Errors); Assert.True( result.Errors.Any( x => x.ErrorMessage.Contains("less than or equal to '100000'") )); }
private Response handleRequest(Request request) { Response response = null; //LOGIN if (request is LoginRequest) { Console.WriteLine("Login request... "); LoginRequest loginRequest = (LoginRequest)request; Volunteer volunteer = loginRequest.Volunteer; try { lock (server) { server.login(this, volunteer.Username, volunteer.Password); } return(new OKResponse()); } catch (TeledonException e) { connected = false; return(new ErrorResponse(e.Message)); } } //LOGOUT if (request is LogoutRequest) { Console.WriteLine("Logout request... "); LogoutRequest logoutRequest = (LogoutRequest)request; try { lock (server) { server.logout(this); } connected = false; return(new OKResponse()); } catch (TeledonException e) { return(new ErrorResponse(e.Message)); } } //GET ALL CASES if (request is GetAllCasesRequest) { Console.WriteLine("Get all cases request... "); GetAllCasesRequest getAllCasesRequest = (GetAllCasesRequest)request; try { lock (server) { IEnumerable <Case> cases = server.getAllCases(); return(new GetAllCasesResponse(cases)); } } catch (TeledonException e) { return(new ErrorResponse(e.Message)); } } //GET ALL DONORS if (request is GetAllDonorsRequest) { Console.WriteLine("Get all donors request..."); GetAllDonorsRequest getAllDonorsRequest = (GetAllDonorsRequest)request; string subtring = getAllDonorsRequest.Substring; try { lock (server) { IEnumerable <Donor> donors = server.searchDonorByName(subtring); return(new GetAllDonorsResponse(donors)); } } catch (TeledonException e) { return(new ErrorResponse(e.Message)); } } //NEW DONATION if (request is NewDonationRequest) { Console.WriteLine("New donation request..."); NewDonationRequest newDonationRequest = (NewDonationRequest)request; int donorId = newDonationRequest.DonorId; String name = newDonationRequest.Name; String address = newDonationRequest.Address; String telephone = newDonationRequest.Telephone; Double sum = newDonationRequest.Sum; int caseId = newDonationRequest.CaseId; try { lock (server) { server.saveDonation(donorId, name, address, telephone, sum, caseId); return(new OKResponse()); } } catch (TeledonException e) { return(new ErrorResponse(e.Message)); } } return(response); }