Exemple #1
0
        public async Task<All_UserModel> ListAll(Guid userid)
        {
            All_UserModel userModel = new All_UserModel();

            //get user
            User user = new User() { id = userid };
            if (await user.FindByID())
            {
                userModel.id = user.id;
                userModel.facebook_id = user.facebook_id;
                userModel.gender = user.gender;
                userModel.email = user.email;
                userModel.name = user.name;
                userModel.first_name = user.first_name;
                userModel.last_name = user.last_name;
            }

            //get group
            GroupList group = new GroupList();
            List<GroupListResponseModel> groups = await group.ListByUserId(user.id);
            userModel.groups = new List<All_GroupModel>();
            foreach (GroupListResponseModel g in groups)
            {
                All_GroupModel groupModel = new All_GroupModel();
                groupModel.id = g.id;
                groupModel.name = g.name;
                groupModel.description = g.description;
                groupModel.status = g.status;
                groupModel.created_at = g.created_at;

                //get group members
                Membership member = new Membership();
                groupModel.members = await member.ListGroupMember(g.id);

                //get items in each group
                ItemList item = new ItemList();
                List<ItemListResponseModel> items = await item.ListByGroupId(g.id);
                groupModel.items = new List<All_ItemModel>();
                foreach (ItemListResponseModel i in items)
                {
                    All_ItemModel itemModel = new All_ItemModel();
                    itemModel.id = i.id;
                    itemModel.name = i.name;
                    itemModel.description = i.description;
                    itemModel.status = i.status;
                    itemModel.created_at = i.created_at;
                    itemModel.category = i.category;
                    itemModel.category_id = i.category_id;
                    itemModel.created_by = i.created_by;

                    groupModel.items.Add(itemModel);
                }

                userModel.groups.Add(groupModel);
            }

            return userModel;
        }
        public async Task<ApiMessage> Get()
        {
            ApiMessage msg = new ApiMessage() { success = false };
            Membership member = new Membership();
            IEnumerable<string> xAccessKey;
            bool hasKey = Request.Headers.TryGetValues("X-Access-Key", out xAccessKey);
            bool authorized = false;

            if (hasKey)
            {
                Device device = new Device() { access_key = xAccessKey.First() };
                authorized = await device.FindByAccessKey(device.access_key, true);
                DeviceOwner downer = new DeviceOwner() { device = new Device() { id = device.id } };
                authorized = await downer.FindByDeviceId();
                //Membership member = new Membership() { user_id = downer.user.id, group_id = id };
                member.user_id = downer.user.id;
            }

            if (hasKey && authorized)
            {
                GroupList group = new GroupList();
                msg.data = await group.ListByUserId(member.user_id);
                msg.success = true;
                msg.message = "List group successfully";
            }
            else
            {
                msg.message = "Unauthorized";
            }

            return msg;
        }