예제 #1
0
 /// <summary>
 /// Constructor
 /// </summary>
 public LoanService()
 {
     loanRepository     = RepositoryFactory.Loans;
     memberRepository   = RepositoryFactory.Members;
     bookCopyRepository = RepositoryFactory.BookCopys;
     bookRepository     = RepositoryFactory.Books;
 }
예제 #2
0
        private MemberRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out MemberTypeRepository memberTypeRepository)
        {
            memberTypeRepository = new MemberTypeRepository(unitOfWork, NullCacheProvider.Current);
            var repository = new MemberRepository(unitOfWork, NullCacheProvider.Current, memberTypeRepository);

            return(repository);
        }
예제 #3
0
        public HttpResponseMessage HttpGet(HttpControllerContext controllerContext)
        {
            HttpResponseMessage rest = null;
            var id = controllerContext.RouteData.Values["id"];

            if (id == null)
            {
                var context = MemberRepository.Get();
                rest = controllerContext.Request.CreateResponse(HttpStatusCode.OK, context);
            }

            else
            {
                int idAsInteger;
                if (!int.TryParse(id.ToString(), out idAsInteger))
                {
                    rest = controllerContext.Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Id degeri numeric olmali");
                }
                else
                {
                    var context = MemberRepository.Get(idAsInteger);
                    rest = controllerContext.Request.CreateResponse(HttpStatusCode.OK, context);
                }
            }

            return(rest);
        }
예제 #4
0
        public void Test_FindByID_Member()
        {
            var repository = new MemberRepository();
            var member     = repository.FindById("abc");

            Assert.IsNull(member);
        }
예제 #5
0
        public void Should_AddNameFrequencies()
        {
            var memberRepository = new MemberRepository();
            var firstNameQuery   = from m in _members
                                   select new { Name = m.FirstName };

            var lastNameQuery = from m in _members
                                select new { Name = m.LastName };

            var names = firstNameQuery.Concat(lastNameQuery);

            var nameFrequencies = (from m in names
                                   group m by m.Name into grp
                                   let count = grp.Count()
                                               let name = grp.Key
                                                          select new NameFrequency {
                Name = name,
                Count = count
            })
                                  .OrderByDescending(a => a.Count)
                                  .ThenBy(a => a.Name);


            var success = memberRepository.Add(nameFrequencies);

            Assert.AreEqual(6, nameFrequencies.Count());
            Assert.IsTrue(success);
        }
예제 #6
0
        /// <summary>
        /// Gets a member by id from db and returns it to view
        /// </summary>
        /// <param name="id"></param>
        /// <returns>A member as an object</returns>
        public ActionResult Edit(string id)
        {
            ObjectId memberId = new ObjectId(id);
            Member   member   = MemberRepository.GetMemberById(memberId);

            return(View(member));
        }
예제 #7
0
 public WeightHistoryController(IWeightHistoryRepository weightHistoryRepository, MemberRepository member,
                                IMapper mapper)
 {
     _weightHistoryRepository = weightHistoryRepository;
     _memberManager           = member;
     _mapper = mapper;
 }
예제 #8
0
        public void Test_GetAll_Member()
        {
            var repository = new MemberRepository();
            var member     = repository.GetAll();

            Assert.IsTrue(member.Count() == 0);
        }
예제 #9
0
        public void DisposeTest()
        {
            var repo = new MemberRepository(InitializeData());

            repo.Dispose();
            Assert.IsNull(repo.Members);
        }
예제 #10
0
        public void Members_Create()
        {
            var repository = new MemberRepository();
            //Members member = new Members()
            //{
            //    MemberID = "123",
            //    Password = "******",
            //    Name = "測試會員1號",
            //    Phone = "0123456789",
            //    Email = "*****@*****.**",
            //    Address = "300新竹市香山區五福路二段707號"
            //};
            //repository.Create(member);
            //Members member1 = new Members()
            //{
            //    MemberID = "456",
            //    Password = "******",
            //    Name = "測試會員2號",
            //    Phone = "0123456789",
            //    Email = "*****@*****.**",
            //    Address = "300新竹市香山區五福路二段707號"
            //};
            //repository.Create(member1);
            var members = repository.GetAll(connection);

            Assert.IsTrue(members.Count() > 0);
        }
예제 #11
0
        public ActionResult Create(string name, string address, string telNumber, string password)
        {
            try
            {
                if (MemberRepository.IfNameIsUnique(name))
                {
                    if (password != null)
                    {
                        Member member = new Member(name, address, telNumber, password);
                        MemberRepository.CreateMember(member);

                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        TempData["textmsg"] = "<script>alert('You have to select a password');</script>";
                        return(View());
                    }
                }
                else
                {
                    TempData["textmsg"] = "<script>alert('This name already exists as a member. Please try another name');</script>";
                    return(View());
                }
            }
            catch
            {
                return(RedirectToAction("Index"));
            }
        }
예제 #12
0
        public HttpResponseMessage Giris(Login login)
        {
            if (login != null)
            {
                memberRepository = new MemberRepository();
                var carikart = memberRepository.Giris(login.kullanici_adi, login.sifre);
                if (carikart != null)
                {
                    Member member = new Member
                    {
                        personel_id = carikart.carikart_id,
                        ad_soyad    = carikart.cari_unvan
                    };

                    return(Request.CreateResponse(HttpStatusCode.OK, member));
                }
                else
                {
                    return(Request.CreateResponse(HttpStatusCode.Forbidden, new NotFound {
                        message = "Authentication Failed!"
                    }));
                }
            }
            else
            {
                return(Request.CreateResponse(HttpStatusCode.InternalServerError, new NotFound {
                    message = "A problem has been occurred during the process."
                }));
            }
        }
예제 #13
0
        public static MemberRepository GetMemberRepository()
        {
            var repository = new MemberRepository();

            repository.UnitOfWork = GetUnitOfWork();
            return(repository);
        }
예제 #14
0
    protected void btLogin_Click(object sender, EventArgs e)
    {
        string returnUrl = HttpUtility.UrlDecode(Request.QueryString["returnUrl"]);

        string pass    = ApplicationUtil.PasswordEncrypt(txtPassword.Text);
        var    members = new MemberRepository().SearchFor(o => o.Member_Username == txtUsername.Text || o.Member_Email == txtUsername.Text || o.Member_Phone == txtUsername.Text);

        if (members.Count() > 0)
        {
            tbl_Member member = members.SingleOrDefault();
            if (member.Member_Password == pass)
            {
                if (member.Member_Status == false)
                {
                    Value.ShowMessage(ltrLoginMessage, ErrorMessage.AccountLocked, AlertType.ERROR);
                    txtUsername.Focus();
                }
                else
                {
                    Session["MemberID"]        = member.Member_ID;
                    Session["Member_Role"]     = member.Member_Role;
                    Session["Member_Username"] = member.Member_Username;
                    Session["Member_Email"]    = member.Member_Email;
                    Session["Member_Avarta"]   = member.Member_Avarta;
                    Session["Member_Name"]     = member.Member_Name;
                    if (ckRemember.Checked)
                    {
                        Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(30);
                        Response.Cookies["Password"].Expires = DateTime.Now.AddDays(30);
                        Response.Cookies["UserName"].Value   = txtUsername.Text.Trim();
                        Response.Cookies["Password"].Value   = txtPassword.Text.Trim();
                    }
                    else
                    {
                        Response.Cookies["UserName"].Expires = DateTime.Now.AddDays(-1);
                        Response.Cookies["Password"].Expires = DateTime.Now.AddDays(-1);
                    }
                    Value.ShowMessage(ltrLoginMessage, string.Format(ErrorMessage.Success, "Đăng nhập", ""), AlertType.ERROR);
                    if (string.IsNullOrEmpty(returnUrl))
                    {
                        Response.Redirect("/");
                    }
                    else
                    {
                        Response.Redirect(returnUrl);
                    }
                }
            }
            else
            {
                Value.ShowMessage(ltrLoginMessage, ErrorMessage.LoginFail, AlertType.ERROR);
                txtUsername.Focus();
            }
        }
        else
        {
            Value.ShowMessage(ltrLoginMessage, ErrorMessage.LoginFail, AlertType.ERROR);
            txtUsername.Focus();
        }
    }
예제 #15
0
        public Result <dynamic> ModifyDisplayName(string displayName)
        {
            var result = new Result <dynamic>();
            var member = this.GetCurrentMember();

            if (member == null || member.id <= 0)
            {
                result.Code    = ResultCode.Error;
                result.Message = "用户未登录";
                return(result);
            }
            var ent = MemberRepository.Get(member.id);

            if (ent == null)
            {
                result.Code    = ResultCode.Error;
                result.Message = "获取用户信息失败";
                return(result);
            }
            ent.DisplayName = displayName;

            var dbResult = MemberRepository.Update(ent);

            if (dbResult)
            {
                result.Code    = ResultCode.Success;
                result.Message = "修改昵称成功";
            }
            else
            {
                result.Code    = ResultCode.Error;
                result.Message = "数据库操作异常";
            }
            return(result);
        }
예제 #16
0
 public UnitOfWork(bbuContext context)
 {
     _context             = context;
     Addresses            = new AddressRepository(_context);
     AppUsers             = new AppUserRepository(_context);
     Banks                = new BankRepository(_context);
     BankAccounts         = new BankAccountRepository(_context);
     Cemeteries           = new CemeteryRepository(_context);
     Credentials          = new CredentialsRepository(_context);
     Deceaseds            = new DeceasedRepository(_context);
     Doctors              = new DoctorRepository(_context);
     Employees            = new EmployeeRepository(_context);
     Files                = new FileRepository(_context);
     Funerals             = new FuneralRepository(_context);
     FuneralDocuments     = new FuneralDocumentRepository(_context);
     Genders              = new GenderRepository(_context);
     HomeAffairsOffices   = new HomeAffairsOfficeRepository(_context);
     HomeAffairsOfficers  = new HomeAffairsOfficerRepository(_context);
     Hospitals            = new HospitalRepository(_context);
     Informants           = new InformantRepository(_context);
     Members              = new MemberRepository(_context);
     Months               = new MonthRepository(_context);
     Mortuaries           = new MortuaryRepository(_context);
     NextOfKins           = new NextOfKinRepository(_context);
     NumberConfigurations = new NumberConfigurationRepository(_context);
     Payments             = new PaymentRepository(_context);
     PaymentPeriods       = new PaymentPeriodRepository(_context);
     People               = new PersonRepository(_context);
     PurchaseItems        = new PurchaseItemRepository(_context);
     Settings             = new SettingRepository(_context);
     States               = new StateRepository(_context);
     Suppliers            = new SupplierRepository(_context);
     Tasks                = new TaskRepository(_context);
     Years                = new YearRepository(_context);
 }
예제 #17
0
        public void Start()
        {
            Console.Clear();
            Console.WriteLine("Enter your Name and Passeord to SIGN IN");
            Console.WriteLine("---------------------------------------\n");

            List <Member> allMembers = MemberRepository.GetMembers();

            Console.Write("\nEnter your USER NAME: ");
            string userName = Console.ReadLine();

            Console.Write("Enter your PASSWORD: "******"\nThere is no USER registered with this USERNAME and PASSWORD");
            Console.Write("Press any key to try again... ");
            Console.ReadKey();
            Start();
        }
예제 #18
0
 public ActionResult ForgetPwd(string email, FormCollection form)
 {
     if (!Common.Validate.IsEmail(email))
     {
         return(Content(ContentIcon.Error + "|邮箱格式错误"));
     }
     else
     {
         string error  = string.Empty;
         Member member = new MemberRepository().Search().Where(b => b.Email == email).First();
         if (member != null)
         {
             string body = "<p>尊敬的 <b>" + member.RealName + @"</b> 先生/女士,您好:</p>" +
                           "<p style='text-indent:21pt'>您于" + DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss") + "进行了<b>忘记密码</b>操作,您的账户信息为:</p>" +
                           "<p style='text-indent:21pt'>用户名:" + member.UserName + "</p>" +
                           "<p style='text-indent:21pt'>密码:" + member.PwdNotMD5 + "</p>" +
                           "<p style='text-align:right'>本邮件系统自动发送,请勿回复。</p>";
             MailSettingRepository ml = new MailSettingRepository();
             var mt   = ml.GetList(1, 20).First();
             var mail = new Common.MailHelper(mt.MailServer, mt.MailFrom, mt.MailPassword, mt.MailPort ?? 465);
             mail.Send(email, "【找回密码】-" + CurrentSite.Title, body);
             return(Content(ContentIcon.Succeed + "|密码已经发送至您的邮箱,请注意查收"));
         }
         else
         {
             return(Content(ContentIcon.Error + "|无效的邮箱地址"));
         }
     }
 }
예제 #19
0
 public MessageCountProcessor(DiscordClient discordClient, MemberRepository memberRepository, CloudWatchMetrics metrics, ILogger <MessageCountProcessor> logger) : base(discordClient, metrics, logger)
 {
     this.discordClient    = discordClient;
     this.memberRepository = memberRepository;
     this.metrics          = metrics;
     this.logger           = logger;
 }
예제 #20
0
        public Result <dynamic> ForgotPassword(string mobile, int smscode, string password)
        {
            var member = MemberRepository.Get(mobile);

            if (member == null)
            {
                return(new Result <dynamic>()
                {
                    Code = ResultCode.Error,
                    Message = "手机号不存在"
                });
            }
            var smsService = new SmsService();
            var sms        = smsService.VerifySmsCode(mobile, 2, smscode);

            if (sms.Code != ResultCode.Success)
            {
                return(sms);
            }
            member.EncryptedPwd = SecurityHelper.Encrypt(password);
            if (MemberRepository.Update(member))
            {
                return(new Result <dynamic>()
                {
                    Code = ResultCode.Success,
                    Message = "密码找回成功"
                });
            }
            return(new Result <dynamic>()
            {
                Code = ResultCode.Error,
                Message = "密码找回失败"
            });
        }
예제 #21
0
        public void GetByEmailTest()
        {
            var repo       = new MemberRepository(InitializeData());
            var someMember = repo.GetByEmail("*****@*****.**");

            Assert.AreEqual("*****@*****.**", someMember.Email);
        }
예제 #22
0
        public void TestMethod1()
        {
            MemberRepository mr     = new MemberRepository();
            Member           member = new Member
            {
                Age                 = 1,
                Balance             = 100,
                Birthday            = DateTime.Now.Date,
                CardId              = "333",
                CourseCounselorId   = 2,
                CourseCounselorName = "奥黛丽",
                Gender              = "女",
                IsDeleted           = false,
                Name                = "黛安娜",
                Phone               = "13332442311",
                QQ             = "555367",
                RegDate        = DateTime.Now,
                Remarks        = "一刀一人",
                StudioId       = 1,
                StudioName     = "地球分店",
                TransactorId   = 1,
                TransactorName = "BetaCat",
                Type           = "英雄"
            };

            mr.Add(member);
        }
예제 #23
0
        public void GetByIdTest()
        {
            var repo       = new MemberRepository(InitializeData());
            var someMember = repo.GetById(1);

            Assert.AreEqual(1, someMember.ID);
        }
예제 #24
0
        public static MemberRepository GetMemberRepository(IUnitOfWork unitOfWork)
        {
            var repository = new MemberRepository();

            repository.UnitOfWork = unitOfWork;
            return(repository);
        }
예제 #25
0
        /// <summary>
        /// Logs a member and returns authentication token
        /// </summary>
        /// <param name="apiMember"></param>
        /// <param name="facebookKey"></param>
        /// <returns></returns>
        /// 
        public Authentication GetAuthenticatedMemberLoginToken(ApiAccess apiMember, string facebookKey)
        {
            if (String.IsNullOrEmpty(facebookKey))
            {
                return GetBadAuthentication("Missing or Invalid facebook key");
            }
            Authentication auth = null;
            try
            {
                var memberRepo = new MemberRepository();
                var member = memberRepo.GetByFacebookKey(facebookKey);
                if (null == member || !member.IsActive)
                {
                    return GetBadAuthentication("Member not found or is inactive");
                }

                const string hoursAhead = "1000";
                var sessionEnds = DateTime.Now.AddHours(Convert.ToDouble(hoursAhead)).Ticks;

                var plainAuthKey = String.Concat(Convert.ToString(member.MemberId), doubleUC,
                                                 Convert.ToString(sessionEnds), doubleUC, apiMember.AppKey);
                var generatedAuthKey = plainAuthKey.EncryptSymmetric<RijndaelManaged>(encryptPass, encryptSalt);
                auth = new Authentication {Reason = String.Empty, Success = true, AuthKey = generatedAuthKey};
            }
            catch (Exception e)
            {
                auth = GetBadAuthentication("Invalid facebook key and/or member not found");
            }

            return auth;
        }
예제 #26
0
        /// <summary>
        /// creates an member object and saves in db
        /// </summary>
        private void CreateMember()
        {
            Console.Clear();
            Console.WriteLine("Create a new MEMBER");
            Console.WriteLine("-------------------\n");

            string name = "";

            while (true) //Checks if entered name is unique
            {
                Console.Write("Enter USER NAME(user name must be unique): ");
                name = Console.ReadLine();
                if (name.Length != 0 && MemberRepository.IfNameIsUnique(name))
                {
                    break;
                }
                else
                {
                    Console.WriteLine("You either entered No Name or this name is ALREADY REGISTERED in Library");
                    Console.WriteLine("Try ANOTHER name\n");
                }
            }

            string address = "";

            while (address == "")
            {
                Console.Write("Enter ADDRESS: ");
                address = Console.ReadLine();
            }

            string telNumber = "";

            while (true)
            {
                Console.Write("Enter MOBILE NUMBER(10 numbers): ");
                string input = Console.ReadLine();
                if (input.Length != 0 && IsDigitsOnly(input) && input.Length == 10)
                {
                    telNumber = input;
                    break;
                }
            }

            string password = "";

            while (password == "")
            {
                Console.Write("Enter a password: "******"\n** Member created SUCCESSFULLY **");

            PressKeyToGoBackToStart();
        }
예제 #27
0
        public bool ChangePassword(string username, string oldPassword, string newPassword)
        {
            IMemberRepository mr     = new MemberRepository();
            Member            member = mr.GetByUsername(username);

            if (member == null)
            {
                return(false);
            }

            string oldPasswordHash = FormsAuthentication.HashPasswordForStoringInConfigFile(oldPassword, "sha1");

            if (member.Password != oldPasswordHash)
            {
                return(false);
            }

            string newPasswordHash = FormsAuthentication.HashPasswordForStoringInConfigFile(newPassword, "sha1");

            member.Password = newPasswordHash;
            try
            {
                mr.Update(member);
            }
            catch
            {
                return(false);
            }

            return(true);
        }
 private MemberRepository CreateRepository(IDatabaseUnitOfWork unitOfWork, out MemberTypeRepository memberTypeRepository)
 {
     memberTypeRepository = new MemberTypeRepository(unitOfWork, NullCacheProvider.Current);
     var tagRepo = new TagsRepository(unitOfWork, NullCacheProvider.Current);
     var repository = new MemberRepository(unitOfWork, NullCacheProvider.Current, memberTypeRepository, tagRepo);
     return repository;
 }
예제 #29
0
        public void Test_FindByID_Member()
        {
            var repository = new MemberRepository();
            var member     = repository.FindById("123", connection);

            Assert.IsNotNull(member);
        }
예제 #30
0
        public async Task ClubServiceAircrafFlightTest()
        {
            ImportDataTest import = new ImportDataTest();

            import.InitContext();
            try
            {
                _context = import._context;
                cr       = new ClubRepository(_context);
                AircraftLogBookRepository acr = new AircraftLogBookRepository(_context);
                FlightRepository          fr  = new FlightRepository(_context);
                MemberRepository          mr  = new MemberRepository(_context);
                AircraftRepository        ar  = new AircraftRepository(_context);
                ClubService clubService       = new ClubService(cr, mr, fr, ar, acr, null);
                int         aircraftId        = 8;

                ICollection <Flight> flights = await clubService.GetClubAircraftFlight("BAZ", aircraftId);

                var group = flights.GroupBy(o => o.Pilot);
                foreach (var g in group)
                {
                    System.Diagnostics.Debug.WriteLine(g.FirstOrDefault()?.Pilot?.FirstName);
                    foreach (var gi in g)
                    {
                        System.Diagnostics.Debug.WriteLine(gi.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.WriteLine(ex.Message);
            }
        }
예제 #31
0
        protected virtual void Reset()
        {
            // reset and dispose scopes
            // ensures we don't leak an opened database connection
            // which would lock eg SqlCe .sdf files
            if (Factory?.TryGetInstance <IScopeProvider>() is ScopeProvider scopeProvider)
            {
                Scope scope;
                while ((scope = scopeProvider.AmbientScope) != null)
                {
                    scope.Reset();
                    scope.Dispose();
                }
            }

            Current.Reset(); // disposes the factory

            // reset all other static things that should not be static ;(
            UriUtility.ResetAppDomainAppVirtualPath();
            SettingsForTests.Reset(); // fixme - should it be optional?

            Mapper.Reset();

            // clear static events
            DocumentRepository.ClearScopeEvents();
            MediaRepository.ClearScopeEvents();
            MemberRepository.ClearScopeEvents();
            ContentTypeService.ClearScopeEvents();
            MediaTypeService.ClearScopeEvents();
            MemberTypeService.ClearScopeEvents();
        }
        public MemberModels Login([FromBody] string value)
        {
            try
            {
                ICredentialsHelper credentialsHelper = new CredentialsHelper();
                IMemberRepository  memberRepository  = new MemberRepository();

                LoginModels postModel = new JavaScriptSerializer().Deserialize <LoginModels>(value);

                MemberModels member = new MemberModels();
                if (CacheHelper.MemberCache.Contains(postModel.Username))
                {
                    member             = (MemberModels)CacheHelper.MemberCache.Where(x => x.Key == postModel.Username).FirstOrDefault().Value;
                    member.LoginMethod = LoginMethodEnums.Cache.GetHashCode();
                }
                else
                {
                    member             = memberRepository.GetByUsername(postModel.Username);
                    member.LoginMethod = LoginMethodEnums.Database.GetHashCode();
                }

                return(credentialsHelper.AuthenticateMember(postModel, member));
            }
            catch (Exception ex)
            {
                LogHelper.WriteLog(StaticKeyHelper.API, StaticKeyHelper.Login, ex.Message);
                return(null);
            }
        }
예제 #33
0
        public void GetAllMembers_returns_two_members()
        {
            // Arrange
            var memberRepository = new MemberRepository(activeSessionManager);

            // Act
            var members = memberRepository.GetAll();

            // Assert
            Assert.That(members.Count(), Is.EqualTo(2));
        }
예제 #34
0
        public ActionResult RegisterFacebookMember(string appKey, string facebookKey, string firstName, string lastName, string email, string deviceId, string mobilePhoneNumber = null, string phoneModel = "iPhone")
        {
            var apiAccessRepo = new ApiAccessRepository();
            var apiAccess = apiAccessRepo.GetMemberByPublicApiKey(appKey);
            var apiAuthResult = new ApiAuthResult();

            if (null != apiAccess)
            {

                try
                {
                    var memberRepo = new MemberRepository();
                    var now = DateTime.Now;

                    var member = memberRepo.GetByFacebookKey(facebookKey);

                    if (null == member)
                    {
                        member = new Member();
                        member.FirstName = firstName;
                        member.LastName = lastName;
                        member.Email = email;
                        member.FacebookId = facebookKey;
                        member.DateCreated = now;
                        member.MemberTypeId = 1;
                    }
                    member.DateUpdated = now;
                    member.DateLastAccessed = now;

                    memberRepo.Save(member);

                    //Now Get User Auth Token
                    var authService = new AuthenticationService();
                    var auth = authService.GetAuthenticatedMemberLoginToken(apiAccess, member);
                    apiAuthResult.Success = auth.Success;
                    apiAuthResult.Description = auth.Reason;
                    apiAuthResult.AuthKey = auth.AuthKey;
                }catch(Exception e)
                {
                    apiAuthResult.Success = false;
                    apiAuthResult.Description = "Failed to save member and/or generate auth token";
                    apiAuthResult.AuthKey = "";
                }

            }else
            {
                apiAuthResult.Success = false;
                apiAuthResult.Description = "Invalid AppKey";
                apiAuthResult.AuthKey = "";
            }

            return this.ToXml(apiAuthResult);
        }
        /*
        [HttpGet]
        public ActionResult FacebookLogin(string token)
        {
            var client = new WebClient();
            string JsonResult = client.DownloadString(string.Concat("https://graph.facebook.com/me?access_token=", token));

            var jsonUserInfo = JObject.Parse(JsonResult);
            // you can get more user's info here. Please refer to:
            //     http://developers.facebook.com/docs/reference/api/user/
            string username = jsonUserInfo.Value<string>("username");
            string email = jsonUserInfo.Value<string>("email");
            string locale = jsonUserInfo.Value<string>("locale");
            string facebook_userID = jsonUserInfo.Value<string>("id");

            // store user's information here...
            FormsAuthentication.SetAuthCookie(username, true);
            return RedirectToAction("Index", "Home");
        }
         */
        public ActionResult FacebookCallback(string code)
        {
            var fb = new FacebookClient();
            dynamic result = fb.Post("oauth/access_token", new
            {
                client_id = BananaSplit.Core.Utility.Config.FacebookId,
                client_secret = BananaSplit.Core.Utility.Config.FacebookSecret,
                redirect_uri = RedirectUri.AbsoluteUri,
                code = code
            });

            var accessToken = result.access_token;

            // update the facebook client with the access token so
            // we can make requests on behalf of the user
            fb.AccessToken = accessToken;

            // Get the user's information
            dynamic me = fb.Get("me?fields=first_name,last_name,id,email");
            string email = me.email;
            string fbId = me.id;
            var now = DateTime.Now;

            var memberRepo = new MemberRepository();

            var member = memberRepo.GetByFacebookKey(fbId);

            if (null == member)
            {
                member = new Member();
                member.FirstName = me.first_name;
                member.LastName = me.last_name;
                member.Email = email;
                member.FacebookId = fbId;
                member.DateCreated = now;
                member.MemberTypeId = 1;
            }
            member.DateUpdated = now;
            member.DateLastAccessed = now;

            memberRepo.Save(member);

            //TODO: Check via email to see if this user is authorized to be added. NEED A PAGE FOR THIS

            // Store the access token in the session
            Session["FBAccessToken"] = accessToken;
            Session["FBId"] = fbId;

            // Set the auth cookie
            //FormsAuthentication.SetAuthCookie(email, false);

            return RedirectToAction("Index", "Home");
        }
예제 #36
0
        public void GetById_returns_a_member()
        {
            // Arrange
            var memberRepository = new MemberRepository(activeSessionManager);

            // Act
            var member = memberRepository.GetById(1);

            // Assert
            Assert.That(member.MemberId, Is.EqualTo(1));
            Assert.That(member.FirstName, Is.EqualTo("Tim"));
            Assert.That(member.LastName, Is.EqualTo("Barcz"));
        }
예제 #37
0
        public void GetByUsername_returns_the_user_with_that_username_ignoring_case()
        {
            // Arrange
            var memberRepository = new MemberRepository(activeSessionManager);
            const string username = "******";

            // Act
            var member = memberRepository.GetByUsername(username);

            // Assert
            Assert.That(member.MemberId, Is.EqualTo(1));
            Assert.That(member.Username, Is.EqualTo("TimBarcz"));
        }
예제 #38
0
        public void AddMember_can_successfully_save_a_Member()
        {
            // Arrange
            var memberRepository = new MemberRepository(activeSessionManager);

            var member = new Member()
                             {
                                 Email = "*****@*****.**",
                                 FirstName = "Tim",
                                 LastName = "Barcz",
                                 Username = "******",
                                 Password = "******",
                                 PasswordSalt = "sodium chloride"
                             };
            // Act
            var returnedMemberId = memberRepository.Add(member);

            // Assert
            Assert.That(member.MemberId, Is.GreaterThan(0));
            Assert.That(member.MemberId, Is.EqualTo(returnedMemberId));
        }
예제 #39
0
 public PartnerController()
 {
     this.repo = new MemberRepository();
 }
 public AccountController(MemberRepository memberRepository, AuthenticationService authenticationService)
 {
     _memberRepository = memberRepository;
     _authenticationService = authenticationService;
 }
예제 #41
0
        public void Update_should_persist_changes_to_the_database()
        {
            // Arrange
            var memberRepository = new MemberRepository(activeSessionManager);
            var member = memberRepository.GetById(1);

            // Act
            member.Username = "******";
            memberRepository.Update(member);
            member = memberRepository.GetById(1);

            // Assert
            Assert.That(member.Username, Is.EqualTo("newUsername"));
        }