public void TransformCheque() { //Arrange ChequeRequest request = new ChequeRequest { PersonName = "Berry ", ChequeAmount = 1234.5m }; string requestAmountInLetter = " one thousand and two hundred and thirty-four dollars and fifty cents "; //Act var newChequeMessage = client.PostAsJsonAsync(addChequeRoute, request).GetAwaiter().GetResult(); var chequeId = newChequeMessage.Content.ReadAsAsync <int>().GetAwaiter().GetResult(); HttpResponseMessage response = client.GetAsync(string.Format(findChequeRoute, chequeId)).GetAwaiter().GetResult(); ChequeResponse retrivedCheque = response.Content.ReadAsAsync <ChequeResponse>().GetAwaiter().GetResult(); HttpResponseMessage updatedChequesResponse = client.PutAsJsonAsync(transformChequeRoute, retrivedCheque).GetAwaiter().GetResult(); ChequeResponse updatedCheque = updatedChequesResponse.Content.ReadAsAsync <ChequeResponse>().GetAwaiter().GetResult(); //Assert Assert.AreEqual(HttpStatusCode.Created, newChequeMessage.StatusCode); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.IsNotNull(retrivedCheque); Assert.AreEqual(retrivedCheque.PersonName, request.PersonName.ToUpper()); Assert.AreEqual(HttpStatusCode.OK, updatedChequesResponse.StatusCode); Assert.IsNotNull(updatedCheque.ChequeAmountInLetter); Assert.AreEqual(requestAmountInLetter.Trim(), updatedCheque.ChequeAmountInLetter.Trim()); }
public ChequeResponse FindCheque(int ChequeId) { ChequeResponse cheque = null; using (var connection = new SqlConnection(_connectionString)) { cheque = connection.QueryFirstOrDefault <ChequeResponse>("[dbo].[GetCheque]", new { Id = ChequeId }, commandType: CommandType.StoredProcedure); } return(cheque); }
public ChequeResponse Create(ChequeRequest request) { ValidatEntity(request); ChequeResponse response = new ChequeResponse { DateTime = DateTime.Now, PersonName = request.PersonName.ToUpper(), Amount = request.ChequeAmount.Value, }; return(response); }
public HttpResponseMessage Update([FromBody] ChequeResponse response) { try { ChequeResponse updatedCheque = chequeComponent.Transform(response); return(Request.CreateResponse(HttpStatusCode.OK, updatedCheque)); } catch (Exception ex) { var errorResponse = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message, ex); return(errorResponse); } }
public HttpResponseMessage Post([FromBody] ChequeDto cheque) { if (cheque == null) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new BaseApiResponse { Code = InternalApiStatusCode.Error, Message = "Invalid cheque object" })); } if (string.IsNullOrEmpty(cheque.LastName) || string.IsNullOrEmpty(cheque.FirstName)) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new BaseApiResponse { Code = InternalApiStatusCode.FailedRequestValidation, Message = "Invalid cheque object, name is not provided" })); } if (cheque.Amount <= 0) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new BaseApiResponse { Code = InternalApiStatusCode.FailedRequestValidation, Message = "Invalid cheque object, amount should be greater than zero" })); } var chequeResposne = new ChequeResponse(); try { var chequeResult = _chequeRepository.Add(cheque); chequeResposne.Cheque = chequeResult; chequeResposne.Code = InternalApiStatusCode.Success; return(Request.CreateResponse(HttpStatusCode.Created, chequeResposne)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
public int AddCheque(ChequeResponse cheque) { int recordId = 0; using (var connection = new SqlConnection(_connectionString)) { var parameters = new DynamicParameters(); parameters.Add("@PersonName", cheque.PersonName); parameters.Add("@Amount", cheque.Amount); parameters.Add("@DateTime", cheque.DateTime); recordId = connection.ExecuteScalar <int>("[dbo].[AddCheque]", parameters, commandType: CommandType.StoredProcedure); } return(recordId); }
public HttpResponseMessage Post([FromBody] ChequeRequest request) { try { ChequeResponse newCheque = chequeComponent.Create(request); int recordId = chequeData.AddCheque(newCheque); return(Request.CreateResponse(HttpStatusCode.Created, recordId)); } catch (ValidationException ex) { var errorResponse = Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex.Message, ex); return(errorResponse); } catch (Exception ex) { var errorResponse = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message, ex); return(errorResponse); } }
public HttpResponseMessage Put(int id, [FromBody] ChequeRequest cheque) { if (string.IsNullOrEmpty(cheque.LastName) || string.IsNullOrEmpty(cheque.FirstName)) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new BaseApiResponse { Code = InternalApiStatusCode.FailedRequestValidation, Message = "Invalid cheque object" })); } var chequeResposne = new ChequeResponse(); try { var chequeResult = _chequeRepository.Update(new ChequeDto { ChequeId = id, LastName = cheque.LastName, FirstName = cheque.FirstName, Amount = cheque.Amount, }); if (chequeResult == null) { return(Request.CreateResponse(HttpStatusCode.NotFound, new BaseApiResponse { Code = InternalApiStatusCode.Error, Message = "cheque is not found" })); } chequeResposne.Cheque = chequeResult; chequeResposne.Code = InternalApiStatusCode.Success; chequeResposne.Message = "cheque is updated"; return(Request.CreateResponse(HttpStatusCode.OK, chequeResposne)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
public HttpResponseMessage GetById(int id) { try { ChequeResponse cheque = chequeData.FindCheque(id); if (cheque != null) { return(Request.CreateResponse(HttpStatusCode.OK, cheque)); } else { return(Request.CreateResponse(HttpStatusCode.NotFound)); } } catch (Exception ex) { var errorResponse = Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message, ex); return(errorResponse); } }
public ActionResult Transform(int id) { HttpResponseMessage transformedChequeMessage = new HttpResponseMessage(); HttpResponseMessage chequeMessage = HttpClient.GetAsync(string.Format(FindChequeRoute, id)).GetAwaiter().GetResult(); if (chequeMessage.IsSuccessStatusCode) { ChequeResponse originalCheque = chequeMessage.Content.ReadAsAsync <ChequeResponse>().GetAwaiter().GetResult(); transformedChequeMessage = HttpClient.PutAsJsonAsync(TransformChequeRoute, originalCheque).GetAwaiter().GetResult(); ChequeResponse updatedCheque = transformedChequeMessage.Content.ReadAsAsync <ChequeResponse>().GetAwaiter().GetResult(); return(View("Transform", updatedCheque)); } else { HttpError error = chequeMessage.Content.ReadAsAsync <HttpError>().GetAwaiter().GetResult(); return(new HttpStatusCodeResult(transformedChequeMessage.StatusCode, error.Message)); } }
public void FindCheque() { //Arrange ChequeRequest request = new ChequeRequest { PersonName = "New Person", ChequeAmount = 1234.5m }; //Act var newChequeMessage = client.PostAsJsonAsync(addChequeRoute, request).GetAwaiter().GetResult(); var id = newChequeMessage.Content.ReadAsAsync <int>().GetAwaiter().GetResult(); HttpResponseMessage response = client.GetAsync(string.Format(findChequeRoute, id)).GetAwaiter().GetResult(); ChequeResponse cheque = response.Content.ReadAsAsync <ChequeResponse>().GetAwaiter().GetResult(); //Assert Assert.AreEqual(HttpStatusCode.Created, newChequeMessage.StatusCode); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); Assert.IsNotNull(cheque); Assert.AreEqual(cheque.PersonName, request.PersonName.ToUpper()); }
public HttpResponseMessage Get(int id) { if (id <= 0) { return(Request.CreateResponse(HttpStatusCode.BadRequest, new BaseApiResponse { Code = InternalApiStatusCode.FailedRequestValidation, Message = "id is invalid" })); } var chequeResposne = new ChequeResponse(); try { var cheque = _chequeRepository.Get(id); if (cheque == null) { return(Request.CreateResponse(HttpStatusCode.NotFound, new BaseApiResponse { Code = InternalApiStatusCode.Error, Message = "cheque item is not found" })); } chequeResposne.Cheque = cheque; chequeResposne.Code = InternalApiStatusCode.Success; chequeResposne.Message = "cheque item added"; return(Request.CreateResponse(HttpStatusCode.OK, chequeResposne)); } catch (Exception ex) { return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex)); } }
public ChequeResponse Transform(ChequeResponse response) { response.ChequeAmountInLetter = ProcessNumber(response.Amount); return(response); }