예제 #1
0
        // GET: UserClubs/Create
        public ActionResult Create(int id)
        {
            var club = _db.Clubs.Find(id);

            if (club == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Name = club.Name;
            var list = _db.Users.Where(x => x.Roles != "Mailer" && x.Roles != "Admin").ToList();

            foreach (var userClub in _db.UserClubs.Where(x => x.ClubId == id))
            {
                if (list.Any(x => x.id == userClub.UserId))
                {
                    list.RemoveAll(x => x.id == userClub.UserId);
                }
            }
            ViewBag.UserId = new SelectList(list, "id", "username");
            var userclub = new UserClub()
            {
                ClubId = id
            };

            return(View(userclub));
        }
예제 #2
0
        public static void ApproveClub(int clubID, bool approve)
        {
            var club = GetClubInfo(clubID);

            if (club != null)
            {
                club.IsActive = approve;
                club.UpdateDate = DateTime.Now;

                if (approve)
                    club.IsAppliable = true;

                SaveClub(club);

                var uc = new UserClub();
                uc.ClubUid = clubID;
                uc.JoinClubDate = DateTime.Now;
                uc.FromDate = DateTime.Now;
                uc.IsActive = true;
                uc.Responsibility = (int) Responsibility.Manager;
                uc.Userid = club.ManagerUid;
                uc.UserName = club.ManagerUserName;

                SaveUserClub(uc);

                ClubSysPrivateMessage.SendMessage(clubID, string.Empty, ClubSysMessageType.ApproveClub);
            }
            else
                throw new Exception("Club not exist.");
        }
예제 #3
0
        public async Task <JoinClubRequest> ApproveJoinClubRequest(string requestId, int requestType)
        {
            JoinClubRequest request = await this.dbContext.JoinClubRequests
                                      .FirstOrDefaultAsync(x => x.Id == requestId);

            if (requestType == 1)
            {
                UserClub userClub = new UserClub()
                {
                    Club   = request.Club,
                    User   = request.User,
                    ClubId = request.ClubId,
                    UserId = request.UserId
                };
                await this.dbContext.UserClubs.AddAsync(userClub);

                request.RequestType = RequestType.Approved;
            }
            else if (requestType == 2)
            {
                request.RequestType = RequestType.Removed;
            }

            await this.dbContext.SaveChangesAsync();

            return(request);
        }
예제 #4
0
        public static void ApproveClub(int clubID, bool approve)
        {
            var club = GetClubInfo(clubID);

            if (club != null)
            {
                club.IsActive   = approve;
                club.UpdateDate = DateTime.Now;

                if (approve)
                {
                    club.IsAppliable = true;
                }

                SaveClub(club);

                var uc = new UserClub();
                uc.ClubUid        = clubID;
                uc.JoinClubDate   = DateTime.Now;
                uc.FromDate       = DateTime.Now;
                uc.IsActive       = true;
                uc.Responsibility = (int)Responsibility.Manager;
                uc.Userid         = club.ManagerUid;
                uc.UserName       = club.ManagerUserName;

                SaveUserClub(uc);

                ClubSysPrivateMessage.SendMessage(clubID, string.Empty, ClubSysMessageType.ApproveClub);
            }
            else
            {
                throw new Exception("Club not exist.");
            }
        }
예제 #5
0
            public async Task <Unit> Handle(Command request, CancellationToken cancellationToken)
            {
                var club = new Club
                {
                    Id              = request.Id,
                    Name            = request.Name,
                    LeagueName      = request.LeagueName,
                    StadiumName     = request.StadiumName,
                    DateEstablished = request.DateEstablished,
                    ShortName       = request.ShortName
                };

                _context.Clubs.Add(club);

                var user = await _context.Users.SingleOrDefaultAsync(x => x.UserName == _userAccessor.GetCurrentUsername());

                var clubAttendee = new UserClub {
                    AppUser    = user,
                    Club       = club,
                    IsHost     = true,
                    DateJoined = DateTime.Now
                };

                _context.UserClubs.Add(clubAttendee);

                var success = await _context.SaveChangesAsync() > 0;

                if (success)
                {
                    return(Unit.Value);
                }

                throw new Exception("Problem saving club chnages");
            }
예제 #6
0
        public ActionResult Edit([Bind(Include = "id,UserId,ClubId,Roles,rowversion")] UserClub userClub)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    _db.Entry(userClub).State = EntityState.Modified;
                    _db.SaveChanges();
                    return(RedirectToAction("Index", new { id = userClub.ClubId }));
                }
            }
            catch (DbUpdateConcurrencyException ex)
            {
                var entry         = ex.Entries.Single();
                var clientValues  = (UserClub)entry.Entity;
                var databaseEntry = entry.GetDatabaseValues();
                if (databaseEntry == null)
                {
                    ModelState.AddModelError(string.Empty,
                                             "Unable to save changes. The member was deleted by another user.");
                }
                else
                {
                    var databaseValues = (UserClub)databaseEntry.ToObject();

                    if (databaseValues.UserId != clientValues.UserId)
                    {
                        ModelState.AddModelError("User", "Current value: "
                                                 + databaseValues.User.username);
                    }
                    if (databaseValues.ClubId != clientValues.ClubId)
                    {
                        ModelState.AddModelError("Club", "Current value: "
                                                 + databaseValues.Club.Name);
                    }


                    ModelState.AddModelError(string.Empty, "The record you attempted to edit "
                                             + "was modified by another user after you got the original value. The "
                                             + "edit operation was canceled and the current values in the database "
                                             + "have been displayed. If you still want to edit this record, click "
                                             + "the Save button again. Otherwise click the Back to List hyperlink.");
                    userClub.rowversion = databaseValues.rowversion;
                }
            }
            catch (Exception dex)
            {
                //Log the error (uncomment dex variable name and add a line here to write a log.)
                ModelState.AddModelError("",
                                         "Unable to save changes. Try again, and if the problem persists, see your system administrator.");
                ErrorSignal.FromCurrentContext().Raise(dex);
            }
            return(View(userClub));
        }
예제 #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            #region Assign Control Property

            ctrlLeftPanel.UserId   = userid;
            ctrlLeftPanel.UserName = username;

            ctrlFieldTooBar.UserId = userid;

            ctrlMenuTabBar.CurrentMenu = CasinoMenuType.CasinoBetLog;

            if (CurrentMatch != Guid.Empty)
            {
                ctrlCasinoHeader.UserId        = userid;
                ctrlCasinoHeader.MatchGuid     = CurrentMatch;
                ctrlCasinoHeader.IsHistoryView = false;

                hlBetLog.NavigateUrl = $"CasinoBetLog.aspx?Match={CurrentMatch}";
                hlBetLog.Target      = "_self";
                hlBetLog.Visible     = true;
            }
            else
            {
                ctrlCasinoHeader.Visible = false;
                hlBetLog.Visible         = false;
            }

            #endregion

            if (!IsPostBack)
            {
                // Bind ddlGroup
                var dtClub = UserClub.GetAllClubs();
                if (dtClub != null)
                {
                    ddlClub.DataSource     = dtClub;
                    ddlClub.DataTextField  = "FullName";
                    ddlClub.DataValueField = "ClubUid";
                    ddlClub.DataBind();

                    var item = new ListItem("所有球会", "0");
                    ddlClub.Items.Insert(0, item);
                }
                else
                {
                    ddlClub.Visible = false;
                }
            }

            BindData();
        }
예제 #8
0
        public static void ApproveJoinClub(int applyHistoryId, bool approved, string operatorUserName)
        {
            var ah = ClubLogic.GetApplyHistory(applyHistoryId);

            ah.IsAccepted = approved;

            ClubLogic.SaveApplyHistory(ah);

            var ch = new ClubHistory();

            ch.ClubID           = ah.ClubUid;
            ch.ActionUserName   = ah.UserName;
            ch.OperatorUserName = operatorUserName;
            ch.ActionDate       = DateTime.Now;

            if (approved)
            {
                //insert user club
                var uc = new UserClub();

                uc.ClubUid        = ah.ClubUid;
                uc.JoinClubDate   = DateTime.Now;
                uc.FromDate       = DateTime.Now;
                uc.IsActive       = true;
                uc.Responsibility = (int)Responsibility.Member;
                uc.Userid         = ah.Userid;
                uc.UserName       = ah.UserName;

                ClubLogic.SaveUserClub(uc);

                ch.ActionType        = ClubHistoryActionType.JoinClub.ToString();
                ch.ActionDescription = ClubLogic.BuildClubHistoryActionDesc(ClubHistoryActionType.JoinClub, null);
            }
            else
            {
                ch.ActionType        = ClubHistoryActionType.RejectJoinClub.ToString();
                ch.ActionDescription = ClubLogic.BuildClubHistoryActionDesc(ClubHistoryActionType.RejectJoinClub, null);
            }

            ClubLogic.SaveClubHistory(ch);

            if (approved)
            {
                ClubSysPrivateMessage.SendMessage(ah.ClubUid, ah.UserName, ClubSysMessageType.ApproveJoinClub);
            }
            else
            {
                ClubSysPrivateMessage.SendMessage(ah.ClubUid, ah.UserName, ClubSysMessageType.RejectJoinClub);
            }
        }
예제 #9
0
        public async Task <UserClub> RemoveFromClub(string clubId, string userId)
        {
            UserClub userClub = await this.dbContext.UserClubs
                                .FirstOrDefaultAsync(x => x.ClubId == clubId && x.UserId == userId);

            if (userClub != null)
            {
                this.dbContext.UserClubs.Remove(userClub);
            }

            await this.dbContext.SaveChangesAsync();

            return(userClub);
        }
예제 #10
0
        public static void ApproveJoinClub(int applyHistoryId, bool approved, string operatorUserName)
        {
            var ah = ClubLogic.GetApplyHistory(applyHistoryId);

            ah.IsAccepted = approved;

            ClubLogic.SaveApplyHistory(ah);

            var ch = new ClubHistory();
            ch.ClubID = ah.ClubUid;
            ch.ActionUserName = ah.UserName;
            ch.OperatorUserName = operatorUserName;
            ch.ActionDate = DateTime.Now;

            if (approved)
            {
                //insert user club
                var uc = new UserClub();

                uc.ClubUid = ah.ClubUid;
                uc.JoinClubDate = DateTime.Now;
                uc.FromDate = DateTime.Now;
                uc.IsActive = true;
                uc.Responsibility = (int) Responsibility.Member;
                uc.Userid = ah.Userid;
                uc.UserName = ah.UserName;

                ClubLogic.SaveUserClub(uc);

                ch.ActionType = ClubHistoryActionType.JoinClub.ToString();
                ch.ActionDescription = ClubLogic.BuildClubHistoryActionDesc(ClubHistoryActionType.JoinClub, null);
            }
            else
            {
                ch.ActionType = ClubHistoryActionType.RejectJoinClub.ToString();
                ch.ActionDescription = ClubLogic.BuildClubHistoryActionDesc(ClubHistoryActionType.RejectJoinClub, null);
            }

            ClubLogic.SaveClubHistory(ch);

            if (approved)
            {
                ClubSysPrivateMessage.SendMessage(ah.ClubUid, ah.UserName, ClubSysMessageType.ApproveJoinClub);
            }
            else
            {
                ClubSysPrivateMessage.SendMessage(ah.ClubUid, ah.UserName, ClubSysMessageType.RejectJoinClub);
            }
        }
예제 #11
0
        // GET: UserClubs/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            UserClub userClub = _db.UserClubs.Find(id);

            if (userClub == null)
            {
                return(HttpNotFound());
            }
            ViewBag.Name = userClub.Club.Name;
            return(View(userClub));
        }
예제 #12
0
        public ActionResult Create([Bind(Include = "id,UserId,ClubId,rowversion")] UserClub userClub)
        {
            if (ModelState.IsValid)
            {
                _db.UserClubs.Add(userClub);
                try
                {
                    _db.SaveChanges();
                    return(RedirectToAction("Index", new { id = userClub.ClubId }));
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException e)
                {
                    ErrorSignal.FromCurrentContext().Raise(e);
                    Exception ex = e;
                    while (ex.InnerException != null)
                    {
                        ex = ex.InnerException;
                    }
                    ModelState.AddModelError(string.Empty, ex.Message);
                }
                catch (Exception e)
                {
                    ErrorSignal.FromCurrentContext().Raise(e);
                    ModelState.AddModelError(string.Empty, "Insert failed");
                }
            }


            var list = _db.Users.Where(x => x.Roles != "Mailer" || x.Roles != "Admin").ToList();

            foreach (var item in _db.UserClubs.Where(x => x.ClubId == userClub.ClubId))
            {
                if (list.Any(x => x.id == item.UserId))
                {
                    list.RemoveAll(x => x.id == item.UserId);
                }
            }
            ViewBag.UserId = new SelectList(list, "id", "username");
            var club = _db.Clubs.Find(userClub.ClubId);

            ViewBag.Name = club.Name;
            return(View(userClub));
        }
예제 #13
0
        internal static void SaveUserClub(UserClub uc)
        {
            using (var con = SQLConn.GetConnection())
            {
                var com = new SqlCommand();
                com.Connection  = con;
                com.CommandType = CommandType.StoredProcedure;
                com.CommandText = "[dbo].[SaveUserClub]";

                com.Parameters.Add(new SqlParameter("@ID", ParseNullableParam(uc.ID)));
                com.Parameters.Add(new SqlParameter("@userID", uc.Userid));
                com.Parameters.Add(new SqlParameter("@userName", uc.UserName));
                com.Parameters.Add(new SqlParameter("@clubUid", uc.ClubUid));
                com.Parameters.Add(new SqlParameter("@responsibility", uc.Responsibility));
                com.Parameters.Add(new SqlParameter("@fromDate", uc.FromDate));
                com.Parameters.Add(new SqlParameter("@toDate", ParseNullableParam(uc.ToDate)));
                com.Parameters.Add(new SqlParameter("@joinClubDate", ParseNullableParam(uc.JoinClubDate)));
                com.Parameters.Add(new SqlParameter("@isActive", uc.IsActive));

                con.Open();
                com.ExecuteNonQuery();
                //con.Close();
            }
        }
예제 #14
0
        public static void ChangeResponsibility(int userID, string userName, int clubID, Responsibility res,
            string operatorUserName)
        {
            var userClub = ClubLogic.GetActiveUserClub(userID, clubID);
            if (userClub != null && userClub.Responsibility == (int) res)
                return;

            var club = ClubLogic.GetClubInfo(clubID);

            if (club != null)
            {
                if (res == Responsibility.Manager)
                {
                    #region Proceed previous manager user club info

                    var preManagerUid = club.ManagerUid.Value;
                    var preManagerName = club.ManagerUserName;
                    LeaveClub(preManagerUid, clubID);

                    var preManagerUc = ClubLogic.GetActiveUserClub(preManagerUid, clubID);

                    var preUC = new UserClub();
                    preUC.ClubUid = clubID;
                    preUC.JoinClubDate = preManagerUc.JoinClubDate;
                    preUC.FromDate = DateTime.Now;
                    preUC.IsActive = true;
                    preUC.Responsibility = (int) Responsibility.Member;
                    preUC.Userid = preManagerUid;
                    preUC.UserName = preManagerName;

                    ClubLogic.SaveUserClub(preUC);

                    #endregion

                    club.ManagerUid = userID;
                    club.ManagerUserName = userName;
                    club.UpdateDate = DateTime.Now;
                    ClubLogic.SaveClub(club);
                }

                LeaveClub(userID, clubID);

                var uc = new UserClub();
                uc.ClubUid = clubID;
                uc.JoinClubDate = userClub.JoinClubDate;
                uc.FromDate = DateTime.Now;
                uc.IsActive = true;
                uc.Userid = userID;
                uc.UserName = userName;

                var ch = new ClubHistory();
                ch.ClubID = clubID;
                ch.ActionUserName = userName;
                ch.OperatorUserName = operatorUserName;

                if (userClub.Responsibility.Value > (int) res)
                {
                    //nominate
                    ch.ActionType = ClubHistoryActionType.Nominated.ToString();
                    ch.ActionDescription = ClubLogic.BuildClubHistoryActionDesc(ClubHistoryActionType.Nominated,
                        ClubLogic.TranslateResponsibility(res));
                }
                else
                {
                    //dismiss
                    ch.ActionType = ClubHistoryActionType.Dismiss.ToString();
                    ch.ActionDescription = ClubLogic.BuildClubHistoryActionDesc(ClubHistoryActionType.Dismiss,
                        ClubLogic.TranslateResponsibility(res));
                }

                uc.Responsibility = (int) res;

                ClubLogic.SaveUserClub(uc);
                ClubLogic.SaveClubHistory(ch);
            }
            else
                throw new Exception("Club not exist.");
        }
예제 #15
0
        internal static void SaveUserClub(UserClub uc)
        {
            using (var con = SQLConn.GetConnection())
            {
                var com = new SqlCommand();
                com.Connection = con;
                com.CommandType = CommandType.StoredProcedure;
                com.CommandText = "[dbo].[SaveUserClub]";

                com.Parameters.Add(new SqlParameter("@ID", ParseNullableParam(uc.ID)));
                com.Parameters.Add(new SqlParameter("@userID", uc.Userid));
                com.Parameters.Add(new SqlParameter("@userName", uc.UserName));
                com.Parameters.Add(new SqlParameter("@clubUid", uc.ClubUid));
                com.Parameters.Add(new SqlParameter("@responsibility", uc.Responsibility));
                com.Parameters.Add(new SqlParameter("@fromDate", uc.FromDate));
                com.Parameters.Add(new SqlParameter("@toDate", ParseNullableParam(uc.ToDate)));
                com.Parameters.Add(new SqlParameter("@joinClubDate", ParseNullableParam(uc.JoinClubDate)));
                com.Parameters.Add(new SqlParameter("@isActive", uc.IsActive));

                con.Open();
                com.ExecuteNonQuery();
                //con.Close();
            }
        }
예제 #16
0
        public static void ChangeResponsibility(int userID, string userName, int clubID, Responsibility res,
                                                string operatorUserName)
        {
            var userClub = ClubLogic.GetActiveUserClub(userID, clubID);

            if (userClub != null && userClub.Responsibility == (int)res)
            {
                return;
            }

            var club = ClubLogic.GetClubInfo(clubID);

            if (club != null)
            {
                if (res == Responsibility.Manager)
                {
                    #region Proceed previous manager user club info

                    var preManagerUid  = club.ManagerUid.Value;
                    var preManagerName = club.ManagerUserName;
                    LeaveClub(preManagerUid, clubID);

                    var preManagerUc = ClubLogic.GetActiveUserClub(preManagerUid, clubID);

                    var preUC = new UserClub();
                    preUC.ClubUid        = clubID;
                    preUC.JoinClubDate   = preManagerUc.JoinClubDate;
                    preUC.FromDate       = DateTime.Now;
                    preUC.IsActive       = true;
                    preUC.Responsibility = (int)Responsibility.Member;
                    preUC.Userid         = preManagerUid;
                    preUC.UserName       = preManagerName;

                    ClubLogic.SaveUserClub(preUC);

                    #endregion

                    club.ManagerUid      = userID;
                    club.ManagerUserName = userName;
                    club.UpdateDate      = DateTime.Now;
                    ClubLogic.SaveClub(club);
                }

                LeaveClub(userID, clubID);

                var uc = new UserClub();
                uc.ClubUid      = clubID;
                uc.JoinClubDate = userClub.JoinClubDate;
                uc.FromDate     = DateTime.Now;
                uc.IsActive     = true;
                uc.Userid       = userID;
                uc.UserName     = userName;


                var ch = new ClubHistory();
                ch.ClubID           = clubID;
                ch.ActionUserName   = userName;
                ch.OperatorUserName = operatorUserName;

                if (userClub.Responsibility.Value > (int)res)
                {
                    //nominate
                    ch.ActionType        = ClubHistoryActionType.Nominated.ToString();
                    ch.ActionDescription = ClubLogic.BuildClubHistoryActionDesc(ClubHistoryActionType.Nominated,
                                                                                ClubLogic.TranslateResponsibility(res));
                }
                else
                {
                    //dismiss
                    ch.ActionType        = ClubHistoryActionType.Dismiss.ToString();
                    ch.ActionDescription = ClubLogic.BuildClubHistoryActionDesc(ClubHistoryActionType.Dismiss,
                                                                                ClubLogic.TranslateResponsibility(res));
                }

                uc.Responsibility = (int)res;

                ClubLogic.SaveUserClub(uc);
                ClubLogic.SaveClubHistory(ch);
            }
            else
            {
                throw new Exception("Club not exist.");
            }
        }
예제 #17
0
        protected void gvBet_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                var bet = e.Row.DataItem as Bet;

                if (bet != null)
                {
                    var item = CasinoItem.GetCasinoItem(bet.CasinoItemGuid);

                    var ltrlClub = e.Row.FindControl("ltrlClub") as Literal;

                    if (ltrlClub != null)
                    {
                        var pathAcnClub = ConfigGlobal.PluginAcnClubPath;

                        if ((!string.IsNullOrEmpty(pathAcnClub)) && (pathAcnClub != bool.FalseString.ToLower()))
                        {
                            var drClub = UserClub.GetUserClubHistoryInfo(bet.UserID, bet.BetTime);
                            if ((drClub != null) &&
                                ((drClub["ClubUid"].ToString() == ddlClub.SelectedValue) ||
                                 (ddlClub.SelectedValue == "0")))
                            {
                                ltrlClub.Text =
                                    $"<a href=\"/{pathAcnClub}/ClubView.aspx?ClubID={drClub["ClubUid"]}\" target=\"_blank\">{drClub["ClubName"]}</a>";
                            }
                            else if ((drClub == null) && (ddlClub.SelectedValue == "0"))
                            {
                                ltrlClub.Text = "/";
                            }
                            else
                            {
                                e.Row.Visible = false;
                                return;
                            }
                        }
                        else
                        {
                            Response.Redirect($"CasinoBetLog.aspx?Match={CurrentMatch}");
                        }
                    }

                    var ltrlResult = e.Row.FindControl("ltrlResult") as Literal;
                    var dt         = BetDetail.GetBetDetailByBetId(bet.ID);

                    if (dt != null && ltrlResult != null)
                    {
                        var dr = dt.Rows[0];

                        switch (item.ItemType)
                        {
                        case CasinoType.SingleChoice:
                            if (dr["DetailName"].ToString() == MatchChoiceOption.HomeWinValue)
                            {
                                ltrlResult.Text = "主队胜";
                            }
                            else if (dr["DetailName"].ToString() == MatchChoiceOption.DrawValue)
                            {
                                ltrlResult.Text = "双方平";
                            }
                            else if (dr["DetailName"].ToString() == MatchChoiceOption.AwayWinValue)
                            {
                                ltrlResult.Text = "客队胜";
                            }

                            break;

                        case CasinoType.MatchResult:
                            var betDetail = new MatchResultBetDetail(dt);
                            ltrlResult.Text = $"{betDetail.Home}:{betDetail.Away}";
                            break;
                        }
                    }

                    var ltrlBetResult = e.Row.FindControl("ltrlBetResult") as Literal;

                    if (ltrlBetResult != null)
                    {
                        if (!bet.IsWin.HasValue)
                        {
                            ltrlBetResult.Text = string.Empty;
                        }
                        else
                        {
                            if (bet.IsWin.Value)
                            {
                                if (item.ItemType == CasinoType.SingleChoice)
                                {
                                    ltrlBetResult.Text = "<span class=\"CasinoSys_True\" title=\"猜对输赢\"></span>";
                                }
                                else if (item.ItemType == CasinoType.MatchResult)
                                {
                                    ltrlBetResult.Text = "<span class=\"CasinoSys_Good\" title=\"猜对比分\"></span>";
                                }

                                e.Row.CssClass = "RowCasinoSys_True";
                            }
                            else
                            {
                                ltrlBetResult.Text = "<span class=\"CasinoSys_False\" title=\"失败\"></span>";
                            }
                        }
                    }
                }
            }
        }