Click here to Skip to main content
15,887,477 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
hi i have 3 models Role - Controller - Permission

C#
public class Role
   {
       [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
       public int RoleID { get; set; }

       public string NameAR { get; set; }

       public string NameTR { get; set; }

       public string NameEN { get; set; }

       [DefaultValue(false)]
       public bool IsDelete { get; set; }

       public virtual ICollection<Permission> PermissionList { get; set; }
       public virtual ICollection<User> UserList { get; set; }

   }

public class Controller
   {
       [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
       public int ControllerID { get; set; }

       public string Name { get; set; }

       public string NameAR { get; set; }

       public string NameTR { get; set; }

       public string NameEN { get; set; }

       public string Url { get; set; }

       public string ViewUrl { get; set; }

       public string ControllerName { get; set; }

       [DefaultValue(false)]
       public bool IsDelete { get; set; }

       public virtual ICollection<Permission> PermissionList { get; set; }
   }


public class Permission
   {
       [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
       public int PermissionID { get; set; }

       public int ControllerID { get; set; }
       public int RoleID { get; set; }

       [DefaultValue(false)]
       public bool IsDelete { get; set; }

       public virtual Controller Controller { get; set; }
       public virtual Role Role { get; set; }
   }


and i have 3 webApi for each model like this

C#
public class RoleController : BaseApiController
  {
      RoleBLL roleBLL;
      public IEnumerable<Role> Get()
      {
          using (roleBLL = new RoleBLL())
          {
              return roleBLL.GetAll(null);
          }
      }
 }


i'm use angular js for get data by useing webapi
like this

Role Service
JavaScript
(function () {
    app.factory('RoleService', ['DataRepository', RoleService])
    function RoleService(DataRepository) {
        return {
            url: '/API/Role',
            GetAll: function () {
                return DataRepository.call(this.url).query();
            },
            GetListByID: function (id) {
                return DataRepository.call(this.url).query({ id: id });
            },
            Add: function (entity) {
                return DataRepository.call(this.url).saveData(entity);
            },
            Edit: function (entity) {
                return DataRepository.call(this.url).update(entity);
            },
            Delete: function (id) {
                return DataRepository.call(this.url).delete({ id: id });
            },
            GetByID: function (id) {
                return DataRepository.call(this.url).getByID({ id: id });
            }
        }
    }
}());


role controller

JavaScript
(function () {
    app.controller('RoleController', ['$scope', 'RoleService',  SecurityController]);
    function RoleController($scope, RoleService) {
        $scope.LoadRoles = function () {
            RoleService.GetAll().$promise.then(function (response) {
                $scope.Roles = response;
            }, function () {

            });
        }
        $scope.LoadRoles();

    }
}());


this view
HTML
<div class="table-responsive">
    <table class="table  table-striped table-bordered table-hover">
        <thead>
            <tr>
                <th>Turkish Name</th>
                <th>Arabic Name</th>
                <th>English Name</th>
                <th>Permissions</th>
                <td></td>
            </tr>
        </thead>
        <tbody>
            <tr data-ng-repeat="Role in Roles" id="Role_{{Role.RoleID}}">
                <td>{{Role.NameTR}}</td>
                <td>{{Role.NameAR}}</td>
                <td>{{Role.NameEN}}</td>
                <td>
                    <span data-ng-repeat="Permission in Role.PermissionList">
                        <label>{{Permission.Controller.NameEN}}</label>  
                    </span>
                </td>
                <td class="controlIcon">
                    <li class="fa fa-edit fa-2x" data-ng-click="ShowEditRole()"></li>
                     
            <li class="fa fa-plus-circle fa-2x" data-ng-click="ShowAddRole()"></li>
                     
            <li class="fa fa-remove fa-2x" data-ng-click="ShowDeleteRole()"></li>
                </td>
            </tr>
        </tbody>
    </table>
</div>



i have two problems
1- data does not appear complete
like this
check this image


http://www.gulfup.com/?pqJlRW[^]

response data from webapi

[{"$id":"1","PermissionList":[{"$id":"2","Controller":{"$id":"3","PermissionList":[{"$ref":"2"},{"$id":"4","Controller":{"$ref":"3"},"Role":{"$id":"5","PermissionList":[{"$ref":"4"},{"$id":"6","Controller":{"$id":"7","PermissionList":[{"$id":"8","Controller":{"$ref":"7"},"Role":{"$ref":"1"},"PermissionID":2,"ControllerID":2,"RoleID":1,"IsDelete":false},{"$ref":"6"},{"$id":"9","Controller":{"$ref":"7"},"Role":{"$id":"10","PermissionList":[{"$id":"11","Controller":{"$ref":"3"},"Role":{"$ref":"10"},"PermissionID":10,"ControllerID":1,"RoleID":3,"IsDelete":false},{"$ref":"9"},{"$id":"12","Controller":{"$id":"13","PermissionList":[{"$id":"14","Controller":{"$ref":"13"},"Role":{"$ref":"1"},"PermissionID":3,"ControllerID":3,"RoleID":1,"IsDelete":false},{"$id":"15","Controller":{"$ref":"13"},"Role":{"$ref":"5"},"PermissionID":8,"ControllerID":3,"RoleID":2,"IsDelete":false},{"$ref":"12"},{"$id":"16","Controller":{"$ref":"13"},"Role":{"$id":"17","PermissionList":[{"$id":"18","Controller":{"$ref":"3"},"Role":{"$ref":"17"},"PermissionID":23,"ControllerID":1,"RoleID":4,"IsDelete":false},{"$id":"19","Controller":{"$ref":"7"},"Role":{"$ref":"17"},"PermissionID":19,"ControllerID":2,"RoleID":4,"IsDelete":false},{"$ref":"16"},{"$id":"20","Controller":{"$id":"21","PermissionList":[{"$id":"22","Controller":{"$ref":"21"},"Role":{"$ref":"5"},"PermissionID":9,"ControllerID":6,"RoleID":2,"IsDelete":false},{"$ref":"20"}],"ControllerID":6,"Name":"myorders","NameAR":"طلباتي","NameTR":"Benim Istekleri","NameEN":"MyOrders","Url":"/myorders","ViewUrl":"Admin/Order/MyOrders","ControllerName":"MyOrderController","IsDelete":false},"Role":{"$ref":"17"},"PermissionID":20,"ControllerID":6,"RoleID":4,"IsDelete":false},{"$id":"23","Controller":{"$id":"24","PermissionList":[{"$id":"25","Controller":{"$ref":"24"},"Role":{"$ref":"10"},"PermissionID":13,"ControllerID":7,"RoleID":3,"IsDelete":false},{"$ref":"23"}],"ControllerID":7,"Name":"categories","NameAR":"الفئات","NameTR":"Kategoriler","NameEN":"Categories","Url":"/categories","ViewUrl":"Admin/Category/Categories","ControllerName":"CategoryController","IsDelete":false},"Role":{"$ref":"17"},"PermissionID":21,"ControllerID":7,"RoleID":4,"IsDelete":false}],"UserList":[],"RoleID":4,"NameAR":"sdsd","NameTR":"sd","NameEN":"sdsd","IsDelete":false},"PermissionID":22,"ControllerID":3,"RoleID":4,"IsDelete":false}],"ControllerID":3,"Name":"menu","NameAR":"القائمة","NameTR":"Menülerimiz","NameEN":"Menu","Url":"/menu","ViewUrl":"Client/Home/Menu","ControllerName":"MenuController","IsDelete":false},"Role":{"$ref":"10"},"PermissionID":12,"ControllerID":3,"RoleID":3,"IsDelete":false},{"$ref":"25"},{"$id":"26","Controller":{"$id":"27","PermissionList":[{"$ref":"26"}],"ControllerID":8,"Name":"items","NameAR":"الأصناف","NameTR":"ürün","NameEN":"Items","Url":"/items","ViewUrl":"Admin/Item/Items","ControllerName":"ItemController","IsDelete":false},"Role":{"$ref":"10"},"PermissionID":14,"ControllerID":8,"RoleID":3,"IsDelete":false},{"$id":"28","Controller":{"$id":"29","PermissionList":[{"$ref":"28"}],"ControllerID":9,"Name":"additions","NameAR":"الإضافات","NameTR":"İlaveler","NameEN":"Additions","Url":"/additions","ViewUrl":"Admin/Addition/Additions","ControllerName":"AdditionController","IsDelete":false},"Role":{"$ref":"10"},"PermissionID":15,"ControllerID":9,"RoleID":3,"IsDelete":false},{"$id":"30","Controller":{"$id":"31","PermissionList":[{"$ref":"30"}],"ControllerID":10,"Name":"orders","NameAR":"الطلبات","NameTR":"Siparişler","NameEN":"Orders","Url":"/orders","ViewUrl":"Admin/Order/Orders","ControllerName":"OrderController","IsDelete":false},"Role":{"$ref":"10"},"PermissionID":16,"ControllerID":10,"RoleID":3,"IsDelete":false},{"$id":"32","Controller":{"$id":"33","PermissionList":[{"$ref":"32"}],"ControllerID":11,"Name":"settings","NameAR":"الإعدادات","NameTR":"Ayarlar","NameEN":"Settings","Url":"/settings","ViewUrl":"Admin/Setting/Settings","ControllerName":"SettingController","IsDelete":false},"Role":{"$ref":"10"},"PermissionID":17,"ControllerID":11,"RoleID":3,"IsDelete":false},{"$id":"34","Controller":{"$id":"35","PermissionList":[{"$ref":"34"}],"ControllerID":12,"Name":"security","NameAR":"الأمن","NameTR":"Güvenlik","NameEN":"Security","Url":"/security","ViewUrl":"Admin/Security/Security","ControllerName":"SecurityController","IsDelete":false},"Role":{"$ref":"10"},"PermissionID":18,"ControllerID":12,"RoleID":3,"IsDelete":false}],"UserList":[{"$id":"36","ComplaintSuggestionList":[],"LiveSupportOnlineSessionList":[],"OrderList":[],"Role":{"$ref":"10"},"UserAddressList":[{"$id":"37","UserAddressID":1,"Address":"12 sdsd sd","UserID":1,"User":{"$ref":"36"}}],"UserBranchesList":[],"UserMobileList":[{"$id":"38","UserMobileID":1,"Mobile":"012332323","UserID":1,"User":{"$ref":"36"}}],"UserID":1,"Name":"Ahmed","Email":"dsds@sdsd.com","Password":"123","IsDelete":false,"RoleID":3,"ConfirmPassword":null,"Mobile":null,"Address":null}],"RoleID":3,"NameAR":"مدير نظام","NameTR":"Sistem Yöneticisi","NameEN":"System Administrator","IsDelete":false},"PermissionID":11,"ControllerID":2,"RoleID":3,"IsDelete":false},{"$ref":"19"}],"ControllerID":2,"Name":"photogallery","NameAR":"معرض الصور","NameTR":"Foto Galeri","NameEN":"Photo Gallery","Url":"/photogallery","ViewUrl":"Client/Home/PhotoGallery","ControllerName":"PhotoGalleryController","IsDelete":false},"Role":{"$ref":"5"},"PermissionID":7,"ControllerID":2,"RoleID":2,"IsDelete":false},{"$ref":"15"},{"$ref":"22"}],"UserList":[],"RoleID":2,"NameAR":"عميل","NameTR":"müşteri","NameEN":"Client","IsDelete":false},"PermissionID":6,"ControllerID":1,"RoleID":2,"IsDelete":false},{"$ref":"11"},{"$ref":"18"}],"ControllerID":1,"Name":"home","NameAR":"الصفحة الرئيسية","NameTR":"Anasayfa","NameEN":"Home","Url":"/home","ViewUrl":"Client/Home/Home","ControllerName":"HomeController","IsDelete":false},"Role":{"$ref":"1"},"PermissionID":1,"ControllerID":1,"RoleID":1,"IsDelete":false},{"$ref":"8"},{"$ref":"14"},{"$id":"39","Controller":{"$id":"40","PermissionList":[{"$ref":"39"}],"ControllerID":4,"Name":"login","NameAR":"تسجيل الدخول","NameTR":"Üye Girişi","NameEN":"Login","Url":"/login","ViewUrl":"Client/User/Login","ControllerName":"UserController","IsDelete":false},"Role":{"$ref":"1"},"PermissionID":4,"ControllerID":4,"RoleID":1,"IsDelete":false},{"$id":"41","Controller":{"$id":"42","PermissionList":[{"$ref":"41"}],"ControllerID":5,"Name":"register","NameAR":"انضم إلينا","NameTR":"bize katılın","NameEN":"Join Us","Url":"/register","ViewUrl":"Client/User/Register","ControllerName":"UserController","IsDelete":false},"Role":{"$ref":"1"},"PermissionID":5,"ControllerID":5,"RoleID":1,"IsDelete":false}],"UserList":[],"RoleID":1,"NameAR":"ضيف","NameTR":"konuk","NameEN":"Guest","IsDelete":false},{"$ref":"5"},{"$ref":"10"},{"$ref":"17"}]


2-PermissionList is not load data in view by data-ng-repeat

i need help to fix those problems
Posted
Updated 20-Jan-15 20:18pm
v2

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900