public string CreateProspect(CreateProspectModel model) { try { var validationResult = model.Evaluate(); if (validationResult.IsFailure) { return(validationResult.Error); } var personId = new PersonId(Option.Some(model.PersonId)); var accomodationNumber = AccomodationNumber.Create(model.AccomodationNumber); var accomodationId = new AccomodationId(accomodationNumber.Value); this.prospectService.CreateProspect(personId, accomodationId); return("Person become a prospect on this accomodation!"); } catch (AccomodationAlreadySoldException) { return("This accomodation is already sold"); } catch (Exception) { return("An unknow error was thrown"); } }
public static Result Evaluate(this CreateProspectModel model) { var idResult = GetIdResult(model); var numberResult = AccomodationNumber.Create(model.AccomodationNumber); return(Result.Combine(numberResult, idResult)); }
private static Result GetIdResult(CreateProspectModel model) { Result idResult; if (string.IsNullOrWhiteSpace(model.PersonId)) { idResult = Result.Fail("The person id is mandatory"); } else { idResult = Result.Ok(model.PersonId); } return(idResult); }
public static void CreateProspect() { var accomodations = _controller.GetAvailableAccomodations(); if (!accomodations.Any()) { Console.WriteLine("There is no accomodation available, create an accomodation before"); return; } var persons = _controller.GetPersons(); if (!persons.Any()) { Console.WriteLine("There is no person, create an accomodation before"); return; } var person = View.DoAChoice( title: "Who want to become prospect ?", choices: persons); var accomodation = View.DoAChoice( title: "On which accomodation ?", choices: accomodations); var model = new CreateProspectModel { AccomodationNumber = accomodation.Number, PersonId = person.Id }; var message = _controller.CreateProspect(model); Console.WriteLine(message); }
public ActionResult Create(CreateProspectModel createProspectModel) { var prospectModel = createProspectModel.ProspectModel; prospectModel.Team = GetTeamWithId(createProspectModel.TeamId, createProspectModel.PossibleTeams); var dProspect = Mapper.Map <DProspect>(prospectModel); IDatabaseAccessor db = new SqlDatabaseAccessor(MvcApplication.GetMockDraftConnectionStringName()); if (ModelState.IsValid) { if (db.ProspectExists(dProspect)) { ViewBag.Feedback = createProspectModel.AlreadyExistedErrorMessage; return(View(createProspectModel)); } db.AddProspect(dProspect); ViewBag.Feedback = createProspectModel.SuccessMessage; } var newProspectModel = new CreateProspectModel(); return(View(newProspectModel)); }
public ActionResult Create() { var createProspectModel = new CreateProspectModel(); return(View(createProspectModel)); }