using System.Collections.Generic; using System.Linq; using System.Web; using Kreta.Core.IoC; using Kreta.Naplo.BusinessLogic.Propetries; using Kreta.Naplo.Configuration.Kreta; using Kreta.Naplo.Domain; using Kreta.Naplo.Domain.V3.Enum; using Kreta.Naplo.WebApi.V3.Common.Logic; namespace Kreta.Naplo.WebApi { /// /// Dependency resolver of webapi layer /// internal class DependencyContainer : Core.IoC.DependencyContainer { /// /// Unknown user agent /// public const string UnknownUserAgent = "unknown_user_agent"; /// /// Instance /// public static IDependencyResolver Instance { get { return GetResolver(WebApiLayer.Instance); } } /// /// Imported object resolved /// /// Imported object protected override void OnImportedObjectResolved(object importedObject) { var service = importedObject as IService; if (service != null) { service.Context = new ServiceContext ( FelhasznaloLogic.GetInstituteCode(), FelhasznaloLogic.GetInstituteUserId(), FelhasznaloLogic.GetRoles().Contains(FelhasznaloSzerepkor.Tanar) ? new List() { "Teacher" } : new List(), KretaNaploApiConfiguration.Instance.BaseUrl, KretaNaploApiConfiguration.Instance.ApiKey, HttpContext.Current?.Request?.UserAgent ?? UnknownUserAgent, FelhasznaloLogic.GetSchoolYearId() ); } } /// /// Initialize /// protected override void Initialize() { #region V2 ImportFrom(BusinessLogicLayer.Instance); ImportFrom(BusinessLogicLayer.Instance); ImportFrom(BusinessLogicLayer.Instance); ImportFrom(BusinessLogicLayer.Instance); ImportFrom(BusinessLogicLayer.Instance); ImportFrom(BusinessLogicLayer.Instance); #endregion } } }