Пример #1
0
        /// <summary>
        /// Удалить комментарий.
        /// </summary>
        /// <param name="cafeName"> Название кафе. </param>
        /// <returns>
        /// Возвращает true, если комментарий успешно удален.
        /// Если комментария нет, то возвращает false.
        /// </returns>
        public bool DeleteComment(Cafe cafe)
        {
            #region Проверка
            if (cafe == null)
            {
                throw new ArgumentNullException($"{nameof(cafe)} не может быть null", nameof(cafe));
            }
            if (Cafes.FirstOrDefault(c => c.Name == cafe.Name) == null)
            {
                throw new ArgumentException("Не существует кафе с таким названием", nameof(cafe.Name));
            }
            #endregion

            var comments = GetComments();
            var comment  = comments.SingleOrDefault(c => c.User.Name == CurrentUser.Name && c.CafeName == cafe.Name);
            if (comment == null)
            {
                return(false);
            }
            else
            {
                comments.Remove(comment);
            }
            Save(comments);
            return(true);
        }
Пример #2
0
        /// <summary>
        /// Получить кафе с таким названием.
        /// </summary>
        /// <param name="cafeName"> Название кафе. </param>
        /// <returns> Кафе или null, если такого нет. </returns>
        public Cafe GetCafe(string cafeName)
        {
            if (string.IsNullOrWhiteSpace(cafeName))
            {
                throw new ArgumentException($"{nameof(cafeName)} не может быть пустым или содержать только пробел", nameof(cafeName));
            }

            return(Cafes.FirstOrDefault(c => c.Name == cafeName));
        }
Пример #3
0
        /// <summary>
        /// Добавить комментарий.
        /// </summary>
        /// <param name="cafe"> Кафе. </param>
        /// <param name="userComment"> Комментарий. </param>
        public void AddComment(UserComment userComment)
        {
            #region Проверка
            if (userComment == null)
            {
                throw new ArgumentNullException($"{nameof(userComment)} не может быть null", nameof(userComment));
            }
            if (Cafes.FirstOrDefault(c => c.Name == userComment.CafeName) == null)
            {
                throw new ArgumentException("Не существует кафе с таким названием", nameof(userComment.CafeName));
            }
            #endregion

            var comments   = GetComments();
            var oldComment = comments.SingleOrDefault(c => c.User.Name == CurrentUser.Name);
            if (oldComment != null)
            {
                comments.Remove(oldComment);
            }

            comments.Add(userComment);
            Save(comments);
        }