// specialita: primary key je GUID a to framework nevie public UserView CreateUser(CreateUser request) { User rec = request.ConvertToEntity(); rec.D_User_Id = Guid.NewGuid(); rec.DatumVytvorenia = DateTime.Now; rec.DatumZmeny = DateTime.Now; rec.Vytvoril = Session.UserIdGuid; //Univerzálne heslo pre prvé prihlásenie. Pri vytváraní sa už heslo nezadáva. var passwordHasher = HostContext.TryResolve <ServiceStack.Auth.IPasswordHasher>(); rec.LoginPswd = passwordHasher.HashPassword("|T7RLgKSEPM*"); Create(rec); //Specialny pripad s GUID ako ID var tenantUser = new UserTenant() { D_User_Id = rec.D_User_Id, D_Tenant_Id = Session.TenantIdGuid.Value, DatumVytvorenia = DateTime.Now, DatumZmeny = DateTime.Now, Vytvoril = Session.UserIdGuid }; Create(tenantUser); GrantUserPermToDms(tenantUser.D_Tenant_Id); var u = GetList <UserView>(t => t.D_User_Id == rec.D_User_Id).FirstOrDefault(); InvalidateTreeCountsForPath("cfe-admin-users"); return(u); }
// specialita: primary key je GUID a to framework nevie public TenantView CreateTenant(CreateTenant request) { Tenant rec = request.ConvertToEntity(); rec.D_Tenant_Id = Guid.NewGuid(); rec.DatumVytvorenia = DateTime.Now; rec.DatumZmeny = DateTime.Now; rec.Vytvoril = Session.UserIdGuid; Create(rec); //Specialny pripad s GUID ako ID var t = GetList <TenantView>(t => t.D_Tenant_Id == rec.D_Tenant_Id).FirstOrDefault(); var p = new DynamicParameters(); p.Add("@Tenant", rec.D_Tenant_Id, dbType: DbType.Guid); p.Add("@OrganizaciaTypDetail_Id", rec.C_OrganizaciaTypDetail_Id, dbType: DbType.Int16); p.Add("@sName", rec.Nazov, dbType: DbType.String); SqlProcedure("[reg].[TenantCreate]", p); var tenantUser = new UserTenant() { D_User_Id = (System.Guid)Session.UserIdGuid, D_Tenant_Id = rec.D_Tenant_Id, DatumVytvorenia = DateTime.Now, DatumZmeny = DateTime.Now, Vytvoril = Session.UserIdGuid }; Create(tenantUser); //SetCislovanie(); --nefunguje, lebo potrebujem mať CONTEXT nastavený na novovytvoreného tenanta //SetPredkontacia(); --nefunguje, lebo potrebujem mať CONTEXT nastavený na novovytvoreného tenanta return(t); }
async Task ITenantHandler.SaveUserTenantAsync(UserTenant userTenant) { if (userTenant.UserTenantId < 1) { await UserTenants.AddAsync(userTenant); } else { UserTenants.Attach(userTenant).State = EntityState.Modified; } await DbContext.SaveChangesAsync(); }
public JsonResult AddTenant(string ContractPic, int PropertyID, Tenant tenantObj) { JsonResult result = new JsonResult(); if (ModelState.IsValid) { using (db) { UserAccount usr = db.UserAccounts.Where(u => u.UserName.Equals(User.Identity.Name.ToString())).FirstOrDefault(); UserTenant usrTenant = new UserTenant { UserID = usr.UserID, PropertyID = PropertyID, TenantID = tenantObj.TenantID }; db.Tenants.Add(tenantObj); db.UserTenants.Add(usrTenant); //Image var pictureIDs = ContractPic.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(x => int.Parse(x)).ToList(); tenantObj.PictureContractDocs = new List <PictureContractDoc>(); tenantObj.PictureContractDocs.AddRange(pictureIDs.Select(x => new PictureContractDoc() { ImageID = x }).ToList()); //End of Image db.SaveChanges(); result.Data = new { Success = true }; } } else { result.Data = new { Success = false, Error = "Unable to save. Please enter valid values." }; } return(result); }
public static void CreateOrUpdateDcomUser(System.Data.IDbConnection dbConnection, User user, Guid tenantId, bool setContext = true) { using (var tran = dbConnection.OpenTransaction()) { try { if (setContext) { dbConnection.ExecuteNonQuery("set context_info 0x10101010101010101010101010101010"); } var vytvorilGuid = user.Vytvoril; // aj take sa stalo, namiesto emailu dame login if (string.IsNullOrEmpty(user.Email)) { user.Email = user.LoginName; } if (!dbConnection.Exists <User>(x => x.D_User_Id == user.D_User_Id)) { if (!string.IsNullOrEmpty(user.LoginPswd)) { var passwordHasher = HostContext.TryResolve <IPasswordHasher>(); user.LoginPswd = passwordHasher.HashPassword(user.LoginPswd); } dbConnection.Insert(user); } else { dbConnection.Update(user); } if (!dbConnection.Exists <UserTenant>(x => x.D_User_Id == user.D_User_Id && x.D_Tenant_Id == tenantId)) { var tenantUser = new UserTenant() { D_User_Id = user.D_User_Id, D_Tenant_Id = tenantId, DatumVytvorenia = DateTime.Now, DatumZmeny = DateTime.Now, Vytvoril = vytvorilGuid }; dbConnection.Insert(tenantUser); foreach (var rightId in dbConnection.Select <int>("SELECT C_Right_Id FROM cfe.V_Right WHERE Kod = 'MEMBER'")) { dbConnection.Insert(new RightPermission() { C_Right_Id = rightId, D_User_Id = user.D_User_Id, D_Tenant_Id = tenantId, DatumVytvorenia = DateTime.Now, DatumZmeny = DateTime.Now, Vytvoril = vytvorilGuid }); } foreach (var(modulId, kod) in dbConnection.Select <(int modulId, string kod)>("SELECT C_Modul_Id, Kod FROM cfe.V_Modul")) { dbConnection.Insert(new TreePermission() { Kod = kod, C_Modul_Id = modulId, Pravo = 3, D_User_Id = user.D_User_Id, D_Tenant_Id = tenantId, DatumVytvorenia = DateTime.Now, DatumZmeny = DateTime.Now, Vytvoril = vytvorilGuid }); } foreach (var orsElementTypeId in dbConnection.Select <int>("SELECT C_OrsElementType_Id FROM cfe.V_OrsElementType")) { dbConnection.Insert(new OrsElementTypePermission() { C_OrsElementType_Id = orsElementTypeId, Pravo = 3, D_User_Id = user.D_User_Id, D_Tenant_Id = tenantId, DatumVytvorenia = DateTime.Now, DatumZmeny = DateTime.Now, Vytvoril = vytvorilGuid }); } } tran.Commit(); } catch (Exception e) { tran.Rollback(); Core.Log.WebEasNLogExtensions.ExecuteUsingLogicalContext(() => { Log.Error("Chyba volania CreateDcomUser", e); }, request: user); throw; } } }