private bool isAlreadyExists(UnitOfWork unitOfWork, string EmailID) { try { TradeBulkEntities db = new TradeBulkEntities(); var varible = from x in db.Users select x; var v2 = from x in db.UserDetails select x; GenericRepository <User> ApprvedUserRepository; ApprvedUserRepository = unitOfWork.GetRepoInstance <User>(); if (ApprvedUserRepository.GetAllExpressions(x => x.Email == EmailID).Count <User>() == 0) { return(false); } } catch (Exception ex) { LogHelper.WriteErrorLog(ex); } return(true); }
public void ApprovedUser(string Description, string Id) { try { using (UnitOfWork unitOfWork = new UnitOfWork()) { GenericRepository <UserDetail> uDetails; GenericRepository <UserDetailAddress> uDetailsAddress; long id = Convert.ToInt64(Id); uDetailsAddress = unitOfWork.GetRepoInstance <UserDetailAddress>(); Expression <Func <UserDetailAddress, object> > parameter1 = v => v.UserDetail; Expression <Func <UserDetailAddress, object> > parameter2 = v => v.Address; Expression <Func <UserDetailAddress, object> > parameter3 = v => v.Address.Phone; Expression <Func <UserDetailAddress, object> > parameter4 = v => v.Address.Email; Expression <Func <UserDetailAddress, object> >[] parameterArray = new Expression <Func <UserDetailAddress, object> >[] { parameter1, parameter2, parameter3, parameter4 }; IEnumerable <UserDetailAddress> ListUser = uDetailsAddress.GetAllExpressions(x => (x.UserDetail.IsApproved == null && x.UserDetailPID == id), null, naProperties: parameterArray); string EmailID = ListUser.FirstOrDefault <UserDetailAddress>().Address.Email.ID; if (!isAlreadyExists(unitOfWork, EmailID)) { //check for the emil is not already exists uDetails = unitOfWork.GetRepoInstance <UserDetail>(); UserDetail ApprovedUser = uDetails.GetByID(Convert.ToInt64(Id)); ApprovedUser.IsActive = true; ApprovedUser.IsApproved = true; ApprovedUser.ApproveReason = Description; ApprovedUser.ApprovedDate = DateTime.Now; string strPassword = GenrateRandomPassword(); //User will be created here GenericRepository <User> ApprvedUserRepository; ApprvedUserRepository = unitOfWork.GetRepoInstance <User>(); User user = new User(); user.FirstName = ApprovedUser.FirstName; user.Email = EmailID; user.ActivationCode = Guid.NewGuid(); user.IsActive = true; user.LastName = ApprovedUser.LastName; user.Password = Security.Encrypt(strPassword); GenericRepository <Role> rolesrepo = unitOfWork.GetRepoInstance <Role>(); //user.Roles = rolesrepo.GetAllExpressions(x => x.RoleId == 2, null, null, null).ToList<Role>();//Customer Role i being assigned string CrypticInfo = new string((Convert.ToInt64(DateTime.Now.ToString("yyyy")) + ApprovedUser.UserdetailPID).ToString().Substring(0, 3).Reverse().ToArray()); user.Username = ApprovedUser.FirstName.Substring(0, 4).ToUpper() + CrypticInfo; CrypticInfo = string.Empty; CrypticInfo = new string((Convert.ToInt64(((DateTime)ApprovedUser.DateofBirth).ToString("yyyy")) + ApprovedUser.UserdetailPID).ToString().Substring(0, 3).Reverse().ToArray()); user.UserCode = ApprovedUser.FirstName.Substring(0, 4).ToUpper() + CrypticInfo; ApprovedUser.User = user; ApprvedUserRepository.Insert(user); unitOfWork.SaveChanges(); //Password will be generated here //SendEmail(ToAddress,UserName,Password); //Mail will be send from here } } } catch (Exception ex) { LogHelper.WriteErrorLog(ex); } }