예제 #1
0
        public IActionResult Login(LoginUserBindingModel model, HttpSession session)
        {
            string userName  = model.Username;
            string paswword  = model.Password;
            string sessionId = session.Id;

            using (var context = new NotesAppContext())
            {
                var user = context.Users.FirstOrDefault(u => u.UserName == userName && u.Password == paswword);

                if (user != null)
                {
                    Login login = new Login()
                    {
                        IsActive  = true,
                        UserId    = user.Id,
                        User      = user,
                        SessionId = sessionId
                    };

                    context.Logins.Add(login);
                    context.SaveChanges();

                    if (signInManager.IsAuthenticated(session))
                    {
                        IList <AllUsersViewModel> list = new List <AllUsersViewModel>();
                        return(Redirect("/home/index"));
                    }
                }
            }

            return(View());
        }
예제 #2
0
 public TagService(NotesAppContext database, IUserService userService, IRelationshipService relationshipService, IDbHelper dbHelper)
 {
     _database            = database;
     _userService         = userService;
     _relationshipService = relationshipService;
     _dbHelper            = dbHelper;
 }
예제 #3
0
        public IActionResult <IEnumerable <AllUsersViewModel> > All(HttpSession session)
        {
            if (!signInManager.IsAuthenticated(session))
            {
                IList <AllUsersViewModel> list = new List <AllUsersViewModel>();
                return(Redirect(list.AsEnumerable(), "users/login"));
            }

            List <User> users = null;

            using (var context = new NotesAppContext())
            {
                users = context.Users.ToList();
            }

            var viewModel = new List <AllUsersViewModel>();

            foreach (var user in users)
            {
                viewModel.Add(new AllUsersViewModel()
                {
                    Username = user.UserName,
                    Id       = user.Id
                    ,
                });
            }

            return(this.View(viewModel.AsEnumerable()));
        }
예제 #4
0
        public IActionResult <IEnumerable <AllUsernamesViewModel> > All(HttpSession session, HttpResponse response)
        {
            if (!signInManager.IsAuthenticated(session))
            {
                Redirect(response, "/users/login");
                return(null);
            }

            using (NotesAppContext context = new NotesAppContext())
            {
                var users     = context.Users.Select(u => new { UserId = u.Id, u.Username }).ToList();
                var viewModel = new List <AllUsernamesViewModel>();

                foreach (var user in users)
                {
                    viewModel.Add(new AllUsernamesViewModel()
                    {
                        UserId   = user.UserId,
                        Username = user.Username
                    });
                }

                return(View(viewModel.AsEnumerable()));
            }
        }
예제 #5
0
        public IActionResult Login(LoginUserBindingModel model, HttpSession session, HttpResponse response)
        {
            string username  = model.Username;
            string password  = model.Password;
            string sessionId = session.Id;

            using (NotesAppContext context = new NotesAppContext())
            {
                User user = context.Users.FirstOrDefault(u => u.Username == username && u.Password == password);
                if (user != null)
                {
                    Login login = new Login()
                    {
                        User      = user,
                        SessionId = sessionId,
                        IsActive  = true
                    };

                    context.Logins.Add(login);
                    context.SaveChanges();
                    Redirect(response, "/home/index");
                    return(null);
                }
            }

            return(View());
        }
예제 #6
0
 public NoteService(NotesAppContext database, IDbHelper dbHelper, IRelationshipService relationshipService, ITagService tagService, IDirectoryService directoryService)
 {
     _database            = database;
     _dbHelper            = dbHelper;
     _relationshipService = relationshipService;
     _tagService          = tagService;
     _directoryService    = directoryService;
 }
예제 #7
0
        static void Main()
        {
            NotesAppContext contex = new NotesAppContext();

            contex.Database.Initialize(true);
            HttpServer server = new HttpServer(8081, RouteTable.Routes);

            MvcEngine.Run(server);
        }
 public static void RemoveSession(HttpRequest request)
 {
     using (var ctx = new NotesAppContext())
     {
         var session = ctx.Sessions.Find(request.Header.Cookies["sid"].Value);
         ctx.Sessions.Remove(session);
         ctx.SaveChanges();
     }
 }
예제 #9
0
        public IActionResult <AllUserViewModel> All()
        {
            IList <string> usernames = null;
            var            contex    = new NotesAppContext();

            usernames = contex.Users.Select(x => x.Username).ToList();

            var result = new AllUserViewModel()
            {
                Usernames = usernames
            };

            return(this.View(result));
        }
        public IActionResult Register(RegisterUserBindingModel model)
        {
            var user = new User()
            {
                Username  = model.Username,
                Passsword = model.Password
            };

            using (var context = new NotesAppContext())
            {
                context.Users.Add(user);
                context.SaveChanges();
            }
            return(View());
        }
예제 #11
0
        public IActionResult Register(RegisterUserBindingModel model)
        {
            var user = new User()
            {
                Username = model.Username,
                Password = model.Password,
                Notes    = new List <Note>()
            };
            var contex = new NotesAppContext();

            contex.Users.Add(user);
            contex.SaveChanges();

            return(this.View());
        }
예제 #12
0
 public IActionResult <UserProfileViewModel> Profile(AddNoteBindingModel model)
 {
     using (var context = new NotesAppContext())
     {
         var user = context.Users.Find(model.UserId);
         var note = new Note
         {
             Title   = model.Title,
             Content = model.Content
         };
         user.Notes.Add(note);
         context.SaveChanges();
     };
     return(Profile(model.UserId));
 }
        public static Session GetSession(HttpRequest request)
        {
            var cookies = request.Header.Cookies;

            if (!cookies.Contains("sid"))
            {
                return(null);
            }

            var sessionCookie = cookies["sid"];
            var ctx           = new NotesAppContext();

            var session = ctx.Sessions
                          .FirstOrDefault(s => s.Id == sessionCookie.Value);

            return(session);
        }
예제 #14
0
        public IActionResult <UserProfileViewModel> Profile(int id)
        {
            var contex = new NotesAppContext();
            var user   = contex.Users.Find(id);
            var model  = new UserProfileViewModel()
            {
                Username = user.Username,
                UserId   = user.Id,
                Notes    = user.Notes
                           .Select(x => new NoteViewModel()
                {
                    Title   = x.Title,
                    Content = x.Content
                }).ToList()
            };

            return(this.View(model));
        }
예제 #15
0
        public IActionResult <UserProfileViewModel> Profile(int id)
        {
            using (var context = new NotesAppContext())
            {
                var user      = context.Users.Find(id);
                var viewModel = new UserProfileViewModel()
                {
                    UserId   = user.Id,
                    Username = user.Username,
                    Notes    = user.Notes
                               .Select(n => new NoteViewModel()
                    {
                        Title   = n.Title,
                        Content = n.Content
                    })
                };

                return(this.View(viewModel));
            }
        }
예제 #16
0
 public IActionResult Login(LoginUserBindingModel model, HttpSession session, HttpResponse response)
 {
     using (var context = new NotesAppContext())
     {
         var user = context.Users.FirstOrDefault(u => u.Username == model.Username && u.Passsword == model.Password);
         if (user != null)
         {
             context.Logins.Add(new Login()
             {
                 SessionId = session.Id,
                 User      = user,
                 IsActive  = true
             });
             context.SaveChanges();
             Redirect(response, "/home/index");
             return(null);
         }
     }
     return(View());
 }
예제 #17
0
        public IActionResult <List <UserProfileViewModel> > All()
        {
            var usernamesAndids = new List <UserProfileViewModel>();

            using (var context = new NotesAppContext())
            {
                usernamesAndids = context.Users
                                  .Select(u => new UserProfileViewModel()
                {
                    UserId   = u.Id,
                    Username = u.Username,
                    Notes    = u.Notes.Select(n => new NoteViewModel()
                    {
                        Content = n.Content,
                        Title   = n.Title
                    })
                }).ToList();
            }

            return(this.View(usernamesAndids));
        }
        internal static HttpResponse CreateSession(HttpResponse response, string username, string password)
        {
            var sessionCookie = new Cookie("sid", new Random().Next().ToString());

            using (var context = new NotesAppContext())
            {
                var user = context.Users
                           .SingleOrDefault(u => u.Username == username && u.Password == password);
                if (user != null)
                {
                    context.Sessions.Add(new Session()
                    {
                        Id     = sessionCookie.Value,
                        UserId = user.Id
                    });
                }
                context.SaveChanges();
            }
            response.Header.Cookies.Add(sessionCookie);
            return(response);
        }
예제 #19
0
        public IActionResult Register(RegisterUserBindingModel model, HttpResponse response)
        {
            if (model.Username == null && model.Password == null)
            {
                Redirect(response, "/home/index");
                return(null);
            }

            User user = new User()
            {
                Username = model.Username,
                Password = model.Password
            };

            using (NotesAppContext context = new NotesAppContext())
            {
                context.Users.Add(user);
                context.SaveChanges();
            }

            return(View());
        }
예제 #20
0
        public IActionResult <AllUsernamesViewModel> All(HttpSession session, HttpResponse response)
        {
            if (!signInManager.IsAuthenticated(session))
            {
                Redirect(response, "/users/login");
                return(null);
            }

            List <string> usernames = null;

            using (var context = new NotesAppContext())
            {
                usernames = context.Users.Select(u => u.Username).ToList();
            }

            var viewModel = new AllUsernamesViewModel()
            {
                Usernames = usernames
            };

            return(View(viewModel));
        }
예제 #21
0
        public IActionResult <IEnumerable <AllUsersViewModel> > All()
        {
            List <User> users = null;

            using (var contex = new NotesAppContext())
            {
                users = contex.Users.ToList();
            }

            var viewModel = new List <AllUsersViewModel>();

            foreach (var user in users)
            {
                viewModel.Add(new AllUsersViewModel()
                {
                    Username = user.Username,
                    Id       = user.Id
                });
            }

            return(this.View(viewModel.AsEnumerable()));
        }
예제 #22
0
        public IActionResult <UserProfileViewModel> Profile(int id, HttpSession session, HttpResponse response)
        {
            if (id <= 0)
            {
                Redirect(response, "/users/login");
                return(null);
            }

            if (!signInManager.IsAuthenticated(session))
            {
                Redirect(response, "/users/login");
                return(null);
            }

            var viewModel = new UserProfileViewModel();

            using (NotesAppContext context = new NotesAppContext())
            {
                var user = context.Users.Find(id);
                if (user != null)
                {
                    viewModel = new UserProfileViewModel()
                    {
                        SessionId = session.Id,
                        UserId    = user.Id,
                        Username  = user.Username,
                        Notes     = user.Notes
                                    .Select(un => new NoteViewModel()
                        {
                            Title   = un.Title,
                            Content = un.Content
                        })
                    };
                }

                return(View(viewModel));
            }
        }
예제 #23
0
        public IActionResult <UserProfileViewModel> Profile(AddNoteBindingModel model, HttpSession session, HttpResponse response)
        {
            if (model.Title == null || model.Content == null)
            {
                Redirect(response, "/users/login");
                return(null);
            }

            using (NotesAppContext context = new NotesAppContext())
            {
                var user = context.Users.Find(model.UserId);

                var note = new Note()
                {
                    Title   = model.Title,
                    Content = model.Content
                };

                user.Notes.Add(note);
                context.SaveChanges();

                return(Profile(model.UserId, session, response));
            }
        }
예제 #24
0
 public UserController(IUserService userService, IDbHelper dbHelper, NotesAppContext context)
 {
     _userService = userService;
     _dbHelper    = dbHelper;
     _context     = context;
 }
 public DirectoryService(NotesAppContext database, ITagService tagService, IDbHelper dbHelper)
 {
     _tagService = tagService;
     _dbHelper   = dbHelper;
     _context    = database;
 }
 public RelationshipService(NotesAppContext database, IDbHelper dbHelper)
 {
     _database = database;
     _dbHelper = dbHelper;
 }
예제 #27
0
        public AutomapperProfile(NotesAppContext context)
        {
            _dbContext = context;

            CreateMap <Users, UserDetail>()
            .ForMember(dest => dest.NotesCreated, opt => opt.MapFrom(users => users.Notes))
            .ForMember(dest => dest.TagsCreated, opt => opt.MapFrom(users => users.Tags));
            CreateMap <UserDetail, Users>();

            CreateMap <Users, UserBaseModel>();
            CreateMap <UserBaseModel, Users>();

            CreateMap <Users, UserUpdateModel>();
            CreateMap <UserUpdateModel, Users>();

            CreateMap <Notes, NoteDetail>()
            .ForMember(dest => dest.Tags, opt => opt.MapFrom(entity =>
                                                             entity.TagNoteRelationship
                                                             .Where(r => string.IsNullOrEmpty(r.Tag.PathWithTitles))
                                                             .Select(relationship => new TagSummary {
                TagId = relationship.TagId, Title = relationship.Tag.Title
            })))
            .ForMember(dest => dest.Directories, opt => opt.MapFrom(entity =>
                                                                    entity.TagNoteRelationship
                                                                    .Where(r => !string.IsNullOrEmpty(r.Tag.PathWithTitles))
                                                                    .Select(relationship => relationship.Tag)));
            CreateMap <NoteDetail, Notes>();

            CreateMap <NoteUpdateModel, Notes>();
            CreateMap <Notes, NoteUpdateModel>();
            //.ForMember(dest => dest.Tags, opt => opt.MapFrom(entity => entity.TagNoteRelationship.Select(relationship => new TagSummary { TagId = relationship.TagId, Title = relationship.Tag.Title })));

            CreateMap <NoteCreationModel, Notes>();
            CreateMap <Notes, NoteCreationModel>();

            CreateMap <Notes, NoteBase>();
            CreateMap <NoteBase, Notes>();

            CreateMap <Notes, NoteSummary>();
            CreateMap <NoteSummary, Notes>();


            CreateMap <Tags, Tags>();

            CreateMap <Tags, TagSummary>();
            CreateMap <TagSummary, Tags>();

            CreateMap <Tags, DirectorySummary>();
            CreateMap <DirectorySummary, Tags>();

            CreateMap <Tags, TagCreationModel>();
            CreateMap <TagCreationModel, Tags>();

            CreateMap <Tags, TagUpdateModel>();
            CreateMap <TagUpdateModel, Tags>();

            CreateMap <Tags, TagDetail>()
            //.ForMember(dest => dest.ParentTags, opt => opt.MapFrom(t => _dbContext.TagAlwaysIncludeRelationship
            //    .Where(tr => tr.ChildTagId == t.TagId)
            //    .Select(tr => tr.AlwaysIncludeTag)
            //    ))
            //.ForMember(dest => dest.ChildTags, opt => opt.MapFrom(t => _dbContext.TagAlwaysIncludeRelationship
            //    .Where(tr => tr.AlwaysIncludeTagId == t.TagId)
            //    .Select(rel => rel.ChildTag)))
            .ForMember(dest => dest.CreatedByUserName, opt => opt.MapFrom(t => t.CreatedByUser.Username));
            CreateMap <TagDetail, Tags>();

            CreateMap <Tags, DirectoryDetail>()
            .ForMember(dest => dest.CreatedByUserName, opt => opt.MapFrom(t => t.CreatedByUser.Username))
            .ForMember(dest => dest.ParentIds, opt => opt.MapFrom(t => MapPathIds(t.PathWithIds)))
            ;
            CreateMap <DirectoryDetail, Tags>();


            CreateMap <TagNoteRelationship, TagSummary>()
            .ForMember(dest => dest.Title, opt => opt.MapFrom(rel => rel.Tag.Title));
            CreateMap <TagSummary, TagNoteRelationship>()
            .ForMember(tr => tr.TagId, opt => opt.MapFrom(ts => ts.TagId))
            .ForMember(tr => tr.Tag, opt => opt.MapFrom(ts => _dbContext.Tags.Find(ts.TagId)));

            CreateMap <TagNoteRelationship, NoteDetail>()
            //.ForMember(destinationMember => destinationMember, opt => opt.MapFrom(tn => tn.Note))
            .ForAllMembers(opt => opt.MapFrom(tn => tn.Note))
            ;
            CreateMap <NoteDetail, TagNoteRelationship>();
        }
예제 #28
0
 public BaseController(NotesAppContext context)
 {
     this.Context = context;
 }
예제 #29
0
 public NoteDataAccess(NotesAppContext context, IMapper mapper)
 {
     Context = context;
     Mapper  = mapper;
 }
예제 #30
0
 public UserService(NotesAppContext dbContext, IMapper mapper, IDbHelper dbService)
 {
     _dbContext = dbContext;
     _mapper    = mapper;
     _dbService = dbService;
 }