public ActionResult ReturnTime(int id) { RaceResultReturnTimes resultReturnTimes = _raceRepository.GetRaceResultReturnTimes(UserContext.User.Id, UserContext.User.OrganizationId, id); if (resultReturnTimes.Detail == null || resultReturnTimes.Detail?.EntityStateId != Dom.EntityType.Race.State.Open) { return(NotFoundResult()); } RaceResultReturnTimesViewModel viewModel = Mapper.Map <RaceResultReturnTimesViewModel>(resultReturnTimes); viewModel.Detail.RaceTypeName = GetRaceTypeName(viewModel.Detail.RaceTypeId); viewModel.Detail.SeasonTypeName = GetSeasonTypeName(viewModel.Detail.SeasonTypeId); viewModel.Detail.SeasonName = $"{viewModel.Detail.SeasonTypeName}-{viewModel.Detail.Year}"; foreach (var pigeon in resultReturnTimes.Pigeons) { pigeon.Ring = Format.FormattedRing(pigeon.Year, pigeon.Code, pigeon.Number); pigeon.InStatement = resultReturnTimes.PigeonReturnTimes.Any(m => m.Id == pigeon.Id); } viewModel.PigeonReturnItems = new Dictionary <string, ICollection <DateTimeSelectListItem> >(); foreach (var member in resultReturnTimes.Members) { viewModel.PigeonReturnItems.Add( Format.FormattedInitials(member.LastName, member.FirstName, member.MiddleName) + $" (#{member.Id})", resultReturnTimes.Pigeons .Where(m => m.MemberId == member.Id) .Select(g => new DateTimeSelectListItem { Value = g.Id.ToString(), Text = g.Ring, Selected = g.InStatement, DateTime = resultReturnTimes.PigeonReturnTimes.Any() ? resultReturnTimes.PigeonReturnTimes.FirstOrDefault(m => m.Id == g.Id)?.ReturnTime : null }).ToList() ); } return(View(Mvc.View.Race.ReturnTime, viewModel)); }
public ActionResult ReturnTime(RaceResultReturnTimesViewModel viewModel) { if (ModelState.IsValid) { ICollection <PigeonReturnTimeRef> pigeonReturnTimes = string.IsNullOrWhiteSpace(viewModel.PigeonReturnTimesJson) ? new List <PigeonReturnTimeRef>() : JsonHelper.JsonDeserialize <ICollection <PigeonReturnTimeRef> >(viewModel.PigeonReturnTimesJson); 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.PigeonReturnTimes.ToList().ForEach(x => _raceRepository.Delete(x)); if (pigeonReturnTimes != null) { foreach (var time in pigeonReturnTimes) { race.PigeonReturnTimes.Add( new PigeonReturnTime { PigeonId = time.Id, ReturnTime = time.ReturnTime }); } } _raceRepository.UnitOfWork.SaveChanges(); return(RedirectToAction(Mvc.Controller.Race.Details, Mvc.Controller.Race.Name, new { id = viewModel.Detail.Id })); } RaceResultReturnTimes resultReturnTimes = _raceRepository.GetRaceResultReturnTimes(UserContext.User.Id, UserContext.User.OrganizationId, viewModel.Detail.Id); viewModel.Detail.RaceTypeName = GetRaceTypeName(viewModel.Detail.RaceTypeId); viewModel.Detail.SeasonTypeName = GetSeasonTypeName(viewModel.Detail.SeasonTypeId); viewModel.Detail.SeasonName = $"{viewModel.Detail.SeasonTypeName}-{viewModel.Detail.Year}"; foreach (var pigeon in resultReturnTimes.Pigeons) { pigeon.Ring = Format.FormattedRing(pigeon.Year, pigeon.Code, pigeon.Number); pigeon.InStatement = resultReturnTimes.PigeonReturnTimes.Any(m => m.Id == pigeon.Id); } viewModel.PigeonReturnItems = new Dictionary <string, ICollection <DateTimeSelectListItem> >(); foreach (var member in resultReturnTimes.Members) { viewModel.PigeonReturnItems.Add( Format.FormattedInitials(member.LastName, member.FirstName, member.MiddleName) + $" (#{member.Id})", resultReturnTimes.Pigeons .Where(m => m.MemberId == member.Id) .Select(g => new DateTimeSelectListItem { Value = g.Id.ToString(), Text = g.Ring, Selected = g.InStatement, DateTime = resultReturnTimes.PigeonReturnTimes.Any() ? resultReturnTimes.PigeonReturnTimes.FirstOrDefault(m => m.Id == g.Id)?.ReturnTime : null }).ToList() ); } return(View(Mvc.View.Race.ReturnTime, viewModel)); }