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); }
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 }); } } }
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, }); } } }
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()); }
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); }