public static void MergeInto(this Marriage marriage, Marriage newMarriage)
        {
            var dummyGuid = new Guid("a813a1ff-6093-4924-a7b2-c5d1af6ff699");

            if(marriage.FemaleId.GetValueOrDefault() == Guid.Empty
               && newMarriage.FemaleId.GetValueOrDefault() == Guid.Empty)
                marriage.FemaleId = Guid.Empty;

            if (marriage.MaleId.GetValueOrDefault() == Guid.Empty
                && newMarriage.MaleId.GetValueOrDefault() == Guid.Empty)
                marriage.MaleId = Guid.Empty;

            if (marriage.Date == "" && newMarriage.Date != "")
                marriage.Date = newMarriage.Date;

            if(marriage.FemaleBirthYear == 0 && newMarriage.FemaleBirthYear >0)
                marriage.FemaleBirthYear = newMarriage.FemaleBirthYear;

            if (marriage.YearIntVal == 0 && newMarriage.YearIntVal > 0)
                marriage.YearIntVal = newMarriage.YearIntVal;

            if (marriage.MaleBirthYear == 0 && newMarriage.MaleBirthYear > 0)
                marriage.MaleBirthYear = newMarriage.MaleBirthYear;

            if (marriage.FemaleCName == "" && newMarriage.FemaleCName != "")
                marriage.FemaleCName = newMarriage.FemaleCName;

            if (marriage.FemaleInfo == "" && newMarriage.FemaleInfo != "")
                marriage.FemaleInfo = newMarriage.FemaleInfo;

            if ((marriage.MaleLocationId.GetValueOrDefault() == dummyGuid || marriage.MaleLocationId.GetValueOrDefault() == Guid.Empty)
                && (newMarriage.MaleLocationId.GetValueOrDefault() != dummyGuid && newMarriage.MaleLocationId.GetValueOrDefault() != Guid.Empty))
                marriage.MaleLocationId = newMarriage.MaleLocationId;

            if ((marriage.MarriageLocationId.GetValueOrDefault() == dummyGuid || marriage.MarriageLocationId.GetValueOrDefault() == Guid.Empty)
                && (newMarriage.MarriageLocationId.GetValueOrDefault() != dummyGuid && newMarriage.MarriageLocationId.GetValueOrDefault() != Guid.Empty))
                marriage.MarriageLocationId = newMarriage.MarriageLocationId;

            if ((marriage.FemaleLocationId.GetValueOrDefault() == dummyGuid || marriage.FemaleLocationId.GetValueOrDefault() == Guid.Empty)
                && (newMarriage.FemaleLocationId.GetValueOrDefault() != dummyGuid && newMarriage.FemaleLocationId.GetValueOrDefault() != Guid.Empty))
                marriage.FemaleLocationId = newMarriage.FemaleLocationId;

            if (newMarriage.IsBanns.GetValueOrDefault())
                marriage.IsBanns = newMarriage.IsBanns;

            if (newMarriage.IsLicence.GetValueOrDefault())
                marriage.IsLicence = newMarriage.IsLicence;

            if (newMarriage.FemaleIsKnownWidow.GetValueOrDefault())
                marriage.FemaleIsKnownWidow = newMarriage.FemaleIsKnownWidow;

            if (newMarriage.MaleIsKnownWidower.GetValueOrDefault())
                marriage.MaleIsKnownWidower = newMarriage.MaleIsKnownWidower;

            if (marriage.FemaleOccupation == "" && newMarriage.FemaleOccupation != "")
                marriage.FemaleOccupation = newMarriage.FemaleOccupation;

            if (marriage.FemaleSName == "" && newMarriage.FemaleSName != "")
                marriage.FemaleSName = newMarriage.FemaleSName;

            if (marriage.MaleCName == "" && newMarriage.MaleCName != "")
                marriage.MaleCName = newMarriage.MaleCName;

            if (marriage.MaleInfo == "" && newMarriage.MaleInfo != "")
                marriage.MaleInfo = newMarriage.MaleInfo;

            if (marriage.FemaleLocation == "" && newMarriage.FemaleLocation != "")
                marriage.FemaleLocation = newMarriage.FemaleLocation;

            if (marriage.MaleLocation == "" && newMarriage.MaleLocation != "")
                marriage.MaleLocation = newMarriage.MaleLocation;

            if (marriage.MaleOccupation == "" && newMarriage.MaleOccupation != "")
                marriage.MaleOccupation = newMarriage.MaleOccupation;

            if (marriage.MaleSName == "" && newMarriage.MaleSName != "")
                marriage.MaleSName = newMarriage.MaleSName;

            if (marriage.MarriageCounty == "" && newMarriage.MarriageCounty != "")
                marriage.MarriageCounty = newMarriage.MarriageCounty;

            if (marriage.MarriageLocation == "" && newMarriage.MarriageLocation != "")
                marriage.MarriageLocation = newMarriage.MarriageLocation;

            if (marriage.OrigFemaleSurname == "" && newMarriage.OrigFemaleSurname != "")
                marriage.OrigFemaleSurname = newMarriage.OrigFemaleSurname;

            if (marriage.OrigMaleSurname == "" && newMarriage.OrigMaleSurname != "")
                marriage.OrigMaleSurname = newMarriage.OrigMaleSurname;

            if (marriage.Source == "" && newMarriage.Source != "")
                marriage.Source = newMarriage.Source;
        }
        public Guid InsertMarriage(ServiceMarriage sm)
        {
            using (var context = new GeneralModelContainer())
            {

                var marriage = new Marriage();

                if (sm.MarriageId == Guid.Empty) marriage.Marriage_Id = Guid.NewGuid();

                marriage.MaleCName = sm.MaleCName;
                marriage.MaleSName = sm.MaleSName;
                marriage.MaleLocation = sm.MaleLocation;
                marriage.MaleInfo = sm.MaleNotes;
                marriage.FemaleId = Guid.Empty;
                marriage.FemaleCName = sm.FemaleCName;
                marriage.FemaleSName = sm.FemaleSName;
                marriage.FemaleLocation = sm.FemaleLocation;
                marriage.FemaleInfo = sm.FemaleNotes;
                marriage.Date = sm.MarriageDate;
                marriage.MarriageLocation = sm.MarriageLocation;
                marriage.YearIntVal = sm.MarriageDate.ParseToValidYear();
                marriage.MarriageCounty = sm.LocationCounty;
                marriage.Source = sm.SourceDescription;
                marriage.IsLicence = sm.IsLicense;
                marriage.IsBanns = sm.IsBanns;
                marriage.MaleIsKnownWidower = sm.IsWidower;
                marriage.FemaleIsKnownWidow = sm.IsWidow;
                marriage.FemaleOccupation = sm.FemaleOccupation;
                marriage.MaleOccupation = sm.MaleOccupation;
                marriage.MarriageLocationId = sm.LocationId.ToGuid();
                marriage.MaleLocationId = Guid.Empty;
                marriage.FemaleLocationId = Guid.Empty;
                marriage.UserId = sm.UserId;
                marriage.MaleBirthYear = sm.MaleBirthYear;
                marriage.FemaleBirthYear = sm.FemaleBirthYear;
                marriage.UniqueRef = sm.UniqueRef.ToGuid() == Guid.Empty ? Guid.NewGuid() : sm.UniqueRef.ToGuid();
                marriage.TotalEvents = sm.TotalEvents.ToInt32();
                marriage.EventPriority = sm.Priority.ToInt32();
                marriage.Marriage_Id = System.Guid.NewGuid();
                marriage.IsDeleted = false;
                marriage.MaleId = Guid.Empty;

                marriage.IsComposite = false;
                marriage.DateAdded = DateTime.Today;
                marriage.DateLastEdit = DateTime.Today;

                context.Marriages.Add(marriage);

                context.SaveChanges();

                //ModelContainer.Detach(_marriage);

                return marriage.Marriage_Id;

            }
        }