public static List<MarriageWitness> FormatWitnessCollection(List<ServiceWitness> serviceWitnesses , ServiceMarriage marriage)
        {
            var witnesses = new List<MarriageWitness>();

            var serializer = new JavaScriptSerializer();
            //var marriages = serializer.DeserializeToMarriageWitnesses(witnessDtos, marriage.MarriageDate.ParseToValidYear(), marriage.MarriageDate,
             //                                                         marriage.MarriageLocation, marriage.LocationId.ToGuid());

            foreach (var witnessDto in serviceWitnesses)
            {
                var person = new ServicePerson();
                var nMarriageWitness = new MarriageWitness();

                person.ReferenceYear = marriage.MarriageDate.ParseToValidYear();
                person.ReferenceDate = marriage.MarriageDate;
                person.ReferenceLocation = marriage.MarriageLocation;
                person.ReferenceLocationId = marriage.LocationId;
                person.ChristianName = witnessDto.Name;
                person.Surname = witnessDto.Surname;
                person.OthersideChristianName = "";
                person.OthersideSurname = "";
                person.OthersideRelationship = "";
                person.Notes = "Witness to marriage of " + marriage.MaleSName + " and " + marriage.FemaleSName + " " + marriage.MarriageDate + " at " + marriage.MarriageLocation;

                nMarriageWitness.Description = witnessDto.Description;
                nMarriageWitness.Person = person;
                witnesses.Add(nMarriageWitness);
            }

            return witnesses;
        }
        public string AddMarriage(
                    string FemaleLocationId, string LocationId, string MaleLocationId, string SourceDescription, string Sources, string MarriageId, string IsBanns, string IsLicense, string IsWidow, string IsWidower,
                    string FemaleBirthYear, string FemaleCName, string FemaleLocation, string FemaleNotes, string FemaleOccupation, string FemaleSName, string LocationCounty, string MaleBirthYear, string MaleCName,
                    string MaleLocation, string MaleNotes, string MaleOccupation, string MaleSName, string MarriageDate, string MarriageLocation, string MarriageWitnesses)
        {
            WebHelper.WriteParams(FemaleLocationId, LocationId, MaleLocationId, SourceDescription, Sources, MarriageId, IsBanns, IsLicense, IsWidow, IsWidower,
                     FemaleBirthYear, FemaleCName, FemaleLocation, FemaleNotes, FemaleOccupation, FemaleSName, LocationCounty, MaleBirthYear, MaleCName,
                     MaleLocation, MaleNotes, MaleOccupation, MaleSName, MarriageDate, MarriageLocation);

            string retVal = "";

            var serviceMarriage = new ServiceMarriage
                {
                    MarriageId = MarriageId.ToGuid(),
                    MarriageDate = MarriageDate,
                    MaleCName = MaleCName,
                    MaleSName = MaleSName,
                    FemaleCName = FemaleCName,
                    FemaleSName = FemaleSName,
                    MaleNotes = MaleNotes,
                    FemaleNotes = FemaleNotes,
                    MarriageLocation = MarriageLocation,
                    LocationId = LocationId,
                    LocationCounty = LocationCounty,
                    MaleLocation = MaleLocation,
                    FemaleLocation = FemaleLocation,
                    IsBanns = IsBanns.ToBool(),
                    IsLicense = IsLicense.ToBool(),
                    IsWidow = IsWidow.ToBool(),
                    IsWidower = IsWidower.ToBool(),
                    MaleOccupation = MaleOccupation,
                    FemaleOccupation = FemaleOccupation,
                    MaleBirthYear = MaleBirthYear.ToInt32(),
                    FemaleBirthYear = FemaleBirthYear.ToInt32(),
                    SourceDescription = SourceDescription
                };

            try
            {
                _marriageSearch.Save(serviceMarriage, Sources.ParseToGuidList(), MarriageWitness.DeSerializeWitnesses(MarriageWitnesses, serviceMarriage), new MarriageValidator(serviceMarriage));
            }
            catch (Exception ex1)
            {
                retVal = ex1.Message;
            }

            return WebHelper.MakeReturn(serviceMarriage.MarriageId.ToString(), retVal);
        }
        public ServiceMarriage Get(Guid marriageId)
        {
            var marriage = new ServiceMarriage();

            if (!_security.IsvalidSelect()) return marriage;

            if (marriageId == Guid.Empty) return marriage;

            //get wits
            marriage = _marriagesDll.GetMarriageById2(marriageId);
            marriage.Sources = _sourceMappingsDal.GetSourceGuidList(marriageId);

            var mw = _marriageWitnessesDll.GetWitnessesForMarriage(marriageId);

            mw.PopulateServiceMarriage(marriage);

            return marriage;
        }
        public void Save(ServiceMarriage pmarriage, List<Guid> sources, List<MarriageWitness> witnesses, IValidator marriageValidation)
        {
            if (!marriageValidation.ValidEntry()) return;

            if (!_security.IsValidEdit()) return;

            if (pmarriage.MarriageId == Guid.Empty)
            {
                Insert(pmarriage,sources, witnesses);
            }
            else
            {
                Edit(pmarriage,sources, witnesses);
            }
        }
        private void Insert(ServiceMarriage pmarriage, List<Guid> sources, List<MarriageWitness> witnesses)
        {
            if (! _security.IsValidInsert()) return;

            if (pmarriage.TotalEvents.ToInt32() == 0 && pmarriage.Priority.ToInt32() == 0)
                pmarriage.TotalEvents = "1";

            pmarriage.MarriageId = _marriagesDll.InsertMarriage(pmarriage);

            if(sources.Count>0)
                _sourceMappingsDal.WriteMarriageSources(pmarriage.MarriageId, sources, 1);

            SetWitnesses(pmarriage.MarriageId, witnesses);
        }
        private void Edit(ServiceMarriage pmarriage, List<Guid> sources, List<MarriageWitness> witnesses)
        {
            _marriagesDll.UpdateMarriage(pmarriage);

            _sourceMappingsDal.WriteMarriageSources(pmarriage.MarriageId, sources, 1);

            SetWitnesses(pmarriage.MarriageId, witnesses);
        }
 public static ServiceMarriage ToServiceMarriage(this Marriage marriageRecord)
 {
     var sp = new ServiceMarriage()
     {
         MarriageDate = marriageRecord.Date,
         MarriageLocation = marriageRecord.MarriageLocation,
         LocationCounty = marriageRecord.MarriageCounty,
         Sources = marriageRecord.Source,
         MaleCName = marriageRecord.MaleCName,
         MaleSName = marriageRecord.MaleSName,
         MaleNotes = marriageRecord.MaleInfo,
         MaleLocation = marriageRecord.MaleLocation,
         FemaleCName = marriageRecord.FemaleCName,
         FemaleSName = marriageRecord.FemaleSName,
         FemaleNotes = marriageRecord.FemaleInfo,
         FemaleLocation = marriageRecord.FemaleLocation,
         FemaleOccupation = marriageRecord.FemaleOccupation,
         MaleOccupation = marriageRecord.MaleOccupation,
         IsBanns = marriageRecord.IsBanns.GetValueOrDefault(),
         IsLicense = marriageRecord.IsLicence.GetValueOrDefault(),
         IsWidow = marriageRecord.FemaleIsKnownWidow.GetValueOrDefault(),
         IsWidower = marriageRecord.MaleIsKnownWidower.GetValueOrDefault(),
         LocationId = marriageRecord.MarriageLocationId.GetValueOrDefault().ToString(),
         MaleLocationId = marriageRecord.MaleLocationId.GetValueOrDefault().ToString(),
         FemaleLocationId = marriageRecord.FemaleLocationId.GetValueOrDefault().ToString(),
         MaleBirthYear = marriageRecord.MaleBirthYear.GetValueOrDefault(),
         FemaleBirthYear = marriageRecord.FemaleBirthYear.GetValueOrDefault(),
         MarriageId = marriageRecord.UniqueRef.GetValueOrDefault()
     };
     return sp;
 }
 public static void PopulateServiceMarriage(this List<MarriageWitness> mw, ServiceMarriage marriage)
 {
     marriage.Witness1ChristianName = mw.GetXName(0);
     marriage.Witness1Surname = mw.GetXSurname(0);
     marriage.Witness1Description = mw.GetXDescription(0);
     marriage.Witness2ChristianName = mw.GetXName(1);
     marriage.Witness2Surname = mw.GetXSurname(1);
     marriage.Witness2Description = mw.GetXDescription(1);
     marriage.Witness3ChristianName = mw.GetXName(2);
     marriage.Witness3Surname = mw.GetXSurname(2);
     marriage.Witness3Description = mw.GetXDescription(2);
     marriage.Witness4ChristianName = mw.GetXName(3);
     marriage.Witness4Surname = mw.GetXSurname(3);
     marriage.Witness4Description = mw.GetXDescription(3);
     marriage.Witness5ChristianName = mw.GetXName(4);
     marriage.Witness5Surname = mw.GetXSurname(4);
     marriage.Witness5Description = mw.GetXDescription(4);
     marriage.Witness6ChristianName = mw.GetXName(5);
     marriage.Witness6Surname = mw.GetXSurname(5);
     marriage.Witness6Description = mw.GetXDescription(5);
     marriage.Witness7ChristianName = mw.GetXName(6);
     marriage.Witness7Surname = mw.GetXSurname(6);
     marriage.Witness7Description = mw.GetXDescription(6);
     marriage.Witness8ChristianName = mw.GetXName(7);
     marriage.Witness8Surname = mw.GetXSurname(7);
     marriage.Witness8Description = mw.GetXDescription(7);
 }
        public ServiceMarriage GetMarriage(string id)
        {
            // ahouls use search function here
            string retVal = "";

            var serviceMarriage = new ServiceMarriage();

            try
            {

                serviceMarriage = _marriageSearch.Get(id.ToGuid());

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

               serviceMarriage.ErrorStatus = retVal;

               return serviceMarriage;
        }
        public void UpdateMarriage(ServiceMarriage serviceMarriage)
        {
            using (var context = new GeneralModelContainer())
            {

                context.Database.Log = s => System.Diagnostics.Debug.WriteLine(s);

                var marriage = context.Marriages.FirstOrDefault(m => m.Marriage_Id == serviceMarriage.MarriageId);

                if (marriage != null)
                {
                    marriage.MaleCName = serviceMarriage.MaleCName;
                    marriage.MaleSName = serviceMarriage.MaleSName;
                    marriage.MaleLocation = serviceMarriage.MaleLocation;
                    marriage.MaleInfo = serviceMarriage.MaleNotes;
                    marriage.FemaleId = Guid.Empty;
                    marriage.FemaleCName = serviceMarriage.FemaleCName;
                    marriage.FemaleSName = serviceMarriage.FemaleSName;
                    marriage.FemaleLocation = serviceMarriage.FemaleLocation;
                    marriage.FemaleInfo = serviceMarriage.FemaleNotes;
                    marriage.Date = serviceMarriage.MarriageDate;
                    marriage.MarriageLocation = serviceMarriage.MarriageLocation;
                    marriage.YearIntVal = serviceMarriage.MarriageDate.ParseToValidYear();
                    marriage.MarriageCounty = serviceMarriage.LocationCounty;
                    marriage.Source = serviceMarriage.SourceDescription;
                    marriage.IsLicence = serviceMarriage.IsLicense;
                    marriage.IsBanns = serviceMarriage.IsBanns;
                    marriage.MaleIsKnownWidower = serviceMarriage.IsWidower;
                    marriage.FemaleIsKnownWidow = serviceMarriage.IsWidow;
                    marriage.FemaleOccupation = serviceMarriage.FemaleOccupation;
                    marriage.MaleOccupation = serviceMarriage.MaleOccupation;
                    marriage.MarriageLocationId = serviceMarriage.LocationId.ToGuid();
                    marriage.MaleLocationId = serviceMarriage.MaleLocationId.ToGuid();
                    marriage.FemaleLocationId = serviceMarriage.FemaleLocationId.ToGuid();
                    marriage.MaleBirthYear = serviceMarriage.MaleBirthYear;
                    marriage.FemaleBirthYear = serviceMarriage.FemaleBirthYear;

                    context.SaveChanges();
                }
            }
        }
        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;

            }
        }
        public IHttpActionResult GetMarriage(string id)
        {
            // ahouls use search function here
            string retVal = "";

            var serviceMarriage = new ServiceMarriage();

            try
            {

                serviceMarriage = _marriageSearch.Get(id.ToGuid());

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

            serviceMarriage.ErrorStatus = retVal;

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

            if (serviceMarriage.MarriageId == Guid.Empty)
            {
                return Content(HttpStatusCode.NotFound, id);
            }

            return Ok(serviceMarriage);
        }
 public MarriageValidator(ServiceMarriage serviceMarriage)
 {
     _serviceMarriage = serviceMarriage;
 }