public IHttpActionResult GetMarriages(string uniqref, string malecname, string malesname, string femalecname,
            string femalesname, string location, string lowerDate, string upperDate, string sourceFilter, string parishFilter, string marriageWitness,
            string pno, string psize, string sortcol = "")
        {
            var serviceMarriageObject = new ServiceMarriageObject();

            string retVal = "";

            try
            {

                Guid parentId = uniqref.ToGuid();

                if (parentId == Guid.Empty)
                {
                    var marriageFilter = new MarriageSearchFilter()
                    {
                        Ids = new List<Guid>(),
                        MaleCName = malecname ?? "",
                        MaleSName = malesname ?? "",
                        FemaleCName = femalecname ?? "",
                        FemaleSName = femalesname ?? "",
                        Location = location ?? "",
                        LowerDate = lowerDate.ToInt32(),
                        UpperDate = upperDate.ToInt32(),
                        Witness = marriageWitness ?? "",
                        Parish = parishFilter ?? "",
                        Source = sourceFilter ?? "",
                        ParentId = Guid.Empty
                    };

                    var marriageValidation = new MarriageSearchValidator(marriageFilter);

                    serviceMarriageObject = _marriageSearch.Search(MarriageFilterTypes.Standard, marriageFilter,
                                  new DataShaping()
                                  {
                                      Column = sortcol ?? "",
                                      RecordPageSize = psize.ToInt32(),
                                      RecordStart = pno.ToInt32()
                                  }, marriageValidation);

                }
                else
                {
                    serviceMarriageObject = _marriageSearch.Search(MarriageFilterTypes.Duplicates, new MarriageSearchFilter() { ParentId = parentId },
                                  new DataShaping()
                                  {
                                      Column = sortcol ?? "",
                                      RecordPageSize = psize.ToInt32(),
                                      RecordStart = 0
                                  });

                }

            }
            catch (Exception ex1)
            {
                retVal = "Exception: " + ex1.Message;
            }

            if (retVal != "")
            {
                return Content(HttpStatusCode.BadRequest, retVal);
            }

            return Ok(serviceMarriageObject);
        }
        public ServiceMarriageObject GetMarriages(string uniqref, string malecname, string malesname, string femalecname,
            string femalesname, string location, string lowerDate, string upperDate, string sourceFilter, string parishFilter, string marriageWitness,
            string page_number, string page_size, string sort_col)
        {
            //var iModel = new MarriageSearch(new Security(new WebUser()));

            var serviceMarriageObject = new ServiceMarriageObject();

            string retVal = "";

            try
            {

                Guid parentId = uniqref.ToGuid();

                if (parentId == Guid.Empty)
                {
                    var marriageFilter = new MarriageSearchFilter()
                        {
                            MaleCName = malecname,
                            MaleSName = malesname,
                            FemaleCName = femalecname,
                            FemaleSName = femalesname,
                            Location = location,
                            LowerDate = lowerDate.ToInt32(),
                            UpperDate = upperDate.ToInt32(),
                            Witness = marriageWitness,
                            Parish = parishFilter,
                            Source = sourceFilter,
                            ParentId = Guid.Empty
                        };

                    var marriageValidation = new MarriageSearchValidator(marriageFilter);

                    serviceMarriageObject = _marriageSearch.Search(MarriageFilterTypes.Standard, marriageFilter,
                                  new DataShaping()
                                      {
                                          Column = sort_col,
                                          RecordPageSize = page_size.ToInt32(),
                                          RecordStart = page_number.ToInt32()
                                      }, marriageValidation);

                }
                else
                {
                    serviceMarriageObject = _marriageSearch.Search(MarriageFilterTypes.Duplicates, new MarriageSearchFilter() { ParentId = parentId },
                                  new DataShaping()
                                  {
                                      Column = sort_col,
                                      RecordPageSize = page_size.ToInt32(),
                                      RecordStart = 0
                                  });

                }

            }
            catch (Exception ex1)
            {
                retVal = "Exception: " + ex1.Message;
            }
            finally
            {
                if (retVal != "") retVal += Environment.NewLine;
                serviceMarriageObject.ErrorStatus = retVal;
            }

            return serviceMarriageObject;
        }
        public IHttpActionResult GetMarriages(string ids)
        {
            var marriageFilter = new MarriageSearchFilter()
            {
                Ids = ids.ParseToGuidList()
            };
            var marriageValidation = new MarriageSearchValidator(marriageFilter);
            // ahouls use search function here
            string retVal = "";

            var serviceMarriageObject = new ServiceMarriageObject();

            try
            {

                serviceMarriageObject = _marriageSearch.Search(MarriageFilterTypes.IdList, marriageFilter,
                                  new DataShaping()
                                  {
                                      Column = "",
                                      RecordPageSize = 25,
                                      RecordStart = 0
                                  }, marriageValidation);

            }
            catch (Exception ex1)
            {
                retVal = "Exception: " + ex1.Message;
            }

            if (retVal != "")
            {
                return Content(HttpStatusCode.BadRequest, retVal);
            }

            return Ok(serviceMarriageObject );
        }