Example #1
0
        private ISessionFactory BuildSessionFactory()
        {
            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
            builder.DataSource = ConfigurationManager.AppSettings["Hostname"];
            builder.UserID = ConfigurationManager.AppSettings["Username"];
            builder.Password = ConfigurationManager.AppSettings["Password"];
            builder.InitialCatalog = ConfigurationManager.AppSettings["DatabaseName"];

            var nHibernateConfig = new NHibernate.Cfg.Configuration();

            nHibernateConfig.SetProperty(NHibernate.Cfg.Environment.ConnectionString, builder.ToString());
            NHibernate.Cfg.Configuration nHibernateConfigFluent = null;
            NHibernate.ISessionFactory sf = null;

            var file = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MyPhoto", "DB");
            if (!System.IO.File.Exists(file))
            {
                DatabaseManager.DropTablesWithoutEventStore(builder.ToString());

                nHibernateConfigFluent =
                        Fluently.Configure(nHibernateConfig).Mappings(cfg =>
                        {
                            cfg.FluentMappings.AddFromAssemblyOf<IHaveEntities>();
                        }).ExposeConfiguration(cfg => new NHibernate.Tool.hbm2ddl.SchemaExport(cfg)
                                                          .Execute(false, true, false))
                           .BuildConfiguration();
                var sessionFactory = nHibernateConfigFluent.BuildSessionFactory();
                using (var session = sessionFactory.OpenSession())
                {
                    session.BeginTransaction();
                    byte[] avatarBytes = System.IO.File.ReadAllBytes(System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MyPhoto") + "/defaultavatar.png");
                    Guid adminId = new Guid("4F59C3B3-D170-4DC9-B402-6A3612D50FEA");
                    var admin = new MyPhoto.Entities.Entity.User(adminId.ToString(), "admin", "123qwe", "*****@*****.**");
                    var avatar = new MyPhoto.Entities.Entity.Avatar(MyPhoto.Entities.Entity.Avatar.DefaultAvatarId, avatarBytes, admin, DateTime.Now, "image/png");
                    session.Save(admin);
                    session.Flush();
                    session.Save(avatar);
                    admin.Avatar = avatar;
                    admin.IsAdmin = true;

                    session.Transaction.Commit();
                }
                System.IO.File.Create(file);
                sf = sessionFactory;
            }
            else
            {
                nHibernateConfigFluent =
               Fluently.Configure(nHibernateConfig).Mappings(cfg =>
               {
                   cfg.FluentMappings.AddFromAssemblyOf<IHaveEntities>();
               }).BuildConfiguration();
                sf = nHibernateConfigFluent.BuildSessionFactory();
            }
            return sf;
        }
Example #2
0
        public void ClaimsRecieved(UserInfoClaimsReceivedEventArgs args)
        {
            //System.Diagnostics.Debugger.Launch();
            //email,picture,sub
            using (var session = sf.OpenSession())
            using (var tx = session.BeginTransaction())
            {
                var id = args.Claims.Where(x => x.Type == "sub").First().Value;
                var email = args.Claims.Where(x => x.Type == "email").First().Value;
                var image = args.Claims.Where(x => x.Type == "picture").First().Value;

                var user = session.Query<MyPhoto.Entities.Entity.User>().Where(x => x.Id == id).FirstOrDefault();

                if (user == null)
                {
                    user = new MyPhoto.Entities.Entity.User(id, email, Guid.NewGuid().ToString(), email);
                    var avatar = new MyPhoto.Entities.Entity.Avatar(Guid.NewGuid(), new byte[] { }, user, DateTime.Now, "image/png", image);
                    session.Save(user);
                    session.Flush();
                    session.Save(avatar);
                    user.Avatar = avatar;

                }
                else
                {
                    user.Avatar.Url = image;
                    user.Email = email;
                    user.Username = email;
                }
                Search.AddOrUpdate(user);
                new SecurityManager(session).GoogleLogin(email);
                session.Transaction.Commit();

            }
            int i = 0;
            i++;
        }