示例#1
0
 public IActionResult PostIdea(IdeaViewModel idea)
 {
     if (ModelState.IsValid)
     {
         if (HttpContext.Session.GetInt32("userid") != null)
         {
             int  uid     = (int)HttpContext.Session.GetInt32("userid");
             Idea NewIdea = new Idea();
             User user    = _context.Users.SingleOrDefault(login => login.userid == uid);
             NewIdea.user       = user;
             NewIdea.text       = idea.text;
             NewIdea.created_at = DateTime.Now;
             NewIdea.updated_at = DateTime.Now;
             _context.Ideas.Add(NewIdea);
             _context.SaveChanges();
             return(RedirectToAction("Ideas"));
         }
         else
         {
             return(RedirectToAction("Main"));
         }
     }
     else
     {
         return(View("~/Views/Idea/Ideas.cshtml", idea));
     }
 }
示例#2
0
        public async Task <IActionResult> Create([FromBody] IdeaViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var session = await _sessionRepository.GetByIdAsync(model.SessionId);

            if (session == null)
            {
                return(NotFound(model.SessionId));
            }

            var idea = new Idea()
            {
                DateCreated = DateTimeOffset.Now,
                Description = model.Description,
                Name        = model.Name
            };

            session.AddIdea(idea);

            await _sessionRepository.UpdateAsync(session);

            return(Ok(session));
        }
示例#3
0
        public virtual ActionResult AddVersion(IdeaViewModel model)
        {
            if (Request.HttpMethod == "GET" || !Request.IsAjaxRequest())
            {
                return(RedirectToAction(MVC.Idea.Details(model.Id, null, null)));
            }

            if (ModelState.IsValid)
            {
                var idea = Service.AddNewVersion(model);
                return(Json(new
                {
                    Text = model.CurrentVersion.Text,
                    VersionId = idea.CurrentVersion.Id,
                    Versions = RenderPartialViewToString(MVC.Idea.Views._Versions, idea),
                    VotingStatistics = RenderPartialViewToString(MVC.Idea.Views.VotingStatistics, idea),
                    VotingButtons = RenderPartialViewToString(MVC.Idea.Views.VotingButtons, idea),
                    Editable = true
                }));
            }

            return(Json(new
            {
                error = (from v in ModelState.Values
                         from e in v.Errors
                         select e.ErrorMessage).Concatenate(";")
            }));
        }
示例#4
0
        public IActionResult NewIdea(IdeaViewModel model)
        {
            int  user_id = (int)HttpContext.Session.GetInt32("user_id");
            User user    = _context.users.SingleOrDefault(u => u.id == user_id);

            if (ModelState.IsValid)
            {
                Idea idea = new Idea()
                {
                    body       = model.body,
                    users_id   = user.id,
                    user       = user,
                    created_at = DateTime.Now,
                    updated_at = DateTime.Now
                };

                _context.ideas.Add(idea);
                _context.SaveChanges();

                return(RedirectToAction("bright_ideas"));
            }
            else
            {
                return(View(model));
            }
        }
示例#5
0
        public async Task <IActionResult> PostIdea([FromBody] IdeaViewModel idea)
        {
            await _context.Ideas.AddAsync(Mapper.Map <Idea>(idea));

            await _context.SaveChangesAsync();

            return(Ok());
        }
示例#6
0
        public IActionResult UpdateIdea([FromBody] IdeaViewModel ideaVm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            return(Ok(ideaService.Update(ideaVm)));
        }
示例#7
0
        public ActionResult PostIdea(IdeaViewModel idea)
        {
            if (ModelState.IsValid)
            {
                this.ideasService.Add(idea.Title, idea.Description);
                return(this.View("_SuccessIdeaAdd"));
            }

            return(this.RedirectToAction("Index"));
        }
        public ActionResult Create([DataSourceRequest] DataSourceRequest request, IdeaViewModel idea)
        {
            if (idea != null && this.ModelState.IsValid)
            {
                this.ideas.Create(new Idea() { Title = idea.Title, Description = idea.Description });
                this.ideas.SaveChanges();
            }

            return this.Json(new[] { idea }.ToDataSourceResult(request, this.ModelState));
        }
        public ActionResult PostIdea(IdeaViewModel idea)
        {
            if (ModelState.IsValid)
            {
                this.ideasService.Add(idea.Title, idea.Description);
                return this.View("_SuccessIdeaAdd");
            }

            return this.RedirectToAction("Index");
        }
示例#10
0
 public void AddIdea(IdeaViewModel ideaModel)
 {
     using (IDbConnection dbConnection = Connection)
     {
         string query = "INSERT INTO ideas (idea, likes, created_at, updated_at, users_id, alias, no_votes) VALUES (@idea, 0, NOW(), NOW(), @users_id, @alias, 0)";
         dbConnection.Open();
         dbConnection.Execute(query, ideaModel);
         string query2 = "UPDATE users SET posts = posts + 1 WHERE id = " + ideaModel.users_id + "";
         dbConnection.Execute(query2);
     }
 }
        public ActionResult Delete([DataSourceRequest] DataSourceRequest request, IdeaViewModel idea)
        {
            var databaseIdea = this.ideas.GetById(idea.Id);

            if (idea != null)
            {
                this.ideas.Delete(databaseIdea);
                this.ideas.SaveChanges();
            }

            return this.Json(new[] { idea }.ToDataSourceResult(request, this.ModelState));
        }
示例#12
0
        public IActionResult AddIdea([FromBody] IdeaViewModel ideaVm)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var authorId = HttpContext.User.FindFirst(JwtClaimIdentifiers.Id).Value;

            ideaVm.AuthorId = authorId;

            return(StatusCode(StatusCodes.Status201Created, ideaService.Create(ideaVm)));
        }
        public async Task <ProcessResult <IdeaViewModel> > GetDetailAsync(long ideaId)
        {
            Func <Task <IdeaViewModel> > action = async() =>
            {
                var idea = await context.Ideas.Include(x => x.CreatorUser)
                           .Include(x => x.Favorites)
                           .Where(x => x.Id == ideaId && (!x.IsDeleted || x.CreatorId == CurrentUser.Id))
                           .SingleAsync();

                var currentUserLike = await context.relIdeaLikes.Where(x => x.IdeaId == ideaId && x.CreatorId == CurrentUser.Id)
                                      .Select(x => x.Vote)
                                      .SingleOrDefaultAsync();

                var ideaTags = await context.relIdeaTags.Include(x => x.Tag)
                               .Where(x => x.IdeaId == ideaId)
                               .Select(x => new TagViewModel
                {
                    Id   = x.Tag.Id,
                    Name = x.Tag.Name
                })
                               .ToListAsync();

                idea.ViewCount++;
                await context.SaveChangesAsync();

                var ideaDetails = new IdeaViewModel
                {
                    Id      = idea.Id,
                    Title   = idea.Title,
                    Article = idea.Article,
                    Tags    = ideaTags,
                    Creator = new CreatorViewModel()
                    {
                        Id        = idea.CreatorId,
                        Name      = idea.CreatorUser.UserName,
                        AvatarURL = String.IsNullOrEmpty(idea.CreatorUser.AvatarURL) ? "person.png" : idea.CreatorUser.AvatarURL
                    },
                    CreatedDate            = idea.CreateDate,
                    CurrentUserLike        = currentUserLike,
                    CurrentUserIsFavorited = idea.Favorites.Where(x => x.CreatorId == CurrentUser.Id)
                                             .Select(x => x.Value).SingleOrDefault(),
                    LikeCount    = idea.LikeCount,
                    ViewCount    = idea.ViewCount,
                    CommentCount = idea.CommentCount,
                    IsDeleted    = idea.IsDeleted
                };

                return(ideaDetails);
            };

            return(await Process.RunAsync(action));
        }
示例#14
0
 public IActionResult AddIdea(IdeaViewModel incoming)
 {
     if (ModelState.IsValid)
     {
         Ideas newIdea = new Ideas();
         newIdea.usersId = (int)HttpContext.Session.GetInt32("currentUserId");
         newIdea.creator = _context.users.FirstOrDefault(item => item.usersId == HttpContext.Session.GetInt32("currentUserId"));
         newIdea.text    = incoming.text;
         _context.Add(newIdea);
         _context.SaveChanges();
     }
     return(RedirectToAction("List"));
 }
示例#15
0
        public async Task <IActionResult> Dashboard()
        {
            var user = await _userManager.GetUserAsync(User);

            IdeaViewModel ideas = new IdeaViewModel()
            {
                ListofCategories = _context
                                   .Categories
                                   .OrderBy(c => c.CategoryName)
                                   .ToList()
            };

            ideas.ListofIdeas = _context.Ideas.Include(i => i.Category).Where(item => user.Id == item.ApplicationUserId).OrderBy(i => i.IdeaName).ToList();
            return(View(ideas));
        }
示例#16
0
        public IdeaViewModel Update(IdeaViewModel ideaVm)
        {
            var idea = Mapper.Map <IdeaViewModel, Idea>(ideaVm);

            try
            {
                var updatedIdea = uow.IdeasRepository.Update(idea);
                uow.SaveChanges();
                return(Mapper.Map <Idea, IdeaViewModel>(updatedIdea));
            }
            catch (Exception ex)
            {
                throw new CustomException(StatusCodes.Status501NotImplemented, ExceptionsMessages.CantEditeIdea, ex);
            }
        }
 public ActionResult ViewIdea(int id)
 {
     using (var context = new ENSE496Entities())
     {
         var ideaViewModel = new IdeaViewModel();
         ideaViewModel.Idea     = context.Ideas.Where(x => x.Id == id).FirstOrDefault();
         ideaViewModel.Comments = context.Comments.Where(x => x.Idea_id == id && x.Active == true).ToList();
         if (ideaViewModel.Comments.Count > 0)
         {
             foreach (Comment comment in ideaViewModel.Comments)
             {
                 comment.User.Username.First();
             }
         }
         ideaViewModel.Likes = context.Likes.Where(x => x.Idea_id == id && x.Active == true).ToList();
         return(View(ideaViewModel));
     }
 }
示例#18
0
        public async Task <IActionResult> Index()
        {
            var currentUser = await _userManager.GetUserAsync(User);

            if (currentUser == null)
            {
                return(Challenge());
            }

            var ideas = await _ideaItemService.GetIdeasAsync();

            var model = new IdeaViewModel()
            {
                Ideas = ideas
            };

            return(View(model));
        }
示例#19
0
        public IActionResult AddIdea(IdeaViewModel newIdea)
        {
            int?ThisUser = HttpContext.Session.GetInt32("UserId");

            if (ModelState.IsValid)
            {
                Idea NewIdea = new Idea
                {
                    UserId  = (int)ThisUser,
                    Content = newIdea.Content
                };
                _context.Ideas.Add(NewIdea);
                _context.SaveChanges();
                return(RedirectToAction("AllIdeas"));
            }
            TempData["Error"] = "Ideas cannot be blank";
            return(RedirectToAction("AllIdeas", newIdea));
        }
示例#20
0
        public ActionResult CreateIdea([FromBody] IdeaViewModel model)
        {
            var validationResult = _validator.Validate(model);

            if (!validationResult.IsValid)
            {
                return(BadRequest(validationResult.ToModelStateDictionary()));
            }

            var idea = _mapper.Map <IdeaViewModel, Idea>(model);

            SetUserID(idea);

            _context.Ideas.Add(idea);
            _context.SaveChanges();

            var response = _mapper.Map <Idea, IdeaResponse>(idea);

            return(Ok(response));
        }
示例#21
0
        private ActionResult GetIdeaView(Entity adxIdeaForum, Entity adxIdea, int?page)
        {
            var ideaDataAdapter = new IdeaDataAdapter(adxIdea)
            {
                ChronologicalComments = true
            };

            var idea     = ideaDataAdapter.Select();
            var comments = new PaginatedList <IComment>(page, ideaDataAdapter.SelectCommentCount(), ideaDataAdapter.SelectComments);

            var ideaViewModel = new IdeaViewModel
            {
                IdeaForum = new IdeaForumDataAdapter(adxIdeaForum).Select(),
                Idea      = idea,
                Comments  = new IdeaCommentsViewModel {
                    Comments = comments, Idea = idea
                }
            };

            return(View("Idea", ideaViewModel));
        }
示例#22
0
        public ActionResult UpdateIdea([FromRoute] Guid id, [FromBody] IdeaViewModel model)
        {
            var idea = _context.Ideas.SingleOrDefault(x => x.Id == id);

            if (idea == null)
            {
                return(NotFound());
            }

            if (idea.UserId != GetUserID())
            {
                return(NotFound());
            }

            idea = _mapper.Map(model, idea);
            _context.SaveChanges();

            var response = _mapper.Map <Idea, IdeaResponse>(idea);

            return(Ok(response));
        }
示例#23
0
        // GET: Ideas/Details/5
        public async Task <IActionResult> Details(int?id)
        {
            var likes         = from i in _context.Like select i;
            var subscriptions = from i in _context.Subscribe select i;
            var user          = await _userManager.GetUserAsync(User);

            if (id == null)
            {
                return(NotFound());
            }

            var idea = await _context.Idea
                       .FirstOrDefaultAsync(m => m.ID == id);

            if (idea == null)
            {
                return(NotFound());
            }
            Like      userLike;
            Subscribe userSub;
            var       ideaComments = await _context.Comment.Where(i => i.IdeaID.Equals(id)).ToListAsync();

            var ideaLikes = likes.Where(i => i.IdeaID.Equals(id) && i.Liked == true);

            userLike = await ideaLikes.Where(i => i.UserID.Equals(user.Id)).FirstOrDefaultAsync();

            userSub = await subscriptions.Where(i => i.UserID == user.Id && i.IdeaID == id).FirstOrDefaultAsync();

            IdeaViewModel formattedIdea = new IdeaViewModel
            {
                Idea         = idea,
                Comments     = ideaComments,
                LikeCount    = ideaLikes.Count(),
                UserLike     = userLike,
                Subscription = userSub
            };

            return(View(formattedIdea));
        }
示例#24
0
        public IdeaViewModel Create(IdeaViewModel ideaVm)
        {
            var idea = Mapper.Map <IdeaViewModel, Idea>(ideaVm);

            if (idea == null)
            {
                throw new CustomException(StatusCodes.Status501NotImplemented, ExceptionsMessages.CantCreateIdea, new NullReferenceException());
            }

            idea.DateOfCreation = DateTime.UtcNow;

            try
            {
                var createdIdea = uow.IdeasRepository.Create(idea);
                uow.SaveChanges();
                return(Mapper.Map <Idea, IdeaViewModel>(createdIdea));
            }
            catch (Exception ex)
            {
                throw new CustomException(StatusCodes.Status501NotImplemented, ExceptionsMessages.CantCreateIdea, ex);
            }
        }
示例#25
0
        public IActionResult CreateIdea(IdeaViewModel model)
        {
            int?UserId = HttpContext.Session.GetInt32("UserId");

            if (UserId != null)
            {
                Idea NewIdea = new Idea
                {
                    IdeaText    = model.IdeaText,
                    CreatedById = (int)UserId,
                    CreatedAt   = DateTime.Now,
                    UpdatedAt   = DateTime.Now,
                };
                _context.Add(NewIdea);
                _context.SaveChanges();
                return(RedirectToAction("Main", "Idea"));
            }
            else
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
示例#26
0
        public IdeaControllerTests()
        {
            model = new IdeaViewModel()
            {
                content    = "some content",
                ease       = 4,
                impact     = 3,
                confidence = 4
            };
            mapper    = A.Fake <IMapper>();
            validator = A.Fake <IValidator <IdeaViewModel> >();
            context   = A.Fake <IIdeaPoolContext>();
            sut       = new IdeasController(validator, mapper, context);
            var claimsPrincipal = A.Fake <ClaimsPrincipal>();

            A.CallTo(() => claimsPrincipal.Claims).Returns(
                new List <Claim>()
            {
                new Claim(ClaimTypes.NameIdentifier, Guid.NewGuid().ToString())
            });
            sut.ControllerContext.HttpContext      = new DefaultHttpContext();
            sut.ControllerContext.HttpContext.User = claimsPrincipal;
        }
示例#27
0
 public IActionResult AddNew(IdeaViewModel model)
 {
     if (!LoggedIn())
     {
         return(RedirectToAction("Index", "Home"));
     }
     else
     {
         if (ModelState.IsValid)
         {
             Idea NewIdea = new Idea
             {
                 Description = model.Description,
                 UserId      = (int)HttpContext.Session.GetInt32("UserId")
             };
             _context.Add(NewIdea);
             _context.SaveChanges();
             return(RedirectToAction("Home"));
         }
         ViewBag.User = _context.Users.Single(u => u.UserId == HttpContext.Session.GetInt32("UserId"));
         return(View("Home", model));
     }
 }
示例#28
0
        private ActionResult GetIdeaView(Entity adxIdeaForum, Entity adxIdea, int?page)
        {
            var ideaDataAdapter = new IdeaDataAdapter(adxIdea)
            {
                ChronologicalComments = true
            };

            var idea     = ideaDataAdapter.Select();
            var comments = FeatureCheckHelper.IsFeatureEnabled(FeatureNames.Feedback)
                                ? new PaginatedList <IComment>(page, ideaDataAdapter.SelectCommentCount(), ideaDataAdapter.SelectComments)
                                : null;

            var currentIdeaForum = new IdeaForumDataAdapter(adxIdeaForum).Select();

            if (currentIdeaForum == null)
            {
                return(RedirectToPageNotFound());
            }

            var ideaViewModel = new IdeaViewModel
            {
                IdeaForum = currentIdeaForum,
                Idea      = idea,
                Comments  = new IdeaCommentsViewModel {
                    Comments = comments, Idea = idea
                }
            };

            if (FeatureCheckHelper.IsFeatureEnabled(FeatureNames.TelemetryFeatureUsage))
            {
                PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Idea, this.HttpContext, "read_idea", 1, idea.Entity.ToEntityReference(), "read");
                PortalFeatureTrace.TraceInstance.LogFeatureUsage(FeatureTraceCategory.Idea, this.HttpContext, "read_comment_idea", idea.CommentCount, idea.Entity.ToEntityReference(), "read");
            }

            return(View("Idea", ideaViewModel));
        }
示例#29
0
        public IdeaModule(IIdeaRepository ideas, IUserRepository users, ISettingsRepository settings, IImageRepository imageRepository)
            : base("/idea")
        {
            _ideas    = ideas;
            _settings = settings;
            _users    = users;

            Get["/{id}"] = parameters =>
            {
                int id   = parameters.id;
                var idea = _ideas.Get(id);
                if (idea == null)
                {
                    return(View["404"]);
                }

                User user = Context.GetCurrentUser(_users);
                if (user != null)
                {
                    if (idea.Votes.Any(u => u.UserId == user.Id))
                    {
                        idea.UserHasVoted = true;
                    }
                }

                var viewModel = new IdeaViewModel(idea);
                var model     = Context.Model(string.Format("{0} - {1}", idea.Title, _settings.Title));
                model.Idea = viewModel;
                return(View["Idea/Index", model]);
            };

            Get["/{id}/activity"] = parameters =>
            {
                int id   = parameters.id;
                var idea = _ideas.Get(id);
                if (idea == null)
                {
                    return(Response.AsJson(new { Status = "error" }));
                }

                var results = idea.Activities.Select(MapToViewModel);

                return(Response.AsJson(new
                {
                    Status = "success",
                    Items = results
                }));
            };

            Get["/image/{id}"] = parameters =>
            {
                var id = (string)parameters.id;
                if (id.Contains("."))
                {
                    id = id.Substring(0, id.IndexOf(".")); //string .jpg in case it was send in
                }
                var image = imageRepository.Get(int.Parse(id));
                // TODO: format should be adaptive based on backing source?
                return(Response.FromStream(new MemoryStream(image.ImageBits), "image/jpeg"));
            };

            Get[@"/imagethumb/{id}/{width}"] = parameters =>
            {
                var image = (Image)imageRepository.Get(parameters.id);
                using (var memoryStream = new MemoryStream(image.ImageBits))
                {
                    var drawingImage = System.Drawing.Image.FromStream(memoryStream);
                    var thumb        = drawingImage.ToThumbnail((int)parameters.width);
                    using (var thumbnailStream = new MemoryStream())
                    {
                        // TODO: format should be adaptive based on backing source?
                        thumb.Save(thumbnailStream, ImageFormat.Jpeg);
                        return(Response.FromStream(new MemoryStream(thumbnailStream.GetBuffer()), "image/jpeg")); //massive WTF? If I just use thumnailStream, it doesn't work...
                    }
                }
            };

            Get["/imagesforidea/{id}"] = parameters =>
            {
                Idea idea = _ideas.Get((int)parameters.id);
                return(Response.AsJson(idea.Images.Select(i => new ImageFileStatus(i.Id, i.ImageBits.Length, i.Name))
                                       .ToArray()
                                       ).WithHeader("Vary", "Accept"));
            };
        }
示例#30
0
        public IdeaView(Idea idea)
        {
            InitializeComponent();

            BindingContext = new IdeaViewModel(Navigation, idea);
        }
示例#31
0
 public IActionResult PostIdea(IdeaViewModel ideaModel)
 {
     ideaFactory.AddIdea(ideaModel);
     return(RedirectToAction("Dashboard", "User"));
 }
示例#32
0
        public ViewModelLocator()
        {
            try
            {
                var config = new ConfigurationBuilder();
                config.AddJsonFile("autofac.json");
                var module  = new ConfigurationModule(config.Build());
                var builder = new ContainerBuilder();
                builder.RegisterModule(module);
                Container = builder.Build();

                navigationService         = Container.Resolve <INavigationService>();
                mainWindowViewModel       = Container.Resolve <MainWindowViewModel>();
                problemsViewModel         = Container.Resolve <ProblemsViewModel>();
                infrastructureViewModel   = Container.Resolve <InfrastructureViewModel>();
                buildingViewModel         = Container.Resolve <BuildingViewModel>();
                governmentViewModel       = Container.Resolve <GovernmentViewModel>();
                hospitalViewModel         = Container.Resolve <HospitalViewModel>();
                ideaViewModel             = Container.Resolve <IdeaViewModel>();
                publicTransportViewModel  = Container.Resolve <PublicTransportViewModel>();
                roadViewModel             = Container.Resolve <RoadViewModel>();
                securityViewModel         = Container.Resolve <SecurityViewModel>();
                tradeAdvertisingViewModel = Container.Resolve <TradeAdvertisingViewModel>();
                yardViewModel             = Container.Resolve <YardViewModel>();
                helloViewModel            = Container.Resolve <HelloViewModel>();
                importantListViewModel    = Container.Resolve <ImportantListViewModel>();
                importantInfofViewModel   = Container.Resolve <ImportantInfofViewModel>();
                newsListViewModel         = Container.Resolve <NewsListViewModel>();
                newsInfoViewModel         = Container.Resolve <NewsInfoViewModel>();
                buildingPVModel           = Container.Resolve <BuildingPVModel>();
                governmentPVModel         = Container.Resolve <GovernmentPVModel>();
                hospitalPVModel           = Container.Resolve <HospitalPVModel>();
                ideaPVModel             = Container.Resolve <IdeaPVModel>();
                infrastructurePVModel   = Container.Resolve <InfrastructurePVModel>();
                publicTransportPVModel  = Container.Resolve <PublicTransportPVModel>();
                roadPVModel             = Container.Resolve <RoadPVModel>();
                securityPVModel         = Container.Resolve <SecurityPVModel>();
                tradeAdvertisingPVModel = Container.Resolve <TradeAdvertisingPVModel>();
                yardPVModel             = Container.Resolve <YardPVModel>();

                navigationService.Register <ProblemsViewModel>(problemsViewModel);
                navigationService.Register <InfrastructureViewModel>(infrastructureViewModel);
                navigationService.Register <BuildingViewModel>(buildingViewModel);
                navigationService.Register <GovernmentViewModel>(governmentViewModel);
                navigationService.Register <HospitalViewModel>(hospitalViewModel);
                navigationService.Register <IdeaViewModel>(ideaViewModel);
                navigationService.Register <PublicTransportViewModel>(publicTransportViewModel);
                navigationService.Register <RoadViewModel>(roadViewModel);
                navigationService.Register <SecurityViewModel>(securityViewModel);
                navigationService.Register <TradeAdvertisingViewModel>(tradeAdvertisingViewModel);
                navigationService.Register <YardViewModel>(yardViewModel);
                navigationService.Register <HelloViewModel>(helloViewModel);
                navigationService.Register <ImportantListViewModel>(importantListViewModel);
                navigationService.Register <ImportantInfofViewModel>(importantInfofViewModel);
                navigationService.Register <NewsListViewModel>(newsListViewModel);
                navigationService.Register <NewsInfoViewModel>(newsInfoViewModel);
                navigationService.Register <BuildingPVModel>(buildingPVModel);
                navigationService.Register <GovernmentPVModel>(governmentPVModel);
                navigationService.Register <HospitalPVModel>(hospitalPVModel);
                navigationService.Register <IdeaPVModel>(ideaPVModel);
                navigationService.Register <InfrastructurePVModel>(infrastructurePVModel);
                navigationService.Register <PublicTransportPVModel>(publicTransportPVModel);
                navigationService.Register <RoadPVModel>(roadPVModel);
                navigationService.Register <SecurityPVModel>(securityPVModel);
                navigationService.Register <TradeAdvertisingPVModel>(tradeAdvertisingPVModel);
                navigationService.Register <YardPVModel>(yardPVModel);

                navigationService.Navigate <HelloViewModel>();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#33
0
        // GET: Ideas
        public async Task <IActionResult> Index(string searchFilter, string searchString)
        {
            var ideas         = from i in _context.Idea select i;
            var comments      = from i in _context.Comment select i;
            var likes         = from i in _context.Like select i;
            var subscriptions = from i in _context.Subscribe select i;
            var user          = await _userManager.GetUserAsync(User);

            if (!String.IsNullOrEmpty(searchFilter))
            {
                if (searchFilter.Equals("Pending") || searchFilter.Equals("Plan") || searchFilter.Equals("Do") ||
                    searchFilter.Equals("Check") || searchFilter.Equals("Act") || searchFilter.Equals("Park") ||
                    searchFilter.Equals("Abandon"))
                {
                    ideas = ideas.Where(i => i.Status.Contains(searchFilter));
                    if (!String.IsNullOrEmpty(searchString))
                    {
                        ideas = ideas.Where(i => i.Title.Contains(searchString));
                    }
                }
                if (searchFilter.Equals("ID"))
                {
                    ideas = ideas.Where(i => i.ID.ToString().Contains(searchString));
                }
                if (searchFilter.Equals("Subscribed"))
                {
                    List <Idea> subscribedIdeas = new List <Idea>();
                    subscriptions = subscriptions.Where(i => i.UserID.Equals(user.Id) && i.Subscribed == true);
                    foreach (var subscription in subscriptions)
                    {
                        foreach (var idea in ideas)
                        {
                            if (subscription.IdeaID.Equals(idea.ID))
                            {
                                subscribedIdeas.Add(idea);
                            }
                        }
                    }
                    ideas = subscribedIdeas.AsQueryable <Idea>();
                    if (!String.IsNullOrEmpty(searchString))
                    {
                        ideas = ideas.Where(i => i.Title.Contains(searchString));
                    }
                }
                if (searchFilter.Equals("TeamMember"))
                {
                    ideas = ideas.Where(i => i.Name.Contains(searchString) && i.Team.Equals(user.Team));
                }
                if (searchFilter.Equals("TeamName"))
                {
                    ideas = ideas.Where(i => i.Team.Contains(searchString));
                }
            }
            else
            {
                if (!String.IsNullOrEmpty(searchString))
                {
                    ideas = ideas.Where(i => i.Title.Contains(searchString));
                }
            }
            List <IdeaViewModel> ideasModel = new List <IdeaViewModel>();
            Like      userLike;
            Subscribe userSub;

            foreach (var item in ideas)
            {
                var ideaComments = comments.Where(i => i.IdeaID.Equals(item.ID));
                var ideaLikes    = likes.Where(i => i.IdeaID.Equals(item.ID) && i.Liked == true);
                userLike = await ideaLikes.Where(i => i.UserID.Equals(user.Id)).FirstOrDefaultAsync();

                userSub = await subscriptions.Where(i => i.UserID == user.Id && i.IdeaID == item.ID).FirstOrDefaultAsync();

                IdeaViewModel formattedIdea = new IdeaViewModel
                {
                    Idea         = item,
                    Comments     = await ideaComments.ToListAsync(),
                    LikeCount    = ideaLikes.Count(),
                    UserLike     = userLike,
                    Subscription = userSub
                };

                ideasModel.Add(formattedIdea);
            }
            return(View(ideasModel));
        }