public IHttpResponse Index()
        {
            var user = this.Db.Users.FirstOrDefault(x => x.Username == this.User.Username);

            if (user == null)
            {
                return(this.View());
            }
            else
            {
                var viewModel = new LoggedInIndexViewModel
                {
                    Role = user.Role.ToString()
                };

                viewModel.Tasks = this.Db.Tasks.Where(x => x.IsReported == false).Select(x => new IndexListOfTasks
                {
                    Id    = x.Id,
                    Title = x.Title,
                    Level = x.AffectedSectors.Count
                }).ToList();


                return(this.View("/Home/LoggedInIndex", viewModel));
            }
        }
示例#2
0
        public IHttpResponse Index()
        {
            var user = this.Db.Users.FirstOrDefault(x => x.Username == this.User.Username);

            if (user != null)
            {
                var viewModel = new LoggedInIndexViewModel();

                viewModel.YourChannels = this.Db
                                         .Channels.Where(x => x.Followers.Any(f => f.User.Username == this.User.Username))
                                         .Select(x => new BaseChannelViewModel
                {
                    Id             = x.Id,
                    Type           = x.Type,
                    Name           = x.Name,
                    FollowersCount = x.Followers.Count(),
                }).ToList();

                var followedChannelsTags = this.Db
                                           .Channels.Where(x => x.Followers.Any(f => f.User.Username == this.User.Username))
                                           .SelectMany(x => x.Tags.Select(t => t.TagId))
                                           .ToList();

                viewModel.SuggestedChannels = this.Db
                                              .Channels.Where(x => !x.Followers.Any(f => f.User.Username == this.User.Username) &&
                                                              x.Tags.Any(t => followedChannelsTags.Contains(t.TagId)))
                                              .Select(x => new BaseChannelViewModel
                {
                    Id             = x.Id,
                    Type           = x.Type,
                    Name           = x.Name,
                    FollowersCount = x.Followers.Count(),
                }).ToList();

                var ids = viewModel.YourChannels.Select(x => x.Id).ToList();
                ids = ids.Concat(viewModel.SuggestedChannels.Select(x => x.Id)).ToList();
                ids = ids.Distinct().ToList();

                viewModel.SeeOtherChannels = this.Db
                                             .Channels.Where(x => !ids.Contains(x.Id))
                                             .Select(x => new BaseChannelViewModel
                {
                    Id             = x.Id,
                    Type           = x.Type,
                    Name           = x.Name,
                    FollowersCount = x.Followers.Count(),
                }).ToList();

                return(this.View("Home/LoggedIn-Index", viewModel));
            }
            else
            {
                return(this.View());
            }
        }
示例#3
0
        public IHttpResponse Index()
        {
            if (this.User.IsLoggedIn)
            {
                var model = new LoggedInIndexViewModel();
                model.UserRole = this.User.Role.ToString();

                model.YourChannels = this.Context.Channels
                                     .Where(x => x.Followers.Any(f => f.User.Username == this.User.Username))
                                     .Select(x => new BaseChannelViewModel
                {
                    Id             = x.Id,
                    Type           = x.Type,
                    Name           = x.Name,
                    FollowersCount = x.Followers.Count()
                }).ToList();

                var followedChannelsTags = this.Context.Channels
                                           .Where(x => x.Followers.Any(f => f.User.Username == this.User.Username))
                                           .SelectMany(x => x.Tags.Select(t => t.TagId)).ToList();


                model.SuggestedChannels = this.Context.Channels
                                          .Where(x => !x.Followers
                                                 .Any(f => f.User.Username == this.User.Username) &&
                                                 x.Tags.Any(t => followedChannelsTags.Contains(t.TagId)))
                                          .Select(x => new BaseChannelViewModel
                {
                    Id             = x.Id,
                    Type           = x.Type,
                    Name           = x.Name,
                    FollowersCount = x.Followers.Count()
                }).ToList();

                var ids = model.YourChannels.Select(x => x.Id).ToList();
                ids = ids.Concat(model.SuggestedChannels.Select(x => x.Id)).ToList();
                ids = ids.Distinct().ToList();

                model.SeeOtherChannels = this.Context.Channels
                                         .Where(x => !ids.Contains(x.Id))
                                         .Select(x => new BaseChannelViewModel
                {
                    Id             = x.Id,
                    Type           = x.Type,
                    Name           = x.Name,
                    FollowersCount = x.Followers.Count()
                }).ToList();

                return(this.View("Home/IndexLoggedIn", model));
            }

            return(this.View("Home/Index"));
        }
示例#4
0
        public IHttpResponse Index()
        {
            if (this.User != null)
            {
                var viewModel = new LoggedInIndexViewModel();
                viewModel.UserRole    = this.User.Roles.ToString();
                viewModel.YouChannels = this.Db.Channels.Where(x => x.Followers.Any(f => f.User.Username == this.User.Username))
                                        .Select(t => new BaseChannelViewModels()
                {
                    Id             = t.Id,
                    Name           = t.Name,
                    Type           = t.ChannelType,
                    FollowersCount = t.Followers.Count()
                }).ToList();

                var followedChanelsTags = Db.Channels
                                          .Where(x => x.Followers.Any(f => f.User.Username == this.User.Username))
                                          .SelectMany(x => x.Tags.Select(t => t.Id)).ToList();

                var suggestedChannels = this.Db.Channels.Where(
                    x => x.Followers.All(f => f.User.Username != this.User.Username) &&
                    x.Tags.Any(t => followedChanelsTags.Contains(t.Id)))
                                        .Select(t => new BaseChannelViewModels()
                {
                    Id             = t.Id,
                    Name           = t.Name,
                    Type           = t.ChannelType,
                    FollowersCount = t.Followers.Count()
                }).ToList();

                var ids = viewModel.YouChannels.Select(x => x.Id).ToList();
                ids = ids.Concat(viewModel.SuggestedChannels.Select(x => x.Id).ToList()) as List <int>;
                ids = ids.Distinct().ToList();

                viewModel.SeeOtherChannels = this.Db.Channels.Where(x => !ids.Contains(x.Id))
                                             .Select(t => new BaseChannelViewModels()
                {
                    Id             = t.Id,
                    Name           = t.Name,
                    Type           = t.ChannelType,
                    FollowersCount = t.Followers.Count()
                }).ToList();
                return(this.View(viewModel, "LoggedInIndex"));
            }
            return(this.View());
        }
示例#5
0
        public IHttpResponse Index()
        {
            if (this.User.IsLoggedIn)
            {
                var user = this.Db.Users.FirstOrDefault(x => x.Username == this.User.Username);
                if (user != null)
                {
                    var viewModel = new LoggedInIndexViewModel();
                    viewModel.YourPending = this.Db.Packages.Where(
                        x => x.Status == PackageStatus.Pending && x.Recipient.Id == user.Id)
                                            .Select(x => new BasePackageViewModel
                    {
                        Id     = x.Id,
                        Name   = x.Description,
                        Status = x.Status.ToString(),
                    }).ToList();

                    viewModel.YourShipped = this.Db.Packages.Where(
                        x => x.Status == PackageStatus.Shipped && x.Recipient.Id == user.Id)
                                            .Select(x => new BasePackageViewModel
                    {
                        Id     = x.Id,
                        Name   = x.Description,
                        Status = x.Status.ToString(),
                    }).ToList();

                    viewModel.YourDelivered = this.Db.Packages.Where(
                        x => x.Status == PackageStatus.Delivered && x.Recipient.Id == user.Id)
                                              .Select(x => new BasePackageViewModel
                    {
                        Id     = x.Id,
                        Name   = x.Description,
                        Status = x.Status.ToString(),
                    }).ToList();

                    return(this.View("/Home/IndexLoggedIn", viewModel));
                }
            }

            return(this.View());
        }
示例#6
0
        public IHttpResponse Index()
        {
            var user = this.Db.Users.FirstOrDefault(x => x.Username == this.User.Username);

            if (user != null)
            {
                var viewModel = new LoggedInIndexViewModel();

                viewModel.FullName = user.FullName;
                viewModel.Products = this.Db.Products.Where(p => !p.IsDeleted)
                                     .Select(x => new BaseProductViewModel
                {
                    Id           = x.Id,
                    Name         = x.Name,
                    Desctription = x.Description,
                    Price        = x.Price
                }).ToList();

                return(this.View("/Home/LoggedIn-Index", viewModel));
            }

            return(this.View());
        }
        public IHttpResponse Index()
        {
            var user = this.Db.Users.FirstOrDefault(x => x.Username == this.User.Username);

            if (user != null)
            {
                var viewModel = new LoggedInIndexViewModel();
                viewModel.UserRole = user.Role.ToString();
                var activeOrders = this.Db.Orders.Where(x => x.Status == Status.Active);
                var model        = activeOrders
                                   .Select(x => new OrdersIndexViewModel
                {
                    Name     = x.Product.Name,
                    Price    = x.Product.Price,
                    Quantity = x.Quantity,
                }).ToList();

                viewModel.Orders = model;
                viewModel.Total  = activeOrders
                                   .Select(y => y.Product.Price * y.Quantity).Sum();
                return(this.View("/Home/LoggedInIndex", viewModel));
            }
            return(this.View());
        }