Exemplo n.º 1
0
        public void Given_I_Call_GetAllSurveys_Then_I_Get_A_Correct_List_Of_Surveys_Returned()
        {
            //arrange
            const string serverPark1Name = "ServerPark1";
            const string serverPark2Name = "ServerPark2";

            var survey1Mock = new Mock <ISurvey>();
            var survey2Mock = new Mock <ISurvey>();
            var survey3Mock = new Mock <ISurvey>();

            var survey1Items = new List <ISurvey> {
                survey1Mock.Object, survey2Mock.Object
            };
            var survey2Items = new List <ISurvey> {
                survey3Mock.Object
            };

            var surveyCollection1Mock = new Mock <ISurveyCollection>();

            surveyCollection1Mock.Setup(s => s.GetEnumerator()).Returns(() => survey1Items.GetEnumerator());

            var surveyCollection2Mock = new Mock <ISurveyCollection>();

            surveyCollection2Mock.Setup(s => s.GetEnumerator()).Returns(() => survey2Items.GetEnumerator());

            var serverPark1Mock = new Mock <IServerPark>();

            serverPark1Mock.Setup(s => s.Name).Returns(serverPark1Name);
            serverPark1Mock.Setup(s => s.Surveys).Returns(surveyCollection1Mock.Object);

            var serverPark2Mock = new Mock <IServerPark>();

            serverPark2Mock.Setup(s => s.Name).Returns(serverPark2Name);
            serverPark2Mock.Setup(s => s.Surveys).Returns(surveyCollection2Mock.Object);

            _parkServiceMock.Setup(p => p.GetServerParkNames(_connectionModel)).Returns(new List <string> {
                serverPark1Name, serverPark2Name
            });
            _parkServiceMock.Setup(p => p.GetServerPark(_connectionModel, serverPark1Name)).Returns(serverPark1Mock.Object);
            _parkServiceMock.Setup(p => p.GetServerPark(_connectionModel, serverPark2Name)).Returns(serverPark2Mock.Object);

            //act
            var result = _sut.GetAllSurveys(_connectionModel).ToList();

            //assert
            Assert.NotNull(result);
            Assert.IsNotEmpty(result);
            Assert.AreEqual(3, result.Count);
            Assert.True(result.Contains(survey1Mock.Object));
            Assert.True(result.Contains(survey2Mock.Object));
            Assert.True(result.Contains(survey3Mock.Object));
        }
        // GET: /<controller>/
        public IActionResult Index()
        {
            string UserID    = _userManager.GetUserId(User);
            User   this_User = _userService.GetById(UserID);

            SurveyIndexViewModel surveys = new SurveyIndexViewModel();

            IEnumerable <Survey> allSurveys = _surveyService.GetAllSurveys();

            surveys.surveys = allSurveys.Where(s => s.CreatorId == this_User.Id);

            return(View(surveys));
        }
Exemplo n.º 3
0
        public async Task <IHttpActionResult> Get(FormTemplateDiscriminators discriminator, Guid?projectId = null)
        {
            //TODO: refactor to api/projects/{projectId}/surveys
            var surveyService = new SurveyService(UnitOfWork);

            if (CurrentUser is OrgUser)
            {
                var isOrgAdmin = await ServiceContext.UserManager.IsInRoleAsync(CurrentOrgUser.Id, Role.ORG_ADMINSTRATOR);

                var cacheKey = string.Empty;

                if (isOrgAdmin)
                {
                    cacheKey = projectId.HasValue ?
                               $"{CACHE_KEY}_{ORG_ADMIN_KEY}_{discriminator}_{projectId}_{CurrentOrgUser.Id}" :
                               $"{CACHE_KEY}_{ORG_ADMIN_KEY}_{discriminator}_{CurrentOrgUser.Id}";
                }
                else
                {
                    cacheKey = projectId.HasValue ?
                               $"{CACHE_KEY}_{discriminator}_{projectId}_{CurrentOrgUser.Id}" :
                               $"{CACHE_KEY}_{discriminator}_{CurrentOrgUser.Id}";
                }

                var cacheEntry = MemoryCacher.GetValue(cacheKey);
                if (cacheEntry == null)
                {
                    var userSurveys = surveyService.GetUserSurveys(CurrentOrgUser, discriminator, projectId);
                    if (userSurveys == null)
                    {
                        return(Unauthorized());
                    }

                    MemoryCacher.Add(cacheKey, userSurveys, DateTimeOffset.UtcNow.AddMinutes(1));

                    return(Ok(userSurveys));
                }
                else
                {
                    var result = (List <FilledFormDTO>)cacheEntry;
                    return(new CachedResult <List <FilledFormDTO> >(result, TimeSpan.FromMinutes(1), this));
                }
            }

            // else if current user is SuperUser
            var _cacheKey = projectId.HasValue ?
                            $"{CACHE_KEY}_{ADMIN_KEY}_{discriminator}_{projectId}" :
                            $"{CACHE_KEY}_{ADMIN_KEY}_{discriminator}";

            var _cacheEntry = MemoryCacher.GetValue(_cacheKey);

            if (_cacheEntry == null)
            {
                var surveys = surveyService.GetAllSurveys(discriminator, projectId);
                MemoryCacher.Add(_cacheKey, surveys, DateTimeOffset.UtcNow.AddMinutes(1));

                return(Ok(surveys));
            }
            else
            {
                var result = (List <FilledFormDTO>)_cacheEntry;
                return(new CachedResult <List <FilledFormDTO> >(result, TimeSpan.FromMinutes(1), this));
            }
        }