public ServiceMessage Edit(BanReasonEditDTO banReasonDTO)
        {
            int    id;
            string decryptedId = encryptor.Decrypt(banReasonDTO.Id);

            List <string> errors    = new List <string>();
            bool          succeeded = true;

            if (Int32.TryParse(decryptedId, out id))
            {
                if (succeeded = Validate(banReasonDTO.Name, errors))
                {
                    try
                    {
                        BanReasonEntity banReasonEntity = unitOfWork.Bans.Get(id);
                        if (banReasonEntity != null)
                        {
                            banReasonEntity.Name      = banReasonDTO.Name;
                            banReasonEntity.IsEnabled = banReasonDTO.IsEnabled;

                            unitOfWork.Commit();
                        }
                        else
                        {
                            succeeded = false;
                            errors.Add("Such ban reason was not found");
                        }
                    }
                    catch (Exception ex)
                    {
                        succeeded = false;
                        ExceptionMessageBuilder.FillErrors(ex, errors);
                    }
                }
            }
            else
            {
                succeeded = false;
                errors.Add("Such ban reason was not found");
            }

            return(new ServiceMessage
            {
                Errors = errors,
                Succeeded = succeeded
            });
        }
        public ServiceMessage Create(BanReasonCreateDTO banReasonDTO)
        {
            List <string> errors    = new List <string>();
            bool          succeeded = Validate(banReasonDTO.Name, errors);

            if (succeeded)
            {
                try
                {
                    bool exists = unitOfWork.Bans.Exists(banReasonDTO.Name);
                    if (!exists)
                    {
                        BanReasonEntity banReasonEntity = new BanReasonEntity
                        {
                            Name      = banReasonDTO.Name,
                            IsEnabled = true
                        };

                        unitOfWork.Bans.Add(banReasonEntity);
                        unitOfWork.Commit();
                    }
                    else
                    {
                        succeeded = false;
                        errors.Add("Such reason alredy exists");
                    }
                }
                catch (Exception ex)
                {
                    succeeded = false;
                    ExceptionMessageBuilder.FillErrors(ex, errors);
                }
            }

            return(new ServiceMessage
            {
                Errors = errors,
                Succeeded = succeeded
            });
        }
        public DataServiceMessage <BanReasonEditDTO> Get(string banId)
        {
            int    id;
            string decryptedId = encryptor.Decrypt(banId);

            List <string>    errors    = new List <string>();
            bool             succeeded = true;
            BanReasonEditDTO data      = null;

            if (Int32.TryParse(decryptedId, out id))
            {
                try
                {
                    BanReasonEntity banReasonEntity = unitOfWork.Bans.Get(id);
                    data = new BanReasonEditDTO
                    {
                        Id        = banId,
                        IsEnabled = banReasonEntity.IsEnabled,
                        Name      = banReasonEntity.Name
                    };
                }
                catch (Exception ex)
                {
                    succeeded = false;
                    ExceptionMessageBuilder.FillErrors(ex, errors);
                }
            }
            else
            {
                succeeded = false;
                errors.Add("Such ban reason was not found");
            }

            return(new DataServiceMessage <BanReasonEditDTO>
            {
                Data = data,
                Errors = errors,
                Succeeded = succeeded
            });
        }
Exemple #4
0
        public ServiceMessage Ban(CommentBanDTO commentDTO)
        {
            int    commentId;
            string decryptedCommentId = encryptor.Decrypt(commentDTO.Id);

            int    banReasonId;
            string decryptedBanReasonId = encryptor.Decrypt(commentDTO.BanReasonId);

            List <string> errors    = new List <string>();
            bool          succeeded = Validate(commentDTO, errors);

            if (!Int32.TryParse(decryptedCommentId, out commentId))
            {
                succeeded = false;
                errors.Add("Comment was not found");
            }

            if (!Int32.TryParse(decryptedBanReasonId, out banReasonId))
            {
                succeeded = false;
                errors.Add("Ban reason was not found");
            }

            if (succeeded && (succeeded = Validate(commentDTO, errors)))
            {
                try
                {
                    ModeratorEntity moderatorEntity = unitOfWork.Moderators.GetByLogin(commentDTO.ModeratorLogin);
                    if (moderatorEntity == null)
                    {
                        succeeded = false;
                        errors.Add("Moderator with such login was not found");
                    }

                    BanReasonEntity banReasonEntity = unitOfWork.Bans.Get(banReasonId);
                    if (moderatorEntity == null)
                    {
                        succeeded = false;
                        errors.Add("Moderator with such login was not found");
                    }

                    CommentEntity commentEntity = unitOfWork.Comments.Get(commentId);
                    if (commentEntity == null)
                    {
                        succeeded = false;
                        errors.Add("Comment was not found");
                    }

                    if (succeeded)
                    {
                        commentEntity.BanReason          = banReasonEntity;
                        commentEntity.DateBanned         = DateTime.Now;
                        commentEntity.ModeratorWhoBanned = moderatorEntity;

                        unitOfWork.Commit();
                    }
                }
                catch (Exception ex)
                {
                    ExceptionMessageBuilder.FillErrors(ex, errors);
                    succeeded = false;
                }
            }

            return(new ServiceMessage
            {
                Errors = errors,
                Succeeded = succeeded
            });
        }