public Models.TicketPurchase CreateTicketPurchase(TicketPurchaseDto ticketPurchaseDto) { var person = _person.GetPersonByFirstNameLastNameAndAge(ticketPurchaseDto.FirstName, ticketPurchaseDto.LastName, ticketPurchaseDto.Age); var personId = new int(); if (person == null) { var personDto = new PersonDto() { FirstName = ticketPurchaseDto.FirstName, LastName = ticketPurchaseDto.LastName, Age = ticketPurchaseDto.Age }; var newPerson = _person.CreatePerson(personDto); personId = newPerson.Id; } if (person != null) { personId = person.Id; } const string sql = "INSERT INTO SkiTickets.TicketPurchase VALUES (@ticketId, @personId, @sellingPointId, @date)" + "SELECT * FROM SkiTickets.TicketPurchase WHERE id = SCOPE_IDENTITY()"; return(TransformDaoToBusinessLogicTicketPurchase(_database.QueryFirstOrDefault <TicketPurchaseDao>(sql, new { ticketId = ticketPurchaseDto.TicketId, personId = personId, sellingPointId = ticketPurchaseDto.SellingPointId, date = DateTime.Now }))); }
public ActionResult <Models.TicketPurchase> CreateTicketPurchase(TicketPurchaseDto ticketPurchaseDto) { try { return(Created("https://localhost:5001/TicketPurchase", new OkResponse <Models.TicketPurchase>(_ticketPurchase.CreateTicketPurchase(ticketPurchaseDto)))); } catch (NoCapacity e) { return(BadRequest()); } catch (AgesNotMatchingException e) { return(BadRequest(new ErrorResponse(e.Message, new List <string>() { "age" }))); } catch (SellingPointNotFoundException e) { return(BadRequest(new ErrorResponse(e.Message, new List <string>() { "sellingPoint" }))); } catch (Exception e) { return(BadRequest(new ErrorResponse(e.Message, new List <string>() { "ticketPurchase" }))); } }