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);
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }