public async Task <ImporterInfo> Register(ImporterInfoDto importerInfoDto, int id)
        {
            ImporterInfo importerInfo = new ImporterInfo
            {
                OrgName        = importerInfoDto.OrgName,
                ContactName    = importerInfoDto.ContactName,
                Position       = importerInfoDto.Position,
                ContactNo      = importerInfoDto.ContactNo,
                Email          = importerInfoDto.Email.ToLower(),
                Division       = importerInfoDto.Division,
                District       = importerInfoDto.District,
                Upazila        = importerInfoDto.Upazila,
                Address        = importerInfoDto.Address,
                DlsLicenseType = importerInfoDto.DlsLicenseType,
                DlsLicenseNo   = importerInfoDto.DlsLicenseNo,
                //DlsLicenseScan = importerInfoDto.DlsLicenseScan,
                NidNo = importerInfoDto.NidNo,
                //NidScan = importerInfoDto.NidScan,
                //IrcScan = importerInfoDto.IrcScan,
                UserId = id
            };
            await _nmsDataContext.ImporterInfos.AddAsync(importerInfo);

            bool result = await _nmsDataContext.SaveChangesAsync() > 0;

            UserRoleConf userRoleConf = null;

            if (result)
            {
                userRoleConf = await AssignImporterToRole(importerInfo.UserId);
            }
            // ********need to be delete the user for Assign ImporterTRole failed ****************** ///
            return(importerInfo);
        }
        public async Task <UserRoleConf> CreateUserRoleConf(GetUserRoleConfForEditOutput createUserRoleDto)
        {
            UserRoleConf userRole = new UserRoleConf
            {
                UserId = createUserRoleDto.UserId,
                RoleId = createUserRoleDto.RoleId
            };
            await _context.UserRoleConfs.AddAsync(userRole);

            await _context.SaveChangesAsync();

            return(userRole);
        }
        public async Task <GetUserRoleConfForViewDto> EditUserRoleConf(int id, GetUserRoleConfForEditOutput editOutput)
        {
            UserRoleConf userRole = await _context.UserRoleConfs.FirstOrDefaultAsync(i => i.Id == id);

            if (userRole != null)
            {
                userRole.UserId = editOutput.UserId;
                userRole.RoleId = editOutput.RoleId;
            }
            _context.UserRoleConfs.Update(userRole);
            await _context.SaveChangesAsync();

            var updatedRoleInfo = await GetUserRoleConf(userRole.Id);

            return(updatedRoleInfo);
        }
        private async Task <UserRoleConf> AssignImporterToRole(int userId)
        {
            UserRoleConf userRoleConf = null;

            if (userId > 0)
            {
                userRoleConf = new UserRoleConf
                {
                    UserId = userId,
                    RoleId = 2
                };
                await _nmsDataContext.UserRoleConfs.AddAsync(userRoleConf);

                _nmsDataContext.SaveChanges();
            }
            return(userRoleConf);
        }