public async Task <ActionResult <UULResponse> > AddHabitant(HabitantDTO habitantDTO) // TODO check rules before adding { var currentUser = HttpContext.User; UULResponse response; try { var userInfo = SecHelper.GetUserInfo(currentUser.Claims); var user = await _context.Users.Where(u => u.Login.Equals(userInfo.Login) && u.ApartmentCode.Equals(userInfo.ApartmentCode)).SingleOrDefaultAsync(); if (user == null) { return(Error.ProfileNotFound.CreateErrorResponse(_logger, "AddHabitant")); } var habitant = new Habitant(habitantDTO) { User = user }; _context.Habitants.Add(habitant); await _context.SaveChangesAsync(); var habitants = await _context.Habitants.Where(h => h.User.ID == user.ID).Select(h => new HabitantDTO(h)).ToListAsync(); userInfo.IsActivated = user.IsActivated; userInfo.Habitants = habitants; response = new UULResponse() { Success = true, Message = "Habitant was added", Data = userInfo }; } catch (Exception e) { response = Error.ProfileAddHabitantFailed.CreateErrorResponse(_logger, "AddHabitant", e); } return(response); }
public static User AddFromDto(UULContext context, NewUserDTO newUser) { var salt = SecHelper.CreateSalt(); var habitant = new Habitant(newUser); context.Habitants.Add(habitant); var userToSave = new User { Login = newUser.Login, IsActivated = false, CreatedAt = DateOperations.Now(), Hash = SecHelper.SaltAndHashPwd(newUser.Pwd, salt), Salt = salt, ApartmentCode = newUser.ApartmentCode, Habitants = new List <Habitant>() { habitant } }; context.Users.Add(userToSave); return(userToSave); }
public IHttpActionResult Post([FromBody] Habitant habitant) { try { if (habitant == null) { return(BadRequest("Habitant cannot be null")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var habitantRepository = new Models.HabitantRepository(); var newHabitant = habitantRepository.Save(habitant); if (newHabitant == null) { return(Conflict()); } return(Created <Habitant>(Request.RequestUri + newHabitant.HabitantId.ToString(), newHabitant)); } catch (Exception ex) { return(InternalServerError(ex)); } }
// PUT: api/Habitants/5 public IHttpActionResult Put(int id, [FromBody] Habitant habitant) { try { if (habitant == null) { return(BadRequest("Habitant cannot be null")); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var habitantRepository = new Models.HabitantRepository(); var updatedHabitant = habitantRepository.Save(id, habitant); if (updatedHabitant == null) { return(NotFound()); } return(Ok()); } catch (Exception ex) { return(InternalServerError(ex)); } }
public async Task Validate(Habitant habitant) { if (!await ExistHabitantAsync(habitant).ConfigureAwait(false)) { habitant.AddBrokenRule("Habitant not found"); habitant.Validate("Can not delete habitant"); } }
private void Awake() { for (int i = 0; i < nbRefugies; i++) { Habitant habitant = Instantiate(h); GameVariables.nbHabitants += 1; GameVariables.listHabitant.Add(habitant); } }
/// <summary> /// Creates a new habitant with default values /// </summary> /// <returns></returns> internal Habitant Create() { Habitant habitant = new Habitant { CreateDate = DateTime.Now }; return(habitant); }
protected override async Task <Result> HandleEx(DeleteHabitantCommand command, CancellationToken cancellationToken = default) { var habitant = new Habitant(new HabitantId(command.HabitantId)); await habitantDeleteValidator.Validate(habitant).ConfigureAwait(false); await habitantRepository.DeleteAsync(habitant.Id).ConfigureAwait(false); return(Result.Ok()); }
public Habitant CreatHabitants() { Habitant h = new Habitant(); h.nom = _demandeAutilisateur.saisieNom("Nom de l'habitant :"); h.age = _demandeAutilisateur.saisieEntier("Quel age as t'il ? :"); ListeHabitants.Add(h); return(h); }
public async Task Validate(Habitant habitant) { if (await ExistHabitantWithNameAsync(habitant.Name).ConfigureAwait(false)) { habitant.AddBrokenRule("Habitant with the same name found"); } await CheckCommonDataForUpdateAndInsert(habitant); habitant.Validate("Can not create habitant"); }
/// <summary> /// Saves a new habitant. /// </summary> /// <param name="habitant"></param> /// <returns></returns> internal Habitant Save(Habitant habitant) { // Read in the existing habitants var habitants = this.Retrieve(); // Assign a new Id var maxId = habitants.Max(p => p.HabitantId); habitant.HabitantId = maxId + 1; habitants.Add(habitant); WriteData(habitants); return(habitant); }
public static Habitant CreateFromCommand(int id, Commands.Dto.Habitant habitantCommand) { var habitant = new Habitant(new HabitantId(id)) { Name = HabitantName.FromString(habitantCommand.Name), Thumbnail = new System.Uri(habitantCommand.Thumbnail), Age = habitantCommand.Age, Weight = habitantCommand.Weight, Height = habitantCommand.Height, HairColor = new HairColor(new HairColorId(habitantCommand.HairColor)), Professions = habitantCommand.Professions .Select(p => new Profession(new ProfessionId(p))).ToList(), Friends = new List <HabitantName>() }; return(habitant); }
public void affectation() { if (GameVariables.listHabitant.Count != 0 && GameVariables.batimentSelectionne.ListHabitants.Count < GameVariables.batimentSelectionne.nbrMaxHab) { clone = GameVariables.listHabitant[0]; clone.random_object.SetActive(false); Destroy(clone.random_object); GameVariables.listHabitant.Remove(clone); clone.Spawn = GameVariables.batimentSelectionne; GameObject o = clone.GetComponent <Role>().changementRole(GameVariables.batimentSelectionne.typeHabitant.ToString()); GameVariables.listHabitantAffecte.Add(clone); switch (GameVariables.batimentSelectionne.typeHabitant.ToString()) { case "Combattant": GameVariables.listCombattant.Add(o.GetComponent <Combattant>()); break; case "Fermier": GameVariables.listFermier.Add(o.GetComponent <Fermier>()); break; case "Mineur": GameVariables.listMineur.Add(o.GetComponent <Mineur>()); break; case "Bucheron": GameVariables.listBucheron.Add(o.GetComponent <Bucheron>()); break; case "Marchand": GameVariables.listMarchand.Add(o.GetComponent <Marchand>()); break; case "Pretre": GameVariables.listPretre.Add(o.GetComponent <Pretre>()); break; } GameVariables.batimentSelectionne.ListHabitants.Add(o); } }
//Milicia void addFirstFoundHabitantForType(Batiment.role type) { if (GameVariables.listHabitant.Count == 0 && GameVariables.batimentSelectionne.ListHabitants.Count < GameVariables.batimentSelectionne.nbrMaxHab) { return; } Batiment batiment = null; foreach (Batiment bat in GameVariables.listBatiment) { if (!bat.isEnDeplacement() && bat.typeHabitant == type && bat.ListHabitants.Count < bat.nbrMaxHab) { batiment = bat; break; } } if (batiment == null || batiment.ListHabitants.Count >= batiment.nbrMaxHab) { return; } List <Habitant> listMetierBat = GameVariables.getListMetier(batiment.typeHabitant); if (listMetierBat == null) { return; } Habitant villager = GameVariables.listHabitant[0]; GameVariables.listHabitant.Remove(villager); villager.Spawn = batiment; GameObject o = villager.GetComponent <Role>().changementRole(batiment.typeHabitant.ToString()); GameVariables.listHabitantAffecte.Add(villager); listMetierBat.Add(villager); batiment.ListHabitants.Add(o); }
/// <summary> /// Updates an existing habitant /// </summary> /// <param name="id"></param> /// <param name="habitant"></param> /// <returns></returns> internal Habitant Save(int id, Habitant habitant) { // Read in the existing habitants var habitants = this.Retrieve(); // Locate and replace the item var itemIndex = habitants.FindIndex(p => p.HabitantId == habitant.HabitantId); if (itemIndex > 0) { habitants[itemIndex] = habitant; } else { return(null); } WriteData(habitants); return(habitant); }
protected async Task CheckCommonDataForUpdateAndInsert(Habitant habitant) { if (!await ExistHairColorForHabitant(habitant).ConfigureAwait(false)) { habitant.AddBrokenRule("Defined Hair Color for habitant does not exist"); } if (!await ExistProfessionsForHabitant(habitant).ConfigureAwait(false)) { habitant.AddBrokenRule("Defined Professions for habitant does not exist"); } foreach (var friend in habitant.Friends) { if (!await ExistHabitantWithNameAsync(friend).ConfigureAwait(false)) { habitant.AddBrokenRule($"Friend '{friend}' not found"); } } }
void removeFirstFoundHabitantForType(Batiment.role type) { Batiment batiment = null; foreach (Batiment bat in GameVariables.listBatiment) { if (!bat.isEnDeplacement() && bat.typeHabitant == type && bat.ListHabitants.Count > 0) { Debug.Log(batiment); batiment = bat; break; } } if (batiment == null || batiment.ListHabitants.Count <= 0) { return; } GameObject o = batiment.ListHabitants[0]; if (o.GetComponent <Habitant>() == null) { return; } List <Habitant> listMetierBat = GameVariables.getListMetier(batiment.typeHabitant); if (listMetierBat == null) { return; } Habitant villager = o.GetComponent <Habitant>(); batiment.ListHabitants.Remove(o); listMetierBat.Remove(villager); GameVariables.listHabitantAffecte.Remove(villager); villager.GetComponent <Role>().changementRole(Batiment.role.Habitant.ToString()); GameVariables.listHabitant.Add(villager); }
//Private Functions private void initUI() { //Set Title Text titleText.text = GameVariables.batimentSelectionne.nomBatiment; //Set Desc Text descText.text = GameVariables.batimentSelectionne.description; //Check Effectifs UI Needed + Set Pop Manager Actions if (GameVariables.batimentSelectionne.nbrMaxHab != 0) { buildingPopulationManager.gameObject.SetActive(true); buildingPopulationManager.gameObject.GetComponent <RectTransform>().localScale = new Vector3(1, 1, 1); secondSeparator.gameObject.SetActive(true); secondSeparator.gameObject.GetComponent <RectTransform>().localScale = new Vector3(1, 1, 1); buildingPopulationManager.setUpAction(() => { if (GameVariables.listHabitant.Count == 0) { return; } Batiment batiment = GameVariables.batimentSelectionne; if (batiment == null || batiment.isEnDeplacement() || batiment.ListHabitants.Count >= batiment.nbrMaxHab) { return; } List <Habitant> listMetierBat = GameVariables.getListMetier(batiment.typeHabitant); if (listMetierBat == null) { return; } Habitant villager = GameVariables.listHabitant[0]; GameVariables.listHabitant.Remove(villager); villager.Spawn = batiment; GameObject o = villager.GetComponent <Role>().changementRole(batiment.typeHabitant.ToString()); GameVariables.listHabitantAffecte.Add(villager); listMetierBat.Add(villager); batiment.ListHabitants.Add(o); }); buildingPopulationManager.setDownAction(() => { Batiment batiment = GameVariables.batimentSelectionne; if (batiment == null || batiment.isEnDeplacement()) { return; } if (batiment.ListHabitants.Count == 0) { return; } GameObject o = batiment.ListHabitants[0]; if (o.GetComponent <Habitant>() == null) { return; } List <Habitant> listMetierBat = GameVariables.getListMetier(batiment.typeHabitant); if (listMetierBat == null) { return; } Habitant villager = o.GetComponent <Habitant>(); batiment.ListHabitants.Remove(o); listMetierBat.Remove(villager); GameVariables.listHabitantAffecte.Remove(villager); villager.GetComponent <Role>().changementRole(Batiment.role.Habitant.ToString()); GameVariables.listHabitant.Add(villager); }); } else { buildingPopulationManager.gameObject.SetActive(false); buildingPopulationManager.gameObject.GetComponent <RectTransform>().localScale = new Vector3(0, 0, 0); secondSeparator.gameObject.SetActive(false); secondSeparator.gameObject.GetComponent <RectTransform>().localScale = new Vector3(0, 0, 0); } //Check Prod UI Needed if (GameVariables.batimentSelectionne is BatimentRessource) { buildingProdUI.gameObject.SetActive(true); buildingProdUI.gameObject.GetComponent <RectTransform>().localScale = new Vector3(1, 1, 1); thirdSeparator.gameObject.SetActive(true); thirdSeparator.gameObject.GetComponent <RectTransform>().localScale = new Vector3(1, 1, 1); } else { buildingProdUI.gameObject.SetActive(false); buildingProdUI.gameObject.GetComponent <RectTransform>().localScale = new Vector3(0, 0, 0); thirdSeparator.gameObject.SetActive(false); thirdSeparator.gameObject.GetComponent <RectTransform>().localScale = new Vector3(0, 0, 0); } //Check Upgrade UI Needed + Set Upgrade Action if (GameVariables.batimentSelectionne.batUpgrade != null) { buildingUpgradeUI.gameObject.SetActive(true); buildingUpgradeUI.gameObject.GetComponent <RectTransform>().localScale = new Vector3(1, 1, 1); buildingUpgradeUI.setUpgradeAction(() => { GameVariables.batimentSelectionne.upgradeStructure(); }); } else { buildingUpgradeUI.gameObject.SetActive(false); buildingUpgradeUI.gameObject.GetComponent <RectTransform>().localScale = new Vector3(0, 0, 0); } }
public void spawnHabitant() { clone = Instantiate(habitant, new Vector3(0, 0, 0), Quaternion.identity); GameVariables.listHabitant.Add(clone); GameVariables.nbHabitants++; }
protected async Task <bool> ExistHabitantWithNameAsync(Habitant habitant) { return((await habitantReadOnlyRepository.GetOtherHabitantWithNameSingleAsync(habitant.Name, habitant.Id).ConfigureAwait(false)).HasValue); }
protected async Task <bool> ExistProfessionsForHabitant(Habitant habitant) { var allProfessions = await professionReadonlyRepository.GetAllAsync().ConfigureAwait(false); return(habitant.Professions.All(p => allProfessions.Contains(p))); }
private async Task <ActionResult <UULResponse> > BookTimeSlotByGym(BookTimeSlotDTO dto, int gymId) { UULResponse response; // TODO refactor to use exceptions var currentUser = HttpContext.User; try { var userInfo = SecHelper.GetUserInfo(currentUser.Claims); var user = await _context.Users.Where(u => u.Login.Equals(userInfo.Login) && u.ApartmentCode.Equals(userInfo.ApartmentCode)).SingleOrDefaultAsync(); if (user is null) { return(Error.ProfileNotFound.CreateErrorResponse(_logger, "BookTimeSlotsByGym")); } if (!user.IsActivated) { return(Error.ProfileNotActivated.CreateErrorResponse(_logger, "BookTimesSlotsByGym")); } var timeSlot = await _context.TimeSlots .Include(t => t.OccupiedBy) .Include(t => t.Gym) .FirstOrDefaultAsync(t => t.ID == dto.TimeslotId); if (timeSlot is null) { return(Error.TimeSlotNotFound.CreateErrorResponse(_logger, "BookTimesSlotsByGym")); } var rulesDto = await RulesDao.GetCurrentRulesDTOOrDefault(_context); if (rulesDto is null) { return(Error.RulesNotFound.CreateErrorResponse(_logger, "BookTimesSlotsByGym")); } DateOperations.GetTodayTimeSlotsBoundsUtc(rulesDto.TimeSlotSpan, out DateTime todayStart, out DateTime todayEnd); if (!timeSlot.Gym.IsOpen) { return(Error.GymClosed.CreateErrorResponse(_logger, "BookTimesSlotsByGym")); } if (!(timeSlot.Start.IsWithinBounds(todayStart, todayEnd))) { return(Error.TimeSlotNotToday.CreateErrorResponse(_logger, "BookTimesSlotsByGym")); } if (timeSlot.OccupiedBy.Count >= rulesDto.PersonsPerTimeSlot) { return(Error.TimeSlotFull.CreateErrorResponse(_logger, "BookTimesSlotsByGym")); } if (await AlreadyBookedInBoundsUTC(dto.HabitantId, todayStart, todayEnd)) { return(Error.TimeSlotOverbooking.CreateErrorResponse(_logger, "BookTimesSlotsByGym")); } Habitant habitant = await _context.Habitants.FindAsync(dto.HabitantId); if (habitant is null) { return(Error.ProfileHabitantLookupFailed.CreateErrorResponse(_logger, "BookTimesSlotsByGym")); } timeSlot.OccupiedBy.Add(habitant); habitant.LastGymVisit = timeSlot.Start; _context.TimeSlots.Update(timeSlot); _context.Habitants.Update(habitant); var success = await _context.SaveChangesAsync() != 0; var slots = gymId == -1 ? await TimeSlotsDao.GetTimeSlotsByUtcBounds(_context, todayStart, todayEnd) : await TimeSlotsDao.GetTimeSlotsByUtcBounds(_context, gymId, todayStart, todayEnd); var data = new ScheduleDTO() { Date = todayStart.Year + "/" + todayStart.Month + "/" + todayStart.Day, GymId = gymId == -1 ? null : gymId, TimeSlots = slots }; response = new UULResponse() { Success = success, Message = "Booked", Data = data }; } catch (Exception e) { response = Error.TimeSlotsBookingFailed.CreateErrorResponse(_logger, "BookTimesSlotsByGym", e); } return(response); }
protected async Task <bool> ExistHairColorForHabitant(Habitant habitant) { return((await hairColorReadonlyRepository.FindAsync(habitant.HairColor.Id).ConfigureAwait(false)).HasValue); }
public void addHabitant(Habitant theHabitant) { habitants.Add(theHabitant); }
public async Task <ActionResult> UpdateHabitant(int habitantId, [FromBody] Habitant habitant, [FromServices] ICommandDispatcher commandDispatcher) { await commandDispatcher.Dispatch(new UpdateHabitantCommand(habitantId, habitant)).ConfigureAwait(false); return(Ok()); }
public Automate_Habitant(Habitant habitant) { this.habitant = habitant; target = null; courant = new EtatHabitantRechercheWaypoint(this); }