public async Task <Models.Community> Post([FromBody] Models.Community community) { User.EnsureCommunityAdmin(community.handle); using (var transaction = _dbContext.Database.BeginTransaction()) { var orgOCUrl = _dbContext.Communities.AsNoTracking().Single(c => c.handle == community.handle).OCUrl; var attached = _dbContext.Communities.Attach(community); attached.State = EntityState.Modified; attached.Property(c => c.OCUrl).IsModified = false; await _dbContext.SaveChangesAsync(); var ocs = new OpenChainServer(orgOCUrl); using (var ad = ocs.Login(TokenController.OCAdminpassPhrase)) { await updateLedgerInfo(ad, community); } transaction.Commit(); return(community); } }
public async Task <Models.User> Post([FromBody] Models.updateUserRequest req) { using (var transaction = _dbContext.Database.BeginTransaction()) { _dbContext.Users.Add(req.user); await _dbContext.SaveChangesAsync(); var community = _dbContext.Communities.Single(c => c.handle == req.user.communityHandle); await TokenController.TransactionVerifier(CommunityController.getUserPath(req.user.handle), req.transaction, $"{community.OCUrl}"); transaction.Commit(); } return(req.user); }
public async Task <dynamic> Reset(String Community, String email) { if (Community == CommunityController.UNKNOWN_COMMUNITY) { //ensure unknowns community exists var unknown = _dbContext.Communities.SingleOrDefault(c => c.handle == Community); if (null == unknown) { unknown = new Models.Community { full_name = "not used unknown community", description = "used to initial signin for community creaters", handle = Community, OCUrl = "notusednodb" }; _dbContext.Communities.Add(unknown); await _dbContext.SaveChangesAsync(); } } var user = _dbContext.Users.Include(u => u.community). SingleOrDefault(u => u.communityHandle == Community && u.email == email); if (null == user) { if (Community == CommunityController.UNKNOWN_COMMUNITY) { user = new Models.User { address = "unknown address", communityHandle = CommunityController.UNKNOWN_COMMUNITY, email = email, name = "Community admin", handle = $"admincreater_{email}" }; _dbContext.Users.Add(user); } else { //check if this is an admin user = _dbContext.Users.SingleOrDefault(u => u.communityHandle == CommunityController.UNKNOWN_COMMUNITY && u.address == $"{Community}_admin" && u.handle == $"admincreater_{email}"); if (null == user) { throw new Converters.DisplayableException("email address not found"); } } } var random = new Random(); string resetPin = string.Empty; for (int i = 0; i < 9; i++) { resetPin = String.Concat(resetPin, random.Next(10).ToString()); } user.ResetPin = resetPin; await _dbContext.SaveChangesAsync(); using (var mailmessage = new System.Net.Mail.MailMessage( new System.Net.Mail.MailAddress("*****@*****.**"), new System.Net.Mail.MailAddress(email)) { Subject = "Your sharenomy reset code", Body = $"Your Sharenomy reset code is <strong>{resetPin}</strong>.<br/>If you did not request this code please ignore this message", IsBodyHtml = true, }) using (var mailclient = new System.Net.Mail.SmtpClient { DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.SpecifiedPickupDirectory, PickupDirectoryLocation = @"C:\tmp\testMailDrop", }) { mailclient.Send(mailmessage); } return(new { success = true }); }