// Check
        public string EmailDistributionListLanguageModelOK(EmailDistributionListLanguageModel emailDistributionListLanguageModel)
        {
            string retStr = FieldCheckNotZeroInt(emailDistributionListLanguageModel.EmailDistributionListID, ServiceRes.EmailDistributionListID);

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

            retStr = _BaseEnumService.LanguageOK(emailDistributionListLanguageModel.Language);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(retStr);
            }

            retStr = FieldCheckNotNullAndMinMaxLengthString(emailDistributionListLanguageModel.EmailListName, ServiceRes.EmailListName, 2, 250);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(retStr);
            }

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

            return("");
        }
        public EmailDistributionListLanguageModel GetEmailDistributionListLanguageModelWithEmailDistributionListIDAndLanguageDB(int EmailDistributionListID, LanguageEnum Language)
        {
            EmailDistributionListLanguageModel emailDistributionListLanguageModel = (from c in db.EmailDistributionListLanguages
                                                                                     where c.EmailDistributionListID == EmailDistributionListID &&
                                                                                     c.Language == (int)Language
                                                                                     select new EmailDistributionListLanguageModel
            {
                Error = "",
                EmailDistributionListLanguageID = c.EmailDistributionListLanguageID,
                DBCommand = (DBCommandEnum)c.DBCommand,
                EmailDistributionListID = c.EmailDistributionListID,
                Language = (LanguageEnum)c.Language,
                EmailListName = c.EmailListName,
                TranslationStatus = (TranslationStatusEnum)c.TranslationStatus,
                LastUpdateDate_UTC = c.LastUpdateDate_UTC,
                LastUpdateContactTVItemID = c.LastUpdateContactTVItemID,
            }).FirstOrDefault <EmailDistributionListLanguageModel>();


            if (emailDistributionListLanguageModel == null)
            {
                return(ReturnError(string.Format(ServiceRes.CouldNotFind_With_Equal_, ServiceRes.EmailDistributionListLanguage, ServiceRes.EmailDistributionListID + "," + ServiceRes.Language, EmailDistributionListID + "," + Language)));
            }

            return(emailDistributionListLanguageModel);
        }
        // Post
        public EmailDistributionListLanguageModel PostAddEmailDistributionListLanguageDB(EmailDistributionListLanguageModel emailDistributionListLanguageModel)
        {
            string retStr = EmailDistributionListLanguageModelOK(emailDistributionListLanguageModel);

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

            ContactOK contactOK = IsContactOK();

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

            EmailDistributionListLanguageModel emailDistributionListLanguageModelExist = GetEmailDistributionListLanguageModelWithEmailDistributionListIDAndLanguageDB(emailDistributionListLanguageModel.EmailDistributionListID, emailDistributionListLanguageModel.Language);

            if (string.IsNullOrWhiteSpace(emailDistributionListLanguageModelExist.Error))
            {
                return(ReturnError(string.Format(ServiceRes._AlreadyExists, ServiceRes.EmailDistributionListLanguage)));
            }

            EmailDistributionListLanguage emailDistributionListLanguageNew = new EmailDistributionListLanguage();

            retStr = FillEmailDistributionListLanguageModel(emailDistributionListLanguageNew, emailDistributionListLanguageModel, contactOK);
            if (!string.IsNullOrWhiteSpace(retStr))
            {
                return(ReturnError(retStr));
            }

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

                LogModel logModel = _LogService.PostAddLogForObj("EmailDistributionListLanguages", emailDistributionListLanguageNew.EmailDistributionListLanguageID, LogCommandEnum.Add, emailDistributionListLanguageNew);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                ts.Complete();
            }
            return(GetEmailDistributionListLanguageModelWithEmailDistributionListIDAndLanguageDB(emailDistributionListLanguageNew.EmailDistributionListID, (LanguageEnum)emailDistributionListLanguageNew.Language));
        }
        // Fill
        public string FillEmailDistributionListLanguageModel(EmailDistributionListLanguage emailDistributionListLanguage, EmailDistributionListLanguageModel emailDistributionListLanguageModel, ContactOK contactOK)
        {
            try
            {
                emailDistributionListLanguage.DBCommand = (int)emailDistributionListLanguageModel.DBCommand;
                emailDistributionListLanguage.EmailDistributionListID = emailDistributionListLanguageModel.EmailDistributionListID;
                emailDistributionListLanguage.Language           = (int)emailDistributionListLanguageModel.Language;
                emailDistributionListLanguage.EmailListName      = emailDistributionListLanguageModel.EmailListName;
                emailDistributionListLanguage.TranslationStatus  = (int)emailDistributionListLanguageModel.TranslationStatus;
                emailDistributionListLanguage.LastUpdateDate_UTC = DateTime.UtcNow;
                if (contactOK == null)
                {
                    emailDistributionListLanguage.LastUpdateContactTVItemID = 2;
                }
                else
                {
                    emailDistributionListLanguage.LastUpdateContactTVItemID = contactOK.ContactTVItemID;
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }

            return("");
        }
        public EmailDistributionListLanguageModel PostUpdateEmailDistributionListLanguageDB(EmailDistributionListLanguageModel emailDistributionListLanguageModel)
        {
            string retStr = EmailDistributionListLanguageModelOK(emailDistributionListLanguageModel);

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

            ContactOK contactOK = IsContactOK();

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

            EmailDistributionListLanguage emailDistributionListLanguageToUpdate = GetEmailDistributionListLanguageWithEmailDistributionListIDAndLanguageDB(emailDistributionListLanguageModel.EmailDistributionListID, emailDistributionListLanguageModel.Language);

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

            retStr = FillEmailDistributionListLanguageModel(emailDistributionListLanguageToUpdate, emailDistributionListLanguageModel, 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("EmailDistributionListLanguages", emailDistributionListLanguageToUpdate.EmailDistributionListLanguageID, LogCommandEnum.Change, emailDistributionListLanguageToUpdate);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                ts.Complete();
            }

            return(GetEmailDistributionListLanguageModelWithEmailDistributionListIDAndLanguageDB(emailDistributionListLanguageToUpdate.EmailDistributionListID, (LanguageEnum)emailDistributionListLanguageToUpdate.Language));
        }
        public EmailDistributionListModel PostUpdateEmailDistributionListDB(EmailDistributionListModel emailDistributionListModel)
        {
            string retStr = EmailDistributionListModelOK(emailDistributionListModel);

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

            ContactOK contactOK = IsContactOK();

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

            EmailDistributionList emailDistributionListToUpdate = GetEmailDistributionListWithEmailDistributionListIDDB(emailDistributionListModel.EmailDistributionListID);

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

            retStr = FillEmailDistributionList(emailDistributionListToUpdate, emailDistributionListModel, 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("EmailDistributionLists", emailDistributionListToUpdate.EmailDistributionListID, LogCommandEnum.Change, emailDistributionListToUpdate);
                if (!string.IsNullOrWhiteSpace(logModel.Error))
                {
                    return(ReturnError(logModel.Error));
                }

                foreach (LanguageEnum Lang in LanguageListAllowable)
                {
                    if (Lang == LanguageRequest)
                    {
                        EmailDistributionListLanguageModel emailDistributionListLanguageModel = new EmailDistributionListLanguageModel()
                        {
                            DBCommand = DBCommandEnum.Original,
                            EmailDistributionListID = emailDistributionListToUpdate.EmailDistributionListID,
                            Language          = Lang,
                            EmailListName     = emailDistributionListModel.EmailListName,
                            TranslationStatus = TranslationStatusEnum.Translated,
                        };

                        EmailDistributionListLanguageModel emailDistributionListLanguageModelRet = _EmailDistributionListLanguageService.PostUpdateEmailDistributionListLanguageDB(emailDistributionListLanguageModel);
                        if (!string.IsNullOrEmpty(emailDistributionListLanguageModelRet.Error))
                        {
                            return(ReturnError(string.Format(ServiceRes.CouldNotAddError_, emailDistributionListLanguageModelRet.Error)));
                        }
                    }
                }


                ts.Complete();
            }
            return(GetEmailDistributionListModelWithEmailDistributionListIDDB(emailDistributionListToUpdate.EmailDistributionListID));
        }