public ContestDetailsDTO editContest(int id, ContestDetailsDTO newContest) { ContestType contestType = context.ContestType.Where(ct => ct.ContestTypeId == id).FirstOrDefault(); if (contestType == null) { throw new AppException("Nie odnaleziono konkursu w bazie"); } Contest contest = context.Contest.Where(c => c.ContestTypeId == id).FirstOrDefault(); contestType.NamePolish = newContest.name; contestType.Enterable = newContest.isEnterable; if (contest != null) { contest.PlaceId = newContest.placeId; contest.StartDate = newContest.startDate; contest.EndDate = newContest.endDate; } context.SaveChanges(); return(getContest(id)); }
public IActionResult editContest(int id, [FromBody] ContestDetailsDTO newContest) { var claimsIdentity = this.User.Identity as ClaimsIdentity; try { userService.IsUserAnOrganizator(claimsIdentity); if (!appSettingsService.canEnter()) { throw new AppException("Akcja obecnie niedozwolona"); } var response = contestService.editContest(id, newContest); if (response == null) { throw new AppException("Błąd edycji konkursu"); } return(Ok()); } catch (Exception e) { return(BadRequest(new { message = e.Message })); } }
public ContestDetailsDTO getContest(int id) { ContestDetailsDTO contestDetails; ContestType contestType = context.ContestType.Where(ct => ct.ContestTypeId == id).FirstOrDefault(); if (contestType == null) { throw new AppException("Nie odnaleziono konkursu o podanym id"); } List <BreedInfoDTO> allowedBreeds = new List <BreedInfoDTO>(); List <AllowedBreedsContest> allowed = context.AllowedBreedsContest.Where(abc => abc.ContestTypeId == id).ToList(); foreach (AllowedBreedsContest abc in allowed) { DogBreed breed = context.DogBreed.Where(db => db.BreedId == abc.BreedTypeId).FirstOrDefault(); allowedBreeds.Add(new BreedInfoDTO { breedId = abc.BreedTypeId, name = breed.NamePolish }); } List <ParticipationInfoDTO> participations = new List <ParticipationInfoDTO>(); List <Participation> part = context.Participation.Where(p => p.ContestId == id).ToList(); foreach (Participation p in part) { Dog dog = context.Dog.Where(d => d.DogId == p.DogId).FirstOrDefault(); DogBreed breed = context.DogBreed.Where(db => db.BreedId == dog.BreedId).FirstOrDefault(); Grade grade = context.Grade.Where(g => g.GradeId == p.GradeId).FirstOrDefault(); DogClass classD = context.DogClass.Where(c => c.ClassId == dog.ClassId).FirstOrDefault(); string place = (p.Place == null) ? "Nie przyznano" : p.Place.ToString(); if (grade == null) { participations.Add(new ParticipationInfoDTO { participationId = p.ParticipationId, dogId = p.DogId, name = dog.Name, breedName = breed.NamePolish, className = classD.NamePolish, chipNumber = dog.ChipNumber, gradeId = 0, grade = "Nie oceniono", place = place, description = p.Description }); } else { participations.Add(new ParticipationInfoDTO { participationId = p.ParticipationId, dogId = p.DogId, name = dog.Name, breedName = breed.NamePolish, className = classD.NamePolish, chipNumber = dog.ChipNumber, gradeId = grade.GradeId, grade = grade.NamePolish, place = place, description = p.Description }); } } Contest contest = context.Contest.Where(c => c.ContestTypeId == id).FirstOrDefault(); if (contest == null) { contestDetails = new ContestDetailsDTO { contestTypeId = contestType.ContestTypeId, contestId = -1, name = contestType.NamePolish, isEnterable = Convert.ToBoolean(contestType.Enterable), placeId = -1, placeName = null, startDate = new DateTime(), endDate = new DateTime(), allowedBreeds = allowedBreeds, participants = participations }; } else { Place place = context.Place.Where(p => p.PlaceId == contest.PlaceId).FirstOrDefault(); contestDetails = new ContestDetailsDTO { contestTypeId = contestType.ContestTypeId, contestId = contest.ContestId, name = contestType.NamePolish, isEnterable = Convert.ToBoolean(contestType.Enterable), placeId = contest.PlaceId, placeName = place.Name, startDate = contest.StartDate, endDate = contest.EndDate, allowedBreeds = allowedBreeds, participants = participations }; } return(contestDetails); }