Exemplo n.º 1
0
        public async Task <ActionResult> RegisterUser(User user)
        {
            if (!ModelState.IsValid)
            {
                return(GetValidationMessages().ToJsonResult());
            }

            var existsUserName = await ModelRepository
                                 .SingleAsync(existingUser => string.Equals(existingUser.UserName, user.UserName, StringComparison.InvariantCultureIgnoreCase)).ConfigureAwait(false);

            if (existsUserName != null)
            {
                return(string.Format("El usuario '{0}' ya existe en el sistema", user.UserName).ToJsonResult());
            }

            user.RoleId       = Settings.DefaultUserRoleDbId;
            user.IsAuthorized = false;

            var userToSave = Mapper.Map <DataAccess.Entities.User>(user);

            userToSave = await ModelRepository.AddAsync(userToSave).ConfigureAwait(false);

            var savedUser = Mapper.Map <User>(userToSave);

            var recipients = (await ModelRepository
                              .GetAllAsync(admin => admin.RoleId == Settings.AdministratorUserRoleDbId))
                             .Select(admin => admin.Email);

            var htmlBody = user.GetHtmlFromXslt(Server.MapPath(Settings.NewUserTemplateFilePath), XsltParameters);

            await _emailSender.Send(Settings.SmtpEmail, recipients, Settings.NewUserAuthorizationSubject, htmlBody);

            return(savedUser.ToJsonResult());
        }
Exemplo n.º 2
0
        public override async Task <ActionResult> Save(Report report)
        {
            if (!ModelState.IsValid)
            {
                return(GetValidationMessages().ToJsonResult());
            }

            report.CreationDate = DateTime.Now;

            var dbReport    = Mapper.Map <DataAccess.Entities.Report>(report);
            var savedReport = await ModelRepository.AddAsync(dbReport);

            report = Mapper.Map <Report>(savedReport);

            var recipients = (await _userRepository
                              .GetAllAsync(admin => admin.RoleId == Settings.AdministratorUserRoleDbId))
                             .Select(admin => admin.Email);

            XsltParameters[XsltReportFolioUrlParam] = report.Id;

            var htmlBody = LoggedInUserInfo.User.GetHtmlFromXslt(Server.MapPath(Settings.NewReportTemplateFilePath), XsltParameters);
            var subject  = string.Format(Settings.NewReportSubject, report.Id);

            await _emailSender.Send(Settings.SmtpEmail, recipients, subject, htmlBody);

            return(report.ToJsonResult());
        }