Free cookie consent management tool by TermsFeed Policy Generator

source: branches/UserManagement/HeuristicLab.Services.Authentication/AuthenticationService.cs @ 4740

Last change on this file since 4740 was 4740, checked in by jwolfing, 13 years ago

#1196 Changed DataTransfer Structure factoring in abstract class. Added new TestClient2 only to test the new method. All other comment lines, are lines they should be changed to the new structure.

File size: 28.1 KB
Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.ServiceModel;
5using HeuristicLab.Services.Authentication.DataTransfer;
6using HeuristicLab.Services.Authentication.DataAccess;
7using System.Data.Linq;
8using System.Diagnostics;
9
10namespace HeuristicLab.Services.Authentication
11{
12    [ServiceBehavior(IncludeExceptionDetailInFaults = true)]
13    public class AuthenticationService : IAuthenticationService
14    {
15        #region User
16
17        public DataTransfer.User GetUser(Guid id)
18        {
19            using (UserManagementDataContext db = new UserManagementDataContext())
20            {
21                  var user = db.aspnet_Users.Where(x => x.UserId == id).FirstOrDefault();
22                  var membership = db.aspnet_Memberships.Where(x => x.UserId == id).FirstOrDefault();
23                   
24
25                  return Convert.ToDataTransfer(user, membership);
26                  //Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
27
28                  //var User = from item in UserTable
29                  //           where item.UserId == id
30                  //           select item;
31                  //aspnet_User eUser = User.Single();
32
33                  //User user = Convert.ToDataTransfer((aspnet_User)eUser);
34
35                  //if (user == null) { return null; }
36
37                  //Table<aspnet_Membership> MembershipTable = db.GetTable<aspnet_Membership>();
38
39                  //var Membership = from item in MembershipTable
40                  //                 where item.UserId == id
41                  //                 select item;
42
43                  //Membership membership = Convert.ToDataTransfer((aspnet_Membership)eUser.aspnet_Membership);
44
45                  //if (membership == null) { return null; }
46                  //user.Membership = membership;
47
48                  //return user;
49
50            }
51      }
52
53        #endregion
54
55
56      //public DataTransfer.User GetUser(Guid applicationId, string userName)
57        //{
58        //    using (UserManagementDataContext db = new UserManagementDataContext())
59        //    {
60        //        try
61        //        {
62        //            Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
63
64        //            var User = from item in UserTable
65        //                       where item.UserName == userName && item.ApplicationId == applicationId
66        //                       select item;
67
68        //            User user = Convert.ToDataTransfer((aspnet_User)User.Single());
69
70        //            if (user == null) { return null; }
71
72        //            Table<aspnet_Membership> MembershipTable = db.GetTable<aspnet_Membership>();
73
74        //            var Membership = from item in MembershipTable
75        //                             where item.UserId == user.UserId
76        //                             select item;
77
78        //            Membership membership = Convert.ToDataTransfer((aspnet_Membership)Membership.Single());
79
80        //            if (membership == null) { return null; }
81        //            user.Membership = membership;
82
83        //            return user;
84
85
86
87
88        //        }
89        //        catch (Exception ex)
90        //        {
91        //            Debug.WriteLine(ex.InnerException);
92        //            return null;
93        //        }
94        //       }
95        //}
96
97        //public IEnumerable<DataTransfer.User> GetUsers(Guid applicationId)
98        //{
99        //    List<DataTransfer.User> UserList = new List<DataTransfer.User>();
100        //    using (UserManagementDataContext db = new UserManagementDataContext())
101        //    {
102        //        try
103        //        {
104        //            Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
105        //            var Users = from item in UserTable
106        //                        where item.ApplicationId == applicationId
107        //                        select item;
108        //            foreach (var eUser in Users)
109        //            {
110
111        //                User user = Convert.ToDataTransfer(eUser);
112
113        //                if (user== null) { return null; }
114
115        //                //Table<aspnet_Membership> MembershipTable = db.GetTable<aspnet_Membership>();
116
117        //                //var Membership = from item in MembershipTable
118        //                //                 where item.UserId == user.UserId
119        //                //                 select item;
120
121        //                Membership membership = Convert.ToDataTransfer((aspnet_Membership)eUser.aspnet_Membership);
122
123        //                if (membership == null) { return null; }
124        //                user.Membership = membership;
125
126        //                UserList.Add(user);
127        //            }
128        //        }
129        //        catch (Exception ex)
130        //        {
131        //            Debug.WriteLine(ex.InnerException);
132        //            return new List<User>();
133        //        }
134        //    }
135
136        //    return UserList;
137        //}
138        //public bool InsertUser(User user)
139        //{
140        //    if (user != null)
141        //    {
142        //        using (UserManagementDataContext db = new UserManagementDataContext())
143        //        {
144        //            try
145        //            {
146
147        //                Guid? userId = null;
148        //                Application application = GetApplication(user.ApplicationId);
149        //                if(application == null){return false;}
150        //                if (user.Membership == null) { return false; }
151   
152        //                int? passwordFormat = 1;
153        //                int? uniqueEmail = null;
154        //                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);
155                                                   
156        //                if (result != 0)
157        //                {
158        //                    return false;
159        //                }
160
161        //                if (userId != null)
162        //                {
163        //                    return true;
164        //                }
165        //                else
166        //                {
167        //                    return false;
168        //                }
169        //            }
170        //            catch (Exception ex)
171        //            {
172        //                Debug.WriteLine(ex.InnerException);
173        //                return false;
174        //            }
175        //        }
176           
177        //    }
178        //    return false;
179        //}
180        //public bool DeleteUser(Guid id)
181        //{
182
183        //    User user = GetUser(id);
184        //    if (user != null)
185        //    {
186
187        //        using (UserManagementDataContext db = new UserManagementDataContext())
188        //        {
189        //            try
190        //            {
191        //                Application application = GetApplication(user.ApplicationId);
192        //                if (application == null)
193        //                {
194        //                    return false;
195        //                }
196
197        //                int? tablesToDeleteFrom = 99;
198        //                int? numTablesDeletedFrom = null;
199        //                db.aspnet_Users_DeleteUser(application.ApplicationName, user.UserName, tablesToDeleteFrom, ref numTablesDeletedFrom);
200                       
201        //                if (numTablesDeletedFrom != null)
202        //                {
203        //                    return true;
204        //                }
205        //                else
206        //                {
207        //                    return false;
208        //                }
209        //            }
210        //            catch (Exception ex)
211        //            {
212        //                Debug.WriteLine(ex.InnerException);
213        //                return false;
214        //            }
215        //        }
216        //    }
217        //    return false;
218        //}
219
220        //public bool UpdateUser(User user)
221        //{
222           
223        //    if (user != null)
224        //    {
225
226        //        using (UserManagementDataContext db = new UserManagementDataContext())
227        //        {
228        //            try
229        //            {
230        //                if (user.Membership == null)
231        //                {
232        //                    return false;
233        //                }
234
235        //                Table<aspnet_User> UserTable = db.GetTable<aspnet_User>();
236
237        //                var User = from item in UserTable
238        //                           where item.UserId == user.UserId
239        //                           select item;
240        //               aspnet_User eUser = ((aspnet_User)User.Single());
241
242
243        //               Table<aspnet_Membership> MembershipTable = db.GetTable<aspnet_Membership>();
244
245        //               var Membership = from item in MembershipTable
246        //                                where item.UserId == user.UserId
247        //                                select item;
248
249        //               aspnet_Membership eMembership = ((aspnet_Membership)Membership.Single());
250
251        //                Convert.ToEntity(user, eUser);
252                       
253        //                Convert.ToEntity(user.Membership, eMembership);
254        //                if (eUser == null)
255        //                {
256        //                   return false;
257        //                }
258        //                if (eMembership == null)
259        //                {
260        //                    return false;
261        //                }
262        //                db.SubmitChanges();
263        //            }
264        //            catch (Exception ex)
265        //            {
266        //                Debug.WriteLine(ex.InnerException);
267        //                return false;
268        //            }
269        //        }
270        //    } return false;
271        //}
272
273        //#endregion
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 = false;
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        //    }
617           
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        //{
694        //    return false;
695        //}
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        //    }
716        //}
717
718        //public IEnumerable<DataTransfer.Application> GetApplications()
719        //{
720        //    List<DataTransfer.Application> ApplicationList = new List<DataTransfer.Application>();
721        //    using (UserManagementDataContext db = new UserManagementDataContext())
722        //    {
723        //        try
724        //        {
725        //            Table<aspnet_Application> ApplicationTable = db.GetTable<aspnet_Application>();
726        //            var Applications = from item in ApplicationTable
727        //                        select item;
728        //            foreach (var eApplication in Applications)
729        //            {
730
731        //                Application application = Convert.ToDataTransfer(eApplication);
732
733        //                if (application == null) { return null; }
734
735
736        //                ApplicationList.Add(application);
737        //            }
738        //        }
739        //        catch (Exception ex)
740        //        {
741        //            Debug.WriteLine(ex.InnerException);
742        //            return new List<Application>();
743        //        }
744        //    }
745
746        //    return ApplicationList;
747        //}
748
749
750
751        //#endregion
752
753        //#region Membership
754
755        //public Membership InsertMembership(Membership membership)
756        //{
757
758        //    if (membership != null)
759        //    {
760        //        using (UserManagementDataContext db = new UserManagementDataContext())
761        //        {
762        //            try
763        //            {
764        //                Application application = GetApplication(membership.ApplicationId);
765        //                if (application == null) { return null; }
766
767        //            }
768        //            catch (Exception ex)
769        //            {
770        //                Debug.WriteLine(ex.InnerException);
771        //                return null;
772        //            }
773        //        }
774        //    }
775        //    return null;
776        //}
777
778        //#endregion
779    }
780}
781
Note: See TracBrowser for help on using the repository browser.