public async Task <CommandResult> AddResourceAsync(AddResourceDTO dto)
        {
            var cmd = ToCommandBuilder.MapAddResourceCommand(dto);

            var commandResult = await mediator.Send(cmd);

            return(commandResult);
        }
示例#2
0
 public static AddResourceCommand MapAddResourceCommand(AddResourceDTO dto)
 {
     return(new AddResourceCommand()
     {
         Amount = dto.Amount,
         Name = dto.Name,
         Observations = dto.Observations
     });
 }
示例#3
0
        public async Task <IActionResult> Post([FromBody] AddResourceDTO resource)
        {
            var result = await _resourceAppService.AddResourceAsync(resource);

            return(ApiResponse(result));
        }
示例#4
0
        public static async Task Seed(ApplicationDbContext context, RoleManager <IdentityRole <int> > roleManager,
                                      UserManager <ExtendedIdentityUser> userManager, IHostingEnvironment env, IAdminService adminService, IMaintenanceService maintenanceService)
        {
            context.Database.EnsureCreated();

            string adminRole    = nameof(Role.ADMINISTRATOR);
            string dpoRole      = nameof(Role.DPO);
            string userRole     = nameof(Role.USER);
            string deptHeadRole = nameof(Role.DEPTHEAD);

            if (await roleManager.FindByNameAsync(adminRole) == null)
            {
                var ir = await roleManager.CreateAsync(new IdentityRole <int>(adminRole));
            }

            if (await roleManager.FindByNameAsync(dpoRole) == null)
            {
                var ir = await roleManager.CreateAsync(new IdentityRole <int>(dpoRole));
            }

            if (await roleManager.FindByNameAsync(userRole) == null)
            {
                var ir = await roleManager.CreateAsync(new IdentityRole <int>(userRole));
            }

            if (await roleManager.FindByNameAsync(deptHeadRole) == null)
            {
                var ir = await roleManager.CreateAsync(new IdentityRole <int>(deptHeadRole));
            }

            var admin = await userManager.GetUsersInRoleAsync(adminRole);

            var adminUser = string.Empty;

            var x = (context.GetService <IDatabaseCreator>() as RelationalDatabaseCreator).Exists();

            //validation if database was already seeded
            if (!context.Users.Any())
            {
                var dataPath = Path.Combine(env.ContentRootPath, "Data", "seed");
                if (Directory.Exists(dataPath))
                {
                    var adminSettings = Path.Combine(dataPath, "adminSettings.json");
                    if (File.Exists(adminSettings))
                    {
                        UserDTO sa = JsonConvert.DeserializeObject <UserDTO>(System.IO.File.ReadAllText(adminSettings));

                        if (admin.Count() == 0)
                        {
                            var addAdmin = new ExtendedIdentityUser {
                                UserName = sa.UserName, Email = sa.Email, FirstName = sa.FirstName, LastName = sa.LastName, EmailConfirmed = sa.EmailConfirmed
                            };
                            var result = await userManager.CreateAsync(addAdmin, sa.Password);

                            if (result.Succeeded)
                            {
                                var addrole = await userManager.AddToRoleAsync(addAdmin, adminRole);

                                //File.Delete(adminSettings);
                            }
                            adminUser = addAdmin.Id.ToString();
                        }
                        else
                        {
                            adminUser = admin.FirstOrDefault().Id.ToString();
                        }
                    }

                    var dpoSettings = Path.Combine(dataPath, "dposettings.json");
                    if (File.Exists(dpoSettings))
                    {
                        UserDTO sa = JsonConvert.DeserializeObject <UserDTO>(System.IO.File.ReadAllText(dpoSettings));

                        if (admin.Count() == 0)
                        {
                            var addDpo = new ExtendedIdentityUser {
                                UserName = sa.UserName, Email = sa.Email, FirstName = sa.FirstName, LastName = sa.LastName, EmailConfirmed = sa.EmailConfirmed
                            };
                            var result = await userManager.CreateAsync(addDpo, sa.Password);

                            if (result.Succeeded)
                            {
                                var addrole = await userManager.AddToRoleAsync(addDpo, dpoRole);

                                //File.Delete(adminSettings);
                            }
                        }
                    }

                    var fields = Path.Combine(dataPath, "default-fields.json");
                    if (File.Exists(fields))
                    {
                        List <AddFieldDTO> dto = JsonConvert.DeserializeObject <List <AddFieldDTO> >(System.IO.File.ReadAllText(fields));
                        var addresult          = await adminService.AddFields(dto, adminUser);

                        if (addresult.Success)
                        {
                            //File.Delete(fields);
                        }
                    }

                    var departments = Path.Combine(dataPath, "default-departments.json");
                    if (File.Exists(departments))
                    {
                        List <AddDepartmentDTO> dto = JsonConvert.DeserializeObject <List <AddDepartmentDTO> >(System.IO.File.ReadAllText(departments));

                        foreach (AddDepartmentDTO item in dto)
                        {
                            await maintenanceService.CreateDepartment(item, adminUser);
                        }
                    }

                    var modules = Path.Combine(dataPath, "modules.json");
                    if (File.Exists(modules))
                    {
                        List <AddModuleDTO> dto = JsonConvert.DeserializeObject <List <AddModuleDTO> >(System.IO.File.ReadAllText(modules));
                        var addresult           = await adminService.AddModules(dto, adminUser);

                        if (addresult.Success)
                        {
                            //File.Delete(modules);
                        }
                    }

                    var datasets = Path.Combine(dataPath, "dataset.json");
                    if (File.Exists(datasets))
                    {
                        List <AddDatasetDTO> dto = JsonConvert.DeserializeObject <List <AddDatasetDTO> >(System.IO.File.ReadAllText(datasets));
                        var addresult            = await adminService.AddDatasets(dto, adminUser);

                        if (addresult.Success)
                        {
                            //File.Delete(modules);
                        }
                    }

                    var userGuide = Path.Combine(dataPath, "user-guide.json");
                    if (File.Exists(datasets))
                    {
                        AddResourceDTO dto       = JsonConvert.DeserializeObject <AddResourceDTO>(System.IO.File.ReadAllText(userGuide));
                        var            addresult = await adminService.CreateUserGuideResource(dto, adminUser);

                        if (addresult.Success)
                        {
                            //File.Delete(modules);
                        }
                    }
                }
            }
        }
示例#5
0
        public async Task <Result> CreateResource(AddResourceDTO dto, string userId, IFormFile file)
        {
            var result = new Result();

            try
            {
                string rootFolder = _hostingEnvironment.WebRootPath;
                //todo: create validation

                /*----------------ADD FILE TO SERVER-----------------*/
                //Getting FileName
                var fileName = System.Net.Http.Headers.ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');

                //Assigning Unique Filename (Guid)
                var myUniqueFileName = Convert.ToString(Guid.NewGuid());

                var ResourceFolder = "Resource";

                //Getting file Extension
                var FileExtension = Path.GetExtension(fileName);

                var newFileName = fileName;

                // Combines two strings into a path.
                if (!Directory.Exists(Path.Combine(_hostingEnvironment.WebRootPath, ResourceFolder)))
                {
                    Directory.CreateDirectory(Path.Combine(_hostingEnvironment.WebRootPath, ResourceFolder));
                }

                fileName = Path.Combine(_hostingEnvironment.WebRootPath, ResourceFolder) + $@"\{newFileName}";
                bool doFileExist = await _queryService.DoFileExist(ResourceFolder, fileName);

                //Getting file Extension
                FileExtension = Path.GetExtension(fileName);

                // if you want to store path of folder in database
                var PathDB = ResourceFolder + "/" + newFileName;

                using (FileStream fs = System.IO.File.Create(fileName))
                {
                    file.CopyTo(fs);
                    fs.Flush();
                }
                /*----------------ADD FILE TO SERVER-----------------*/

                var resource = new Resource
                {
                    NameOfDocument = dto.NameOfDocument,
                    TypeOfDocument = dto.TypeOfDocument,
                    FilePath       = PathDB,
                    CreatedDate    = DateTime.Now,
                    CreatedBy      = userId
                };
                _repo.Create(resource);
                await _repo.SaveAsync();

                result.Id      = resource.Id.ToString();
                result.Message = "Resource has been successfully Added.";
                result.Success = true;
            }
            catch (Exception e)
            {
                result.Message   = "Error adding resource";
                result.ErrorCode = ErrorCode.EXCEPTION;
                _logger.LogError("Error calling CreateResource: {0}", e.Message);
            }

            return(result);
        }