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
}
}
}