[Route("DeleteUser")]  //get customer and agent user //[FromBody] UsersView userView
        public ActionResult <UsersView> deleteUser([FromBody] UsersView userView)
        {
            UserRoles userRole = _context.UserRoles.Where(obj => obj.UserId == userView.UserId).FirstOrDefault();

            _context.Remove(userRole);

            DistributorAgents distributorAgent = _context.DistributorAgents.Where(obj => obj.UserId == userView.UserId).FirstOrDefault();

            _context.Remove(distributorAgent);

            Users userbeing_deleted = _context.Users.Find(userView.UserId);

            _context.Remove(userbeing_deleted);

            _context.SaveChanges();

            var data = (from u in _context.Users
                        join user_Role in _context.UserRoles on u.Id equals user_Role.UserId
                        join
                        roles in _context.Roles on user_Role.RoleId equals roles.Id
                        join
                        distributor_Agents in _context.DistributorAgents on u.Id equals distributor_Agents.UserId
                        where distributor_Agents.DistributorId == userView.DistId
                        select new { User = u, User_Role = roles }).ToList();

            return(Ok(new
            {
                UserStatus = "DeleteSuccess",
                usersList = data
            }));
            //            return CreatedAtAction("GetUsers", new { id = users.Id }, users);
        }
        [Route("CreateUser")]  //create customer and agent user //[FromBody] UsersView userView
        public async Task <IActionResult> CreateUser([FromBody] UsersView userView)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            //  int userId = _context.Users.Max(obj => obj.Id) + 1;
            //    int roleId= _context.Roles.Max(obj => obj.Id) + 1;
            Users users = new Users();

            users.FirstName = userView.FirstName;
            users.LastName  = userView.LastName;
            users.Email     = userView.Email;
            users.Contact   = userView.Contact;
            users.Address   = userView.Address;
            users.Password  = "******";
            _context.Users.Add(users);


            //Roles adminRole = new Roles();
            //adminRole.Name = userView.RoleName;
            //_context.Roles.Add(adminRole);

            int roleId = _context.Roles.Where(obj => obj.Name == userView.RoleName).FirstOrDefault().Id;
            await _context.SaveChangesAsync();

            UserRoles userRole = new UserRoles();

            userRole.UserId = users.Id;
            userRole.RoleId = roleId;
            _context.UserRoles.Add(userRole);

            List <string> saleAgentPossibleList = new List <string>()
            {
                "sale agent", "saleagent",
            };

            //if (saleAgentPossibleList.Contains(userView.RoleName.ToLower()))
            //{
            DistributorAgents distributorAgents = new DistributorAgents();

            distributorAgents.DistributorId = userView.DistId;
            distributorAgents.UserId        = users.Id;
            _context.DistributorAgents.Add(distributorAgents);

            //}

            // await
            await _context.SaveChangesAsync();

            var data = (from u in _context.Users
                        join user_Role in _context.UserRoles on u.Id equals user_Role.UserId
                        join
                        roles in _context.Roles on user_Role.RoleId equals roles.Id
                        join
                        distributor_Agents in _context.DistributorAgents on u.Id equals distributor_Agents.UserId
                        where distributor_Agents.DistributorId == userView.DistId
                        select new { User = u, User_Role = roles }).ToList();

            return(Ok(new
            {
                UserStatus = "UserRegisteredSuccess",
                usersList = data
            }));
            //            return CreatedAtAction("GetUsers", new { id = users.Id }, users);
        }
        public async Task <ActionResult <AgentCustomer> > getdistributorAgentwithCustomer(DistributorAgents distributorAgents)
        {
            var data = (from user in _context.Users
                        join userrole in _context.UserRoles on user.Id equals userrole.UserId
                        join role in _context.Roles on
                        userrole.RoleId equals role.Id
                        where role.Name == "sale agent"
                        join distagent in _context.DistributorAgents on user.Id equals distagent.UserId
                        where distagent.DistributorId == distributorAgents.DistributorId
                        join agentcus in _context.AgentCustomer on user.Id equals agentcus.SaleAgentId
                        join
                        agentordstat in _context.AgentOrderStatus on agentcus.Id equals agentordstat.AgentCustomerId
                        join tartype in _context.TargetStatusType on
                        agentordstat.AgentTargetStatusId equals tartype.Id
                        join ordertype in _context.OrderStatusType on agentordstat.OrderStatusId equals ordertype.Id
                        //  join
                        //  orderprod in _context.OrderProducts on agentordstat.Id equals orderprod.AgentOrderStatusId join invent in _context.Inventory on
                        //   orderprod.InventoryId equals invent.Id join Prod in _context.Products on invent.ProductId equals Prod.Id
                        select new
            {
                agentObject = user,
                customerObject = (from customer in _context.Users where customer.Id == agentcus.CustomerId select new { customerObject = customer }).FirstOrDefault(),
                TargetType = tartype.Type,
                OrderType = ordertype.OrderStatus,
                ProductInventoryList = (from orderprod in _context.OrderProducts where agentordstat.Id == orderprod.AgentOrderStatusId join invent in
                                        _context.Inventory on orderprod.InventoryId equals invent.Id join Prod in _context.Products on invent.ProductId equals Prod.Id
                                        select new { productObj = Prod, inventoryObj = invent, orderProd = orderprod }).ToList(),
            }
                        ).ToList();

            return(Ok(new { distributorAgentCustomerDetailStatus = "GetSuccess", distributorAgentCustomerDetailList = data }));
        }