public IActionResult PutTblUser(decimal id, Commission tblUser)
        {
            if (id != tblUser.UserId)
            {
                return(BadRequest());
            }
            var userRole = User.FindFirst("roleId")?.Value;
            var userId   = User.FindFirst("userId")?.Value;

            if (!TblUserExists(id))
            {
                return(NotFound());
            }
            else
            {
                //Update user information
                //Admin
                if (Convert.ToInt32(userRole) == 1)
                {
                    TblUser editUser = _context.TblUser.Find(id);
                    editUser.Username       = tblUser.Username;
                    editUser.Mobile         = tblUser.Mobile;
                    editUser.Password       = tblUser.Password;
                    editUser.RoleId         = tblUser.RoleId;
                    editUser.Lock           = false;
                    editUser.SharePercent   = tblUser.SharePercent;
                    editUser.BetLimitForMix = tblUser.BetLimitForMix;
                    editUser.CreatedBy      = Decimal.Parse(userId);
                    editUser.CreatedDate    = DateTime.Now;
                    _context.SaveChanges();

                    //Find commissions of current logged user and its created user
                    var tblUser1 = _context.TblUserCommission.Where(a => a.UserId == Decimal.Parse(userId) && a.SubUserId == id)
                                   .Select(a => a.UserCommissionId)
                                   .ToList();

                    //Delete previous user commissions
                    foreach (var item in tblUser1)
                    {
                        TblUserCommission editUser1 = _context.TblUserCommission.Find(item);
                        _context.TblUserCommission.Remove(editUser1);
                        _context.SaveChanges();
                    }

                    //Created new user commissions
                    foreach (var s in tblUser.commission)
                    {
                        TblUserCommission userCommission = new TblUserCommission();
                        userCommission.UserCommissionTypeId = s.CommissionTypeId;
                        userCommission.UserId            = Decimal.Parse(userId);
                        userCommission.UserCommission    = 0;
                        userCommission.SubUserId         = id;
                        userCommission.SubUserCommission = s.SubUserCommission;
                        _context.TblUserCommission.Add(userCommission);
                    }
                    _context.SaveChanges();
                }//admin

                //Other user(seniorMaster,Master,Agent)
                else
                {
                    TblUser editUser = _context.TblUser.Find(id);
                    editUser.Username       = tblUser.Username;
                    editUser.Mobile         = tblUser.Mobile;
                    editUser.Password       = tblUser.Password;
                    editUser.RoleId         = tblUser.RoleId;
                    editUser.Lock           = false;
                    editUser.SharePercent   = tblUser.SharePercent;
                    editUser.BetLimitForMix = tblUser.BetLimitForMix;
                    editUser.CreatedBy      = Decimal.Parse(userId);
                    editUser.CreatedDate    = DateTime.Now;
                    _context.SaveChanges();

                    //Find commissions of current logged user and its created user
                    var tblUser1 = _context.TblUserCommission.Where(a => a.UserId == Decimal.Parse(userId) && a.SubUserId == id)
                                   .Select(a => a.UserCommissionId)
                                   .ToList();

                    //Delete previous user commissions
                    foreach (var item in tblUser1)
                    {
                        TblUserCommission editUser1 = _context.TblUserCommission.Find(item);
                        _context.TblUserCommission.Remove(editUser1);
                        _context.SaveChanges();
                    }

                    //Get previous user commissions
                    var prevCommission = _context.TblUserCommission.Where(a => a.SubUserId == Decimal.Parse(userId))
                                         .Select(c => new { c.UserCommissionTypeId, c.SubUserCommission })
                                         .ToDictionary(c => c.UserCommissionTypeId, c => c.SubUserCommission);

                    //Create new user commissions
                    foreach (var s in tblUser.commission)
                    {
                        TblUserCommission userCommission = new TblUserCommission();
                        userCommission.UserCommissionTypeId = s.CommissionTypeId;
                        userCommission.UserId            = Decimal.Parse(userId);
                        userCommission.UserCommission    = prevCommission.ElementAt(1).Value - s.SubUserCommission;
                        userCommission.SubUserId         = id;
                        userCommission.SubUserCommission = s.SubUserCommission;
                        _context.TblUserCommission.Add(userCommission);
                    }
                    _context.SaveChanges();
                } //other
            }     //user id exists
            return(Ok());
        }
        public IActionResult PostTblUser(Commission tblUser)
        {
            var userRole = User.FindFirst("roleId")?.Value;
            var userId   = User.FindFirst("userId")?.Value;

            //Admin
            if (Convert.ToInt32(userRole) == 1)
            {
                //Create user information
                TblUser user = new TblUser()
                {
                    Username       = tblUser.Username,
                    Mobile         = tblUser.Mobile,
                    Password       = tblUser.Password,
                    RoleId         = tblUser.RoleId,
                    Lock           = false,
                    SharePercent   = tblUser.SharePercent,
                    BetLimitForMix = tblUser.BetLimitForMix,
                    CreatedBy      = Decimal.Parse(userId),
                    CreatedDate    = DateTime.Now
                };
                _context.TblUser.Add(user);
                _context.SaveChanges();
                var id = user.UserId;

                //Create user's commission
                foreach (var s in tblUser.commission)
                {
                    TblUserCommission userCommission = new TblUserCommission();
                    userCommission.UserCommissionTypeId = s.CommissionTypeId;
                    userCommission.UserId            = Decimal.Parse(userId);
                    userCommission.UserCommission    = 0;
                    userCommission.SubUserId         = id;
                    userCommission.SubUserCommission = s.SubUserCommission;
                    _context.TblUserCommission.Add(userCommission);
                }
                _context.SaveChanges();
            }//Admin

            //Other(SeniorMaster,Master,Agent)
            else
            {
                //Create user information
                TblUser user = new TblUser()
                {
                    Username       = tblUser.Username,
                    Mobile         = tblUser.Mobile,
                    Password       = tblUser.Password,
                    RoleId         = tblUser.RoleId,
                    Lock           = false,
                    SharePercent   = tblUser.SharePercent,
                    BetLimitForMix = tblUser.BetLimitForMix,
                    CreatedBy      = Decimal.Parse(userId),
                    CreatedDate    = DateTime.Now
                };
                _context.TblUser.Add(user);
                _context.SaveChanges();
                var id = user.UserId;



                var prevCommission = _context.TblUserCommission.Where(a => a.SubUserId == Decimal.Parse(userId))
                                     .Select(c => new { c.UserCommissionTypeId, c.SubUserCommission })
                                     .ToDictionary(c => c.UserCommissionTypeId, c => c.SubUserCommission);

                //Create user's commission
                foreach (var s in tblUser.commission)
                {
                    TblUserCommission userCommission = new TblUserCommission();
                    userCommission.UserCommissionTypeId = s.CommissionTypeId;
                    userCommission.UserId            = Decimal.Parse(userId);
                    userCommission.UserCommission    = prevCommission.ElementAt(1).Value - s.SubUserCommission;
                    userCommission.SubUserId         = id;
                    userCommission.SubUserCommission = s.SubUserCommission;
                    _context.TblUserCommission.Add(userCommission);
                }
                _context.SaveChanges();
            }//Other
            return(Ok());
        }