Esempio n. 1
0
        public static List <Monosoft.Auth.DTO.User> UpdateUserGroup(CallContext cc, Monosoft.Auth.DTO.UserGroup usrgrp)
        {
            var dbusrgrp = DataContext.Instance.UserGroups.Where(p =>
                                                                 p.Id == usrgrp.Usergroupid &&
                                                                 p.OrganisationId == cc.OrganisationId).FirstOrDefault();

            if (dbusrgrp != null)
            {
                Monosoft.Database.Auth.Datalayer.RevisionLog.AddRevisionLog_before(dbusrgrp.Convert2DTO(cc));
                dbusrgrp.Name = usrgrp.Name;

                dbusrgrp.Claims.Clear();
                AddClaims(usrgrp, dbusrgrp);

                var usrs = dbusrgrp.Users.Select(p => p.User.Convert2DTO(cc)).ToList(); // users in grp before edit
                dbusrgrp.Users.Clear();
                AddUsers(usrgrp, dbusrgrp);

                usrs.AddRange(usrgrp.Users); // add new users...

                Monosoft.Database.Auth.Datalayer.RevisionLog.AddRevisionLog_after(Datalayer.RevisionLog.action.Updated, "UserGroup", cc.CurrentUserTokenData.Userid, dbusrgrp.Convert2DTO(cc));
                DataContext.Instance.SaveChanges();
                return(usrs.Distinct().ToList()); // return list of affected users
            }

            return(null);
        }
Esempio n. 2
0
 private static void AddUsers(Monosoft.Auth.DTO.UserGroup usrgrp, UserGroup dbusrgrp)
 {
     foreach (var u in usrgrp.Users)
     {
         var usr = DataContext.Instance.Users.Where(p => p.Id == u.Userid).FirstOrDefault();
         if (usr != null)
         {
             DataContext.Instance.UsersInUserGroup.Add(new UserInUserGroup()
             {
                 User = usr, Usergroup = dbusrgrp
             });
         }
     }
 }
Esempio n. 3
0
 private static void AddClaims(Monosoft.Auth.DTO.UserGroup usrgrp, UserGroup dbusrgrp)
 {
     if (usrgrp.Claims != null)
     {
         foreach (var claim in usrgrp.Claims)
         {
             DataContext.Instance.UserGroup_Metadatas.Add(new UserGroup_Claims()
             {
                 Usergroup = dbusrgrp,
                 Key       = claim.Key,
                 Scope     = claim.Scope,
                 Value     = claim.Value,
             });
         }
     }
 }
Esempio n. 4
0
        public static List <Monosoft.Auth.DTO.User> CreateUserGroup(CallContext cc, Monosoft.Auth.DTO.UserGroup usrgrp)
        {
            var dbusrgrp = new UserGroup()
            {
                Name           = usrgrp.Name,
                OrganisationId = usrgrp.Organisationid
            };

            DataContext.Instance.UserGroups.Add(dbusrgrp);

            AddClaims(usrgrp, dbusrgrp);
            AddUsers(usrgrp, dbusrgrp);

            Monosoft.Database.Auth.Datalayer.RevisionLog.AddRevisionLog_after(Datalayer.RevisionLog.action.Inserted, "UserGroup", cc.CurrentUserTokenData.Userid, dbusrgrp.Convert2DTO(cc));
            DataContext.Instance.SaveChanges();

            return(usrgrp.Users.ToList());
        }
Esempio n. 5
0
 private Monosoft.Auth.DTO.UserGroup Convert2DTO(CallContext cc)
 {
     Monosoft.Auth.DTO.UserGroup res = new Monosoft.Auth.DTO.UserGroup();
     res.Name           = this.Name;
     res.Organisationid = this.OrganisationId;
     res.Usergroupid    = this.Id;
     if (this.Claims != null)
     {
         res.Claims = this.Claims.Select(p => new Monosoft.Common.DTO.MetaData()
         {
             Key = p.Key, Scope = p.Scope, Value = p.Value
         }).ToArray();
     }
     if (this.Users != null)
     {
         res.Users = this.Users.Select(p => new Monosoft.Auth.DTO.User()
         {
             Email = p.User.Email, Mobile = p.User.Mobile, Userid = p.User.Id, Username = p.User.Name
         }).ToArray();
     }
     return(res);
 }