/// <summary>
        /// Includes new or updates existed localized string.
        /// </summary>
        /// <param name="?"></param>
        public static void AddOrUpdateString(this QuestionElement dbEntity, QuestionElementString localizedString)
        {
            var existedString =
                dbEntity.LocalizedStrings.FirstOrDefault(s => s.Language.Equals(localizedString.Language));

            if (existedString == null)
            {
                dbEntity.LocalizedStrings.Add(localizedString);
            }
            else
            {
                existedString.UpdateWith(localizedString);
            }
        }
        /// <summary>
        /// Updates data of question element.
        /// </summary>
        /// <param name="customerId">The customer identifier.</param>
        /// <param name="questionElementId">The question element identifier.</param>
        /// <param name="localizedString">The localized string.</param>
        /// <returns></returns>
        public async Task <QuestionElement> UpdateLocalizedString(
            int customerId,
            Guid questionElementId,
            QuestionElementString localizedString
            )
        {
            var dbEntity = await Get(customerId, questionElementId);

            if (dbEntity == null)
            {
                return(null);
            }

            dbEntity.AddOrUpdateString(localizedString);

            questionElementRepository.Update(dbEntity);
            await unitOfWork.SaveAsync();

            return(dbEntity);
        }