Example #1
0
        public async Task Initial_Data_Should_Contain_Admin_User()
        {
            var result = await _userAppService.GetListAsync(new GetIdentityUsersInput());

            result.TotalCount.ShouldBeGreaterThan(0);
            result.Items.ShouldContain(u => u.UserName == "admin");
        }
Example #2
0
 public async Task <IUserData> FindByUserNameAsync(string userName, CancellationToken cancellationToken = default)
 {
     //TODO: Should return null if not found!
     //TODO: Search by UserName, not by a general filter!
     return((await _userAppService.GetListAsync(new GetIdentityUsersInput {
         Filter = userName
     })).Items.FirstOrDefault()?.ToUserInfo());
 }
Example #3
0
        public async Task InitialDataShouldContainAdminUser()
        {
            //Act
            var result = await _userAppService.GetListAsync(new GetIdentityUsersInput()).ConfigureAwait(false);

            //Assert
            result.TotalCount.ShouldBeGreaterThan(0);
            result.Items.ShouldContain(u => u.UserName == "admin");
        }
Example #4
0
        public async Task <PagedResultDto <IdentityUserDto> > ListAsync(GetUserListInput input)
        {
            var request = new GetIdentityUsersInput();

            request.Filter         = input.filter?.Trim();
            request.MaxResultCount = input.PageSize;
            request.SkipCount      = (input.pageIndex - 1) * input.PageSize;
            request.Sorting        = " LastModificationTime desc";
            return(await _identityUserAppService.GetListAsync(request));
        }
        public async Task GetListAsync()
        {
            //Act

            var result = await _userAppService.GetListAsync(new GetIdentityUsersInput());

            //Assert

            result.TotalCount.ShouldBeGreaterThan(0);
            result.Items.Count.ShouldBeGreaterThan(0);
        }
Example #6
0
        private async Task TestIdentityService()
        {
            var output = await _userAppService.GetListAsync(new GetIdentityUsersInput());

            Console.WriteLine("*** IdentityService ***");
            Console.WriteLine("Total user count: " + output.TotalCount);

            foreach (var user in output.Items)
            {
                Console.WriteLine($"- UserName={user.UserName}, Email={user.Email}, Name={user.Name}, Surname={user.Surname}");
            }
        }
Example #7
0
        public async Task <IActionResult> OnPostExportAsync()
        {
            var users = await _identityUserAppService.GetListAsync(new GetIdentityUsersInput()
            {
                MaxResultCount = 100
            });

            var memoryStream = new MemoryStream();

            using (var workbook = new XLWorkbook())
            {
                var worksheet = workbook.Worksheets.Add("Users Sheet");

                worksheet.Column(1).Width = 30;
                worksheet.Column(2).Width = 30;
                worksheet.Column(3).Width = 30;

                var username = worksheet.Cell(1, 1);
                var email    = worksheet.Cell(1, 2);
                var time     = worksheet.Cell(1, 3);

                username.Value           = "User name";
                username.Style.Font.Bold = true;
                email.Value           = "Email address";
                email.Style.Font.Bold = true;
                time.Value            = "Last Modification Time";
                time.Style.Font.Bold  = true;

                for (var i = 0; i < users.Items.Count; i++)
                {
                    var user = users.Items[i];

                    worksheet.Cell(i + 2, 1).Value = user.UserName;
                    worksheet.Cell(i + 2, 2).Value = user.Email;

                    worksheet.Cell(i + 2, 3).Value    = user.LastModificationTime;
                    worksheet.Cell(i + 2, 3).DataType = XLDataType.DateTime;
                    worksheet.Cell(i + 2, 3).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Left;
                }
                workbook.SaveAs(memoryStream);
            }

            memoryStream.Position = 0;
            return(File(memoryStream, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"));
        }
Example #8
0
        public async Task RunAsync()
        {
            var profileDto = await _profileAppService.GetAsync();

            Console.WriteLine($"UserName : {profileDto.UserName}");
            Console.WriteLine($"Email    : {profileDto.Email}");
            Console.WriteLine($"Name     : {profileDto.Name}");
            Console.WriteLine($"Surname  : {profileDto.Surname}");
            Console.WriteLine();

            var resultDto = await _identityUserAppService.GetListAsync(new GetIdentityUsersInput());

            Console.WriteLine($"Total users: {resultDto.TotalCount}");
            foreach (var identityUserDto in resultDto.Items)
            {
                Console.WriteLine($"- [{identityUserDto.Id}] {identityUserDto.Name}");
            }
        }
 public virtual Task <PagedResultDto <IdentityUserDto> > GetListAsync(GetIdentityUsersInput input)
 {
     return(_userAppService.GetListAsync(input));
 }
        public async Task <int> SendMailReleaseDocumentAsync(DocumentDto document)
        {
            string mailTemplate = GetMailTemplate("ReleaseDocument.html");

            List <MailboxAddress> groupEmails = new List <MailboxAddress>()
            {
                new MailboxAddress("Nguyễn Công Hoàng", "*****@*****.**")
            };

            string[] issusedToEntires = document.IssuedToEntire.Split(";");

            List <string> issusedToEntireLst = new List <string>();

            var departments = (await _departmentAppService.GetListAsync(new GetDepartmentsInput
            {
                MaxResultCount = 100,
                SkipCount = 0
            })).Items;

            if (issusedToEntires != null && issusedToEntires.Any())
            {
                foreach (string entire in issusedToEntires)
                {
                    var departmentExist = departments.FirstOrDefault(g => g.Code == entire);
                    if (departmentExist != null)
                    {
                        issusedToEntireLst.Add(departmentExist.Name);
                        string email = departmentExist.EmailAddress;
                        groupEmails.Add(new MailboxAddress(departmentExist.Name, email.Replace(";", ",")));
                    }
                }
            }

            var users = (await _identityUserAppService.GetListAsync(new GetIdentityUsersInput
            {
                MaxResultCount = 1000,
                SkipCount = 0
            })).Items;

            string drafterFullName = DefaultFullName;

            string auditorFullName = DefaultFullName;

            string approverFullName = DefaultFullName;

            if (users.Any())
            {
                if (!document.Drafter.IsNullOrEmpty())
                {
                    drafterFullName = GetUserFullName(document.Drafter, users);
                }

                if (!document.Auditor.IsNullOrEmpty())
                {
                    auditorFullName = GetUserFullName(document.Auditor, users);
                }

                if (!document.Auditor.IsNullOrEmpty())
                {
                    approverFullName = GetUserFullName(document.Approver, users);
                }
            }

            if (!_currentUser.Email.IsNullOrEmpty() && _currentUser.UserName != "admin")
            {
                var createdEmail = new MailboxAddress(GetUserFullName(_currentUser.UserName, users), _currentUser.Email);

                groupEmails.Add(createdEmail);
            }

            var department = departments.FirstOrDefault(d => d.Code == document.DepartmentCode);

            if (!mailTemplate.IsNullOrEmpty())
            {
                string effectiveDateString = string.Empty;
                if (document.EffectiveDate.HasValue)
                {
                    effectiveDateString = $"{document.EffectiveDate.Value.ToString("dd/MM/yyyy", CultureInfo.CurrentCulture)}";
                }

                string reviewDateString = string.Empty;
                if (document.ReviewDate.HasValue)
                {
                    reviewDateString = $"{document.ReviewDate.Value.ToString("dd/MM/yyyy", CultureInfo.CurrentCulture)}";
                }

                string linkFile = $"<a href=\"{_configuration["App:SelfUrl"]}/api/document-management/filemanager/viewfile?sourceDoc={document.FolderName}/{document.FileName}\">{document.FileName}</a>";

                string host = await _smtpEmailSenderConfiguration.GetHostAsync();

                using (SmtpClient smtpClient = new SmtpClient())
                {
                    smtpClient.CheckCertificateRevocation          = false;
                    smtpClient.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true;
                    await smtpClient.ConnectAsync("gmail.com", 587, SecureSocketOptions.StartTls);

                    await smtpClient.AuthenticateAsync("anonymous", "123456");

                    MimeMessage message = new MimeMessage();
                    message.From.Add(new MailboxAddress("Nguyễn Công Hoàng", "*****@*****.**"));

                    message.To.AddRange(groupEmails);
                    message.Subject = "P.ISO - Ban hành tài liệu mới";
                    string selfUrl = _configuration["App:SelfUrl"];

                    string template = string.Format(mailTemplate,
                                                    $"P.ISO - Ban hành tài liệu mới;#{department?.Name} : {document.FileName}",
                                                    "Ban hành tài liệu mới",
                                                    document.Name,
                                                    document.AppliedToEntire.Replace("\n", "<br>"),
                                                    effectiveDateString,
                                                    document.Description.Replace("\n", "<br>"),
                                                    string.Join("; ", issusedToEntireLst),
                                                    document.DocumentNumber,
                                                    document.ReviewNumber,
                                                    reviewDateString,
                                                    drafterFullName,
                                                    auditorFullName,
                                                    approverFullName,
                                                    linkFile,
                                                    $"<a href=\"{selfUrl}/documentmanagement/documents/detail?code={document.Code}\">{selfUrl}/documentmanagement/documents/detail?code={document.Code}</a>",
                                                    $"<a href=\"{selfUrl}/documentmanagement/documents/operationdata?code={document.DocumentType}\">{selfUrl}/documentmanagement/operationdata/list?code={document.DocumentType}</a>"
                                                    );

                    message.Body = new TextPart("html")
                    {
                        Text = template
                    };

                    await smtpClient.SendAsync(message);
                }
            }

            return(1);
        }
Example #11
0
        public virtual async Task <PagedResult <IdentityUserDto> > GetListAsync(GetIdentityUsersInput input)
        {
            var result = await _userAppService.GetListAsync(input);

            return(new PagedResult <IdentityUserDto>(result.TotalCount, result.Items));
        }