private void init() { party = new PartyDTO(); DisplayName = BasicInfoAppLocalizedResources.ManagePartyCustomActions; PrivilegeList = new List <Privilege>(); UserActions = new Dictionary <int, bool>(); }
public async Task <List <PartyDTO> > GetPartyList(string ConnectionString) { await Task.Run(() => { partylist = new List <PartyDTO>(); try { using (NpgsqlDataReader dr = NPGSqlHelper.ExecuteReader(ConnectionString, CommandType.Text, "select t3.contactid,(coalesce(t3.name,'')||' '||coalesce(t3.surname,'')) as name,t3.titlename,contactreferenceid,t1.businessentitycontactno,t1.businessentityemailid,'PARTY' as partyreftype from tblmstparty t3 join tblmstcontact t1 on t1.contactid=t3.contactid join tblmststatus t2 on t1.statusid=t2.statusid where t3.statusid= " + Convert.ToInt32(Status.Active) + " order by name;")) { while (dr.Read()) { PartyDTO _PartyDTO = new PartyDTO(); _PartyDTO.ppartyid = Convert.ToInt64(dr["contactid"]); _PartyDTO.ppartyname = Convert.ToString(dr["name"]); _PartyDTO.ppartyreferenceid = Convert.ToString(dr["contactreferenceid"]); _PartyDTO.ppartyreftype = Convert.ToString(dr["partyreftype"]); _PartyDTO.ppartycontactno = Convert.ToInt64(dr["businessentitycontactno"]); _PartyDTO.ppartyemailid = Convert.ToString(dr["businessentityemailid"]); _PartyDTO.ppartypannumber = Convert.ToString(""); partylist.Add(_PartyDTO); } } } catch (Exception ex) { throw ex; } }); return(partylist); }
public PartyDTO GetOldPartyByID(int id) { try { PartyDTO party = new PartyDTO(); using (connection = DataConnection.GetConnection()) { connection.Open(); using (MySqlCommand command = new MySqlCommand("SELECT * FROM OldParty WHERE ID=@ID", connection)) { command.Parameters.AddWithValue("@PartyID", id); using (MySqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { party.ID = (int)reader["PartyID"]; party.Abbreviation = (string)reader["Abbreviation"]; party.Name = (string)reader["Name"]; party.Leader = (string)reader["Leader"]; } return(party); } } } } catch (MySqlException) { throw new GetPartyByIDFailedException(); } }
/// <summary> /// Create a new Dungeon Master with the provided information from the API request & /// Create Request Objects between the new DM and all active players in the database. /// </summary> /// <param name="dungeonMaster">Dungeon Master information from the API request</param> /// <returns>Newly created Dungeon Master</returns> public async Task <DungeonMasterDTO> CreateDungeonMaster(DungeonMasterDTO dungeonMasterDTO) { DungeonMaster dungeonMaster = DeconstructDTO(dungeonMasterDTO); _context.Entry(dungeonMaster).State = EntityState.Added; var result = await _context.SaveChangesAsync(); dungeonMasterDTO = await BuildDTO(dungeonMaster); dungeonMasterDTO.ActiveRequests = new List <RequestDTO>(); var players = await _context.Players.Where(x => x.PartyId == 1).ToListAsync(); if (players != null) { foreach (var player in players) { RequestDTO newReq = await _request.CreateRequest(player.Id, dungeonMaster.Id); dungeonMasterDTO.ActiveRequests.Add(newReq); } } PartyDTO newParty = new PartyDTO { DungeonMasterId = dungeonMasterDTO.Id, MaxSize = dungeonMasterDTO.PartySize, Full = false }; dungeonMasterDTO.Party = await _party.CreateParty(newParty); dungeonMasterDTO.Id = dungeonMaster.Id; return(dungeonMasterDTO); }
/// <summary> /// Update a specific party /// </summary> /// <param name="party">Updated party information</param> /// <returns>Task of completion for party update</returns> public async Task UpdateParty(PartyDTO partyDTO) { Party party = DeconstructDTO(partyDTO); _context.Entry(party).State = EntityState.Modified; await _context.SaveChangesAsync(); }
public void ShowCustomActionsManageViews(PartyDTO party, bool isgroup, string groupId) { var view = ServiceLocator.Current.GetInstance <IPartyCustomActionsView>(); ((PartyCustomActionsVM)view.ViewModel).Load(party, isgroup, groupId); viewManager.ShowInDialog(view); }
public List <PartyDTO> GetPartyHistory(PartyDTO party) { try { using (connection = DataConnection.GetConnection()) { connection.Open(); MySqlCommand command = new MySqlCommand($"SELECT * FROM OldParty WHERE PartyID=PartyID", connection); command.Parameters.AddWithValue("@PartyID", party.ID); MySqlDataReader reader = command.ExecuteReader(); List <PartyDTO> parties = new List <PartyDTO>(); while (reader.Read()) { parties.Add(new PartyDTO() { ID = (int)reader["ID"], Abbreviation = (string)reader["Abbreviation"], Name = (string)reader["Name"], Leader = (string)reader["Leader"] }); } return(parties); } } catch (MySqlException) { throw new SearchFailedException(""); } }
public async Task CanDeleteParty() { DungeonMasterDTO newDm = new DungeonMasterDTO() { UserId = "test1", CampaignName = "Test Campaign", CampaignDesc = "Test Campaign Description", ExperienceLevel = "Medium", PersonalBio = "Test Personal Bio" }; var dmRepo = BuildDmDb(); newDm = await dmRepo.CreateDungeonMaster(newDm); PartyDTO newParty = new PartyDTO() { DungeonMasterId = newDm.Id, MaxSize = 4, Full = false }; var repo = BuildDb(); var create = await repo.CreateParty(newParty); Assert.NotNull(create); await repo.DeleteParty(newDm.Id); var result = await repo.GetPartyById(create.Id); Assert.Null(result); }
/// <summary> /// Creates a new party in the database /// </summary> /// <param name="party">Party information to be added to database</param> /// <returns>Newly created party</returns> public async Task <PartyDTO> CreateParty(PartyDTO partyDTO) { Party party = DeconstructDTO(partyDTO); _context.Entry(party).State = EntityState.Added; await _context.SaveChangesAsync(); return(await BuildPartyDTO(party)); }
public async Task <IActionResult> PutParty(int id, PartyDTO party) { if (id != party.Id) { return(BadRequest()); } await _party.UpdateParty(party); return(NoContent()); }
/// <summary> /// Deconstruct a PartyDTO object into a Party Object /// </summary> /// <param name="partyDTO">PartyDTO object to deconstruct</param> /// <returns>Party object</returns> public Party DeconstructDTO(PartyDTO partyDTO) { Party party = new Party { Id = partyDTO.Id, DungeonMasterId = partyDTO.DungeonMasterId, MaxSize = partyDTO.MaxSize, Full = partyDTO.Full, }; return(party); }
public IActionResult Get(string userEmail) { List <Party> userParties = _repository.GetUserParties(userEmail); List <PartyDTO> userPartiesDTOs = new List <PartyDTO>(); foreach (var party in userParties) { PartyDTO tempParty = _mapper.Map <Party, PartyDTO>(party); userPartiesDTOs.Add(tempParty); } return(Ok(userPartiesDTOs)); }
public static Party GetPartyFromDTO(PartyDTO dto) { Party party = new Party { ID = dto.ID, Abbreviation = dto.Abbreviation, Name = dto.Name, Leader = dto.Leader }; return(party); }
public static PartyDTO GetPartyDTO(Party party) { PartyDTO dto = new PartyDTO { ID = party.ID, Abbreviation = party.Abbreviation, Name = party.Name, Leader = party.Leader }; return(dto); }
public async Task <IActionResult> Post([FromBody] PartyDTO partyDTO) { if (ModelState.IsValid == false) { return(BadRequest("Bad request.")); } Party tempParty = _mapper.Map <PartyDTO, Party>(partyDTO); Party addedParty = await _repository.AddParty(tempParty); // adding the creator as a member of the party await addCreatorToParty(addedParty); return(Ok($"Party \"{addedParty.Name}\" was created successfully.")); }
public async Task CanUpdateParty() { var repo = BuildDb(); PartyDTO newPartyUpdate = new PartyDTO() { Id = 1, DungeonMasterId = 1, MaxSize = 93, Full = false }; await repo.UpdateParty(newPartyUpdate); var result = await repo.GetPartyById(1); Assert.NotNull(result); Assert.Equal(93, result.MaxSize); }
/// <summary> /// Build a PartyDTO object out of a Party Object /// </summary> /// <param name="party">Party object to build DTO from</param> /// <returns>PartyDTO object</returns> public async Task <PartyDTO> BuildPartyDTO(Party party) { DungeonMaster dm = await _context.DungeonMasters.FindAsync(party.DungeonMasterId); List <Player> members = await _context.Players.Where(x => x.PartyId == party.Id).ToListAsync(); PartyDTO dto = new PartyDTO { Id = party.Id, DungeonMasterId = party.DungeonMasterId, MaxSize = party.MaxSize, Full = party.Full, PlayersInParty = new List <PartyPlayerDTO>(), DungeonMasterDTO = new PartyDmDTO { Id = dm.Id, UserName = dm.UserName, UserEmail = dm.UserEmail, CampaignName = dm.CampaignName, CampaignDesc = dm.CampaignDesc, ExperienceLevel = dm.ExperienceLevel.ToString(), PersonalBio = dm.PersonalBio, ImageUrl = dm.ImageUrl } }; foreach (Player player in members) { dto.PlayersInParty.Add(new PartyPlayerDTO { Id = player.Id, ImageUrl = player.ImageUrl, UserEmail = player.UserEmail, CharacterName = player.CharacterName, Class = player.Class.ToString(), Race = player.Race.ToString(), ExperienceLevel = player.ExperienceLevel.ToString() }); } return(dto); }
public void CreateParty(PartyDTO party) { try { using (connection = DataConnection.GetConnection()) { connection.Open(); using (MySqlCommand command = new MySqlCommand("INSERT INTO Party(Abbreviation, Name, Leader) VALUES (@Abbreviation, @Name, @Leader)", connection)) { command.Parameters.AddWithValue("@Abbreviation", party.Abbreviation); command.Parameters.AddWithValue("@Name", party.Name); command.Parameters.AddWithValue("@Leader", party.Leader); command.ExecuteNonQuery(); } } } catch (MySqlException) { throw new CreatingPartyFailedException("We konden de door u ingevulde partij niet aanmaken."); } }
public void Load(PartyDTO partyDto, bool isgroup, string groupId) { IsGroup = isgroup; Party = partyDto; ShowBusyIndicator(); userService.GetAllActionTypes((res, exp) => appController.BeginInvokeOnDispatcher(() => { HideBusyIndicator(); if (exp == null) { PrivilegeList = res.Select(a => new Privilege() { ActionType = a, IsGrant = false }).ToList(); setPartyCustomActions(isgroup, groupId); } else { appController.HandleException(exp); } })); }
public void Save(PartyDTO party) { try { using (connection = DataConnection.GetConnection()) { connection.Open(); using (MySqlCommand command = new MySqlCommand("UPDATE Party SET Name=@Name, Leader=@Leader, Abbreviation=@Abbreviation WHERE ID=@PartyID", connection)) { command.Parameters.AddWithValue("@PartyID", party.ID); command.Parameters.AddWithValue("@Name", party.Name); command.Parameters.AddWithValue("@Leader", party.Leader); command.Parameters.AddWithValue("@Abbreviation", party.Abbreviation); command.ExecuteNonQuery(); } } } catch (MySqlException) { throw new UpdatingPartyFailedException("Het opslaan van de partij is mislukt."); } }
public IHttpActionResult JoinParty(PersonDTO personDto) { if (!User.Identity.IsAuthenticated) { return(Unauthorized()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userId = Guid.Parse(Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(User.Identity)); var party = db.Parties.Where(p => p.Code == personDto.PartyCode).FirstOrDefault(); var partyDto = new PartyDTO(); if (party == null) { ModelState.AddModelError("PartyCode", string.Format("Party Code '{0}' is not a valid party code. Confirm the party code with your party host.", personDto.PartyCode)); return(BadRequest(ModelState)); } partyDto.PartyName = party.Name; var person = db.People.Where(p => p.UserId == userId).FirstOrDefault(); if (db.PartyPersons.Where(p => p.PartyId == party.Id && p.PersonId == person.Id).FirstOrDefault() != null) { ModelState.AddModelError("PartyPerson", string.Format("You've already joined this party! Go to your Account Profile page to manage your info.", personDto.PartyCode)); return(BadRequest(ModelState)); } var partyPerson = new PartyPerson { Id = Guid.NewGuid(), PartyId = party.Id, PersonId = person.Id }; db.PartyPersons.Add(partyPerson); if (personDto.EnterChili) { var chef = new Chef { Id = Guid.NewGuid(), PartyPersonId = partyPerson.Id }; db.Chefs.Add(chef); var chiliNumber = 0; var numberOfChilis = db.Chilis.Count(c => c.PartyId == party.Id); if (numberOfChilis >= party.MaxChilis) { chiliNumber = numberOfChilis + 1; } else { chiliNumber = randomNumberGenerator.Next(1, party.MaxChilis + 1); while (db.Chilis.Where(c => c.Number == chiliNumber && c.PartyId == party.Id).FirstOrDefault() != null) { chiliNumber = randomNumberGenerator.Next(1, party.MaxChilis + 1); } } var chili = new Chili { Id = Guid.NewGuid(), ChefId = chef.Id, Name = personDto.ChiliName, Number = chiliNumber, PartyId = party.Id }; db.Chilis.Add(chili); partyDto.ChiliNumber = chiliNumber; } db.SaveChanges(); return(Ok(partyDto)); }
public IHttpActionResult PostParty(PartyDTO partyDto) { if (!User.Identity.IsAuthenticated) { return(Unauthorized()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userIdString = Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(User.Identity); var userId = Guid.Parse(userIdString); var person = db.People.Where(p => p.UserId == userId).FirstOrDefault(); if (person != null) { var party = db.Parties.Where(p => p.Id == partyDto.PartyId).FirstOrDefault(); if (party != null) { if (partyDto.PartyDate != null) { party.Date = partyDto.PartyDate; } if (partyDto.PartyName != null) { party.Name = partyDto.PartyName; } if (partyDto.MaxChilis > 0) { party.MaxChilis = partyDto.MaxChilis; } party.HasVotingStarted = partyDto.HasVotingStarted; // If votes haven't been tallied yet but the host initiated it, tally the results if (!party.HaveVotesBeenTallied && partyDto.HaveVotesBeenTallied) { var chiliPoints = new Dictionary <Guid, int>(); db.Votes.Where(v => db.Ballots.Where(b => db.PartyPersons.Where(pp => pp.PartyId == party.Id).Select(pp => pp.Id).Contains(b.VoterId)).Select(b => b.Id).Contains(v.BallotId)).GroupBy(v => v.ChiliId).ToList().ForEach(g => chiliPoints.Add(g.First().ChiliId, g.Sum(v => v.Points))); chiliPoints.Keys.ToList().ForEach(k => db.Chilis.Where(c => c.Id == k).FirstOrDefault().Votes = chiliPoints[k]); db.SaveChanges(); var partyChilis = db.Chilis.Where(c => c.PartyId == party.Id).OrderByDescending(c => c.Votes).ToList(); // Check for tie for first place var firstPlaceChilis = partyChilis.Where(pc => pc.Votes == partyChilis.Max(p => p.Votes)); if (firstPlaceChilis.Count() > 1) { // See if any one of the first place chilis has more first place votes (points == 3) var chilisAndTheirNumberOfFirstPlaceVotes = new Dictionary <Guid, int>(); var firstPlaceChiliIds = firstPlaceChilis.Select(f => f.Id); db.Votes.Where(v => firstPlaceChiliIds.Contains(v.ChiliId) && v.Points == 3).GroupBy(v => v.ChiliId).ToList().ForEach(g => chilisAndTheirNumberOfFirstPlaceVotes.Add(g.First().ChiliId, g.Count())); if (chilisAndTheirNumberOfFirstPlaceVotes.Count > 1) { // if there's more than one first place chili that got first place votes, see if one has more than others if (chilisAndTheirNumberOfFirstPlaceVotes.Count(c => c.Value == chilisAndTheirNumberOfFirstPlaceVotes.Max(ch => ch.Value)) > 1) { // If still tied, see if any one chili has more second place votes (points == 2) var chilisAndTheirNumberOfSecondPlaceVotes = new Dictionary <Guid, int>(); db.Votes.Where(v => firstPlaceChiliIds.Contains(v.ChiliId) && v.Points == 2).GroupBy(v => v.ChiliId).ToList().ForEach(g => chilisAndTheirNumberOfSecondPlaceVotes.Add(g.First().ChiliId, g.Count())); if (chilisAndTheirNumberOfSecondPlaceVotes.Count > 1) { // if there's more than one first place chili that got second place votes, see if one has more than others if (chilisAndTheirNumberOfSecondPlaceVotes.Count(c => c.Value == chilisAndTheirNumberOfSecondPlaceVotes.Max(ch => ch.Value)) > 1) { // If still tied, well there's a first place tie then partyChilis.Where(p => chilisAndTheirNumberOfSecondPlaceVotes.Where(c => c.Value == chilisAndTheirNumberOfSecondPlaceVotes.Max(ch => ch.Value)).Select(c => c.Key).Contains(p.Id)).ToList().ForEach(ch => ch.Place = 1); } else { partyChilis.Where(p => p.Id == chilisAndTheirNumberOfSecondPlaceVotes.OrderByDescending(c => c.Value).Select(c => c.Key).First()).First().Place = 1; } } else { partyChilis.Where(p => p.Id == chilisAndTheirNumberOfSecondPlaceVotes.OrderByDescending(c => c.Value).Select(c => c.Key).First()).First().Place = 1; } } else { partyChilis.Where(p => p.Id == chilisAndTheirNumberOfFirstPlaceVotes.OrderByDescending(c => c.Value).Select(c => c.Key).First()).First().Place = 1; } } else { partyChilis.Where(p => p.Id == chilisAndTheirNumberOfFirstPlaceVotes.OrderByDescending(c => c.Value).Select(c => c.Key).First()).First().Place = 1; } //Reorder partyChilis by place then by votes partyChilis = partyChilis.Where(c => c.PartyId == party.Id).OrderByDescending(c => c.Place).OrderByDescending(c => c.Votes).ToList(); } for (var i = 0; i < partyChilis.Count; i++) { if (partyChilis[i].Place == null) { partyChilis[i].Place = i + 1; } } } party.HaveVotesBeenTallied = partyDto.HaveVotesBeenTallied; var partyPerson = db.PartyPersons.Where(pp => pp.PartyId == party.Id && pp.PersonId == person.Id).FirstOrDefault(); if (!partyDto.IsHostUpdate) { if (partyPerson != null) { var chef = db.Chefs.Where(c => c.PartyPersonId == partyPerson.Id).FirstOrDefault(); if (chef != null) { var chili = db.Chilis.Where(c => c.ChefId == chef.Id && c.PartyId == party.Id).FirstOrDefault(); if (chili != null) { if (partyDto.EnterChili.HasValue && partyDto.EnterChili.Value) { if (chili != null) { chili.Name = partyDto.ChiliName; partyDto.ChiliNumber = chili.Number; } } else { db.Chilis.Remove(chili); db.Chefs.Remove(chef); } } } else if (partyDto.EnterChili.HasValue && partyDto.EnterChili.Value) { var newChef = new Chef { Id = Guid.NewGuid(), PartyPersonId = partyPerson.Id }; db.Chefs.Add(newChef); var chiliNumber = 0; var numberOfChilis = db.Chilis.Count(c => c.PartyId == party.Id); if (numberOfChilis >= party.MaxChilis) { chiliNumber = numberOfChilis + 1; } else { chiliNumber = randomNumberGenerator.Next(1, party.MaxChilis + 1); while (db.Chilis.Where(c => c.Number == chiliNumber && c.PartyId == party.Id).FirstOrDefault() != null) { chiliNumber = randomNumberGenerator.Next(1, party.MaxChilis + 1); } } var chili = new Chili { Id = Guid.NewGuid(), ChefId = newChef.Id, Name = partyDto.ChiliName, Number = chiliNumber, PartyId = party.Id }; db.Chilis.Add(chili); partyDto.ChiliNumber = chiliNumber; } } } db.SaveChanges(); } } return(Ok(partyDto)); }
public IHttpActionResult GetParties() { var isAuthenticationOn = Convert.ToBoolean(ConfigurationManager.AppSettings["IsAuthenticationOn"]); if (isAuthenticationOn && !User.Identity.IsAuthenticated) { return(Unauthorized()); } Guid userId; if (isAuthenticationOn) { var userIdString = Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(User.Identity); userId = Guid.Parse(userIdString); } else { userId = Guid.Parse("885cfa23-87c3-43cb-9326-8f317087e4f9"); } var person = db.People.Where(p => p.UserId == userId).FirstOrDefault(); var personDto = new PersonDTO(); if (person != null) { personDto.HostedParties = db.Parties.Where(p => p.HostId == person.Id).ToList(); var joinedParties = db.Parties.Where(p => db.PartyPersons.Where(pp => pp.PersonId == person.Id).Select(pp => pp.PartyId).Contains(p.Id)); var joinedPartyDtos = new List <PartyDTO>(); foreach (var party in joinedParties) { var partyDto = new PartyDTO(); partyDto.PartyId = party.Id; partyDto.PartyName = party.Name; partyDto.PartyDate = party.Date; partyDto.HostName = db.People.Where(p => p.Id == party.HostId).Select(p => new { HostName = p.FirstName + " " + p.LastName }).First().HostName; partyDto.HasSubmittedBallot = db.Ballots.Any(b => b.VoterId == db.PartyPersons.Where(pp => pp.PersonId == person.Id && pp.PartyId == party.Id).Select(pp => pp.Id).FirstOrDefault()); var partyPerson = db.PartyPersons.Where(p => p.PartyId == party.Id && p.PersonId == person.Id).FirstOrDefault(); var chef = db.Chefs.Where(c => c.PartyPersonId == partyPerson.Id).FirstOrDefault(); if (chef != null) { var chili = db.Chilis.Where(c => c.ChefId == chef.Id && c.PartyId == party.Id).FirstOrDefault(); partyDto.EnterChili = chili != null; partyDto.ChiliName = chili.Name; partyDto.ChiliNumber = chili.Number; } else { partyDto.EnterChili = false; } joinedPartyDtos.Add(partyDto); } personDto.JoinedParties = joinedPartyDtos; } return(Ok(personDto)); }
public async Task CanGetAllParties() { DungeonMasterDTO newDm = new DungeonMasterDTO() { UserId = "test1", CampaignName = "Test Campaign", CampaignDesc = "Test Campaign Description", ExperienceLevel = "Medium", PersonalBio = "Test Personal Bio" }; DungeonMasterDTO newDm2 = new DungeonMasterDTO() { UserId = "test2", CampaignName = "Test Campaign2", CampaignDesc = "Test Campaign Description2", ExperienceLevel = "High", PersonalBio = "Test Personal Bio2" }; DungeonMasterDTO newDm3 = new DungeonMasterDTO() { UserId = "test3", CampaignName = "Test Campaign3", CampaignDesc = "Test Campaign Description3", ExperienceLevel = "FirstTime", PersonalBio = "Test Personal Bio3" }; var dmRepo = BuildDmDb(); newDm = await dmRepo.CreateDungeonMaster(newDm); newDm2 = await dmRepo.CreateDungeonMaster(newDm2); newDm3 = await dmRepo.CreateDungeonMaster(newDm3); PartyDTO newParty = new PartyDTO() { DungeonMasterId = newDm.Id, MaxSize = 4, Full = false }; PartyDTO newParty2 = new PartyDTO() { DungeonMasterId = newDm2.Id, MaxSize = 133, Full = false }; PartyDTO newParty3 = new PartyDTO() { DungeonMasterId = newDm3.Id, MaxSize = 8, Full = false }; var repo = BuildDb(); await repo.CreateParty(newParty); await repo.CreateParty(newParty2); await repo.CreateParty(newParty3); var result = await repo.GetAllParties(); bool partyInList = false; foreach (var item in result) { if (item.MaxSize == 133) { partyInList = true; } } Assert.NotEmpty(result); Assert.True(partyInList); }
public IHttpActionResult HostParty(PartyDTO partyDto) { if (!User.Identity.IsAuthenticated) { return(Unauthorized()); } if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var userIdString = Microsoft.AspNet.Identity.IdentityExtensions.GetUserId(User.Identity); var userId = Guid.Parse(userIdString); var person = db.People.Where(p => p.UserId == userId).FirstOrDefault(); var returnedPartyDto = new PartyDTO(); var partyCode = Utilities.Utilities.GeneratePartyCode(4); while (db.Parties.Where(p => p.Code == partyCode).FirstOrDefault() != null) { partyCode = Utilities.Utilities.GeneratePartyCode(4); } var party = new Party { Id = Guid.NewGuid(), Name = partyDto.PartyName, Date = partyDto.PartyDate, Code = partyCode, HostId = person.Id, MaxChilis = partyDto.MaxChilis }; db.Parties.Add(party); returnedPartyDto.PartyCode = partyCode; var partyPerson = new PartyPerson { Id = Guid.NewGuid(), PartyId = party.Id, PersonId = person.Id }; db.PartyPersons.Add(partyPerson); if (partyDto.EnterChili.HasValue && partyDto.EnterChili.Value) { var chef = new Chef { Id = Guid.NewGuid(), PartyPersonId = partyPerson.Id }; db.Chefs.Add(chef); var chiliNumber = 0; var numberOfChilis = db.Chilis.Count(c => c.PartyId == party.Id); if (numberOfChilis >= party.MaxChilis) { chiliNumber = numberOfChilis + 1; } else { chiliNumber = randomNumberGenerator.Next(1, party.MaxChilis + 1); while (db.Chilis.Where(c => c.Number == chiliNumber && c.PartyId == party.Id).FirstOrDefault() != null) { chiliNumber = randomNumberGenerator.Next(1, party.MaxChilis + 1); } } var chili = new Chili { Id = Guid.NewGuid(), ChefId = chef.Id, Name = partyDto.ChiliName, Number = chiliNumber, PartyId = party.Id }; db.Chilis.Add(chili); returnedPartyDto.ChiliNumber = chiliNumber; } db.SaveChanges(); return(Ok(returnedPartyDto)); }
public async Task <ActionResult <Party> > PostParty(PartyDTO party) { var result = await _party.CreateParty(party); return(CreatedAtAction("GetParty", new { id = result.Id }, party)); }
public PartyCustomActionsVM() { BasicInfoAppLocalizedResources = new BasicInfoAppLocalizedResources(); init(); party = new PartyDTO(); }
public void CreateParty(PartyDTO party) { Context.CreateParty(party); }
public void Save(PartyDTO party) { Context.Save(party); }
public List <PartyDTO> GetPartyHistory(PartyDTO party) { return(Context.GetPartyHistory(party)); }