Who is Ali Özgür?

RecentComments

Comment RSS
aliozgur posted on January 31, 2007 14:26
using System;
using System.Collections.Generic;
using System.Query;
using System.Text;
using Bilgi.Common.Utils;
using Bilgi.Org.Core.DataInterfaces;
using Bilgi.Org.Core.Domain;
using Bilgi.Org.Data;
using Bilgi.Calendar.Core.Accessibility.DataInterfaces;
using Bilgi.Calendar.Core.Accessibility.Domain;
using Bilgi.Calendar.Core.Space.DataInterfaces;
using Bilgi.Calendar.Core.Space.Domain;
namespace Bilgi.Calendar.Core
{
  public sealed class UserSessionDataProvider
  {
    private DaoFactoryExposer _daoFactoryExposer = new DaoFactoryExposer();
    private IList<SpaceAccessibility> _spaceAccessibilities = null;
    private IList<OrgUnit> _inUnits = null;
    private IList<BaseSpace> _ownedSpaces = null;
    private IList<UnitSpace> _unitSpaces = null;
    private IOrgUserDao _userDao = new OrgUserDao();
    public IOrgUserDao UserDao
    {
      // Some code     
    }
    private IOrgUserUnitRoleDao _userUnitRoleDao = new OrgUserUnitRoleDao();
    public IOrgUserUnitRoleDao UserUnitRoleDao
    {
      // Some code   
    }
    private ISpaceAccessibilityDao _spaceAccessDao = null;
    public ISpaceAccessibilityDao SpaceAccessDao
    {
      // Some code      
    }
    private ISpaceDao _spaceDao = null;
    public ISpaceDao SpaceDao
    {
     // Some code  
    }
    private int _userID = -1;
    public int UserID
    {
      // Some code      
    }
   
    public OrgUser User
    {
     // Some code  
    }
    private void CheckValidUser( )
    {
     // Some code  
    }
    public void LogOnSecure( string username, string hashedPwd, Hash.ServiceProviderEnum hashServiceProvider )
    {
     // Some code     
    }
    public void LogOn( string username, string clearTextPwd )
    {
     // Some code      
    }
    /// <summary>
    /// LogOn olmuş kullanıcının session'da taşınacak ve bir anlamda cachelenecek olan
    /// tüm bilgilerini yüklemek için kullanılır.
    /// Bu aşamada alınan tüm bilgiler sorgulamalarda kullanılmaktadır.
    /// </summary>
    public void LoadUserSessionData()
    {
      // Some code     
    }
    /// <summary>
    /// LogOn olmuş kullanıcı için tanımlı tüm alan erişim bilgilerini yükler.
    /// Alan erişimi ile ilgili sorgular bu bilgi üzerinden yapılır.
    /// </summary>
    private void LoadUserSpaceAccessibilities()
    {
      // Some code
    }
    /// <summary>
    /// LogOn olmuş kullanıcının MEMBER rolünde bulunduğu birimleri yüklemek için kullanılır
    /// </summary>
    private void LoadUserUnits()
    {
      // Some code
    }
    /// <summary>
    /// LogOn olmuş olan kullanıcının sahibi olduğu veya MEMBER rolünde
    /// olduğu için dolaylı olarak erişebileceği alanları yüklemek için kullanılır
    /// </summary>
    private void LoadPersonalAndUnitSpaces()
    {
     // Some code  
    }
    public UserAccessibilityData GetUserSpaceAccess(BaseSpace space)
    {
      /*
       * 1- Alanın kullanıcıya ait bir alan olup olmadığını kontrol ediyoruz.
       * Eğer alan kullanıcıya aitse kullanıcının full erişime sahip olduğunu
       * varsayarak ilgili bilgiyi döndürüyoruz.
       */
      var s = from os in _ownedSpaces
                    where os.ID == space.ID
                    select os;
     
      if( s != null )
      {
        UserAccessibilityData data = new UserAccessibilityData();
        data.ApplyFullAccess();
        data.IsOwned = true;
        return data;
      }
      /*
       * 2- Kullanıcı için tanımlanmış bir erişim bilgisi var mı kontrol ediyoruz.
       * Eğer erişim tanımı varsa bu tanımın kullanılacağını varsayıp bilgiyi döndürüyoruz.
       */
     
      var spaceAcces = from sa in _spaceAccessibilities
                       where sa.SpaceID == space.ID && sa.UserID == _userID
                       select sa;
     
      if( spaceAcces.Count<SpaceAccessibility>() > 0 )
      {
        UserAccessibilityData data = new UserAccessibilityData();
        data.InheritedFromUnit = false;
        data.IsOwned = false;
        SpaceAccessibility sa = spaceAcces.ElementAt<SpaceAccessibility>(0);
        data.CopyFrom(sa);       
        return data;
      }
       /*
        * 3- Kullanıcının MEMBER rolünde olduğu birimler için yapılmış
        * erişim tanımı var mı kontrol ediyoruz.
        * Kullanıcının içinde olduğu birimlerden hangisinin erişim yetkisi
        * daha büyükse o erişim yetkisi ile ilgili bilgiler döndürülür.
       */
      var inUnits = from u in _inUnits
                    select u.ID;
       
      var unitAccess = from sa in _spaceAccessibilities
                       where sa.SpaceID == space.ID &&  inUnits.Contains<int>(sa.UnitID ?? -1)
                       select sa;
     
      if( unitAccess.Count<SpaceAccessibility>() > 0 )
      {
        UserAccessibilityData data = new UserAccessibilityData();
        data.InheritedFromUnit = true;
        foreach(SpaceAccessibility sa in unitAccess )
        {
          data.Or(sa);
        }
        return data;
      }
      return null;
    }
  }
}

Posted in: .NET Development  Tags:

Comments


March 28. 2009 05:22
тексты песен
I have no idea about this post

   http://www.lyrics.wmline.com/

Comments are closed