public Case(Case clonedCase)
 {
     Id = clonedCase.Id;
     AssigneeId = clonedCase.AssigneeId;
     Subject = clonedCase.Subject;
     Status = clonedCase.Status;
     ContactId = clonedCase.ContactId;
     ContactName = clonedCase.ContactName;
     CustomAttribute = clonedCase.CustomAttribute;
 }
        public ResponseCase GetMostRecentOpenCaseByContactId(ContactIdRequest cidr)
        {
            ResponseCase rc = new ResponseCase();
            var caseList = from myCase in cases where myCase.ContactId == cidr.ContactId select myCase;
            if (caseList.Count() < 1)
            {
                throw new WebFaultException(HttpStatusCode.NoContent);
            }
            else if (caseList.Count() > 1)
            {
                throw new WebFaultException(HttpStatusCode.Conflict);
            }
            Case retCase = new Case(caseList.FirstOrDefault());
            rc.Case = retCase;
            if (retCase != null && cidr.CustomAttribute != null && cidr.CustomAttribute.Equals("overwrite"))
            {
                retCase.CustomAttribute = "overwritten custom attribute";
            }

            return rc;
        }