0

Here is my UserMenu.cs class below.

public class UsersMenu
{
    public UsersMenu()
    {
        sectionList = new List<Section>();
        moduleList = new List<Module>();
        taskList = new List<Task>();
        subTaskList = new List<SubTask>();
    }
    public string LevelNo { get; set; }
    public string LevelId { get; set; }
    public Section section { get; set; }
    public List<Section> sectionList { get; set; }
    public Module module { get; set; }
    public List<Module> moduleList { get; set; }
    public Task task { get; set; }
    public List<Task> taskList { get; set; }
    public SubTask subTask { get; set; }
    public List<SubTask> subTaskList { get; set; }
}

Now if I try to use the UsersMenu DI in the class UsersCompanyManager.cs as shown below.

namespace Identity.API.Business
{
    public class UsersCompanyManager : IUsersCompanyManager
    {
    
        private readonly IUsersCompanyDB usersCompanyDB;
        private UsersMenu _UsersMenu;
    
        public UsersCompanyManager(IUsersCompanyDB usersCompanyDB)
        {
           this.usersCompanyDB = usersCompanyDB;
        }
    
        public UsersCompanyManager(UsersMenu UsersMenu)
        {
           _usersMenu = UsersMenu;
        }
    
        public UsersMenu PermissionLevelMenu(UsersMenu usersMenu)
        {
           var test = _UsersMenu; //gives null
           return usersCompanyDB.PermissionLevelMenu(usersMenu);
        }
    }
    
}

This comes null var test = _UsersMenu; and will show object reference is not set to an instance of an object issue if I try to use it anywhere else. Here is snapshot for it below.
null object

Update 1:

namespace Identity.API.Interfaces
{
    public interface IUsersCompanyDB
    {
        IList<UsersCompany> GetUsersCompany(string ID);
        int UpsertUsersCompany(UsersCompany usersCompany);
        int AddUsersCompany(UsersCompany usersCompany);
        int UpdateUsersCompany(UsersCompany usersCompany);
        IList<UserDTO> Search(SearchUser searchUser);
        int UpsertUsersRoles(Role usersRole);
        IList<Role> GetUsersRoles(string UserId);
        UsersMenu PermissionLevelMenu(UsersMenu usersMenu);
    }
}

Update 2:

namespace Identity.API.DataAccess
{
    public class UsersCompanyDB : DataAccessBase, IUsersCompanyDB
    {
        private UsersMenu _UsersMenu;

        public UsersCompanyDB(IDatabase database = null, ApplicationExecutionContext context = null) : base(database, context)
        {
        }
        public UsersCompanyDB(UsersMenu UsersMenu)
        {
            _UsersMenu = UsersMenu;
        }

        IList<UsersCompany> IUsersCompanyDB.GetUsersCompany(string Id) => (IList<UsersCompany>)this.Database.Read("lm_company_users_get",
                DbUtils.MakeProperties<UsersCompany>()
                       .AddProperty(ut => ut.ID)
                       .AddProperty(ut => ut.AddressID)
                       .AddProperty(ut => ut.FirstName)
                       .AddProperty(ut => ut.LastName)
                       .AddProperty(ut => ut.UserName)
                       .AddProperty(ut => ut.FullName)
                       .AddProperty(ut => ut.PasswordHash)
                       .AddProperty(ut => ut.PasswordSalt)
                       .AddProperty(ut => ut.Password)
                       .AddProperty(ut => ut.Role)
                       .AddProperty(ut => ut.UpdateDate)
                       .AddProperty(ut => ut.Email)
                       .AddProperty(ut => ut.Website)
                       .AddProperty(ut => ut.Language)
                       .AddProperty(ut => ut.CompanyID)
                       .AddProperty(ut => ut.BusinessUnitID)
                       .AddProperty(ut => ut.Occupation)
                       .AddProperty(ut => ut.AccessToken)
                       .AddProperty(ut => ut.RefreshToken)
                       .AddProperty(ut => ut.Title)
                       .AddProperty(ut => ut.CellPhoneNo)
                       .AddProperty(ut => ut.UserPhoneNo)
                       .AddProperty(ut => ut.UserFax)
                       .AddProperty(ut => ut.CustomerAccess)
                       .AddProperty(ut => ut.TimeZone)
                       .AddProperty(ut => ut.SendEmail)
                       .AddProperty(ut => ut.SendPhone)
                       .AddProperty(ut => ut.Pic)
                       .AddProperty(ut => ut.LegalName)
                       .AddProperty(ut => ut.DbaName)
                       .AddProperty(ut => ut.Address1)
                       .AddProperty(ut => ut.Address2)
                       .AddProperty(ut => ut.City)
                       .AddProperty(ut => ut.State)
                       .AddProperty(ut => ut.ZipCode)
                       .AddProperty(ut => ut.Country)
                       .AddProperty(ut => ut.PhoneNo)
                       .AddProperty(ut => ut.Fax)
                       .AddProperty(ut => ut.CompanyName)
                       .AddProperty(ut => ut.CompanyEmail)
                       .AddProperty(ut => ut.CompanyWebsite)
                       .AddProperty(ut => ut.TaxId)
                       .AddProperty(ut => ut.Active)
                       .AddProperty(ut => ut.EIN)
                       .AddProperty(ut => ut.SSN)
                       .AddProperty(ut => ut.CompanyLogo)
                       .AddProperty(ut => ut.IpAddress)
                       .AddProperty(ut => ut.OTP)
                       .AddProperty(ut => ut.VerififedOTP)
                       .AddProperty(ut => ut.CompanyID)
                       .AddProperty(ut => ut.CreateDate)
                       .AddProperty(ut => ut.LinkedIn)
                       .AddProperty(ut => ut.Facebook)
                       .AddProperty(ut => ut.Twitter)
                       .AddProperty(ut => ut.Instagram)
                       .AddProperty(ut => ut.CountryLocal)
                       .AddProperty(ut => ut.Type)
                       .AddProperty(ut => ut.SendSms),
                    DbUtils.MakeParams().Add("@Id", Id));
        public int UpsertUsersCompany(UsersCompany usersCompany)
        {
            try
            {
                return this.Database.Execute("lm_users_upsert",
                DbUtils.MakeParams()
                 .Add("@ID", usersCompany.ID)
                 .Add("@AddressID", usersCompany.AddressID)
                 .Add("@FirstName", usersCompany.FirstName)
                 .Add("@LastName", usersCompany.LastName)
                 .Add("@UserName", usersCompany.UserName)
                 .Add("@FullName", usersCompany.FullName)
                 .Add("@PasswordHash", usersCompany.PasswordHash)
                 .Add("@PasswordSalt", usersCompany.PasswordSalt)
                 .Add("@Password", usersCompany.Password)
                 .Add("@Role", usersCompany.Role)
                 .Add("@Email", usersCompany.Email)
                 .Add("@Website", usersCompany.Website)
                 .Add("@Language", usersCompany.Language)
                 .Add("@Occupation", usersCompany.Occupation)
                 .Add("@AccessToken", usersCompany.AccessToken)
                 .Add("@RefreshToken", usersCompany.RefreshToken)
                 .Add("@Title", usersCompany.Title)
                 .Add("@CellPhoneNo", usersCompany.CellPhoneNo)
                 .Add("@UserPhoneNo", usersCompany.UserPhoneNo)
                 .Add("@UserFax", usersCompany.UserFax)
                 .Add("@CustomerAccess", usersCompany.CustomerAccess)
                 .Add("@TimeZone", usersCompany.TimeZone)
                 .Add("@SendEmail", usersCompany.SendEmail)
                 .Add("@SendPhone", usersCompany.SendPhone)
                 .Add("@Pic", usersCompany.Pic)
                 .Add("@LegalName", usersCompany.LegalName)
                 .Add("@DbaName", usersCompany.DbaName)
                 .Add("@Address1", usersCompany.Address1)
                 .Add("@Address2", usersCompany.Address2)
                 .Add("@City", usersCompany.City)
                 .Add("@State", usersCompany.State)
                 .Add("@ZipCode", usersCompany.ZipCode)
                 .Add("@Country", usersCompany.Country)
                 .Add("@PhoneNo", usersCompany.PhoneNo)
                 .Add("@Fax", usersCompany.Fax)
                 .Add("@CompanyName", usersCompany.CompanyName)
                 .Add("@CompanyEmail", usersCompany.CompanyEmail)
                 .Add("@CompanyWebsite", usersCompany.CompanyWebsite)
                 .Add("@TaxId", usersCompany.TaxId)
                 .Add("@Active", usersCompany.Active)
                 .Add("@EIN", usersCompany.EIN)
                 .Add("@SSN", usersCompany.SSN)
                 .Add("@CompanyLogo", usersCompany.CompanyLogo)
                 .Add("@IpAddress", usersCompany.IpAddress)
                 .Add("@OTP", usersCompany.OTP)
                  .Add("@VerififedOTP", usersCompany.VerififedOTP)
                 .Add("@CompanyID", usersCompany.CompanyID)
                 .Add("@Type", usersCompany.Type)
                 .Add("@LinkedIn", usersCompany.LinkedIn)
                 .Add("@Facebook", usersCompany.Facebook)
                 .Add("@Twitter", usersCompany.Twitter)
                 .Add("@Instagram", usersCompany.Instagram)
                 .Add("@CountryLocal", usersCompany.CountryLocal));
            }
            catch (SqlException exception)
            {
                Console.WriteLine(exception.Message);
                return 0;
            }
        }
        public int UpsertUsersRoles(Role usersRole)
        {
            try
            {
                return this.Database.Execute("lm_users_roles_upsert",
                DbUtils.MakeParams()
                 .Add("@RoleID", usersRole.RoleID)
                 .Add("@RoleName", usersRole.RoleName)
                 .Add("@Description", usersRole.Description)
                 .Add("@CompanyID", usersRole.CompanyID)
                 .Add("@CreatedBy", usersRole.CreatedBy)
                 .Add("@CreatedDate", usersRole.CreatedDate)
                 .Add("@LastModifiedBy", usersRole.LastModifiedBy)
                 .Add("@LastModifiedDate", usersRole.LastModifiedDate)
                 .Add("@Internal", usersRole.Internal)
                 .Add("@RoleTypeCode", usersRole.RoleTypeCode)
                 .Add("@DefaultRoleID", usersRole.DefaultRoleID)
                 .Add("@Status", usersRole.Status)
                 .Add("@UserId", usersRole.UserId)
                 );
            }
            catch (SqlException exception)
            {
                Console.WriteLine(exception.Message);
                return 0;
            }
        }
        IList<Role> IUsersCompanyDB.GetUsersRoles(string Id) => (IList<Role>)this.Database.Read("lm_users_roles_get",
                DbUtils.MakeProperties<Role>()
                       .AddProperty(ut => ut.RoleID)
                       .AddProperty(ut => ut.RoleName)
                       .AddProperty(ut => ut.Description)
                       .AddProperty(ut => ut.CompanyID)
                       .AddProperty(ut => ut.CreatedBy)
                       .AddProperty(ut => ut.CreatedDate)
                       .AddProperty(ut => ut.LastModifiedBy)
                       .AddProperty(ut => ut.LastModifiedDate)
                       .AddProperty(ut => ut.Internal)
                       .AddProperty(ut => ut.RoleTypeCode)
                       .AddProperty(ut => ut.DefaultRoleID)
                       .AddProperty(ut => ut.Status)
                       .AddProperty(ut => ut.UserId),
                    DbUtils.MakeParams().Add("@UserId", Id));
        public int AddUsersCompany(UsersCompany usersCompany)
        {
            return this.Database.Execute("lm_users_add",
               DbUtils.MakeParams()
                 .Add("@AddressID", usersCompany.AddressID)
                 .Add("@FirstName", usersCompany.FirstName)
                 .Add("@LastName", usersCompany.LastName)
                 .Add("@UserName", usersCompany.UserName)
                 .Add("@FullName", usersCompany.FullName)
                 .Add("@PasswordHash", usersCompany.PasswordHash)
                 .Add("@PasswordSalt", usersCompany.PasswordSalt)
                 .Add("@Password", usersCompany.Password)
                 .Add("@Role", usersCompany.Role)
                 .Add("@UpdateDate", usersCompany.UpdateDate)
                 .Add("@Email", usersCompany.Email)
                 .Add("@Website", usersCompany.Website)
                 .Add("@Language", usersCompany.Language)
                 .Add("@Occupation", usersCompany.Occupation)
                 .Add("@AccessToken", usersCompany.AccessToken)
                 .Add("@RefreshToken", usersCompany.RefreshToken)
                 .Add("@Title", usersCompany.Title)
                 .Add("@CellPhoneNo", usersCompany.CellPhoneNo)
                 .Add("@UserPhoneNo", usersCompany.UserPhoneNo)
                 .Add("@UserFax", usersCompany.UserFax)
                 .Add("@CustomerAccess", usersCompany.CustomerAccess)
                 .Add("@TimeZone", usersCompany.TimeZone)
                 .Add("@SendEmail", usersCompany.SendEmail)
                 .Add("@SendPhone", usersCompany.SendPhone)
                 .Add("@Pic", usersCompany.Pic)
                 .Add("@LegalName", usersCompany.LegalName)
                 .Add("@DbaName", usersCompany.DbaName)
                 .Add("@Address1", usersCompany.Address1)
                 .Add("@Address2", usersCompany.Address2)
                 .Add("@City", usersCompany.City)
                 .Add("@State", usersCompany.State)
                 .Add("@ZipCode", usersCompany.ZipCode)
                 .Add("@Country", usersCompany.Country)
                  .Add("@PhoneNo", usersCompany.PhoneNo)
                 .Add("@Fax", usersCompany.Fax)
                 .Add("@CompanyName", usersCompany.CompanyName)
                 .Add("@CompanyEmail", usersCompany.CompanyEmail)
                 .Add("@CompanyWebsite", usersCompany.CompanyWebsite)
                 .Add("@TaxId", usersCompany.TaxId)
                 .Add("@Active", usersCompany.Active)
                 .Add("@EIN", usersCompany.EIN)
                 .Add("@SSN", usersCompany.SSN)
                 .Add("@CompanyLogo", usersCompany.CompanyLogo)
                 .Add("@IpAddress", usersCompany.IpAddress)
                 .Add("@OTP", usersCompany.OTP)
                .Add("@VerififedOTP", usersCompany.VerififedOTP)
                .Add("@CompanyID", usersCompany.CompanyID));
        }
        public int UpdateUsersCompany(UsersCompany usersCompany)
        {
            return this.Database.Execute("lm_users_update",
              DbUtils.MakeParams()
                 .Add("@ID", usersCompany.ID)
                 .Add("@AddressID", usersCompany.AddressID)
                 .Add("@FirstName", usersCompany.FirstName)
                 .Add("@LastName", usersCompany.LastName)
                 .Add("@UserName", usersCompany.UserName)
                 .Add("@FullName", usersCompany.FullName)
                 .Add("@PasswordHash", usersCompany.PasswordHash)
                 .Add("@PasswordSalt", usersCompany.PasswordSalt)
                 .Add("@Password", usersCompany.Password)
                 .Add("@Role", usersCompany.Role)
                 .Add("@UpdateDate", usersCompany.UpdateDate)
                 .Add("@Email", usersCompany.Email)
                 .Add("@Website", usersCompany.Website)
                 .Add("@Language", usersCompany.Language)
                 .Add("@Occupation", usersCompany.Occupation)
                 .Add("@AccessToken", usersCompany.AccessToken)
                 .Add("@RefreshToken", usersCompany.RefreshToken)
                 .Add("@Title", usersCompany.Title)
                 .Add("@CellPhoneNo", usersCompany.CellPhoneNo)
                 .Add("@UserPhoneNo", usersCompany.UserPhoneNo)
                 .Add("@UserFax", usersCompany.UserFax)
                 .Add("@CustomerAccess", usersCompany.CustomerAccess)
                 .Add("@TimeZone", usersCompany.TimeZone)
                 .Add("@SendEmail", usersCompany.SendEmail)
                 .Add("@SendPhone", usersCompany.SendPhone)
                 .Add("@Pic", usersCompany.Pic)
                 .Add("@LegalName", usersCompany.LegalName)
                 .Add("@DbaName", usersCompany.DbaName)
                 .Add("@Address1", usersCompany.Address1)
                 .Add("@Address2", usersCompany.Address2)
                 .Add("@City", usersCompany.City)
                 .Add("@State", usersCompany.State)
                 .Add("@ZipCode", usersCompany.ZipCode)
                 .Add("@Country", usersCompany.Country)
                 .Add("@PhoneNo", usersCompany.PhoneNo)
                 .Add("@Fax", usersCompany.Fax)
                 .Add("@CompanyName", usersCompany.CompanyName)
                 .Add("@CompanyEmail", usersCompany.CompanyEmail)
                 .Add("@CompanyWebsite", usersCompany.CompanyWebsite)
                 .Add("@TaxId", usersCompany.TaxId)
                 .Add("@Active", usersCompany.Active)
                 .Add("@EIN", usersCompany.EIN)
                 .Add("@SSN", usersCompany.SSN)
                 .Add("@CompanyLogo", usersCompany.CompanyLogo)
                 .Add("@IpAddress", usersCompany.IpAddress)
                 .Add("@OTP", usersCompany.OTP)
                 .Add("@VerififedOTP", usersCompany.VerififedOTP)
                 .Add("@CompanyID", usersCompany.CompanyID));

        }
        public IList<UserDTO> Search(SearchUser searchUser)
        {
            return this.Database.Read<UserDTO>("lm_users_search",
              DbUtils.MakeProperties<UserDTO>()
                     .AddProperty(ut => ut.ID)
                     .AddProperty(ut => ut.AddressID)
                     .AddProperty(ut => ut.UserName)
                     .AddProperty(ut => ut.Password)
                     .AddProperty(ut => ut.Email)
                     .AddProperty(ut => ut.AccessToken)
                     .AddProperty(ut => ut.RefreshToken)
                     .AddProperty(ut => ut.Role)
                     .AddProperty(ut => ut.Pic)
                     .AddProperty(ut => ut.FullName)
                     .AddProperty(ut => ut.FirstName)
                     .AddProperty(ut => ut.LastName)
                     .AddProperty(ut => ut.Occupation)
                     .AddProperty(ut => ut.CompanyName)
                     .AddProperty(ut => ut.PhoneNo)
                     .AddProperty(ut => ut.Language)
                     .AddProperty(ut => ut.TimeZone)
                     .AddProperty(ut => ut.CommunicationEmail)
                     .AddProperty(ut => ut.SMS)
                     .AddProperty(ut => ut.Phone)
                     .AddProperty(ut => ut.EmailNotification)
                     .AddProperty(ut => ut.SendCopyToPersonalEmail)
                     .AddProperty(ut => ut.YouHaveNewNotifications)
                     .AddProperty(ut => ut.YouAreSentADirectMessage)
                     .AddProperty(ut => ut.SomeoneAddsYouAsAsAConnection)
                     .AddProperty(ut => ut.UponNewOrder)
                     .AddProperty(ut => ut.NewMembershipApproval)
                     .AddProperty(ut => ut.MemberRegistration)
                     .AddProperty(ut => ut.NewsAboutKeenthemesProductsAndFeatureUpdates)
                     .AddProperty(ut => ut.TipsOnGettingMoreOutOfKeen)
                     .AddProperty(ut => ut.ThingsYouMissedSindeYouLastLoggedIntoKeen)
                     .AddProperty(ut => ut.NewsAboutMetronicOnPartnerProductsAndOtherServices)
                     .AddProperty(ut => ut.TipsOnMetronicBusinessProducts)
                     .AddProperty(ut => ut.LinkedIn)
                     .AddProperty(ut => ut.Facebook)
                     .AddProperty(ut => ut.Twitter)
                     .AddProperty(ut => ut.Instagram)
                     .AddProperty(ut => ut.AddressLine)
                     .AddProperty(ut => ut.City)
                     .AddProperty(ut => ut.State)
                     .AddProperty(ut => ut.ZipCode),
                   DbUtils.MakeParams()
                   .Add("@UserID", searchUser.UserID)
                  .Add("@CompanyID", searchUser.CompanyID)
                  .Add("@Name", searchUser.Name)
                  .Add("@EmailID", searchUser.EmailID));

        }

        public UsersMenu PermissionLevelMenu(UsersMenu usersMenu)
        {
            //_UsersMenu = new UsersMenu();
            if (usersMenu.LevelNo == "L1")
            {
                //var test = _UsersMenu;
                UsersMenu _UsersMenu = new UsersMenu();
                _UsersMenu.sectionList = (List<Section>)Database.Read("lm_users_menu_permission",
                              DbUtils.MakeProperties<Section>()
                                     .AddProperty(ut => ut.SectionId)
                                     .AddProperty(ut => ut.SectionName)
                                     .AddProperty(ut => ut.Description)
                                     .AddProperty(ut => ut.CreatedBy)
                                     .AddProperty(ut => ut.CreatedDate)
                                     .AddProperty(ut => ut.UpdatedBy)
                                     .AddProperty(ut => ut.UpdatedDate),
                                   DbUtils.MakeParams()
                                   .Add("@LevelNo", usersMenu.LevelNo)
                                   .Add("@LevelId", usersMenu.LevelId));
                return _UsersMenu;
            }
            else if (usersMenu.LevelNo == "L2")
            {
               _UsersMenu.moduleList = (List<Module>)Database.Read("lm_users_menu_permission",
                              DbUtils.MakeProperties<Module>()
                                     .AddProperty(ut => ut.ModuleId)
                                     .AddProperty(ut => ut.ModuleName)
                                     .AddProperty(ut => ut.SectionId)
                                     .AddProperty(ut => ut.Description)                                     
                                     .AddProperty(ut => ut.CreatedBy)
                                     .AddProperty(ut => ut.CreatedDate)
                                     .AddProperty(ut => ut.UpdatedBy)
                                     .AddProperty(ut => ut.UpdatedDate),
                                   DbUtils.MakeParams()
                                   .Add("@LevelNo", usersMenu.LevelNo)
                                   .Add("@LevelId", usersMenu.LevelId));
                return _UsersMenu;
            }
            else if (usersMenu.LevelNo == "L3")
            {
                _UsersMenu.taskList = (List<Task>)Database.Read("lm_users_menu_permission",
                              DbUtils.MakeProperties<Task>()
                                     .AddProperty(ut => ut.TaskID)
                                     .AddProperty(ut => ut.LevelCode)
                                     .AddProperty(ut => ut.TaskName)
                                     .AddProperty(ut => ut.Definition)
                                     .AddProperty(ut => ut.ReasonAdded)
                                     .AddProperty(ut => ut.IntendedRecipients)
                                     .AddProperty(ut => ut.ReleaseNumber)
                                     .AddProperty(ut => ut.Category)
                                     .AddProperty(ut => ut.CreatedDate)
                                     .AddProperty(ut => ut.LastModifiedBy)
                                     .AddProperty(ut => ut.LastModifiedDate)
                                     .AddProperty(ut => ut.Features)
                                     .AddProperty(ut => ut.Status)
                                     .AddProperty(ut => ut.TaskGuid)
                                     .AddProperty(ut => ut.ModuleId),
                                   DbUtils.MakeParams()
                                   .Add("@LevelNo", usersMenu.LevelNo)
                                   .Add("@LevelId", usersMenu.LevelId));
                return _UsersMenu;
            }
            else
            {
                _UsersMenu.subTaskList = (List<SubTask>)Database.Read("lm_users_menu_permission",
                              DbUtils.MakeProperties<SubTask>()
                                     .AddProperty(ut => ut.SubTaskId)
                                     .AddProperty(ut => ut.SubTaskName)
                                     .AddProperty(ut => ut.TaskId)
                                     .AddProperty(ut => ut.Description)
                                     .AddProperty(ut => ut.CreatedBy)
                                     .AddProperty(ut => ut.CreatedDate)
                                     .AddProperty(ut => ut.UpdatedBy)
                                     .AddProperty(ut => ut.UpdatedDate),
                                   DbUtils.MakeParams()
                                   .Add("@LevelNo", usersMenu.LevelNo)
                                   .Add("@LevelId", usersMenu.LevelId));
                return _UsersMenu;
            }
        }
    }
}

1 Answers1

1

You have defined two constructors; I think that is not correct way to inject dependencies you can do it like this

First resolve your dependency by doing this at startup

  public void ConfigureServices(IServiceCollection services)
        {
            services.AddScoped<UserMenu>();
        }


namespace Identity.API.Business
{
    public class UsersCompanyManager : IUsersCompanyManager
    {
    
        private readonly IUsersCompanyDB usersCompanyDB;
        private UsersMenu _usersMenu;
    
        public UsersCompanyManager(IUsersCompanyDB usersCompanyDB,UsersMenu UsersMenu)
        {
           this.usersCompanyDB = usersCompanyDB;
           _usersMenu = UsersMenu;
        }
    
    
        public UsersMenu PermissionLevelMenu(UsersMenu usersMenu)
        {
           var test = _UsersMenu; //gives null
           return usersCompanyDB.PermissionLevelMenu(usersMenu);
        }
    }
    
}
Steven
  • 166,672
  • 24
  • 332
  • 435
Kamran Khan
  • 1,042
  • 10
  • 21
  • I did but the startup.cs doesn't want it to run the project here is an excerpt `services.AddTransient();` –  Jun 15 '22 at 11:15
  • I'll show the error here wait when I try to use it –  Jun 15 '22 at 11:16
  • Here is the issue `System.InvalidOperationException: Unable to resolve service for type 'Identity.API.BusinessEntities.UsersMenu' while attempting to activate 'Identity.API.Business.UsersCompanyManager'` –  Jun 15 '22 at 11:18
  • You have to reslove your **UserMenu** at startup – Kamran Khan Jun 15 '22 at 11:20
  • I did try to use solo `services.AddTransient();` but this showed me error on postman `System.InvalidOperationException: Unable to activate type 'Identity.API.DataAccess.UsersCompanyDB'. The following constructors are ambiguous: Void .ctor(Framework3PL.Data.IDatabase, Framework3PL.Core.ApplicationExecutionContext) Void .ctor(Identity.API.BusinessEntities.UsersMenu)` –  Jun 15 '22 at 11:43
  • You need to remove the other constructor please copy my code as it is – Kamran Khan Jun 15 '22 at 11:44
  • Can you please show **IUsersCompanyDB** interface – Kamran Khan Jun 15 '22 at 11:45
  • I've copied your code sir used `services.AddScoped();` and it shows me this error `System.InvalidOperationException: Unable to activate type 'Identity.API.DataAccess.UsersCompanyDB'. The following constructors are ambiguous: Void .ctor(Framework3PL.Data.IDatabase, Framework3PL.Core.ApplicationExecutionContext) Void .ctor(Identity.API.BusinessEntities.UsersMenu)` –  Jun 15 '22 at 11:47
  • There is something wrong with your **UsersCompanyDB** class – Kamran Khan Jun 15 '22 at 11:48
  • I've updated the **IUsersCompanyDB** interface on question –  Jun 15 '22 at 11:49
  • Please also add the implementation of IUserCompanyDB – Kamran Khan Jun 15 '22 at 11:51
  • Added implementation as well –  Jun 15 '22 at 11:54
  • Here if you can see you define 2 constructor that is the reason you are facing the error. Please add one – Kamran Khan Jun 15 '22 at 12:16
  • yes thank you now its working either I use `services.AddTransient();` or `services.AddScoped();` will work now –  Jun 15 '22 at 12:40
  • Yes that depend upon your requirement – Kamran Khan Jun 15 '22 at 13:08