示例#1
0
        public ActionResult Edit(int id = 0, int seasonId = 0, int leagueId = 0, int clubId = 0, int teamId = 0)
        {
            //
            Thread.CurrentThread.CurrentCulture = new CultureInfo("he-IL");
            var vm = new PlayerFormView
            {
                LeagueId = leagueId,
                Genders  = new SelectList(usersRepo.GetGenders(), "GenderId", "Title")
            };

            if (id != 0)
            {
                vm.ClubId        = clubId;
                vm.CurrentTeamId = teamId;
                vm.SeasonId      = seasonId;

                if (leagueId > 0)
                {
                    League league = leagueRepo.GetById(leagueId);
                    if (league != null)
                    {
                        vm.IsHadicapEnabled = league.Union.IsHadicapEnabled;
                        vm.SeasonId         = league.SeasonId ?? vm.SeasonId;
                    }
                }

                User pl = usersRepo.GetById(id);
                if (pl == null && pl.IsArchive)
                {
                    return(RedirectToAction("NotFound", "Error"));
                }


                if (teamId > 0)
                {
                    TeamsPlayer teamsPlayer = pl.TeamsPlayers
                                              .FirstOrDefault(x => x.UserId == pl.UserId &&
                                                              x.SeasonId == vm.SeasonId &&
                                                              x.TeamId == teamId);
                    if (teamsPlayer == null)
                    {
                        return(RedirectToAction("NotFound", "Error"));
                    }

                    vm.HandicapLevel = teamsPlayer.HandicapLevel;
                    vm.IsPlayereInTeamLessThan3year = teamsPlayer.IsPlayereInTeamLessThan3year;
                    vm.NumberOfTeamsUserPlays       = pl.TeamsPlayers.Count;
                }

                vm.InjectFrom <IgnoreNulls>(pl);

                if (!string.IsNullOrEmpty(pl.Password))
                {
                    vm.Password = Protector.Decrypt(pl.Password);
                }
                vm.IsValidUser     = User.IsInAnyRole(AppRole.Admins, AppRole.Editors);
                vm.ManagerTeams    = new List <TeamDto>();
                vm.PlayerTeams     = new List <TeamDto>();
                vm.PlayerHistories = new List <PlayerHistoryFormView>();

                var currDate = DateTime.Now;
                if (pl.UsersType.TypeRole == AppRole.Players)
                {
                    List <TeamDto> teams = pl.TeamsPlayers.Where(t => !t.Team.IsArchive &&
                                                                 seasonsRepository.GetAllCurrent().Select(s => s.Id).Contains(t.SeasonId ?? 0))
                                           .Select(t => new TeamDto
                    {
                        TeamId   = t.TeamId,
                        Title    = t.Team.Title,
                        SeasonId = t.SeasonId,
                        ClubId   = t.Team.ClubTeams.Where(ct => ct.SeasonId == t.SeasonId).FirstOrDefault()?.ClubId ?? 0,
                        LeagueId = t.Team.LeagueTeams.Where(lt => lt.SeasonId == t.SeasonId).FirstOrDefault()?.LeagueId ?? 0
                    })
                                           .ToList();
                    vm.PlayerTeams = teams;
                    if (!vm.IsValidUser)
                    {
                        var managerTeams = AuthSvc.FindTeamsByManagerId(base.AdminId)
                                           .Select(t => new {
                            TeamId = t.TeamId,
                            Title  = t.Title,
                            Club   = teamRepo.GetClubByTeamId(t.TeamId, currDate),
                            League = teamRepo.GetLeagueByTeamId(t.TeamId, currDate)
                        })
                                           .Select(t => new TeamDto
                        {
                            TeamId   = t.TeamId,
                            Title    = t.Title,
                            SeasonId = t.League.SeasonId ?? t.Club?.SeasonId,
                            ClubId   = t.Club?.ClubId ?? 0,
                            LeagueId = t.League?.LeagueId ?? 0
                        });
                        vm.ManagerTeams = managerTeams;
                    }
                }

                vm.PlayerHistories = usersRepo.GetPlayerHistory(id, vm.SeasonId).ToViewModel();
            }

            if (TempData["ViewData"] != null)
            {
                ViewData = (ViewDataDictionary)TempData["ViewData"];
            }

            return(View(vm));
        }
示例#2
0
        public ActionResult Edit(PlayerFormView frm)
        {
            //
            Thread.CurrentThread.CurrentCulture = new CultureInfo("he-IL");
            int maxFileSize = GlobVars.MaxFileSize * 1000;
            var savePath    = Server.MapPath(GlobVars.ContentPath + "/players/");

            if (!ModelState.IsValid)
            {
                if (frm.LeagueId != 0)
                {
                    return(RedirectToAction("Edit",
                                            new
                    {
                        id = frm.UserId,
                        seasonId = frm.SeasonId,
                        leagueId = frm.LeagueId,
                        teamId = frm.CurrentTeamId
                    }));
                }
                return(RedirectToAction("Edit", new { id = frm.UserId, seasonId = frm.SeasonId, clubId = 0, teamId = frm.CurrentTeamId }));
            }

            var pl = new User();

            if (frm.UserId != 0)
            {
                pl = usersRepo.GetById(frm.UserId);

                TeamsPlayer teamsPlayer = pl.TeamsPlayers
                                          .FirstOrDefault(x => x.UserId == pl.UserId &&
                                                          x.SeasonId == frm.SeasonId &&
                                                          x.TeamId == frm.CurrentTeamId);
                if (teamsPlayer == null)
                {
                    return(RedirectToAction("NotFound", "Error"));
                }

                teamsPlayer.IsPlayereInTeamLessThan3year = frm.IsPlayereInTeamLessThan3year;
                teamsPlayer.HandicapLevel = frm.HandicapLevel;
            }
            else
            {
                usersRepo.Create(pl);
            }

            UpdateModel(pl);

            pl.Password = Protector.Encrypt(frm.Password);
            pl.TypeId   = 4;

            usersRepo.Save();

            var imageFile = GetPostedFile("ImageFile");

            if (imageFile != null)
            {
                if (imageFile.ContentLength > maxFileSize)
                {
                    ModelState.AddModelError("ImageFile", Messages.FileSizeError);
                }
                else
                {
                    var newName = SaveFile(imageFile, pl.UserId);
                    if (newName == null)
                    {
                        ModelState.AddModelError("ImageFile", Messages.FileError);
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(pl.Image))
                        {
                            FileUtil.DeleteFile(savePath + pl.Image);
                        }

                        pl.Image = newName;
                    }
                }
            }


            if (ModelState.IsValid)
            {
                usersRepo.Save();
                TempData["Saved"] = true;
            }
            else
            {
                TempData["ViewData"] = ViewData;
            }

            if (frm.LeagueId != 0)
            {
                return(RedirectToAction("Edit", new { id = pl.UserId, seasonId = frm.SeasonId, leagueId = frm.LeagueId, teamId = frm.CurrentTeamId }));
            }

            return(RedirectToAction("Edit", new { id = pl.UserId, seasonId = frm.SeasonId, clubId = 0, teamId = frm.CurrentTeamId }));
        }