public IActionResult Details(int id) { var race = _racesService.ById(id); if (race == null) { return(Redirect(Races_Root_Path)); } var model = new RaceDetailsViewModel { Id = race.Id, Name = race.Name, Description = race.Description }; model.Professions = race.Professions? .Select(x => new ProfessionsAllViewModel { Id = x.ProfessionId, Name = _professionsService.ById(x.ProfessionId).Name }).ToList(); return(View(model)); }
private RaceDetailsViewModel getRaceDetailsViewModelWithoutParticipants(Race race) { var model = new RaceDetailsViewModel { RaceId = race.Id, DateTimeOfRace = race.DateTimeOfRace.ToShortDateString(), NumberRaceInDay = race.NumberRaceInDay.ToString(CultureInfo.InvariantCulture) }; return(model); }
public ActionResult Details(int id) { RaceDetails details = _raceRepository.GetRaceDetails(UserContext.User.Id, UserContext.User.OrganizationId, id); if (details.Detail == null) { return(NotFoundResult()); } RaceDetailsViewModel viewModel = Mapper.Map <RaceDetailsViewModel>(details); InitDetailsViewModel(viewModel, details); return(View(Mvc.View.Race.Details, viewModel)); }
public void EditRace(RaceDetailsViewModel model) { using (var unit = new UnitOfWork()) { var loadParticipants = unit.Participant.LoadParticipants(new ParticipantFilter { RaceId = model.RaceId }); foreach (var participantViewModel in model.Participants) { var viewModel = participantViewModel; foreach (var participant in loadParticipants.Where(participant => viewModel.ParticipantId == participant.Id)) { participant.NumberInRace = participantViewModel.NumberInRace; participant.PlaceInRace = participantViewModel.PlaceInRace; unit.Participant.Save(participant); break; } } } }
private void InitDetailsViewModel(RaceDetailsViewModel viewModel, RaceDetails details) { InitBaseDetailViewModel(details.Detail, viewModel.Detail); InitBaseDetailEntityStateChange(viewModel.Detail); if (details.Detail.EntityStateId == Dom.EntityType.Race.State.Open && details.Detail.StartRaceTime != null && details.Detail.DarknessBeginTime != null && details.Detail.DarknessEndTime != null && details.Detail.HasCalculatedDistances && details.StatementPigeonIds != null && details.StatementPigeonIds.Any() && details.Detail.ReturnPigeonCount * 1.0 / details.StatementPigeonIds.Count >= 0.2 ) { viewModel.CanCalculateResults = true; } viewModel.Detail.RaceTypeName = GetRaceTypeName(viewModel.Detail.RaceTypeId); viewModel.Detail.SeasonTypeName = GetSeasonTypeName(viewModel.Detail.SeasonTypeId); viewModel.Detail.SeasonName = $"{viewModel.Detail.SeasonTypeName}-{viewModel.Detail.Year}"; ViewData[Mvc.ViewData.Controller] = Mvc.Controller.Race.Name; }
public ActionResult Edit(int id) { RaceDetails details = _raceRepository.GetRaceDetails(UserContext.User.Id, UserContext.User.OrganizationId, id); if (details.Detail == null || details.Detail?.EntityStateId != Dom.EntityType.Race.State.Open) { return(NotFoundResult()); } RaceDetailsViewModel viewModel = Mapper.Map <RaceDetailsViewModel>(details); var points = _pointRepository.GetPoints(UserContext.User.Id, UserContext.User.OrganizationId, viewModel.Detail.OrganizationId); viewModel.Detail.PointItems = Mapper.Map <ICollection <SelectListItem> >(points); foreach (var pigeon in details.Pigeons) { pigeon.Ring = Format.FormattedRing(pigeon.Year, pigeon.Code, pigeon.Number); pigeon.InStatement = details.StatementPigeonIds.Contains(pigeon.Id); } viewModel.StatementIds = details.StatementPigeonIds.ToList(); viewModel.StatementItems = new Dictionary <string, ICollection <SelectListItem> >(); foreach (var member in details.Members) { viewModel.StatementItems.Add( Format.FormattedInitials(member.LastName, member.FirstName, member.MiddleName) + $" (#{member.Id})", details.Pigeons .Where(m => m.MemberId == member.Id) .Select(g => new SelectListItem { Value = g.Id.ToString(), Text = g.Ring, Selected = g.InStatement }).ToList() ); } return(View(Mvc.View.Race.Edit, viewModel)); }
public ActionResult Edit(RaceDetailsViewModel viewModel) { if (viewModel.Detail.DarknessEndTime <= viewModel.Detail.DarknessBeginTime) { AddModelError(viewModel, m => m.Detail.DarknessEndTime, StyleContext.GetTranslation(Dom.Translation.Race.DarknessEndTimeLessDarknessBeginTime)); } if (viewModel.Detail.StartRaceTime < viewModel.Detail.DarknessBeginTime) { AddModelError(viewModel, m => m.Detail.StartRaceTime, StyleContext.GetTranslation(Dom.Translation.Race.StartRaceTimeLessDarknessBeginTime)); } if (ModelState.IsValid) { Race race = _raceRepository.Get <Race>(viewModel.Detail.Id); race.Name = viewModel.Detail.Name; race.PointId = viewModel.Detail.PointId; race.StartRaceTime = viewModel.Detail.StartRaceTime; race.DarknessBeginTime = viewModel.Detail.DarknessBeginTime; race.DarknessEndTime = viewModel.Detail.DarknessEndTime; race.Weather = viewModel.Detail.Weather; race.RacePigeons.ToList().ForEach(x => _raceRepository.Delete(x)); if (viewModel.StatementIds != null) { foreach (var pigeon in viewModel.StatementIds) { race.RacePigeons.Add( new RacePigeon { PigeonId = pigeon, RaceId = race.Id }); } } _raceRepository.UnitOfWork.SaveChanges(); return(RedirectToAction(Mvc.Controller.Race.Details, Mvc.Controller.Race.Name, new { id = viewModel.Detail.Id })); } RaceDetails details = _raceRepository.GetRaceDetails(UserContext.User.Id, UserContext.User.OrganizationId, viewModel.Detail.Id); var points = _pointRepository.GetPoints(UserContext.User.Id, UserContext.User.OrganizationId, viewModel.Detail.OrganizationId); viewModel.Detail.PointItems = Mapper.Map <ICollection <SelectListItem> >(points); foreach (var pigeon in details.Pigeons) { pigeon.Ring = Format.FormattedRing(pigeon.Year, pigeon.Code, pigeon.Number); pigeon.InStatement = details.StatementPigeonIds.Contains(pigeon.Id); } viewModel.StatementIds = details.StatementPigeonIds.ToList(); viewModel.StatementItems = new Dictionary <string, ICollection <SelectListItem> >(); foreach (var member in details.Members) { viewModel.StatementItems.Add( Format.FormattedInitials(member.LastName, member.FirstName, member.MiddleName) + $" (#{member.Id})", details.Pigeons .Where(m => m.MemberId == member.Id) .Select(g => new SelectListItem { Value = g.Id.ToString(), Text = g.Ring, Selected = g.InStatement }).ToList() ); } return(View(Mvc.View.Race.Edit, viewModel)); }
public ActionResult DeleteRace(RaceDetailsViewModel model) { _raceService.DeleteRace(model.RaceId); return(RedirectToAction("Index")); }
public ActionResult Edit(RaceDetailsViewModel model) { _raceService.EditRace(model); return(RedirectToAction("Index")); }