Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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));
        }