Exemple #1
0
        protected override bool ValidatePost(System.Web.Http.ModelBinding.ModelStateDictionary validationDictionary, Client currentClient, MailModel entity, object param, params object[] additionalObjects)
        {
            IMailConfigRepository repo        = (IMailConfigRepository)additionalObjects[0];
            List <string>         recipients  = (List <string>)additionalObjects[1];
            List <Document>       attachments = (List <Document>)additionalObjects[2];

            MailController.AdditionalRepositories addRepo = (MailController.AdditionalRepositories)param;

            NullCheckValidation.NullValidation(TypeOfName.GetNameFromType <MailModel>(), new Dictionary <String, Object>()
            {
                { "Body", entity.Body },
                { "Subject", entity.Subject },
                { "Password", entity.Password }
            }, validationDictionary);
            if (repo.GetMailConfigById(entity.MailConfigId, currentClient.Id) == null)
            {
                validationDictionary.AddModelError(String.Format(GenericNames.MODEL_STATE_FORMAT, TypeOfName.GetNameFromType <MailModel>(), "MailConfigId"), GenericError.FORBIDDEN_RESOURCE_OR_DOES_NO_EXIST);
            }
            if (entity.To.Count == 0)
            {
                validationDictionary.AddModelError(String.Format(GenericNames.MODEL_STATE_FORMAT, TypeOfName.GetNameFromType <MailModel>(), "To"), GenericError.CANNOT_BE_NULL_OR_EMPTY);
            }
            try
            {
                Encoding.UTF8.GetString(Convert.FromBase64String(entity.Password));
            }
            catch (Exception)
            {
                validationDictionary.AddModelError(String.Format(GenericNames.MODEL_STATE_FORMAT, TypeOfName.GetNameFromType <MailModel>(), "Password"), GenericError.DOES_NOT_MEET_REQUIREMENTS);
            }
            foreach (int cur in entity.To)
            {
                People p = addRepo.PeopleRepo.GetPeopleById(cur, currentClient.Id);
                if (p == null)
                {
                    validationDictionary.AddModelError(String.Format(GenericNames.MODEL_STATE_FORMAT, TypeOfName.GetNameFromType <MailModel>(), "To"), GenericError.FORBIDDEN_RESOURCE_OR_DOES_NO_EXIST);
                    return(false);
                }
                if (p.AcceptMailing == true && p.Email != null)
                {
                    recipients.Add(p.Email);
                }
            }
            if (entity.Attachments != null)
            {
                foreach (int cur in entity.Attachments)
                {
                    Document d = addRepo.DocumentRepo.GetDocumentById(cur, currentClient.Id);
                    if (d == null)
                    {
                        validationDictionary.AddModelError(String.Format(GenericNames.MODEL_STATE_FORMAT, TypeOfName.GetNameFromType <MailModel>(), "Attachments"), GenericError.FORBIDDEN_RESOURCE_OR_DOES_NO_EXIST);
                        return(false);
                    }
                    attachments.Add(d);
                }
            }
            return(validationDictionary.IsValid);
        }
Exemple #2
0
 public MailService(ModelStateDictionary validationDictionnary, IMailConfigRepository repo, IValidation <MailModel> validation) : base(validationDictionnary, validation)
 {
     this.repo = repo;
 }
Exemple #3
0
 public MailController(IMailConfigRepository repo, IValidation <MailModel> validation) : base(repo, validation)
 {
     this.repo = repo;
 }
Exemple #4
0
 /// <summary>
 /// interface inject
 /// </summary>
 /// <param name="log">log</param>
 /// <param name="repository">repository</param>
 public MailConfigAppService(ILogger <MailConfigAppService> log, IMailConfigRepository repository)
 {
     _log        = log;
     _repository = repository;
 }
Exemple #5
0
 public EmailConfigService(IUnitOfWork unitOfWork, IMailConfigRepository mailConfigRepository)
 {
     this._unitOfWork           = unitOfWork;
     this._mailConfigRepository = mailConfigRepository;
 }
 public MailController(IMailConfigRepository repo, IValidation<MailModel> validation) : base(repo, validation)
 {
     this.repo = repo;
 }
Exemple #7
0
 public MailConfigService(IMailConfigRepository repo, IValidation <MailConfig> validation)
     : base(validation, repo)
 {
     this.repo = repo;
 }