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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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));
        }
Esempio n. 6
0
        public ActionResult Create()
        {
            var createProspectModel = new CreateProspectModel();

            return(View(createProspectModel));
        }