public IHttpActionResult AddParish(ServiceParishAdd serviceParishAdd)
        {
            string retVal = "";

            var sp = new ServiceParish
            {
                ParishId = serviceParishAdd.ParishId.ToGuid(),
                ParishStartYear = serviceParishAdd.ParishStartYear.ToInt32(),
                ParishDeposited = serviceParishAdd.ParishDeposited ?? "",
                ParishEndYear = serviceParishAdd.ParishEndYear.ToInt32(),
                ParishLat = serviceParishAdd.ParishLat.ToDouble(),
                ParishLong = serviceParishAdd.ParishLong.ToDouble(),
                ParishName = serviceParishAdd.ParishName ?? "",
                ParishNote = serviceParishAdd.ParishNote ??"",
                ParishParent = serviceParishAdd.ParishParent??"",
                ParishCounty = serviceParishAdd.ParishCounty ??""
            };

            try
            {
                _parishSearch.AddParish(sp, new ParishValidator { ServiceParish = sp });
            }
            catch (Exception ex1)
            {
                retVal = ex1.Message;
            }

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

            return Ok(sp.ParishId);
        }
        public void AddParish(ServiceParish serviceParish, IValidator iValidator = null)
        {
            if (iValidator != null)
                _validator = iValidator;

            if (!_validator.ValidEntry()) throw new InvalidDataException(_validator.GetErrors()); ;

            if (serviceParish.ParishId != Guid.Empty)
            {
                Edit(serviceParish);
            }
            else
            {
                Insert(serviceParish);
            }
        }
        public string AddParish(string ParishId, string ParishStartYear, string ParishEndYear,
                                string ParishLat, string ParishLong,
                                string ParishName, string ParishParent,
                                string ParishNote, string ParishCounty, string ParishDeposited)
        {
            WebHelper.WriteParams(ParishId, ParishStartYear, ParishEndYear,
                                  ParishLat, ParishLong,
                                  ParishName, ParishParent,
                                  ParishNote, ParishCounty, ParishDeposited);

            string retVal = "";

            var sp = new ServiceParish
            {
                ParishId = ParishId.ToGuid(),
                ParishStartYear = ParishStartYear.ToInt32(),
                ParishDeposited = ParishDeposited,
                ParishEndYear = ParishEndYear.ToInt32(),
                ParishLat = ParishLat.ToDouble(),
                ParishLong = ParishLong.ToDouble(),
                ParishName = ParishName,
                ParishNote = ParishNote,
                ParishParent = ParishParent,
                ParishCounty = ParishCounty
            };

            try
            {
                _parishSearch.AddParish(sp, new ParishValidator { ServiceParish = sp });
            }
            catch (Exception ex1)
            {
                retVal = ex1.Message;
            }

            return WebHelper.MakeReturn(sp.ParishId.ToString(), retVal);
        }
        public void Insert(ServiceParish serviceParish)
        {
            if (!_iSecurity.IsValidInsert()) return;

            _parishsDal.InsertParish(serviceParish);
        }
        public void Edit(ServiceParish serviceParish)
        {
            if (!_iSecurity.IsValidEdit()) return;

            _parishsDal.UpdateParish(serviceParish);
        }
        public void UpdateParish(ServiceParish serviceParish)
        {
            using (var context = new GeneralModelContainer())
            {
                var parish = context.Parishs.First(o => o.ParishId == serviceParish.ParishId);

                if (parish != null)
                {
                    parish.ParishName = serviceParish.ParishName;
                    parish.ParentParish = serviceParish.ParishParent;
                    parish.ParishCounty = serviceParish.ParishCounty;
                    parish.ParishEndYear = serviceParish.ParishEndYear;
                    parish.ParishStartYear = serviceParish.ParishStartYear;
                    parish.ParishNotes = serviceParish.ParishNote;
                    parish.ParishX = (decimal) serviceParish.ParishLat;
                    parish.ParishY = (decimal) serviceParish.ParishLong;
                    parish.ParishRegistersDeposited = serviceParish.ParishDeposited;
                }

                context.SaveChanges();
            }
        }
        public Guid InsertParish(ServiceParish serviceParish)
        {
            using (var context = new GeneralModelContainer())
            {
                var parishId = Guid.NewGuid();
                serviceParish.ParishId = parishId;
                serviceParish.ParishName = serviceParish.ParishName.Trim();
                serviceParish.ParishParent = serviceParish.ParishParent.Trim();

                var parishs =
                    context.Parishs.Where(
                        o =>
                            o.ParishName.ToLower().Contains(serviceParish.ParishName) &&
                            o.ParishRegistersDeposited.ToLower().Contains(serviceParish.ParishDeposited.ToLower()));

                if (!parishs.Any())
                {
                    var parish = new Parish
                    {
                        ParishId = serviceParish.ParishId,
                        ParentParish = serviceParish.ParishParent,
                        ParishCounty = serviceParish.ParishCounty,
                        ParishEndYear = serviceParish.ParishEndYear,
                        ParishName = serviceParish.ParishName,
                        ParishNotes = serviceParish.ParishNote,
                        ParishRegistersDeposited = serviceParish.ParishDeposited,
                        ParishStartYear = serviceParish.ParishStartYear,
                        ParishX = (decimal) serviceParish.ParishLat,
                        ParishY = (decimal) serviceParish.ParishLong
                    };

                    context.Parishs.Add(parish);
                }
                else
                {
                    parishId = parishs.First().ParishId;
                    serviceParish.ParishId = parishId;
                }

                context.SaveChanges();

                return parishId;
            }
        }
        public ServiceParish GetParishById(Guid parishId)
        {
            using (var context = new GeneralModelContainer())
            {
                var pe = context.Parishs.FirstOrDefault(o => o.ParishId == parishId);

                if (pe == null) return new ServiceParish();

                var ret = new ServiceParish
                {
                    ParishCounty = pe.ParishCounty,
                    ParishDeposited = pe.ParishRegistersDeposited,
                    ParishId = pe.ParishId,
                    ParishLat = (double) pe.ParishX.GetValueOrDefault(),
                    ParishLong = (double) pe.ParishY.GetValueOrDefault(),
                    ParishEndYear = pe.ParishEndYear,
                    ParishStartYear = pe.ParishStartYear,
                    ParishName = pe.ParishName,
                    ParishNote = pe.ParishNotes,
                    ParishParent = pe.ParentParish
                };

                return ret;
            }
        }
        public IHttpActionResult GetParish(string id)
        {
            var parish = new ServiceParish();
            string retVal = "";
            try
            {
                parish = _parishSearch.GetParish(id.ToGuid());
            }
            catch (Exception ex1)
            {
                retVal = "Exception: " + ex1.Message;
            }
            if (retVal != "")
            {
                return Content(HttpStatusCode.BadRequest, retVal);
            }

            return Ok(parish.ParishId);
        }
 public ServiceParish GetParish(string parishId)
 {
     var parish = new ServiceParish();
     string retVal = "";
     try
     {
         parish = _parishSearch.GetParish(parishId.ToGuid());
     }
     catch (Exception ex1)
     {
         retVal = "Exception: " + ex1.Message;
     }
     finally
     {
         if (retVal != "") retVal += Environment.NewLine;
         parish.ErrorStatus = retVal;
     }
     return parish;
 }