Example #1
0
        internal async Task GetProjectsPreview_ValidAsync(string sql, Paging paging, ProjectSearch projectSearch, ProjectPreview[] expectedProjects)
        {
            using (var context = Storage.CreateContext())
            {
                try
                {
                    Storage.RunSql(sql);

                    var api = Storage.CreatePublicController(context);


                    var response =
                        (
                            await api.GetProjectsPreviewAsync(paging, projectSearch) as JsonResult
                        ).Value as ExecutionResult <ProjectPreview[]>;

                    GenericChecks.CheckSucceed(response);
                    Assert.Equal(expectedProjects.Length, response.Data.Length);

                    foreach (var item in expectedProjects)
                    {
                        var actual = response.Data.SingleOrDefault(x => x.Code == item.Code);
                        Compare(item, actual);
                    }
                }
                catch (Exception)
                {
                    throw;
                }
                finally
                {
                    context.FlushData();
                }
            }
        }
        public void AddSearchViewData()
        {
            var marketperson = this.AccountService.GetUserList(1).Select(c => new { Id = c.ID, Name = c.Name });

            ViewData.Add("MarketPerson", new SelectList(marketperson, "Name", "Name"));
            var users = this.AccountService.GetUserList(7).Select(c => new { Id = c.ID, Name = c.Name });

            ViewData.Add("Person", new SelectList(users, "Name", "Name"));
            var users1 = this.AccountService.GetUserList(6).Select(c => new { Id = c.ID, Name = c.Name });

            ViewData.Add("Leader", new SelectList(users1, "Name", "Name"));
            List <string> list = new List <string>();

            list.Add("检测评价组长");
            list.Add("检测评价普通员工");
            ViewData.Add("Select", new SelectList(list));
            List <string> list2 = new List <string>();

            list2.Add("全部项目");
            list2.Add("检测项目");
            list2.Add("评价项目");
            ViewData.Add("Type", new SelectList(list2));
            List <string> list3 = new List <string>();
            int           year  = DateTime.Now.Year - 10;

            for (int i = 10; i > 0; i--)
            {
                list3.Add((year + i).ToString());
            }
            ViewData.Add("Year", new SelectList(list3));
            ProjectSearch = new ProjectSearch();
        }
Example #3
0
        internal async Task GetProjectsPreview_InValidEmptyAsync(Paging paging, ProjectSearch projectSearch)
        {
            using (var context = Storage.CreateContext())
            {
                try
                {
                    var api = Storage.CreatePublicController(context);


                    var response =
                        (
                            await api.GetProjectsPreviewAsync(paging, projectSearch) as JsonResult
                        ).Value as ExecutionResult <ProjectPreview[]>;
                    GenericChecks.CheckEmpty(response);
                }
                catch (Exception)
                {
                    throw;
                }
                finally
                {
                    context.FlushData();
                }
            }
        }
        public ActionResult Search(FormCollection collection)
        {
            AddSearchViewData();
            ProjectSearch search = new ProjectSearch();

            search.JobType = collection["Select"];
            if (search.JobType == "")
            {
                return(View("Index2"));
            }
            if (search.JobType == "检测评价组长")
            {
                search.People = collection["Leader"];
            }
            else
            {
                search.People = collection["Person"];
            }
            search.Year        = collection["Year"];
            search.ProjectType = collection["Type"];
            var model = this.IDKLManagerService.GetProjectSearch(search.JobType, search.People, search.ProjectType, search.Year);

            search.projectList        = model;
            ProjectSearch.projectList = search.projectList;
            ProjectSearch.People      = search.People;
            return(View("Index2", search));
        }
        public void Test_Find_By_Description()
        {
            #region Arrange
            //Add code to create required resources
            #endregion Arrange

            IProjectConnector connector = new ProjectConnector();
            var existingEntries         = connector.Find(null).Entities.Count;
            var description             = TestUtils.RandomString();

            var newProject = new Project()
            {
                Description   = description,
                Status        = Status.Ongoing,
                StartDate     = new DateTime(2019, 10, 10),
                EndDate       = new DateTime(2021, 10, 10),
                ProjectLeader = "TestProjectLeader",
                ContactPerson = "TestContactPerson",
                Comments      = "TestComments"
            };

            //Add entries
            for (var i = 0; i < 5; i++)
            {
                connector.Create(newProject);
            }
            var otherDescription = TestUtils.RandomString();
            newProject.Description = otherDescription;
            for (var i = 0; i < 5; i++)
            {
                connector.Create(newProject);
            }

            var fullCollection = connector.Find(null);

            Assert.AreEqual(existingEntries + 5 + 5, fullCollection.Entities.Count);
            Assert.AreEqual(5, fullCollection.Entities.Count(e => e.Description == description));
            Assert.AreEqual(5, fullCollection.Entities.Count(e => e.Description == otherDescription));

            //Apply filter
            var searchSettings = new ProjectSearch();
            searchSettings.Description = otherDescription;
            var filteredCollection = connector.Find(searchSettings);

            Assert.AreEqual(5, filteredCollection.TotalResources);
            Assert.AreEqual(5, filteredCollection.Entities.Count);

            //Delete entries
            foreach (var entry in fullCollection.Entities)
            {
                connector.Delete(entry.ProjectNumber);
            }

            #region Delete arranged resources
            //Add code to delete temporary resources
            #endregion Delete arranged resources
        }
Example #6
0
 public void setUp()
 {
     try
     {
         ps = new ProjectSearch();
     }
     catch
     {
         throw new Exception();
     }
 }
Example #7
0
 public void tearDown()
 {
     try
     {
         ps = null;
     }
     catch
     {
         throw new Exception();
     }
 }
Example #8
0
        public async Task <IActionResult> Projects()
        {
            var model = new ProjectSearch
            {
                Name   = string.Empty,
                Status = Series.SeriesStatus.Ongoing
            };

            ViewData["Series"] = await _naniWebContext.Series.OrderBy(srs => srs.Status).ThenBy(srs => srs.Name).ToArrayAsync();

            return(View(model));
        }
Example #9
0
 public static void tearDownAfterClass()
 {
     try
     {
         ps  = null;
         art = null;
     }
     catch
     {
         throw new Exception();
     }
 }
Example #10
0
        public void Delete(ProjectSearch request)
        {
            var matches = Get(request) as List <Project>;

            if (true != matches?.Any())
            {
                throw new HttpError(HttpStatusCode.NotFound, "No matches for request");
            }
            matches.ForEach(match =>
            {
                Delete(match);
            });
        }
Example #11
0
    public async Task Test_Find()
    {
        #region Arrange
        //Add code to create required resources
        #endregion Arrange

        var connector       = FortnoxClient.ProjectConnector;
        var existingEntries = (await connector.FindAsync(null)).Entities.Count;
        var testKeyMark     = TestUtils.RandomString();

        var newProject = new Project()
        {
            Description   = testKeyMark,
            Status        = Status.Ongoing,
            StartDate     = new DateTime(2019, 10, 10),
            EndDate       = new DateTime(2021, 10, 10),
            ProjectLeader = "TestProjectLeader",
            ContactPerson = "TestContactPerson",
            Comments      = "TestComments"
        };

        //Add entries
        for (var i = 0; i < 5; i++)
        {
            await connector.CreateAsync(newProject);
        }

        //No filter supported
        var fullCollection = await connector.FindAsync(null);

        Assert.AreEqual(existingEntries + 5, fullCollection.Entities.Count);
        Assert.AreEqual(5, fullCollection.Entities.Count(e => e.Description == testKeyMark));

        //Apply Limit
        var searchSettings = new ProjectSearch();
        searchSettings.Limit = 2;
        var limitedCollection = await connector.FindAsync(searchSettings);

        Assert.AreEqual(existingEntries + 5, limitedCollection.TotalResources);
        Assert.AreEqual(2, limitedCollection.Entities.Count);

        //Delete entries
        foreach (var entry in fullCollection.Entities)
        {
            await connector.DeleteAsync(entry.ProjectNumber);
        }

        #region Delete arranged resources
        //Add code to delete temporary resources
        #endregion Delete arranged resources
    }
Example #12
0
        public PagedResponse <ProjectDto> Execute(ProjectSearch search)
        {
            IQueryable <Project> query;

            query = _tableCli.table.CreateQuery <Project>();

            if (!String.IsNullOrWhiteSpace(search.Name))
            {
                query = query.Where(x => x.Name == search.Name);
            }
            query = query.Where(x => !x.Deleted);
            var result = query.ToList();

            List <ProjectDto> mapped = _mapper.Map <List <Project>, List <ProjectDto> >(result);

            return(mapped.ToPagedResponse());
        }
        public ActionResult AreaSearch(ProjectInfoRequest request)
        {
            var area = this.IDKLManagerService.GetAreasList().Select(c => new { area = c.Area }).Distinct();

            ViewData.Add("Area", new SelectList(area, "area", "area"));
            AddSearchViewData();
            List <string> Month = new List <string>();

            for (int i = 1; i <= 12; i++)
            {
                Month.Add(i.ToString());
            }
            ViewData.Add("BeginMonth", new SelectList(Month));
            ViewData.Add("EndMonth", new SelectList(Month));
            ProjectSearchArea = new ProjectSearch();
            return(View());
        }
Example #14
0
        public async Task <IActionResult> Projects(ProjectSearch projectSearch)
        {
            if (ModelState.IsValid)
            {
                if (string.IsNullOrWhiteSpace(projectSearch.Name))
                {
                    ViewData["Series"] = await _naniWebContext.Series.Where(srs => srs.Status == projectSearch.Status).OrderBy(srs => srs.Name).ToArrayAsync();
                }
                else
                {
                    ViewData["Series"] = await _naniWebContext.Series.Where(srs => srs.Name.ToLowerInvariant().Contains(projectSearch.Name.ToLowerInvariant()) && srs.Status == projectSearch.Status)
                                         .OrderBy(srs => srs.Name).ToArrayAsync();
                }
            }
            else
            {
                ViewData["Series"] = await _naniWebContext.Series.OrderBy(srs => srs.Status).ThenBy(srs => srs.Name).ToArrayAsync();
            }


            return(View(projectSearch));
        }
        public IEnumerable <GetProjectDto> Execute(ProjectSearch request)
        {
            var query = context.Projects.AsQueryable();

            if (request.Name != null)
            {
                query = query.Where(x => x.Name
                                    .ToLower()
                                    .Contains(request.Name.ToLower()));
            }

            if (request.OnlyActive.HasValue)
            {
                if (request.OnlyActive == true)
                {
                    query = query.Where(x => x.DeletedAt == null);
                }
            }

            query = query.SkipItems(request.Page, request.ItemsPerPage);

            return(query.Select(x => _mapper.Map <Project, GetProjectDto>(x)).ToList());
        }
        public ActionResult SearchByArea(FormCollection collection)
        {
            var area = this.IDKLManagerService.GetAreasList().Select(c => new { area = c.Area }).Distinct();

            ViewData.Add("Area", new SelectList(area, "area", "area"));
            AddSearchViewData();
            ProjectSearch search1 = new ProjectSearch();
            List <string> Month   = new List <string>();

            for (int i = 1; i <= 12; i++)
            {
                Month.Add(i.ToString());
            }
            ViewData.Add("BeginMonth", new SelectList(Month));
            ViewData.Add("EndMonth", new SelectList(Month));
            string Area       = collection["Area"];
            string Year       = collection["Year"];
            string BeginMonth = collection["BeginMonth"];
            string EndMonth   = collection["EndMonth"];
            var    list       = this.IDKLManagerService.GetProjectSearchByArea(Area, Year, BeginMonth, EndMonth);

            ProjectSearchArea.projectList = list;
            return(View("AreaSearch", ProjectSearchArea));
        }
Example #17
0
 public object Post(ProjectSearch request) => Get(request);
Example #18
0
        public override async Task <IActionResult> GetProjectsPreviewAsync([FromQuery] Paging paging, [FromQuery] ProjectSearch searchQuery)
        {
            var result = await _supervisor.SafeExecuteAsync
                         (
                () => _projectRepository.GetPreviewAsync(paging.Start, paging.Length, searchQuery.CategoryCode)
                         );

            return(new JsonResult(result));
        }
Example #19
0
 public abstract Task <IActionResult> GetProjectsPreviewAsync([FromQuery] Paging paging, [FromQuery] ProjectSearch searchQuery);
Example #20
0
 public ActionResult Index(ProjectSearch gridModel)
 {
     // gridModel.Search should be correctly bound here
     return(RedirectToAction("Index"));
 }
        public IActionResult Get([FromQuery] ProjectSearch search, [FromServices] IGetProjectsQuery command)
        {
            IEnumerable <GetProjectDto> projects = _useCaseExecutor.ExecuteQuery(command, search);

            return(Ok(projects));
        }
Example #22
0
 public object Get(ProjectSearch request) => GetSearchResultWithCache <Project, DocEntityProject, ProjectSearch>(DocConstantModelName.PROJECT, request, _ExecSearch);
Example #23
0
        private IQueryable <DocEntityProject> _ExecSearch(ProjectSearch request, DocQuery query)
        {
            request = InitSearch <Project, ProjectSearch>(request);
            IQueryable <DocEntityProject> entities = null;

            query.Run(session =>
            {
                entities = query.SelectAll <DocEntityProject>();
                if (!DocTools.IsNullOrEmpty(request.FullTextSearch))
                {
                    var fts  = new ProjectFullTextSearch(request);
                    entities = GetFullTextSearch <DocEntityProject, ProjectFullTextSearch>(fts, entities);
                }

                if (null != request.Ids && request.Ids.Any())
                {
                    entities = entities.Where(en => en.Id.In(request.Ids));
                }

                if (!DocTools.IsNullOrEmpty(request.Updated))
                {
                    entities = entities.Where(e => null != e.Updated && e.Updated.Value.Date == request.Updated.Value.Date);
                }
                if (!DocTools.IsNullOrEmpty(request.UpdatedBefore))
                {
                    entities = entities.Where(e => null != e.Updated && e.Updated <= request.UpdatedBefore);
                }
                if (!DocTools.IsNullOrEmpty(request.UpdatedAfter))
                {
                    entities = entities.Where(e => null != e.Updated && e.Updated >= request.UpdatedAfter);
                }
                if (!DocTools.IsNullOrEmpty(request.Created))
                {
                    entities = entities.Where(e => null != e.Created && e.Created.Value.Date == request.Created.Value.Date);
                }
                if (!DocTools.IsNullOrEmpty(request.CreatedBefore))
                {
                    entities = entities.Where(e => null != e.Created && e.Created <= request.CreatedBefore);
                }
                if (!DocTools.IsNullOrEmpty(request.CreatedAfter))
                {
                    entities = entities.Where(e => null != e.Created && e.Created >= request.CreatedAfter);
                }
                if (true == request.Archived?.Any() && currentUser.HasProperty(DocConstantModelName.PROJECT, nameof(Reference.Archived), DocConstantPermission.VIEW))
                {
                    entities = entities.Where(en => en.Archived.In(request.Archived));
                }
                else
                {
                    entities = entities.Where(en => !en.Archived);
                }
                if (true == request.Locked?.Any())
                {
                    entities = entities.Where(en => en.Locked.In(request.Locked));
                }
                if (true == request.ChildrenIds?.Any())
                {
                    entities = entities.Where(en => en.Children.Any(r => r.Id.In(request.ChildrenIds)));
                }
                if (!DocTools.IsNullOrEmpty(request.Client) && !DocTools.IsNullOrEmpty(request.Client.Id))
                {
                    entities = entities.Where(en => en.Client.Id == request.Client.Id);
                }
                if (true == request.ClientIds?.Any())
                {
                    entities = entities.Where(en => en.Client.Id.In(request.ClientIds));
                }
                if (!DocTools.IsNullOrEmpty(request.DatabaseDeadline))
                {
                    entities = entities.Where(en => null != en.DatabaseDeadline && request.DatabaseDeadline.Value.Date == en.DatabaseDeadline.Value.Date);
                }
                if (!DocTools.IsNullOrEmpty(request.DatabaseDeadlineBefore))
                {
                    entities = entities.Where(en => en.DatabaseDeadline <= request.DatabaseDeadlineBefore);
                }
                if (!DocTools.IsNullOrEmpty(request.DatabaseDeadlineAfter))
                {
                    entities = entities.Where(en => en.DatabaseDeadline >= request.DatabaseDeadlineAfter);
                }
                if (!DocTools.IsNullOrEmpty(request.DatabaseName))
                {
                    entities = entities.Where(en => en.DatabaseName.Contains(request.DatabaseName));
                }
                if (!DocTools.IsNullOrEmpty(request.DatabaseNames))
                {
                    entities = entities.Where(en => en.DatabaseName.In(request.DatabaseNames));
                }
                if (!DocTools.IsNullOrEmpty(request.Dataset) && !DocTools.IsNullOrEmpty(request.Dataset.Id))
                {
                    entities = entities.Where(en => en.Dataset.Id == request.Dataset.Id);
                }
                if (true == request.DatasetIds?.Any())
                {
                    entities = entities.Where(en => en.Dataset.Id.In(request.DatasetIds));
                }
                if (!DocTools.IsNullOrEmpty(request.DeliverableDeadline))
                {
                    entities = entities.Where(en => null != en.DeliverableDeadline && request.DeliverableDeadline.Value.Date == en.DeliverableDeadline.Value.Date);
                }
                if (!DocTools.IsNullOrEmpty(request.DeliverableDeadlineBefore))
                {
                    entities = entities.Where(en => en.DeliverableDeadline <= request.DeliverableDeadlineBefore);
                }
                if (!DocTools.IsNullOrEmpty(request.DeliverableDeadlineAfter))
                {
                    entities = entities.Where(en => en.DeliverableDeadline >= request.DeliverableDeadlineAfter);
                }
                if (request.FqId.HasValue)
                {
                    entities = entities.Where(en => request.FqId.Value == en.FqId);
                }
                if (!DocTools.IsNullOrEmpty(request.FqWorkflow) && !DocTools.IsNullOrEmpty(request.FqWorkflow.Id))
                {
                    entities = entities.Where(en => en.FqWorkflow.Id == request.FqWorkflow.Id);
                }
                if (true == request.FqWorkflowIds?.Any())
                {
                    entities = entities.Where(en => en.FqWorkflow.Id.In(request.FqWorkflowIds));
                }
                if (request.LegacyPackageId.HasValue)
                {
                    entities = entities.Where(en => request.LegacyPackageId.Value == en.LegacyPackageId);
                }
                if (!DocTools.IsNullOrEmpty(request.Library) && !DocTools.IsNullOrEmpty(request.Library.Id))
                {
                    entities = entities.Where(en => en.Library.Id == request.Library.Id);
                }
                if (true == request.LibraryIds?.Any())
                {
                    entities = entities.Where(en => en.Library.Id.In(request.LibraryIds));
                }
                if (request.LibraryPackageId.HasValue)
                {
                    entities = entities.Where(en => request.LibraryPackageId.Value == en.LibraryPackageId);
                }
                if (!DocTools.IsNullOrEmpty(request.LibraryPackageName))
                {
                    entities = entities.Where(en => en.LibraryPackageName.Contains(request.LibraryPackageName));
                }
                if (!DocTools.IsNullOrEmpty(request.LibraryPackageNames))
                {
                    entities = entities.Where(en => en.LibraryPackageName.In(request.LibraryPackageNames));
                }
                if (!DocTools.IsNullOrEmpty(request.Number))
                {
                    entities = entities.Where(en => en.Number.Contains(request.Number));
                }
                if (!DocTools.IsNullOrEmpty(request.Numbers))
                {
                    entities = entities.Where(en => en.Number.In(request.Numbers));
                }
                if (!DocTools.IsNullOrEmpty(request.OperationsDeliverable))
                {
                    entities = entities.Where(en => en.OperationsDeliverable.Contains(request.OperationsDeliverable));
                }
                if (!DocTools.IsNullOrEmpty(request.OperationsDeliverables))
                {
                    entities = entities.Where(en => en.OperationsDeliverable.In(request.OperationsDeliverables));
                }
                if (!DocTools.IsNullOrEmpty(request.OpportunityId))
                {
                    entities = entities.Where(en => en.OpportunityId.Contains(request.OpportunityId));
                }
                if (!DocTools.IsNullOrEmpty(request.OpportunityIds))
                {
                    entities = entities.Where(en => en.OpportunityId.In(request.OpportunityIds));
                }
                if (!DocTools.IsNullOrEmpty(request.OpportunityName))
                {
                    entities = entities.Where(en => en.OpportunityName.Contains(request.OpportunityName));
                }
                if (!DocTools.IsNullOrEmpty(request.OpportunityNames))
                {
                    entities = entities.Where(en => en.OpportunityName.In(request.OpportunityNames));
                }
                if (!DocTools.IsNullOrEmpty(request.Parent) && !DocTools.IsNullOrEmpty(request.Parent.Id))
                {
                    entities = entities.Where(en => en.Parent.Id == request.Parent.Id);
                }
                if (true == request.ParentIds?.Any())
                {
                    entities = entities.Where(en => en.Parent.Id.In(request.ParentIds));
                }
                if (!DocTools.IsNullOrEmpty(request.PICO))
                {
                    entities = entities.Where(en => en.PICO.Contains(request.PICO));
                }
                if (!DocTools.IsNullOrEmpty(request.PICOs))
                {
                    entities = entities.Where(en => en.PICO.In(request.PICOs));
                }
                if (!DocTools.IsNullOrEmpty(request.ProjectId))
                {
                    entities = entities.Where(en => en.ProjectId.Contains(request.ProjectId));
                }
                if (!DocTools.IsNullOrEmpty(request.ProjectIds))
                {
                    entities = entities.Where(en => en.ProjectId.In(request.ProjectIds));
                }
                if (!DocTools.IsNullOrEmpty(request.ProjectName))
                {
                    entities = entities.Where(en => en.ProjectName.Contains(request.ProjectName));
                }
                if (!DocTools.IsNullOrEmpty(request.ProjectNames))
                {
                    entities = entities.Where(en => en.ProjectName.In(request.ProjectNames));
                }
                if (request.Status.HasValue)
                {
                    entities = entities.Where(en => request.Status.Value == en.Status);
                }
                if (!DocTools.IsNullOrEmpty(request.Statuss))
                {
                    entities = entities.Where(en => en.Status.In(request.Statuss));
                }
                if (true == request.TimeCardsIds?.Any())
                {
                    entities = entities.Where(en => en.TimeCards.Any(r => r.Id.In(request.TimeCardsIds)));
                }

                entities = ApplyFilters <DocEntityProject, ProjectSearch>(request, entities);

                if (request.Skip > 0)
                {
                    entities = entities.Skip(request.Skip.Value);
                }
                if (request.Take > 0)
                {
                    entities = entities.Take(request.Take.Value);
                }
                if (true == request?.OrderBy?.Any())
                {
                    entities = entities.OrderBy(request.OrderBy);
                }
                if (true == request?.OrderByDesc?.Any())
                {
                    entities = entities.OrderByDescending(request.OrderByDesc);
                }
            });
            return(entities);
        }
Example #24
0
 public IActionResult Get([FromQuery] ProjectSearch search, [FromServices] IQueryProject query)
 {
     return(Ok(_executor.ExecuteQuery(query, search)));
 }