public RainExceedanceClimateSite GetRainExceedanceClimateSiteExistDB(RainExceedanceClimateSiteModel rainExceedanceClimateSiteModel)
        {
            RainExceedanceClimateSite rainExceedanceClimateSite = (from c in db.RainExceedanceClimateSites
                                                                   where c.RainExceedanceTVItemID == rainExceedanceClimateSiteModel.RainExceedanceTVItemID &&
                                                                   c.ClimateSiteTVItemID == rainExceedanceClimateSiteModel.ClimateSiteTVItemID
                                                                   select c).FirstOrDefault <RainExceedanceClimateSite>();

            return(rainExceedanceClimateSite);
        }
        public RainExceedanceClimateSiteModel PostAddRainExceedanceClimateSiteDB(RainExceedanceClimateSiteModel rainExceedanceClimateSiteModel)
        {
            string retStr = RainExceedanceClimateSiteModelOK(rainExceedanceClimateSiteModel);

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

            ContactOK contactOK = IsContactOK();

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

            RainExceedanceClimateSite rainExceedanceClimateSiteExist = GetRainExceedanceClimateSiteExistDB(rainExceedanceClimateSiteModel);

            if (rainExceedanceClimateSiteExist != null)
            {
                return(ReturnError(string.Format(ServiceRes._AlreadyExists, ServiceRes.RainExceedanceClimateSite)));
            }

            RainExceedanceClimateSite rainExceedanceClimateSiteNew = new RainExceedanceClimateSite();

            retStr = FillRainExceedanceClimateSite(rainExceedanceClimateSiteNew, rainExceedanceClimateSiteModel, contactOK);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

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

                LogModel logModel = _LogService.PostAddLogForObj("RainExceedanceClimateSites", rainExceedanceClimateSiteNew.RainExceedanceClimateSiteID, LogCommandEnum.Add, rainExceedanceClimateSiteNew);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                ts.Complete();
            }
            return(GetRainExceedanceClimateSiteModelWithRainExceedanceClimateSiteIDDB(rainExceedanceClimateSiteNew.RainExceedanceClimateSiteID));
        }
        public RainExceedanceClimateSiteModel PostUpdateRainExceedanceClimateSiteDB(RainExceedanceClimateSiteModel rainExceedanceClimateSiteModel)
        {
            string retStr = RainExceedanceClimateSiteModelOK(rainExceedanceClimateSiteModel);

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

            ContactOK contactOK = IsContactOK();

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

            RainExceedanceClimateSite rainExceedanceClimateSiteToUpdate = GetRainExceedanceClimateSiteWithRainExceedanceClimateSiteIDDB(rainExceedanceClimateSiteModel.RainExceedanceClimateSiteID);

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

            retStr = FillRainExceedanceClimateSite(rainExceedanceClimateSiteToUpdate, rainExceedanceClimateSiteModel, contactOK);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

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

                LogModel logModel = _LogService.PostAddLogForObj("RainExceedanceClimateSites", rainExceedanceClimateSiteToUpdate.RainExceedanceClimateSiteID, LogCommandEnum.Change, rainExceedanceClimateSiteToUpdate);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                ts.Complete();
            }
            return(GetRainExceedanceClimateSiteModelWithRainExceedanceClimateSiteIDDB(rainExceedanceClimateSiteToUpdate.RainExceedanceClimateSiteID));
        }
        public RainExceedanceClimateSiteModel GetRainExceedanceClimateSiteModelWithRainExceedanceClimateSiteIDDB(int RainExceedanceClimateSiteID)
        {
            RainExceedanceClimateSiteModel rainExceedanceClimateSiteModel = (from c in db.RainExceedanceClimateSites
                                                                             where c.RainExceedanceClimateSiteID == RainExceedanceClimateSiteID
                                                                             select new RainExceedanceClimateSiteModel
            {
                Error = "",
                RainExceedanceClimateSiteID = c.RainExceedanceClimateSiteID,
                DBCommand = (DBCommandEnum)c.DBCommand,
                RainExceedanceTVItemID = c.RainExceedanceTVItemID,
                ClimateSiteTVItemID = c.ClimateSiteTVItemID,
                LastUpdateDate_UTC = c.LastUpdateDate_UTC,
                LastUpdateContactTVItemID = c.LastUpdateContactTVItemID,
            }).FirstOrDefault <RainExceedanceClimateSiteModel>();

            if (rainExceedanceClimateSiteModel == null)
            {
                return(ReturnError(string.Format(ServiceRes.CouldNotFind_With_Equal_, ServiceRes.RainExceedanceClimateSite, ServiceRes.RainExceedanceClimateSiteID, RainExceedanceClimateSiteID)));
            }

            return(rainExceedanceClimateSiteModel);
        }
        // Check
        public string RainExceedanceClimateSiteModelOK(RainExceedanceClimateSiteModel rainExceedanceClimateSiteModel)
        {
            string retStr = FieldCheckNotZeroInt(rainExceedanceClimateSiteModel.RainExceedanceTVItemID, ServiceRes.RainExceedanceTVItemID);

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

            retStr = FieldCheckNotZeroInt(rainExceedanceClimateSiteModel.ClimateSiteTVItemID, ServiceRes.ClimateSiteTVItemID);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(retStr);
            }

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

            return("");
        }
        public JsonResult RainExceedanceAddUseClimateSiteJSON(int RainExceedanceTVItemID, int ClimateSiteTVItemID, bool Use)
        {
            RainExceedanceClimateSiteModel rainExceedanceClimateSiteModel = _RainExceedanceClimateSiteService.PostRainExceedanceClimateSiteSaveDB(RainExceedanceTVItemID, ClimateSiteTVItemID, Use);

            return(Json(rainExceedanceClimateSiteModel.Error, JsonRequestBehavior.AllowGet));
        }
        // Fill
        public string FillRainExceedanceClimateSite(RainExceedanceClimateSite rainExceedanceClimateSiteNew, RainExceedanceClimateSiteModel rainExceedanceClimateSiteModel, ContactOK contactOK)
        {
            rainExceedanceClimateSiteNew.DBCommand = (int)rainExceedanceClimateSiteModel.DBCommand;
            rainExceedanceClimateSiteNew.RainExceedanceTVItemID = rainExceedanceClimateSiteModel.RainExceedanceTVItemID;
            rainExceedanceClimateSiteNew.ClimateSiteTVItemID    = rainExceedanceClimateSiteModel.ClimateSiteTVItemID;
            rainExceedanceClimateSiteNew.LastUpdateDate_UTC     = DateTime.UtcNow;
            if (contactOK == null)
            {
                rainExceedanceClimateSiteNew.LastUpdateContactTVItemID = 2;
            }
            else
            {
                rainExceedanceClimateSiteNew.LastUpdateContactTVItemID = contactOK.ContactTVItemID;
            }

            return("");
        }
        // Post
        public RainExceedanceClimateSiteModel PostRainExceedanceClimateSiteSaveDB(int RainExceedanceTVItemID, int ClimateSiteTVItemID, bool Use)
        {
            ContactOK contactOK = IsContactOK();

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

            RainExceedanceClimateSiteModel RainExceedanceClimateSiteModelRet = new RainExceedanceClimateSiteModel();

            using (TransactionScope ts = new TransactionScope())
            {
                if (Use)
                {
                    RainExceedanceClimateSiteModel rainExceedanceClimateSiteModelNew = new RainExceedanceClimateSiteModel()
                    {
                        DBCommand = DBCommandEnum.Original,
                        RainExceedanceTVItemID = RainExceedanceTVItemID,
                        ClimateSiteTVItemID    = ClimateSiteTVItemID,
                    };

                    RainExceedanceClimateSite rainExceedanceClimateSite = GetRainExceedanceClimateSiteExistDB(rainExceedanceClimateSiteModelNew);
                    if (rainExceedanceClimateSite == null)
                    {
                        RainExceedanceClimateSiteModelRet = PostAddRainExceedanceClimateSiteDB(rainExceedanceClimateSiteModelNew);
                        if (!string.IsNullOrWhiteSpace(RainExceedanceClimateSiteModelRet.Error))
                        {
                            return(ReturnError(RainExceedanceClimateSiteModelRet.Error));
                        }
                    }
                }
                else
                {
                    RainExceedanceClimateSiteModel rainExceedanceClimateSiteModelNew = new RainExceedanceClimateSiteModel()
                    {
                        DBCommand = DBCommandEnum.Original,
                        RainExceedanceTVItemID = RainExceedanceTVItemID,
                        ClimateSiteTVItemID    = ClimateSiteTVItemID,
                    };

                    RainExceedanceClimateSite rainExceedanceClimateSite = GetRainExceedanceClimateSiteExistDB(rainExceedanceClimateSiteModelNew);
                    if (rainExceedanceClimateSite == null)
                    {
                        return(ReturnError(ServiceRes.CouldNotFindClimateSiteToRemoveFromRainExceedance));
                    }
                    else
                    {
                        RainExceedanceClimateSiteModelRet = PostDeleteRainExceedanceClimateSiteDB(rainExceedanceClimateSite.RainExceedanceClimateSiteID);
                        if (!string.IsNullOrWhiteSpace(RainExceedanceClimateSiteModelRet.Error))
                        {
                            return(ReturnError(RainExceedanceClimateSiteModelRet.Error));
                        }
                    }
                }

                ts.Complete();
            }

            return(RainExceedanceClimateSiteModelRet);
        }