//public override string CoCoRaHSDoAddChanges()
        //{
        //    return base.CoCoRaHSDoAddChanges();
        //}
        //public override string CoCoRaHSDoDeleteChanges()
        //{
        //    return base.CoCoRaHSDoDeleteChanges();
        //}
        //public override string CoCoRaHSDoUpdateChanges()
        //{
        //    return base.CoCoRaHSDoUpdateChanges();
        //}

        // Check
        public string CoCoRaHSSiteModelOK(CoCoRaHSSiteModel coCoRaHSSiteModel)
        {
            string retStr = FieldCheckNotNullAndMinMaxLengthString(coCoRaHSSiteModel.StationNumber, ServiceRes.StationNumber, 2, 100);

            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(retStr);
            }

            retStr = FieldCheckNotNullAndMinMaxLengthString(coCoRaHSSiteModel.StationName, ServiceRes.StationName, 2, 100);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(retStr);
            }

            retStr = FieldCheckIfNotNullWithinRangeDouble(coCoRaHSSiteModel.Latitude, ServiceRes.Latitude, -90.0D, 90.0D);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(retStr);
            }

            retStr = FieldCheckIfNotNullWithinRangeDouble(coCoRaHSSiteModel.Longitude, ServiceRes.Longitude, -180.0D, 180.0D);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(retStr);
            }

            retStr = _BaseEnumService.DBCommandOK(coCoRaHSSiteModel.DBCommand);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(retStr);
            }

            return("");
        }
        public CoCoRaHSSiteModel GetCoCoRaHSSiteModelExistDB(CoCoRaHSSiteModel coCoRaHSSiteModel)
        {
            CoCoRaHSSiteModel coCoRaHSSiteModelRet = (from c in db.CoCoRaHSSites
                                                      where c.StationNumber == coCoRaHSSiteModel.StationNumber &&
                                                      c.StationName == coCoRaHSSiteModel.StationName
                                                      select new CoCoRaHSSiteModel
            {
                Error = "",
                CoCoRaHSSiteID = c.CoCoRaHSSiteID,
                DBCommand = (DBCommandEnum)c.DBCommand,
                StationNumber = c.StationNumber,
                StationName = c.StationName,
                Latitude = c.Latitude,
                Longitude = c.Longitude,
                LastUpdateDate_UTC = c.LastUpdateDate_UTC,
                LastUpdateContactTVItemID = c.LastUpdateContactTVItemID,
            }).FirstOrDefault <CoCoRaHSSiteModel>();

            if (coCoRaHSSiteModelRet == null)
            {
                return(ReturnError(string.Format(ServiceRes.CouldNotFind_With_Equal_, ServiceRes.CoCoRaHSSite,
                                                 ServiceRes.StationNumber + "," +
                                                 ServiceRes.StationName,
                                                 coCoRaHSSiteModel.StationNumber + "," +
                                                 coCoRaHSSiteModel.StationName)));
            }

            return(coCoRaHSSiteModelRet);
        }
        // Fill
        public string FillCoCoRaHSSite(CoCoRaHSSite coCoRaHSSiteNew, CoCoRaHSSiteModel coCoRaHSSiteModel, ContactOK contactOK)
        {
            coCoRaHSSiteNew.DBCommand          = (int)coCoRaHSSiteModel.DBCommand;
            coCoRaHSSiteNew.StationNumber      = coCoRaHSSiteModel.StationNumber;
            coCoRaHSSiteNew.StationName        = coCoRaHSSiteModel.StationName;
            coCoRaHSSiteNew.Latitude           = coCoRaHSSiteModel.Latitude;
            coCoRaHSSiteNew.Longitude          = coCoRaHSSiteModel.Longitude;
            coCoRaHSSiteNew.LastUpdateDate_UTC = DateTime.UtcNow;
            if (contactOK == null)
            {
                coCoRaHSSiteNew.LastUpdateContactTVItemID = 2;
            }
            else
            {
                coCoRaHSSiteNew.LastUpdateContactTVItemID = contactOK.ContactTVItemID;
            }

            return("");
        }
        public CoCoRaHSSiteModel PostUpdateCoCoRaHSSiteDB(CoCoRaHSSiteModel coCoRaHSSiteModel)
        {
            string retStr = CoCoRaHSSiteModelOK(coCoRaHSSiteModel);

            if (!string.IsNullOrEmpty(retStr))
            {
                return(ReturnError(retStr));
            }

            ContactOK contactOK = IsContactOK();

            if (!string.IsNullOrEmpty(contactOK.Error))
            {
                return(ReturnError(contactOK.Error));
            }

            CoCoRaHSSite coCoRaHSSiteToUpdate = GetCoCoRaHSSiteWithCoCoRaHSSiteIDDB(coCoRaHSSiteModel.CoCoRaHSSiteID);

            if (coCoRaHSSiteToUpdate == null)
            {
                return(ReturnError(string.Format(ServiceRes.CouldNotFind_ToUpdate, ServiceRes.CoCoRaHSSite)));
            }

            retStr = FillCoCoRaHSSite(coCoRaHSSiteToUpdate, coCoRaHSSiteModel, contactOK);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

            using (TransactionScope ts = new TransactionScope())
            {
                retStr = DoUpdateChanges();
                if (!string.IsNullOrWhiteSpace(retStr))
                {
                    return(ReturnError(retStr));
                }

                ts.Complete();
            }
            return(GetCoCoRaHSSiteModelWithCoCoRaHSSiteIDDB(coCoRaHSSiteToUpdate.CoCoRaHSSiteID));
        }
        // Post
        public CoCoRaHSSiteModel PostAddCoCoRaHSSiteDB(CoCoRaHSSiteModel coCoRaHSSiteModel)
        {
            string retStr = CoCoRaHSSiteModelOK(coCoRaHSSiteModel);

            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

            ContactOK contactOK = IsContactOK();

            if (!string.IsNullOrEmpty(contactOK.Error))
            {
                return(ReturnError(contactOK.Error));
            }

            CoCoRaHSSite coCoRaHSSiteNew = new CoCoRaHSSite();

            retStr = FillCoCoRaHSSite(coCoRaHSSiteNew, coCoRaHSSiteModel, contactOK);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

            using (TransactionScope ts = new TransactionScope())
            {
                db.CoCoRaHSSites.Add(coCoRaHSSiteNew);
                retStr = DoAddChanges();
                if (!string.IsNullOrWhiteSpace(retStr))
                {
                    return(ReturnError(retStr));
                }

                ts.Complete();
            }
            return(GetCoCoRaHSSiteModelWithCoCoRaHSSiteIDDB(coCoRaHSSiteNew.CoCoRaHSSiteID));
        }
        // Helper
        public string CreateTVText(CoCoRaHSSiteModel coCoRaHSSiteModel)
        {
            string retStr = "CoCoRaHS " + coCoRaHSSiteModel.StationName + " (" + coCoRaHSSiteModel.StationNumber + ")";

            return(retStr);
        }