예제 #1
0
        public void Patch([FromBody] string value)
        {
            MaterialDatumWithUid datum = Newtonsoft.Json.JsonConvert.DeserializeObject <MaterialDatumWithUid>(value);

            GlobalInstance.DB.RecordTable.Insert("Material Update", datum);
            GlobalInstance.DB.MaterialTable.Update(datum);
        }
        public List <MaterialDatumWithUid> Get(int companyUid)
        {
            var list = new List <MaterialDatumWithUid>();

            DoReadAll($"SELECT * FROM {TABLE} WHERE {FIELD_COMPANY_UID}=?",
                      (SqlDataReader reader) =>
            {
                MaterialDatumWithUid item = ConvertTo(reader);
                list.Add(item);
            }, companyUid);

            return(list);
        }
        public List <MaterialDatumWithUid> Get()
        {
            var list = new List <MaterialDatumWithUid>();

            DoReadAll($"SELECT * FROM {TABLE}",
                      (SqlDataReader reader) =>
            {
                MaterialDatumWithUid item = ConvertTo(reader);
                list.Add(item);
            });

            return(list);
        }
        public List <MaterialDatumWithUid> GetForApi(int pageSize, ref int pageIndex, string searchText, out int totalCount)
        {
            if (pageSize < 5)
            {
                pageSize = 5;
            }

            int rowsOffset = pageIndex * pageSize;

            int tmpCount = 0;

            DoReadAll($"SELECT COUNT(*) AS CUS_COUNT FROM {TABLE}",
                      (SqlDataReader reader) =>
            {
                ConvertToInt(reader["CUS_COUNT"], out tmpCount);
            });
            totalCount = tmpCount;

            // TODO: implement company name searching
            string sql =
                $"SELECT * FROM {TABLE} "
                + $" WHERE {string.Join(" OR ", SEARCH_FIELDS.ConvertAll(o => $"{o} LIKE ?"))} "
                + $" ORDER BY {FIELD_NAME} OFFSET {rowsOffset} ROWS "
                + $" FETCH NEXT {pageSize} ROWS ONLY ";

            var list = new List <MaterialDatumWithUid>();

            DoReadAll(sql,
                      (SqlDataReader reader) =>
            {
                MaterialDatumWithUid item = ConvertTo(reader);
                list.Add(item);
            }, SEARCH_FIELDS.ConvertAll(o => $"%{searchText}%").ToArray());

            return(list);
        }
 public void Update(MaterialDatumWithUid datum)
 {
     DoExecuteNonQuery($"UPDATE {TABLE} SET {FIELD_NAME}=?,{FIELD_SPEC1}=?,{FIELD_SPEC2}=?,{FIELD_TYPE}=?,{FIELD_UNIT}=?,{FIELD_PRICE}=?,{FIELD_COMPANY_UID}=? WHERE {FIELD_UID}=?",
                       datum.Name, datum.Spec1, datum.Spec2, datum.Type, datum.Unit, datum.Price, datum.CompanyUid, datum.Uid);
 }