protected override void Seed(StoredObjects.ApplicationContext context) { var theStartDate = new DateTime(2016, 11, 6, 9, 51, 0, DateTimeKind.Utc); var mainOrganisation = new ShurahBasedOrganisation { Name = "ShariahStandards.org", Description = "For all Muslims who have an interest in developing a global open standard interpretation of Islamic law in English", JoiningPolicy = JoiningPolicy.NoApplicationNeeded, LastUpdateDateTimeUtc = theStartDate, UrlDomain = "https://shariahstandards.org", RequiredNumbersOfAcceptingMembers = 1 }; context.Set <ShurahBasedOrganisation>().AddOrUpdate(x => x.Name, mainOrganisation); context.SaveChanges(); mainOrganisation = context.Set <ShurahBasedOrganisation>().First(x => x.Name == mainOrganisation.Name); var member = new Member { Introduction = "For some explanations of my views you can visit my personal blog http://investigatingIslam.org ", JoinedOnDateAndTimeUtc = theStartDate, Moderated = false, Removed = false, Organisation = mainOrganisation, OrganisationId = mainOrganisation.Id, LastDateAndTimeUtcAgreedToMembershipRules = theStartDate, PublicName = "Lamaan Ball", EmailAddress = "*****@*****.**" }; context.Set <Member>().AddOrUpdate(x => x.EmailAddress, member); context.SaveChanges(); member = context.Set <Member>().First(x => x.PublicName == "Lamaan Ball"); var user = new Auth0User { Id = "facebook|10154497931532170", Name = "Lamaan Ball", PictureUrl = "https://scontent.xx.fbcdn.net/v/t1.0-1/p50x50/1959327_10152239153037170_2068892341_n.jpg?oh=9197c2274a8a0b7c3f548ca6407da74e&oe=5884F154" }; context.Set <Auth0User>().AddOrUpdate(x => x.Id, user); context.SaveChanges(); var memberAuthUser = new MemberAuth0User { Auth0UserId = user.Id, MemberId = member.Id }; context.Set <MemberAuth0User>().AddOrUpdate(x => new { x.Auth0UserId, x.MemberId }, memberAuthUser); context.SaveChanges(); context.Set <OrganisationLeader>().AddOrUpdate(x => x.OrganisationId, new OrganisationLeader { LastUpdateDateTimeUtc = DateTime.UtcNow, Leader = member, Organisation = mainOrganisation, OrganisationId = mainOrganisation.Id, LeaderMemberId = member.Id }); context.SaveChanges(); // context.Database.ExecuteSqlCommand("ALTER TABLE Roots ALTER COLUMN [Transliteration] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CS_AS NOT NULL"); }
public void EnsureSeedDataPresent() { var theStartDate = new DateTime(2016, 11, 6, 9, 51, 0, DateTimeKind.Utc); var mainOrganisation = new ShurahBasedOrganisation { Name = "ShariahStandards.org", Description = "For all Muslims who have an interest in developing a global open standard interpretation of Islamic law in English", JoiningPolicy = JoiningPolicy.NoApplicationNeeded, LastUpdateDateTimeUtc = theStartDate, UrlDomain = "https://shariahstandards.org", RequiredNumbersOfAcceptingMembers = 1 }; var existingMainOrganisation = _context.Set <ShurahBasedOrganisation>().FirstOrDefault(x => x.Name == mainOrganisation.Name); if (existingMainOrganisation == null) { _context.Set <ShurahBasedOrganisation>().Add(mainOrganisation); _context.SaveChanges(); } existingMainOrganisation = _context.Set <ShurahBasedOrganisation>().FirstOrDefault(x => x.Name == mainOrganisation.Name); var member = new Member { Introduction = "For some explanations of my views you can visit my personal blog http://investigatingIslam.org ", JoinedOnDateAndTimeUtc = theStartDate, Moderated = false, Removed = false, Organisation = existingMainOrganisation, OrganisationId = existingMainOrganisation.Id, LastDateAndTimeUtcAgreedToMembershipRules = theStartDate, PublicName = "Lamaan Ball", EmailAddress = "*****@*****.**" }; var existingMember = _context.Set <Member>().FirstOrDefault(x => x.EmailAddress == "*****@*****.**"); if (existingMember == null) { _context.Set <Member>().Add(member); _context.SaveChanges(); } existingMember = _context.Set <Member>().FirstOrDefault(x => x.EmailAddress == "*****@*****.**"); var user = new Auth0User { Id = "facebook|10154497931532170", Name = "Lamaan Ball", PictureUrl = "https://scontent.xx.fbcdn.net/v/t1.0-1/p50x50/1959327_10152239153037170_2068892341_n.jpg?oh=9197c2274a8a0b7c3f548ca6407da74e&oe=5884F154" }; var existingUser = _context.Set <Auth0User>().FirstOrDefault(x => x.Id == user.Id); if (existingUser == null) { _context.Set <Auth0User>().Add(user); _context.SaveChanges(); } existingUser = _context.Set <Auth0User>().FirstOrDefault(x => x.Id == user.Id); var memberAuthUser = new MemberAuth0User { Auth0UserId = existingUser.Id, MemberId = existingMember.Id }; var existingMemberAuth0User = _context.Set <MemberAuth0User>().FirstOrDefault(x => x.MemberId == existingMember.Id && x.Auth0UserId == existingUser.Id); if (existingMemberAuth0User == null) { _context.Set <MemberAuth0User>().Add(memberAuthUser); _context.SaveChanges(); } existingMemberAuth0User = _context.Set <MemberAuth0User>().FirstOrDefault (x => x.MemberId == existingMember.Id && x.Auth0UserId == existingUser.Id); var existingOrganisationLeader = existingMainOrganisation.OrganisationLeader; if (existingOrganisationLeader == null) { _context.Set <OrganisationLeader>().Add(new OrganisationLeader { LastUpdateDateTimeUtc = DateTime.UtcNow, Leader = existingMember, Organisation = existingMainOrganisation, OrganisationId = existingMainOrganisation.Id, LeaderMemberId = existingMember.Id }); _context.SaveChanges(); } }
public virtual ResponseResource AcceptMembershipApplication(IPrincipal principal, MembershipApplicationAcceptanceRequest request) { var user = _dependencies.UserService.GetGuaranteedAuthenticatedUser(principal); var application = _dependencies.StorageService.SetOf <MembershipApplication>().SingleOrDefault(x => x.Id == request.Id); if (application == null) { return(new ResponseResource { HasError = true, Error = "Application not found." }); } _dependencies.OrganisationService.GuaranteeUserHasPermission(user, application.Organisation, ShurahOrganisationPermission.AcceptMembershipApplication); var currentMember = _dependencies.OrganisationService.GetGuaranteedMember(principal, application.OrganisationId); var existingAcceptance = application.Acceptances.SingleOrDefault(x => x.AcceptingMemberId == currentMember.Id); if (existingAcceptance != null) { return(new ResponseResource { HasError = true, Error = "You have already accepted this application." }); } var acceptance = new MembershipApplicationAcceptance(); acceptance.AcceptingMemberId = currentMember.Id; acceptance.AcceptanceDateTimeUtc = DateTime.UtcNow; acceptance.AcceptingMember = currentMember; acceptance.MembershipApplication = application; acceptance.MembershipApplicationId = application.Id; _dependencies.StorageService.SetOf <MembershipApplicationAcceptance>().Add(acceptance); _dependencies.StorageService.SaveChanges(); var acceptancesCount = application.Acceptances.Count(x => !x.AcceptingMember.Removed); if (acceptancesCount >= application.Organisation.RequiredNumbersOfAcceptingMembers) { var existingMembership = application.Organisation.Members.FirstOrDefault( m => m.MemberAuth0Users.Any(a => a.Auth0UserId == application.Auth0UserId)); if (existingMembership == null) { existingMembership = new Member(); _dependencies.StorageService.SetOf <Member>().Add(existingMembership); } existingMembership.OrganisationId = application.OrganisationId; existingMembership.PublicName = application.PublicName; existingMembership.EmailAddress = application.Email; existingMembership.Introduction = ""; existingMembership.JoinedOnDateAndTimeUtc = DateTime.UtcNow; existingMembership.LastDateAndTimeUtcAgreedToMembershipRules = DateTime.UtcNow; existingMembership.Organisation = application.Organisation; existingMembership.Removed = false; _dependencies.StorageService.SaveChanges(); var existingMemberAuth0User = _dependencies.StorageService.SetOf <MemberAuth0User>() .SingleOrDefault( x => x.Auth0UserId == acceptance.MembershipApplication.Auth0UserId && x.MemberId == existingMembership.Id); if (existingMemberAuth0User == null) { existingMemberAuth0User = new MemberAuth0User(); existingMemberAuth0User.Auth0UserId = acceptance.MembershipApplication.Auth0UserId; existingMemberAuth0User.Auth0User = acceptance.MembershipApplication.Auth0User; existingMemberAuth0User.MemberId = existingMembership.Id; existingMemberAuth0User.Member = existingMembership; _dependencies.StorageService.SetOf <MemberAuth0User>().Add(existingMemberAuth0User); } existingMemberAuth0User.Suspended = false; _dependencies.StorageService.SaveChanges(); } return(new ResponseResource()); }