Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        private RaceDetailsViewModel getRaceDetailsViewModelWithoutParticipants(Race race)
        {
            var model = new RaceDetailsViewModel
            {
                RaceId          = race.Id,
                DateTimeOfRace  = race.DateTimeOfRace.ToShortDateString(),
                NumberRaceInDay = race.NumberRaceInDay.ToString(CultureInfo.InvariantCulture)
            };

            return(model);
        }
Esempio n. 3
0
        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));
        }
Esempio n. 4
0
 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;
             }
         }
     }
 }
Esempio n. 5
0
        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;
        }
Esempio n. 6
0
        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));
        }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
 public ActionResult DeleteRace(RaceDetailsViewModel model)
 {
     _raceService.DeleteRace(model.RaceId);
     return(RedirectToAction("Index"));
 }
Esempio n. 9
0
 public ActionResult Edit(RaceDetailsViewModel model)
 {
     _raceService.EditRace(model);
     return(RedirectToAction("Index"));
 }