public int SaveOrganizationType(OrganizationTypeDTO OrganizationTypeDto) { using (var context = new MyProjectEntities()) { OrganizationType dbOrganizationType = null; if (OrganizationTypeDto.ID == 0) { dbOrganizationType = new OrganizationType(); dbOrganizationType.SecuritySubject = new SecuritySubject(); dbOrganizationType.SecuritySubject.Type = (int)SecuritySubjectType.OrganizationType; } else { dbOrganizationType = context.OrganizationType.First(x => x.ID == OrganizationTypeDto.ID); } dbOrganizationType.Name = OrganizationTypeDto.Name; dbOrganizationType.ExternalKey = OrganizationTypeDto.ExternalKey; //چیزی حذف نمیشود foreach (var orgTypeRoleType in OrganizationTypeDto.OrganizationTypeRoleTypes) { var dborgTypeRoleType = dbOrganizationType.OrganizationType_RoleType.FirstOrDefault(x => x.ID == orgTypeRoleType.ID); if (dborgTypeRoleType == null) { dborgTypeRoleType = new OrganizationType_RoleType(); dbOrganizationType.OrganizationType_RoleType.Add(dborgTypeRoleType); dborgTypeRoleType.SecuritySubject = new SecuritySubject(); dborgTypeRoleType.SecuritySubject.Type = (int)SecuritySubjectType.OrganizationTypeRoleType; } dborgTypeRoleType.IsAdmin = orgTypeRoleType.IsAdmin; dborgTypeRoleType.ExternalKey = orgTypeRoleType.ExternalKey; dborgTypeRoleType.RoleTypeID = orgTypeRoleType.RoleTypeID; } if (dbOrganizationType.ID == 0) { context.OrganizationType.Add(dbOrganizationType); } context.SaveChanges(); return(dbOrganizationType.ID); } }
public void CheckAdminUserExists() { var context = new MyProjectEntities(); if (!context.User.Any(x => x.OrganizationPost.Any(y => y.OrganizationType_RoleType.RoleType.IsSuperAdmin == true))) { var user = new User(); user = new User(); user.FirstName = "راهبر"; user.LastName = "ارشد"; user.UserName = "******"; user.Password = "******"; var organizationPost = context.OrganizationPost.FirstOrDefault(x => x.OrganizationType_RoleType.RoleType.IsSuperAdmin == true); if (organizationPost == null) { organizationPost = new OrganizationPost(); organizationPost.Name = "پست راهبر ارشد"; var organization = context.Organization.FirstOrDefault(x => x.OrganizationType.OrganizationType_RoleType.Any(y => y.RoleType.IsSuperAdmin == true)); OrganizationType organizationType = null; if (organization == null) { organization = new Organization(); organization.Name = "سازمان"; organizationType = context.OrganizationType.FirstOrDefault(x => x.OrganizationType_RoleType.Any(y => y.RoleType.IsSuperAdmin == true)); if (organizationType == null) { organizationType = new OrganizationType(); organizationType.Name = "نوع سازمان"; organizationType.SecuritySubject = new SecuritySubject() { Type = (int)SecuritySubjectType.OrganizationType }; context.OrganizationType.Add(organizationType); } organization.OrganizationType = organizationType; organization.SecuritySubject = new SecuritySubject() { Type = (int)SecuritySubjectType.Organization }; context.Organization.Add(organization); } var organizationTypeRoleType = context.OrganizationType_RoleType.FirstOrDefault(x => x.OrganizationTypeID == organizationType.ID && x.RoleType.IsSuperAdmin == true); if (organizationTypeRoleType == null) { organizationTypeRoleType = new OrganizationType_RoleType(); organizationTypeRoleType.OrganizationType = organizationType; var superAdminRoleType = context.RoleType.FirstOrDefault(x => x.IsSuperAdmin == true); if (superAdminRoleType == null) { superAdminRoleType = new RoleType(); superAdminRoleType.Name = "راهبر ارشد"; superAdminRoleType.IsSuperAdmin = true; superAdminRoleType.SecuritySubject = new SecuritySubject() { Type = (int)SecuritySubjectType.RoleType }; context.RoleType.Add(superAdminRoleType); } organizationTypeRoleType.RoleType = superAdminRoleType; organizationTypeRoleType.SecuritySubject = new SecuritySubject() { Type = (int)SecuritySubjectType.OrganizationTypeRoleType }; context.OrganizationType_RoleType.Add(organizationTypeRoleType); } organizationPost.Organization = organization; organizationPost.OrganizationType_RoleType = organizationTypeRoleType; organizationPost.SecuritySubject = new SecuritySubject() { Type = (int)SecuritySubjectType.OrganizationPost }; context.OrganizationPost.Add(organizationPost); } user.OrganizationPost.Add(organizationPost); context.User.Add(user); context.SaveChanges(); } }