Пример #1
0
 public static BaseModel <object> ThanhCong(object data, Panigator panigator)
 {
     return(new BaseModel <object>
     {
         status = 1,
         data = data,
         panigator = panigator
     });
 }
Пример #2
0
        public BaseModel <object> DS_ThanhVien_Group(int id_group, [FromBody] QueryRequestParams p)
        {
            string    Token     = lc.GetHeader(Request);
            LoginData loginData = lc._GetInfoUser(Token);

            if (loginData == null)
            {
                return(JsonResultCommon.DangNhap());
            }
            try
            {
                using (DpsConnection cnn = new DpsConnection(_config.ConnectionString))
                {
                    Dictionary <string, string> _sortableFields = new Dictionary <string, string>
                    {
                        { "Username", "Username" },
                        //{ "DonViTinh", "DonViTinh" }
                    };
                    Panigator v_panigator = null;
                    IDictionary <string, string> v_dic_keyFilter = new Dictionary <string, string>
                    {
                        { "Username", "Username" },
                        //{ "DonViTinh", "DonViTinh"},
                    };

                    string        _select = "", _sqlQuery = "", v_str_paginate = "", _orderBy = "", _whereCondition = "";
                    SqlConditions _cond = new SqlConditions();

                    #region Filter, sort, paganitor
                    //filter request have to right and enough , same in code
                    if (p.Filter != null)
                    {
                        if (p.Filter.Count > 0)
                        {
                            var listKeySearch = p.Filter.Where(x => !v_dic_keyFilter.ContainsKey(x.Key)).Select(q => q.Key).ToList();
                            if (listKeySearch != null && listKeySearch.Count > 0)
                            {
                                return(JsonResultCommon.NotData());
                            }

                            foreach (string _filter in p.Filter.Keys)
                            {
                                if (!string.IsNullOrEmpty(p.Filter[_filter]))
                                {
                                    foreach (string vl in p.Filter.Values)
                                    {
                                        //_whereCondition += " AND " + v_dic_keyFilter[_filter] + " = @" + _filter;
                                        _whereCondition += " AND " + v_dic_keyFilter[_filter] + " LIKE'%";
                                        _whereCondition += vl;
                                        _whereCondition += "%'";
                                        _cond.Add(_filter, p.Filter[_filter]);
                                    }
                                }
                            }
                        }
                    }

                    //sort column in datatable
                    if (p.Sort != null)
                    {
                        if (!string.IsNullOrEmpty(p.Sort.ColumnName) && v_dic_keyFilter.ContainsKey(p.Sort.ColumnName))
                        {
                            _orderBy = v_dic_keyFilter[p.Sort.ColumnName] + " " + (p.Sort.Direction.ToLower().Equals("asc") ? "asc" : "desc");
                        }
                    }

                    int page_index = 0;
                    //set up panigator for datatable
                    if (p.Panigator != null)
                    {
                        //v_str_paginate = $@" OFFSET @PageSize * (@PageNumber - 1) ROWS FETCH NEXT @PageSize ROWS ONLY;";
                        //// offset fetch là các tùy chọn của mệnh đề order by
                        //_cond.Add("PageSize", p.Panigator.PageSize);
                        //_cond.Add("PageNumber", p.Panigator.PageIndex);

                        page_index = p.Panigator.PageIndex;
                    }
                    #endregion

                    _sqlQuery = $@" select ID_GROUP, U.ID_USER, QUYEN_ADMIN
, CREATE_DATE, IDNV, UserName, AVATAR from TBL_GROUPMEMBER AS G, TBL_Account AS U
WHERE G.ID_USER = U.ID_USER and ID_GROUP=" + id_group + "" + _whereCondition + "";

                    DataTable _datatable = cnn.CreateDataTable(_sqlQuery, _cond);
                    int       _countRows = _datatable.Rows.Count;
                    if (cnn.LastError != null || _datatable == null)
                    {
                        return(JsonResultCommon.NotData());
                    }

                    if (_datatable.Rows.Count == 0)
                    {
                        return(JsonResultCommon.NotData());
                    }
                    else
                    {
                        if (page_index == 0)
                        {
                            p.Panigator.PageSize = _countRows;
                        }
                        v_panigator = new Panigator(p.Panigator.PageIndex, p.Panigator.PageSize, _datatable.Rows.Count);
                    }

                    var _data = from r in _datatable.AsEnumerable().Skip((p.Panigator.PageIndex - 1) * p.Panigator.PageSize).Take(p.Panigator.PageSize).ToList()
                                select new
                    {
                        Id_group    = r["ID_GROUP"],
                        id_user     = r["ID_USER"],
                        id_nv       = r["IDNV"],
                        Username    = r["UserName"],
                        quyen_group = r["QUYEN_ADMIN"],
                        create_date = r["CREATE_DATE"],
                        hinhanh     = r["AVATAR"],
                        Avatar      = LiteController.genLinkAvatar(_config.LinkAPI, r["AVATAR"]),
                    };

                    return(JsonResultCommon.ThanhCong(_data, v_panigator));
                }
            }
            catch (Exception ex)
            {
                return(JsonResultCommon.Exception(ex));
            }
        }