public async Task <ActionResult <ImporterInfo> > UploadImporterFile(int id)
        {
            try
            {
                string[] importerFilePathArr = new string[3];
                for (int i = 0; i < Request.Form.Files.Count; i++)
                {
                    var v          = Request.Form;
                    var file       = Request.Form.Files[i];
                    var folderName = Path.Combine("Resources", "ImporterInfoDoc");
                    var pathToSave = Path.Combine(Directory.GetCurrentDirectory(), folderName);
                    if (file.Length > 0)
                    {
                        // var fileName = ContentDispositionHeaderValue.Parse(file.ContentDisposition).FileName.Trim('"');
                        var gid      = Guid.NewGuid();
                        var fileName = gid + ".pdf";
                        var fullPath = Path.Combine(folderName, fileName);
                        var dbPath   = Path.Combine(fileName);
                        importerFilePathArr[i] = dbPath;
                        using (var stream = new FileStream(fullPath, FileMode.Create))
                        {
                            file.CopyTo(stream);
                        }
                    }
                }
                ImporterInfo updatedImporter = await _authRepository.UpdateImporterFilePath(id, importerFilePathArr);

                return(updatedImporter);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        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 <ActionResult <ImporterInfo> > RegisterImporter(ImporterInfoDto importerInfoDto)
        {
            importerInfoDto.Username = importerInfoDto.Username.ToLower();
            if (!await _authRepository.UserExist(importerInfoDto.Username))
            {
                return(BadRequest("Username is Already Exist"));
            }

            var userLoginToCreate = new UserLogin
            {
                Username    = importerInfoDto.Username,
                UserType    = "I",
                CreatedDate = DateTime.Now,
                UpdatedDate = DateTime.Now
            };
            var createdUserLogin = await _authRepository.CreateUserLogin(userLoginToCreate, importerInfoDto.Password);

            ImporterInfo importer = null;

            if (createdUserLogin.Id > 0)
            {
                importer = await _authRepository.Register(importerInfoDto, createdUserLogin.Id);
            }
            return(importer);
        }
        public async Task <ImporterInfo> UpdateImporterFilePath(int id, string[] Arr)
        {
            ImporterInfo targetedImporter = await _nmsDataContext.ImporterInfos.FirstOrDefaultAsync(i => i.Id == id);

            targetedImporter.DlsLicenseScan = Arr[0] == null ? null : Arr[0].Replace("\\", "/");
            targetedImporter.NidScan        = Arr[1] == null ? null : Arr[1].Replace("\\", "/");
            targetedImporter.IrcScan        = Arr[2] == null ? null : Arr[2].Replace("\\", "/");

            if (id > 0 && targetedImporter != null)
            {
                _nmsDataContext.ImporterInfos.Attach(targetedImporter);
                await _nmsDataContext.SaveChangesAsync();
            }
            return(targetedImporter);
        }