Exemple #1
0
        public ServiceMessage Edit(ModeratorEditDTO moderatorDTO)
        {
            List <string> errors    = new List <string>();
            bool          succeeded = Validate(moderatorDTO, errors);

            try
            {
                ModeratorEntity moderatorEntity = unitOfWork.Moderators.GetByLogin(moderatorDTO.Login);
                if (moderatorEntity != null)
                {
                    ApplicationUser applicationUser = moderatorEntity.User;
                    applicationUser.FirstName = moderatorDTO.FirstName;
                    applicationUser.LastName  = moderatorDTO.LastName;

                    unitOfWork.Commit();
                }
                else
                {
                    succeeded = false;
                    errors.Add("Moderator with such login was not found");
                }
            }
            catch (Exception ex)
            {
                ExceptionMessageBuilder.FillErrors(ex, errors);
                succeeded = false;
            }

            return(new ServiceMessage
            {
                Succeeded = succeeded,
                Errors = errors
            });
        }
Exemple #2
0
        public ServiceMessage RegisterModerator(ModeratorRegisterDTO moderatorDTO)
        {
            List <string> errors    = new List <string>();
            bool          succeeded = Validate(moderatorDTO, errors);

            if (succeeded)
            {
                try
                {
                    succeeded = Register(moderatorDTO, errors);
                    if (succeeded)
                    {
                        ModeratorEntity moderatorEntity = new ModeratorEntity
                        {
                            Id        = userManager.FindByName(moderatorDTO.Login).Id,
                            PhotoLink = moderatorDTO.PhotoLink
                        };

                        unitOfWork.Moderators.Add(moderatorEntity);
                        userManager.AddToRole(moderatorEntity.Id, Roles.ModeratorRole);
                    }
                }
                catch (Exception ex)
                {
                    succeeded = false;
                    ExceptionMessageBuilder.FillErrors(ex, errors);
                }
            }

            return(new ServiceMessage
            {
                Succeeded = succeeded,
                Errors = errors
            });
        }
 public ModerationController()
 {
     ModeratorSettings = new ModeratorEntity()
     {
         API = "", Lang = "eng", Secret = ""
     };
 }
Exemple #4
0
        public ServiceMessage Create(ArticleCreateDTO articleDTO)
        {
            List <string> errors    = new List <string>();
            bool          succeeded = Validate(articleDTO, errors);

            if (succeeded)
            {
                try
                {
                    CategoryEntity categoryEntity = unitOfWork.Categories.GetByName(articleDTO.CategoryName);
                    if (categoryEntity != null)
                    {
                        ModeratorEntity moderatorEntity = unitOfWork.Moderators.GetByLogin(articleDTO.AuthorLogin);
                        if (moderatorEntity != null)
                        {
                            ArticleEntity articleEntity = new ArticleEntity
                            {
                                Author           = moderatorEntity,
                                Category         = categoryEntity,
                                DateCreated      = DateTime.Now,
                                DateLastModified = DateTime.Now,
                                Header           = articleDTO.Header,
                                PhotoLink        = articleDTO.PhotoLink,
                                ShortDescription = articleDTO.ShortDescription,
                                Text             = articleDTO.Text
                            };

                            unitOfWork.Articles.Add(articleEntity);
                            unitOfWork.Commit();
                        }
                        else
                        {
                            succeeded = false;
                            errors.Add(String.Format("Moderator with login {0} was not found", articleDTO.AuthorLogin));
                        }
                    }
                    else
                    {
                        succeeded = false;
                        errors.Add(String.Format("Category with name {0} was not found", articleDTO.CategoryName));
                    }
                }
                catch (Exception ex)
                {
                    ExceptionMessageBuilder.FillErrors(ex, errors);
                    succeeded = false;
                }
            }

            return(new ServiceMessage
            {
                Errors = errors,
                Succeeded = succeeded
            });
        }
Exemple #5
0
        public DataServiceMessage <ModeratorDetailsDTO> GetDetails(string login)
        {
            List <string>       errors    = new List <string>();
            bool                succeeded = true;
            ModeratorDetailsDTO data      = null;

            try
            {
                ModeratorEntity moderatorEntity = unitOfWork.Moderators.GetByLogin(login);
                if (moderatorEntity != null)
                {
                    data = new ModeratorDetailsDTO
                    {
                        Email          = moderatorEntity.User.Email,
                        FirstName      = moderatorEntity.User.FirstName,
                        LastName       = moderatorEntity.User.LastName,
                        Login          = login,
                        PhotoLink      = moderatorEntity.PhotoLink,
                        BannedComments = moderatorEntity.BannedComments.Select(commentEntity =>
                                                                               new CommentBanDetailsDTO
                        {
                            Id             = encryptor.Encrypt(commentEntity.Id.ToString()),
                            Text           = commentEntity.Text,
                            DateBanned     = commentEntity.DateBanned.Value,
                            BanReason      = commentEntity.BanReason.Name,
                            AuthorFullName = commentEntity.Author.FirstName + " " + commentEntity.Author.LastName
                        })
                                         .OrderByDescending(comment => comment.DateBanned)
                                         .ToList()
                    };
                }
                else
                {
                    succeeded = false;
                    errors.Add("Moderator with such login was not found");
                }
            }
            catch (Exception ex)
            {
                ExceptionMessageBuilder.FillErrors(ex, errors);
                succeeded = false;
            }

            return(new DataServiceMessage <ModeratorDetailsDTO>
            {
                Succeeded = succeeded,
                Errors = errors,
                Data = data
            });
        }
Exemple #6
0
        public DataServiceMessage <ModeratorEditDTO> Get(string login)
        {
            List <string>    errors    = new List <string>();
            bool             succeeded = true;
            ModeratorEditDTO data      = null;

            try
            {
                ModeratorEntity moderatorEntity = unitOfWork.Moderators.GetByLogin(login);
                if (moderatorEntity != null)
                {
                    data = new ModeratorEditDTO
                    {
                        Email     = moderatorEntity.User.Email,
                        FirstName = moderatorEntity.User.FirstName,
                        LastName  = moderatorEntity.User.LastName,
                        Login     = login,
                        PhotoLink = moderatorEntity.PhotoLink
                    };
                }
                else
                {
                    succeeded = false;
                    errors.Add("Moderator with such login was not found");
                }
            }
            catch (Exception ex)
            {
                ExceptionMessageBuilder.FillErrors(ex, errors);
                succeeded = false;
            }

            return(new DataServiceMessage <ModeratorEditDTO>
            {
                Succeeded = succeeded,
                Errors = errors,
                Data = data
            });
        }
Exemple #7
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
            });
        }