public IActionResult CreateGroup(Domain.Socioboard.Models.Groups group) { DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); //if (dbr.Find<Domain.Socioboard.Models.Groups>(t => t.adminId == group.adminId && t.groupName.Equals(group.groupName)).Count > 0) if (dbr.Find <Domain.Socioboard.Models.Groups>(t => t.groupName.Equals(group.groupName)).Count > 0) { return(Ok("Team Name Already Exist")); } group.createdDate = System.DateTime.UtcNow; int res = dbr.Add <Domain.Socioboard.Models.Groups>(group); if (res == 1) { Domain.Socioboard.Models.User user = dbr.FindSingle <User>(t => t.Id == group.adminId); long GroupId = dbr.FindSingle <Domain.Socioboard.Models.Groups>(t => t.adminId == group.adminId && t.groupName.Equals(group.groupName)).id; GroupMembersRepository.createGroupMember(GroupId, user, _redisCache, dbr); _redisCache.Delete(Domain.Socioboard.Consatants.SocioboardConsts.CacheUserGroups + group.adminId); return(Ok("Team Added Successfully ")); } else { return(Ok("Error while adding Group")); } }
public IActionResult GoogleLogin(string code, Domain.Socioboard.Enum.SBAccountType accType) { string ret = string.Empty; string objRefresh = string.Empty; string refreshToken = string.Empty; string access_token = string.Empty; oAuthTokenGPlus ObjoAuthTokenGPlus = new oAuthTokenGPlus(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); oAuthToken objToken = new oAuthToken(_appSettings.GoogleConsumerKey, _appSettings.GoogleConsumerSecret, _appSettings.GoogleRedirectUri); JObject userinfo = new JObject(); try { objRefresh = ObjoAuthTokenGPlus.GetRefreshToken(code); JObject objaccesstoken = JObject.Parse(objRefresh); _logger.LogInformation(objaccesstoken.ToString()); try { refreshToken = objaccesstoken["refresh_token"].ToString(); } catch { } access_token = objaccesstoken["access_token"].ToString(); string user = objToken.GetUserInfo("self", access_token.ToString()); _logger.LogInformation(user); userinfo = JObject.Parse(JArray.Parse(user)[0].ToString()); } catch (Exception ex) { //access_token = objaccesstoken["access_token"].ToString(); //ObjoAuthTokenGPlus.RevokeToken(access_token); _logger.LogInformation(ex.Message); _logger.LogError(ex.StackTrace); ret = "Access Token Not Found"; return(Ok(ret)); } string EmailId = string.Empty; try { EmailId = (Convert.ToString(userinfo["email"])); } catch { } if (string.IsNullOrEmpty(EmailId)) { return(Ok("Google Not retuning Email")); } try { User inMemUser = _redisCache.Get <User>(EmailId); if (inMemUser != null) { return(Ok(inMemUser)); } } catch (Exception ex) { _logger.LogInformation(ex.Message); _logger.LogError(ex.StackTrace); } DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); IList <User> lstUser = dbr.Find <User>(t => t.EmailId.Equals(EmailId)); if (lstUser != null && lstUser.Count() > 0) { DateTime d1 = DateTime.UtcNow; //User userTable = dbr.Single<User>(t => t.EmailId == EmailId); //userTable.LastLoginTime = d1; lstUser.First().LastLoginTime = d1; dbr.Update <User>(lstUser.First()); _redisCache.Set <User>(lstUser.First().EmailId, lstUser.First()); return(Ok(lstUser.First())); } else { Domain.Socioboard.Models.Googleplusaccounts gplusAcc = Api.Socioboard.Repositories.GplusRepository.getGPlusAccount(Convert.ToString(userinfo["id"]), _redisCache, dbr); if (gplusAcc != null && gplusAcc.IsActive == true) { return(Ok("GPlus account added by other user.")); } Domain.Socioboard.Models.User user = new Domain.Socioboard.Models.User(); if (accType == Domain.Socioboard.Enum.SBAccountType.Free) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Free; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Deluxe) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Deluxe; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Premium) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Premium; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Topaz) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Topaz; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Platinum) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Platinum; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Gold) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Gold; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Ruby) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Ruby; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Standard) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Standard; } user.PaymentType = Domain.Socioboard.Enum.PaymentType.paypal; user.ActivationStatus = Domain.Socioboard.Enum.SBUserActivationStatus.Active; user.CreateDate = DateTime.UtcNow; user.EmailId = EmailId; user.ExpiryDate = DateTime.UtcNow.AddDays(1); user.UserName = "******"; user.EmailValidateToken = "Google"; user.UserType = "User"; user.PaymentStatus = Domain.Socioboard.Enum.SBPaymentStatus.UnPaid; try { user.FirstName = (Convert.ToString(userinfo["name"])); } catch { } user.RegistrationType = Domain.Socioboard.Enum.SBRegistrationType.Google; int SavedStatus = dbr.Add <Domain.Socioboard.Models.User>(user); User nuser = dbr.Single <User>(t => t.EmailId.Equals(user.EmailId)); if (SavedStatus == 1 && nuser != null) { Groups group = new Groups(); group.adminId = nuser.Id; group.createdDate = DateTime.UtcNow; group.groupName = Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName; SavedStatus = dbr.Add <Groups>(group); if (SavedStatus == 1) { Groups ngrp = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.adminId == nuser.Id && t.groupName.Equals(Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName)).FirstOrDefault(); GroupMembersRepository.createGroupMember(ngrp.id, nuser, _redisCache, dbr); // Adding GPlus Profile Api.Socioboard.Repositories.GplusRepository.AddGplusAccount(userinfo, dbr, nuser.Id, ngrp.id, access_token, refreshToken, _redisCache, _appSettings, _logger); } } return(Ok(nuser)); } }
public IActionResult Register(User user) { user.CreateDate = DateTime.UtcNow; user.ExpiryDate = DateTime.UtcNow.AddDays(1); user.EmailValidateToken = SBHelper.RandomString(20); user.ValidateTokenExpireDate = DateTime.UtcNow.AddDays(1); user.ActivationStatus = Domain.Socioboard.Enum.SBUserActivationStatus.MailSent; user.Password = SBHelper.MD5Hash(user.Password); user.UserName = "******"; user.PayPalAccountStatus = Domain.Socioboard.Enum.PayPalAccountStatus.notadded; if (!ModelState.IsValid) { return(BadRequest(ModelState)); } DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); IList <User> lstUser = dbr.Find <User>(t => t.EmailId.Equals(user.EmailId)); if (lstUser != null && lstUser.Count() > 0) { return(BadRequest("EmailID Exist")); } IList <User> lstUser1 = dbr.Find <User>(a => a.PhoneNumber.Equals(user.PhoneNumber)); if (lstUser1 != null && lstUser1.Count() > 0) { return(BadRequest("Phone Number Exist")); } int SavedStatus = dbr.Add <Domain.Socioboard.Models.User>(user); User nuser = dbr.Single <User>(t => t.EmailId.Equals(user.EmailId)); if (SavedStatus == 1 && nuser != null) { Groups group = new Groups(); group.adminId = nuser.Id; // group.id = nuser.Id; group.createdDate = DateTime.UtcNow; group.groupName = Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName; SavedStatus = dbr.Add <Groups>(group); if (SavedStatus == 1) { long GroupId = dbr.FindSingle <Domain.Socioboard.Models.Groups>(t => t.adminId == group.adminId && t.groupName.Equals(group.groupName)).id; GroupMembersRepository.createGroupMember(GroupId, nuser, _redisCache, dbr); } try { string path = _appEnv.WebRootPath + "\\views\\mailtemplates\\registrationmail.html"; string html = System.IO.File.ReadAllText(path); html = html.Replace("[FirstName]", nuser.FirstName); html = html.Replace("[AccountType]", nuser.AccountType.ToString()); html = html.Replace("[ActivationLink]", _appSettings.Domain + "/Home/Active?Token=" + nuser.EmailValidateToken + "&id=" + nuser.Id); _emailSender.SendMailSendGrid(_appSettings.frommail, "", nuser.EmailId, "", "", "Socioboard Email conformation Link", html, _appSettings.SendgridUserName, _appSettings.SendGridPassword); } catch { return(Ok()); } } else { return(BadRequest("Can't create user")); } return(Ok("Email verification mail sent successfully.")); }
public IActionResult FacebookLogin(string AccessToken, Domain.Socioboard.Enum.SBAccountType accType) { dynamic profile = FbUser.getFbUser(AccessToken); if (Convert.ToString(profile) == "Invalid Access Token") { return(Ok("Invalid Access Token")); } try { string EmailId = string.Empty; try { EmailId = (Convert.ToString(profile["email"])); } catch { } if (string.IsNullOrEmpty(EmailId)) { return(Ok("Facebook Not retuning Email")); } try { User inMemUser = _redisCache.Get <User>(EmailId); if (inMemUser != null) { return(Ok(inMemUser)); } } catch (Exception ex) { _logger.LogInformation(ex.Message); _logger.LogError(ex.StackTrace); } DatabaseRepository dbr = new DatabaseRepository(_logger, _appEnv); IList <User> lstUser = dbr.Find <User>(t => t.EmailId.Equals(EmailId)); if (lstUser != null && lstUser.Count() > 0) { DateTime d1 = DateTime.UtcNow; //User userTable = dbr.Single<User>(t => t.EmailId == EmailId); //userTable.LastLoginTime = d1; lstUser.First().LastLoginTime = d1; dbr.Update <User>(lstUser.First()); _redisCache.Set <User>(lstUser.First().EmailId, lstUser.First()); return(Ok(lstUser.First())); } else { Domain.Socioboard.Models.Facebookaccounts fbacc = Api.Socioboard.Repositories.FacebookRepository.getFacebookAccount(Convert.ToString(profile["id"]), _redisCache, dbr); if (fbacc != null && fbacc.IsActive == true) { return(Ok("Facebook account added by other user.")); } Domain.Socioboard.Models.User user = new Domain.Socioboard.Models.User(); if (accType == Domain.Socioboard.Enum.SBAccountType.Free) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Free; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Deluxe) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Deluxe; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Premium) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Premium; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Topaz) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Topaz; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Platinum) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Platinum; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Gold) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Gold; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Ruby) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Ruby; } else if (accType == Domain.Socioboard.Enum.SBAccountType.Standard) { user.AccountType = Domain.Socioboard.Enum.SBAccountType.Standard; } user.ActivationStatus = Domain.Socioboard.Enum.SBUserActivationStatus.Active; user.CreateDate = DateTime.UtcNow; user.EmailId = EmailId; user.ExpiryDate = DateTime.UtcNow.AddDays(1); user.PaymentType = Domain.Socioboard.Enum.PaymentType.paypal; user.UserName = "******"; user.EmailValidateToken = "Facebook"; try { user.ProfilePicUrl = "https://graph.facebook.com/" + Convert.ToString(profile["id"]) + "/picture?type=small"; } catch { } user.PaymentStatus = Domain.Socioboard.Enum.SBPaymentStatus.UnPaid; try { user.FirstName = (Convert.ToString(profile["name"])); } catch { } user.RegistrationType = Domain.Socioboard.Enum.SBRegistrationType.Faceboook; int SavedStatus = dbr.Add <Domain.Socioboard.Models.User>(user); User nuser = dbr.Single <User>(t => t.EmailId.Equals(user.EmailId)); if (SavedStatus == 1 && nuser != null) { Groups group = new Groups(); group.adminId = nuser.Id; group.createdDate = DateTime.UtcNow; group.groupName = Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName; SavedStatus = dbr.Add <Groups>(group); if (SavedStatus == 1) { Groups ngrp = dbr.Find <Domain.Socioboard.Models.Groups>(t => t.adminId == nuser.Id && t.groupName.Equals(Domain.Socioboard.Consatants.SocioboardConsts.DefaultGroupName)).FirstOrDefault(); GroupMembersRepository.createGroupMember(ngrp.id, nuser, _redisCache, dbr); // Adding Facebook Profile Api.Socioboard.Repositories.FacebookRepository.AddFacebookAccount(profile, FbUser.getFbFriends(AccessToken), dbr, nuser.Id, ngrp.id, Domain.Socioboard.Enum.FbProfileType.FacebookProfile, AccessToken, _redisCache, _appSettings, _logger); } } return(Ok(nuser)); } } catch { return(Ok("Invalid Access Token")); } }