public void filterRecord(int length, string property, string value, string value2, ref CivilStatu[] civilStatus)
 {
     /* Fields that can be filter
      * Name
      * Desription
      * Status
      */
     //Filter for a specific patient
     int fetch;
     civilStatus = null;
     if (property.Equals("Name"))
     {
         value = value.ToLower();
         var records = db.CivilStatus.Where(cs => cs.Name.ToLower().Contains(value) || cs.Name.ToLower().ToLower().Equals(value)).Count();
         if (records > length)
         {
             if ((records - length) > pageSize)
                 fetch = pageSize;
             else
                 fetch = records - length;
             var getCivilStatus = db.CivilStatus.Where(cs => cs.Name.ToLower().Contains(value) || cs.Name.ToLower().ToLower().Equals(value))
                 .OrderBy(cs => cs.Id).Skip((length)).Take(fetch).ToArray();
             civilStatus = getCivilStatus;
         }
     }
     else if (property.Equals("Description"))
     {
         value = value.ToLower();
         var records = db.CivilStatus.Where(cs => cs.Description.ToLower().Contains(value) || cs.Description.ToLower().ToLower().Equals(value)).Count();
         if (records > length)
         {
             if ((records - length) > pageSize)
                 fetch = pageSize;
             else
                 fetch = records - length;
             var getCivilStatus = db.CivilStatus.Where(cs => cs.Description.ToLower().Contains(value) || cs.Description.ToLower().ToLower().Equals(value))
                 .OrderBy(cs => cs.Id).Skip((length)).Take(fetch).ToArray();
             civilStatus = getCivilStatus;
         }
     }
     //status
     else
     {
         StringManipulation strManipulate = new StringManipulation(value, value2, "Integer");
         var records = db.CivilStatus.Where(cs => cs.Status == strManipulate.intValue).Count();
         if (records > length)
         {
             if ((records - length) > pageSize)
                 fetch = pageSize;
             else
                 fetch = records - length;
             var getCivilStatus = db.CivilStatus.Where(cs => cs.Status == strManipulate.intValue)
                 .OrderBy(cs => cs.Id).Skip((length)).Take(fetch).ToArray();
             civilStatus = getCivilStatus;
         }
     }
 }
        public IHttpActionResult PostCivilStatu(CivilStatu civilStatu)
        {
            response.status = "FAILURE";
            if (!ModelState.IsValid)
            {
                response.message = "Bad request.";
                return Ok(response);
            }
            try
            {
                db.CivilStatus.Add(civilStatu);
                db.SaveChanges();
                response.status = "SUCCESS";
                response.objParam1 = civilStatu;
            }
            catch (Exception e) {
                e.InnerException.InnerException.Message.ToString();
            }

            return Ok(response);
        }
        public IHttpActionResult PutCivilStatu(int id, CivilStatu civilStatu)
        {
            response.status = "FAILURE";
            if (!ModelState.IsValid || id != civilStatu.Id)
            {
                response.message = "Bad request.";
                return Ok(response);
            }

            db.Entry(civilStatu).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
                response.status = "SUCCESS";
                response.objParam1 = civilStatu;
            }
            catch (Exception e)
            {
                if (!CivilStatuExists(id))
                {
                    response.message = "Civil status doesn't exist.";
                }
                else
                {
                    response.message = e.InnerException.InnerException.Message.ToString();
                }
            }

            return Ok(response);
        }
 //Filtering
 public IHttpActionResult GetCivilStatus(int length, string property, string value, string value2)
 {
     CivilStatu[] civilStatus = new CivilStatu[pageSize];
     this.filterRecord(length, property, value, value2, ref civilStatus);
     if (civilStatus != null)
         return Ok(civilStatus);
     else
         return Ok();
 }