Exemple #1
0
        /// <summary>
        /// Редактирование командировки.
        /// </summary>
        /// <param name="businessTrip">Командировка.</param>
        /// <param name="AddDirectionIds">Ид новых направлений у командировки.</param>
        /// <param name="DeleteDirectionIds">Ид направлений, которые необходимо удалить.</param>
        public void UpdateParty(Party party, List <int> addPersonIds, List <int> deletePersonIds)
        {
            using (var businessTripContex = new BusinessTripContext())
            {
                businessTripContex.Entry(party).State = EntityState.Modified;

                foreach (var personId in deletePersonIds)
                {
                    var partyPerson = new PartyPerson
                    {
                        Party_PartyId   = party.PartyId,
                        Person_PersonId = personId
                    };

                    businessTripContex.Entry(partyPerson).State = EntityState.Deleted;
                }

                foreach (var personId in addPersonIds)
                {
                    var partyPerson = new PartyPerson
                    {
                        Party_PartyId   = party.PartyId,
                        Person_PersonId = personId
                    };

                    businessTripContex.Entry(partyPerson).State = EntityState.Added;
                }

                businessTripContex.SaveChanges();
            }
        }
Exemple #2
0
        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 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));
        }