コード例 #1
0
        // 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);
        }
コード例 #2
0
        // 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);
        }
コード例 #3
0
        async Task ITenantHandler.SaveUserTenantAsync(UserTenant userTenant)
        {
            if (userTenant.UserTenantId < 1)
            {
                await UserTenants.AddAsync(userTenant);
            }
            else
            {
                UserTenants.Attach(userTenant).State = EntityState.Modified;
            }

            await DbContext.SaveChangesAsync();
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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;
                }
            }
        }