Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
10/26/10 19:55:07 (14 years ago)
Author:
mjesner
Message:

#1196

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UserManagement/HeuristicLab.Services.Authentication/AuthenticationService.cs

    r4590 r4647  
    66using HeuristicLab.Services.Authentication.DataAccess;
    77using System.Data.Linq;
     8using System.Diagnostics;
    89
    910namespace HeuristicLab.Services.Authentication
     
    1617        public DataTransfer.User GetUser(Guid id)
    1718        {
    18 
    19             using (UserManagementDataContext db = new UserManagementDataContext())
    20             {
    21                 Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
    22 
    23                 var User = from item in UserTable
    24                            where item.UserId == id
    25                           select item;
    26                return Convert.ToDataTransfer((aspnet_User)User);
    27             }
    28          
     19            using (UserManagementDataContext db = new UserManagementDataContext())
     20            {
     21                try
     22                {
     23                    Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
     24
     25                    var User = from item in UserTable
     26                               where item.UserId == id
     27                               select item;
     28                    User user = Convert.ToDataTransfer((aspnet_User)User.Single());
     29
     30                    if (user == null) { return null; }
     31
     32                    Table<aspnet_Membership> MembershipTable = db.GetTable<aspnet_Membership>();
     33
     34                    var Membership = from item in MembershipTable
     35                                     where item.UserId == id
     36                                     select item;
     37
     38                    Membership membership = Convert.ToDataTransfer((aspnet_Membership)Membership.Single());
     39
     40                    if (membership == null) { return null; }
     41                    user.Membership = membership;
     42
     43                    return user;
     44
     45
     46                }
     47                catch (Exception ex)
     48                {
     49                    Debug.WriteLine(ex.InnerException);
     50                    return null;
     51                }
     52            }
     53        }
     54
     55        public DataTransfer.User GetUser(Guid applicationId, string userName)
     56        {
     57            using (UserManagementDataContext db = new UserManagementDataContext())
     58            {
     59                try
     60                {
     61                    Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
     62
     63                    var User = from item in UserTable
     64                               where item.UserName == userName && item.ApplicationId == applicationId
     65                               select item;
     66
     67                    User user = Convert.ToDataTransfer((aspnet_User)User.Single());
     68
     69                    if (user == null) { return null; }
     70
     71                    Table<aspnet_Membership> MembershipTable = db.GetTable<aspnet_Membership>();
     72
     73                    var Membership = from item in MembershipTable
     74                                     where item.UserId == user.UserId
     75                                     select item;
     76
     77                    Membership membership = Convert.ToDataTransfer((aspnet_Membership)Membership.Single());
     78
     79                    if (membership == null) { return null; }
     80                    user.Membership = membership;
     81
     82                    return user;
     83
     84
     85
     86
     87                }
     88                catch (Exception ex)
     89                {
     90                    Debug.WriteLine(ex.InnerException);
     91                    return null;
     92                }
     93               }
     94        }
     95
     96        public IEnumerable<DataTransfer.User> GetUsers(Guid applicationId)
     97        {
     98            List<DataTransfer.User> UserList = new List<DataTransfer.User>();
     99            using (UserManagementDataContext db = new UserManagementDataContext())
     100            {
     101                try
     102                {
     103                    Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
     104                    var Users = from item in UserTable
     105                                where item.ApplicationId == applicationId
     106                                select item;
     107                    foreach (var eUser in Users)
     108                    {
     109
     110                        User user = Convert.ToDataTransfer(eUser);
     111
     112                        if (user== null) { return null; }
     113
     114                        Table<aspnet_Membership> MembershipTable = db.GetTable<aspnet_Membership>();
     115
     116                        var Membership = from item in MembershipTable
     117                                         where item.UserId == user.UserId
     118                                         select item;
     119
     120                        Membership membership = Convert.ToDataTransfer((aspnet_Membership)Membership.Single());
     121
     122                        if (membership == null) { return null; }
     123                        user.Membership = membership;
     124
     125                        UserList.Add(user);
     126                    }
     127                }
     128                catch (Exception ex)
     129                {
     130                    Debug.WriteLine(ex.InnerException);
     131                    return new List<User>();
     132                }
     133            }
     134
     135            return UserList;
     136        }
     137        public bool InsertUser(User user)
     138        {
     139            if (user != null)
     140            {
     141                using (UserManagementDataContext db = new UserManagementDataContext())
     142                {
     143                    try
     144                    {
     145
     146                        Guid? userId = null;
     147                        Application application = GetApplication(user.ApplicationId);
     148                        if(application == null){return false;}
     149                        if (user.Membership == null) { return false; }
     150   
     151                        int? passwordFormat = 1;
     152                        int? uniqueEmail = null;
     153                        int result = db.aspnet_Membership_CreateUser(application.ApplicationName, user.UserName, user.Membership.Password, user.Membership.PasswordSalt, user.Membership.Email, user.Membership.PasswordQuestion, user.Membership.PasswordAnswer, user.Membership.IsApproved, DateTime.UtcNow, DateTime.Now, uniqueEmail, passwordFormat, ref userId);
     154                                                   
     155                        if (result != 0)
     156                        {
     157                            return false;
     158                        }
     159
     160                        if (userId != null)
     161                        {
     162                            return true;
     163                        }
     164                        else
     165                        {
     166                            return false;
     167                        }
     168                    }
     169                    catch (Exception ex)
     170                    {
     171                        Debug.WriteLine(ex.InnerException);
     172                        return false;
     173                    }
     174                }
     175           
     176            }
     177            return false;
     178        }
     179        public bool DeleteUser(Guid id)
     180        {
     181
     182            User user = GetUser(id);
     183            if (user != null)
     184            {
     185
     186                using (UserManagementDataContext db = new UserManagementDataContext())
     187                {
     188                    try
     189                    {
     190                        Application application = GetApplication(user.ApplicationId);
     191                        if (application == null)
     192                        {
     193                            return false;
     194                        }
     195
     196                        int? tablesToDeleteFrom = 99;
     197                        int? numTablesDeletedFrom = null;
     198                        db.aspnet_Users_DeleteUser(application.ApplicationName, user.UserName, tablesToDeleteFrom, ref numTablesDeletedFrom);
     199                       
     200                        if (numTablesDeletedFrom != null)
     201                        {
     202                            return true;
     203                        }
     204                        else
     205                        {
     206                            return false;
     207                        }
     208                    }
     209                    catch (Exception ex)
     210                    {
     211                        Debug.WriteLine(ex.InnerException);
     212                        return false;
     213                    }
     214                }
     215            }
     216            return false;
     217        }
     218
     219        public bool UpdateUser(User user)
     220        {
     221           
     222            if (user != null)
     223            {
     224
     225                using (UserManagementDataContext db = new UserManagementDataContext())
     226                {
     227                    try
     228                    {
     229                        if (user.Membership == null)
     230                        {
     231                            return false;
     232                        }
     233
     234                        Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
     235
     236                        var User = from item in UserTable
     237                                   where item.UserId == user.UserId
     238                                   select item;
     239                       aspnet_User eUser = ((aspnet_User)User.Single());
     240
     241
     242                       Table<aspnet_Membership> MembershipTable = db.GetTable<aspnet_Membership>();
     243
     244                       var Membership = from item in MembershipTable
     245                                        where item.UserId == user.UserId
     246                                        select item;
     247
     248                       aspnet_Membership eMembership = ((aspnet_Membership)Membership.Single());
     249
     250                        Convert.ToEntity(user, eUser);
     251                       
     252                        Convert.ToEntity(user.Membership, eMembership);
     253                        if (eUser == null)
     254                        {
     255                           return false;
     256                        }
     257                        if (eMembership == null)
     258                        {
     259                            return false;
     260                        }
     261                        db.SubmitChanges();
     262                    }
     263                    catch (Exception ex)
     264                    {
     265                        Debug.WriteLine(ex.InnerException);
     266                        return false;
     267                    }
     268                }
     269            } return false;
     270        }
     271
     272        #endregion
     273
     274
     275        #region Role
     276
     277        public Role GetRole(Guid id)
     278        {
     279            using (UserManagementDataContext db = new UserManagementDataContext())
     280            {
     281                try
     282                {
     283                    Table<aspnet_Role> RoleTable = db.GetTable<aspnet_Role>();
     284
     285                    var Role = from item in RoleTable
     286                               where item.RoleId == id
     287                               select item;
     288                    return Convert.ToDataTransfer((aspnet_Role)Role.Single());
     289                }
     290                catch (Exception ex)
     291                {
     292                    Debug.WriteLine(ex.InnerException);
     293                    return null;
     294                }
     295            }
     296        }
     297
     298        public Role GetRole(Guid applicationId, string roleName)
     299        {
     300            using (UserManagementDataContext db = new UserManagementDataContext())
     301            {
     302                try
     303                {
     304                    Table<aspnet_Role> RoleTable = db.GetTable<aspnet_Role>();
     305
     306                    var Role = from item in RoleTable
     307                               where item.RoleName == roleName && item.ApplicationId == applicationId
     308                               select item;
     309                    return Convert.ToDataTransfer((aspnet_Role)Role.Single());
     310                }
     311                catch (Exception ex)
     312                {
     313                    Debug.WriteLine(ex.InnerException);
     314                    return null;
     315                }
     316            }
     317        }
     318
     319        public bool RoleExists(Guid roleId)
     320        {
     321            if (roleId != null)
     322            {
     323                using (UserManagementDataContext db = new UserManagementDataContext())
     324                {
     325                    try
     326                    {
     327                        Role role = GetRole(roleId);
     328                        if (role == null)
     329                        {
     330                            return false;
     331                        }
     332                        Application application = GetApplication(role.ApplicationId);
     333                        if (application == null)
     334                        {
     335                            return false;
     336                        }
     337
     338                        int result = db.aspnet_Roles_RoleExists(application.ApplicationName, role.RoleName);
     339                       
     340                        return (result == 0);
     341                    }
     342                    catch (Exception ex)
     343                    {
     344                        Debug.Write(ex.InnerException);
     345                        return false;
     346                    }
     347                }
     348
     349            } return false;
     350        }
     351
     352        public IEnumerable<Role> GetRoles(Guid applicationId)
     353        {
     354            List<Role> RoleList = new List<Role>();
     355
     356            using (UserManagementDataContext db = new UserManagementDataContext())
     357            {
     358                try
     359                {
     360                   // db.aspnet_Roles_GetAllRoles(applicationName);
     361                    Table<aspnet_Role> RoleTable = db.GetTable<aspnet_Role>();
     362
     363                    var Roles = from item in RoleTable
     364                                where item.ApplicationId == applicationId
     365                                select item;
     366                    foreach (var Role in Roles)
     367                    {
     368                        RoleList.Add(Convert.ToDataTransfer((aspnet_Role)Role));
     369                    }
     370                }
     371                catch (Exception ex)
     372                {
     373                    Debug.WriteLine(ex.InnerException);
     374                    return new List<Role>();
     375                }
     376            }
     377
     378            return RoleList;
     379        }
     380       
     381        public bool InsertRole(Role role)
     382        {
     383            if (role != null)
     384            {
     385                using (UserManagementDataContext db = new UserManagementDataContext())
     386                {
     387                    try
     388                    {
     389                        Application application = GetApplication(role.ApplicationId);
     390                        if (application == null)
     391                        {
     392                            return false;
     393                        }
     394                        int result = db.aspnet_Roles_CreateRole(application.ApplicationName, role.RoleName);
     395                       
     396                        return (result == 0); // checken, welchen rückgabewert (in db, procedure)
     397                     
     398                    }
     399                    catch (Exception ex)
     400                    {
     401                        Debug.WriteLine(ex.InnerException);
     402                        return false;
     403                    }
     404                }
     405             
     406            }
     407            return false;
     408        }
     409        public bool UpdateRole(Role role)
     410        {
     411
     412            if (role != null)
     413            {
     414
     415                using (UserManagementDataContext db = new UserManagementDataContext())
     416                {
     417                    try
     418                    {
     419
     420                        Table<aspnet_Role> RoleTable = db.GetTable<aspnet_Role>();
     421
     422                        var Role = from item in RoleTable
     423                                   where item.RoleId == role.RoleId
     424                                   select item;
     425                        aspnet_Role eRole = ((aspnet_Role)Role.Single());
     426
     427
     428                        Convert.ToEntity(role, eRole);
     429
     430                        if (eRole != null)
     431                        {
     432                            db.SubmitChanges();
     433                        }
     434                        else
     435                        {
     436                            return false;
     437                        }
     438                    }
     439                    catch (Exception ex)
     440                    {
     441                        Debug.WriteLine(ex.InnerException);
     442                        return false;
     443                    }
     444                }
     445            } return false;
     446        }
     447
     448        public bool DeleteRole(Guid id)
     449        {
     450            if (id != null)
     451            {
     452                using (UserManagementDataContext db = new UserManagementDataContext())
     453                {
     454                    try
     455                    {
     456                        Role role = GetRole(id);
     457
     458                        bool deleteOnlyIfRoleIsEmpty = true;
     459                        if (role == null)
     460                        {
     461                            return false;
     462                        }
     463                        Application application = GetApplication(role.ApplicationId);
     464                        if (application == null)
     465                        {
     466                            return false;
     467                        }
     468                        db.aspnet_Roles_DeleteRole(application.ApplicationName, role.RoleName, deleteOnlyIfRoleIsEmpty);
     469
     470                     
     471
     472                        return true;
     473                    }
     474                    catch (Exception ex)
     475                    {
     476                        Debug.WriteLine(ex.InnerException);
     477                        return false;
     478                    }
     479                }
     480             
     481            }
     482            return false;
     483        }
     484
     485        public bool IsUserInRole(Guid roleId, Guid userId)
     486        {
     487            if (roleId != null && userId != null)
     488            {
     489                using (UserManagementDataContext db = new UserManagementDataContext())
     490                {
     491
     492                    try
     493                    {
     494                        User user = GetUser(userId);
     495                        if (user == null) { return false; }
     496
     497                        Application application = GetApplication(user.ApplicationId);
     498                        if (application == null) { return false; }
     499
     500                        Role role = GetRole(roleId);
     501                        if (role == null) { return false; }
     502
     503                        int result = db.aspnet_UsersInRoles_IsUserInRole(application.ApplicationName, user.UserName, role.RoleName);
     504                       
     505                        return (result == 0);
     506                    }
     507                    catch (Exception ex)
     508                    {
     509                        Debug.WriteLine(ex.InnerException);
     510                        return false;
     511
     512                    }
     513
     514                }
     515
     516            } return false;
     517        }
     518
     519        public bool AddUserToRole(Guid roleId, Guid userId)
     520        {
     521            using (UserManagementDataContext db = new UserManagementDataContext())
     522            {
     523                try
     524                {
     525                    Role role = GetRole(roleId);
     526                    if (role == null)
     527                    {
     528                        return false;
     529                    }
     530                    Application application = GetApplication(role.ApplicationId);
     531                    if (application == null)
     532                    {
     533                        return false;
     534                    }
     535                    User user = GetUser(userId);
     536                    if (user == null)
     537                    {
     538                        return false;
     539                    }
     540
     541                    db.aspnet_UsersInRoles_AddUsersToRoles(application.ApplicationName, user.UserName, role.RoleName,DateTime.Now);
     542                    return true;
     543                }
     544                catch (Exception ex)
     545                {
     546                    Debug.WriteLine(ex.InnerException);
     547                    return false;
     548                }
     549            }
     550       
     551        }
     552        public bool RemoveUserFromRole(Guid roleId, Guid userId)
     553        {
     554            using (UserManagementDataContext db = new UserManagementDataContext())
     555            {
     556                try
     557                {
     558                    Role role = GetRole(roleId);
     559                    if (role == null)
     560                    {
     561                        return false;
     562                    }
     563                    Application application = GetApplication(role.ApplicationId);
     564                    if (application == null)
     565                    {
     566                        return false;
     567                    }
     568                    User user = GetUser(userId);
     569                    if (user == null)
     570                    {
     571                        return false;
     572                    }
     573
     574                   db.aspnet_UsersInRoles_RemoveUsersFromRoles(application.ApplicationName, user.UserName, role.RoleName);
     575                    return true;
     576                   
     577                }
     578                catch (Exception ex)
     579                {
     580                    Debug.WriteLine(ex.InnerException);
     581                    return false;
     582                }
     583            }
     584           
     585        }
     586        public IEnumerable<Role> GetRolesForUser(Guid userId)
     587        {
     588            List<Role> roles = new List<Role>();
     589            using (UserManagementDataContext db = new UserManagementDataContext())
     590            {
     591                try
     592                {
     593                    User user = GetUser(userId);
     594                    if (user == null)
     595                    {
     596                        return roles;
     597                    }
     598                    Application application = GetApplication(user.ApplicationId);
     599                    if (application == null)
     600                    {
     601                        return roles;
     602                    }
     603                   
     604
     605                    ISingleResult<aspnet_UsersInRoles_GetRolesForUserResult> results = db.aspnet_UsersInRoles_GetRolesForUser(application.ApplicationName,user.UserName);
     606                    foreach (aspnet_UsersInRoles_GetRolesForUserResult userInRole in results)
     607                    {
     608                        roles.Add(GetRole(application.ApplicationId,userInRole.RoleName));
     609                    }
     610                }
     611                catch (Exception ex)
     612                {
     613                    Debug.WriteLine(ex.InnerException);
     614                    return new List<Role>();
     615                }
     616            }
    29617           
    30         }
    31         public IEnumerable<DataTransfer.User> GetUsers()
    32         {
    33             List<DataTransfer.User> UserList = new List<DataTransfer.User>();
    34 
    35             using (UserManagementDataContext db = new UserManagementDataContext())
    36             {
    37                 Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
    38 
    39                 var Users = from item in UserTable
    40                            select item;
    41                 foreach (var User in Users)
    42                 {
    43                     UserList.Add( Convert.ToDataTransfer((aspnet_User)User));
    44                 }
    45             }
    46 
    47 
    48             return UserList;
    49         }
    50         public bool InsertUser(User user)
    51         {
    52             // insert user
    53             if (user != null)
    54             {
    55                 using (UserManagementDataContext db = new UserManagementDataContext())
    56                 {
    57                     try
    58                     {
    59                         aspnet_User userDa = Convert.ToEntity(user);
    60                         db.aspnet_Users.InsertOnSubmit(userDa);
    61                         db.SubmitChanges();
    62                     }
    63                     catch (Exception e)
    64                     {
    65                         return false;
    66                     }
    67                 }
    68                 return true;
    69             }
     618            return roles;
     619        }
     620
     621        public IEnumerable<User> GetUsersInRole(Guid roleId)
     622        {
     623            List<User> users = new List<User>();
     624
     625            using(UserManagementDataContext db = new UserManagementDataContext()){
     626                try
     627                {
     628                    Role role = GetRole(roleId);
     629
     630                    if (role != null)
     631                    {
     632                        Application application = GetApplication(role.ApplicationId);
     633
     634                        if (application != null)
     635                        {
     636
     637
     638                            ISingleResult<aspnet_UsersInRoles_GetUsersInRolesResult> result = db.aspnet_UsersInRoles_GetUsersInRoles(application.ApplicationName, role.RoleName);
     639                            foreach (aspnet_UsersInRoles_GetUsersInRolesResult usersInRole in result)
     640                            {
     641                                users.Add(GetUser(application.ApplicationId,usersInRole.UserName));
     642                            }
     643                        }
     644                    }
     645                }
     646                catch (Exception ex)
     647                {
     648                    Debug.WriteLine(ex.InnerException);
     649                    return new List<User>();
     650                }
     651            }
     652
     653            return users;
     654        }
     655
     656        #endregion
     657
     658        #region Application
     659
     660        public Application InsertApplication(Application application)
     661        {
     662            if (application != null)
     663            {
     664                using (UserManagementDataContext db = new UserManagementDataContext())
     665                {
     666                    try
     667                    {
     668                        Guid? applicationId = null;
     669                        int result = db.aspnet_Applications_CreateApplication(application.ApplicationName, ref applicationId);
     670                        Console.WriteLine("result=" + result);
     671                        if (applicationId != null)
     672                        {
     673                            application.ApplicationId = (Guid)applicationId;
     674                            return application;
     675                        }
     676                        else
     677                        {
     678                            return null;
     679                        }
     680                    }
     681                    catch (Exception ex)
     682                    {
     683                        Debug.WriteLine(ex.InnerException);
     684                        return null;
     685                    }
     686                }
     687             
     688            }
     689            return null;
     690        }
     691
     692        public bool DeleteApplication(Application application)
     693        {
    70694            return false;
    71695        }
    72         public bool DeleteUser(Guid id)
    73         {
    74 
    75             return false;
    76         }
    77         public bool UpdateUser(User user)
    78         {
    79             return false;
     696
     697        public Application GetApplication(Guid id)
     698        {
     699            using (UserManagementDataContext db = new UserManagementDataContext())
     700            {
     701                try
     702                {
     703                    Table<aspnet_Application> ApplicationTable = db.GetTable<aspnet_Application>();
     704
     705                    var Application = from item in ApplicationTable
     706                                      where item.ApplicationId == id
     707                                      select item;
     708                    return Convert.ToDataTransfer((aspnet_Application)Application.Single());
     709                }
     710                catch (Exception ex)
     711                {
     712                    Debug.WriteLine(ex.InnerException);
     713                    return null;
     714                }
     715            }
    80716        }
    81717
    82718        #endregion
    83719
    84 
    85         #region Role
    86 
    87         public Role GetRole(Guid id)
    88         {
    89             Role role = new Role();
    90             // ...
    91 
    92             return role;
    93         }
    94         public IEnumerable<Role> GetRoles()
    95         {
    96             List<Role> RoleList = new List<Role>();
    97 
    98             using (UserManagementDataContext db = new UserManagementDataContext())
    99             {
    100                 Table<aspnet_Role> RoleTable = db.GetTable<aspnet_Role>();
    101 
    102                 var Roles = from item in RoleTable
    103                             select item;
    104                 foreach (var Role in Roles)
    105                 {
    106                     RoleList.Add(Convert.ToDataTransfer((aspnet_Role)Role));
    107                 }
    108             }
    109 
    110             return RoleList;
    111         }
    112         public bool InsertRole(Role role)
    113         {
    114             if (role != null)
    115             {
    116                 using (UserManagementDataContext db = new UserManagementDataContext())
    117                 {
    118                     try
    119                     {
    120                         aspnet_Role roleDa = Convert.ToEntity(role);
    121                         db.aspnet_Roles.InsertOnSubmit(roleDa);
    122                         db.SubmitChanges();
    123                     }
    124                     catch (Exception e)
    125                     {
    126                         return false;
    127                     }
    128                 }
    129                 return true;
    130             }
    131             return false;
    132         }
    133         public bool UpdateRole(Role role)
    134         {
    135             return false;
    136         }
    137         public bool DeleteRole(Guid id)
    138         {
    139             return false;
    140         }
    141         public bool AddRoleToUser(Guid roleId, Guid userId)
    142         {
    143             return false;
    144         }
    145         public bool RemoveRoleFromUser(Guid roleId, Guid userId)
    146         {
    147             return false;
    148         }
    149         public IEnumerable<Role> GetRolesForUser(Guid userId)
    150         {
    151             List<Role> roles = new List<Role>();
    152             return roles;
     720        #region Membership
     721
     722        public Membership InsertMembership(Membership membership)
     723        {
     724
     725            if (membership != null)
     726            {
     727                using (UserManagementDataContext db = new UserManagementDataContext())
     728                {
     729                    try
     730                    {
     731                        Application application = GetApplication(membership.ApplicationId);
     732                        if (application == null) { return null; }
     733
     734                    }
     735                    catch (Exception ex)
     736                    {
     737                        Debug.WriteLine(ex.InnerException);
     738                        return null;
     739                    }
     740                }
     741            }
     742            return null;
    153743        }
    154744
Note: See TracChangeset for help on using the changeset viewer.