Esempio n. 1
0
        /// <summary>
        /// Returns all survey objects stored in database
        /// </summary>
        /// <returns></returns>
        public List <SurveyResultModel> GetAllSurveys()
        {
            List <SurveyResultModel> surveyResults = new List <SurveyResultModel>();

            string query = @"SELECT park.parkDescription, park.parkName, park.parkCode, COUNT(surveyId) as 'surveycount' " +
                           "FROM survey_result " +
                           "join park on park.parkCode = survey_result.parkCode " +
                           "GROUP BY park.parkCode, park.parkName, park.parkDescription " +
                           "Order BY surveycount Desc, park.parkName ASC";

            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();

                SqlCommand cmd = new SqlCommand(query, conn);

                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    SurveyResultModel favcount = new SurveyResultModel();
                    favcount.ParkName    = Convert.ToString(reader["parkName"]);
                    favcount.ParkCode    = Convert.ToString(reader["parkCode"]);
                    favcount.SurveyCount = Convert.ToInt32(reader["surveycount"]);
                    favcount.ParkDesc    = Convert.ToString(reader["parkDescription"]);
                    surveyResults.Add(favcount);
                }
            }

            return(surveyResults);
        }
        public ActionResult Results()
        {
            List <ParkModel> parks = parkDAL.GetAllParks();
            Dictionary <string, ParkModel> parksDict          = new Dictionary <string, ParkModel>();
            List <SurveyResultModel>       parksSurveyResults = new List <SurveyResultModel>();

            foreach (ParkModel park in parks)
            {
                // Add key-value pair to parksDict
                parksDict[park.ParkCode] = park;

                // Add to parksSurveyResults
                SurveyResultModel results = surveyDAL.GetParkSurveyResults(park.ParkCode);
                if (results.NumSurveys >= 1)
                {
                    parksSurveyResults.Add(results);
                }
            }

            ParkSurveyResultViewModel surveySummaries = new ParkSurveyResultViewModel();

            surveySummaries.ParksDict          = parksDict;
            surveySummaries.ParksSurveyResults = parksSurveyResults.OrderBy(p => p.NumSurveys).Reverse().ToList();
            return(View("Results", surveySummaries));
        }
Esempio n. 3
0
        public IActionResult NewSurvey(SurveyResultModel model)
        {
            SurveyDAL myDal = new SurveyDAL();

            myDal.SaveSurvey(model);

            return(RedirectToAction("favorites"));
        }
Esempio n. 4
0
 public int SaveSurvey(SurveyResultModel newSurvey)
 {
     using (SqlConnection connection = new SqlConnection(connectionString))
     {
         connection.Open();
         int affectedRows = connection.Execute(SaveSurveyString, newSurvey);
         return(affectedRows);
     }
 }
Esempio n. 5
0
 /// <summary>
 /// Initializes a new instance of the <see cref="SurveyResultDTOValidator"/> class.
 /// </summary>
 /// <param name="surveyResultModel">
 /// The survey Result Model.
 /// </param>
 public SurveyResultDTOValidator(SurveyResultModel surveyResultModel)
 {
     this.CascadeMode = CascadeMode.StopOnFirstFailure;
     this.RuleFor(model => model.participantName).NotEmpty().WithError(Errors.CODE_ERRORTYPE_INVALID_OBJECT, "Participant name is empty");
     this.RuleFor(model => model.email)
     .Must((model, x) => (!model.isArchive && string.IsNullOrWhiteSpace(x)) || (model.isArchive && !string.IsNullOrWhiteSpace(x)))
     .WithError(Errors.CODE_ERRORTYPE_INVALID_OBJECT, "Email should be provided only in isArchive mode")
     .Must((model, x) => (!model.isArchive && string.IsNullOrWhiteSpace(x)) || surveyResultModel.GetOneByACSessionIdAndEmail(model.acSessionId, x).Value == null)
     .WithError(Errors.CODE_ERRORTYPE_INVALID_SESSION, "You have already passed this survey");
 }
Esempio n. 6
0
        public async Task SaveAll(SurveySummaryResultDTO sResult)
        {
            if (sResult == null)
            {
                throw new ArgumentNullException(nameof(sResult));
            }
            if (sResult.surveyResults == null)
            {
                sResult.surveyResults = new SurveyResultDTO[0];
            }

            try
            {
                if (!IsValid(sResult, out ValidationResult valResult))
                {
                    return;
                }

                Survey    survey    = SurveyModel.GetOneById(sResult.surveyId).Value;
                ACSession acSession = ACSessionModel.GetOneById(sResult.acSessionId).Value;
                if (acSession == null)
                {
                    throw new ArgumentException($"There are not session with acSessionId : {sResult.acSessionId}");
                }
                int acSessionId = acSession.Id;

                foreach (var surveyResultDTO in sResult.surveyResults)
                {
                    surveyResultDTO.acSessionId = sResult.acSessionId;
                    if (IsValid(surveyResultDTO, out ValidationResult validationResult))
                    {
                        var surveyResult = ConvertDto(surveyResultDTO, survey, acSessionId);
                        SurveyResultModel.RegisterSave(surveyResult);

                        if (surveyResultDTO.results != null)
                        {
                            await SaveAllAsync(surveyResult, surveyResultDTO.results);
                        }
                    }
                }
            }
            catch (ArgumentException ex)
            {
                Logger.Error("SurveyResultService.SaveAll: ", ex);
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error($"SurveyResultService.SaveAll json={JsonConvert.SerializeObject(sResult)}", ex);

                throw;
            }
        }
Esempio n. 7
0
        public SurveyResultModel GetParkSurveyResults(string parkCode)
        {
            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();

                    // Get total number of surveys completed for park
                    SqlCommand cmd = new SqlCommand(SQL_GetSurveyResultsCount, conn);
                    cmd.Parameters.AddWithValue("parkCode", parkCode);
                    int surveyCount = Convert.ToInt32(cmd.ExecuteScalar());

                    // Get count of activity levels listed on this park's surveys
                    Dictionary <string, int> activityTypeCount = new Dictionary <string, int>();
                    List <string>            activityType      = new List <string>()
                    {
                        "inactive", "sedentary", "active", "extremely active"
                    };

                    foreach (string s in activityType)
                    {
                        string finalQuery = SQL_GetParkActivityCount + "'" + s + "';";
                        cmd = new SqlCommand(finalQuery, conn);
                        cmd.Parameters.AddWithValue("parkCode", parkCode);
                        activityTypeCount[s] = Convert.ToInt32(cmd.ExecuteScalar());
                    }

                    // Populate and return SurveyResultModel
                    SurveyResultModel completedSurveyResult = new SurveyResultModel();
                    completedSurveyResult.ParkCode           = parkCode;
                    completedSurveyResult.NumSurveys         = surveyCount;
                    completedSurveyResult.NumInactive        = activityTypeCount["inactive"];
                    completedSurveyResult.NumSedentary       = activityTypeCount["sedentary"];
                    completedSurveyResult.NumActive          = activityTypeCount["active"];
                    completedSurveyResult.NumExtremelyActive = activityTypeCount["extremely active"];

                    return(completedSurveyResult);
                }
            }
            catch (SqlException)
            {
                throw;
            }
        }
Esempio n. 8
0
        public int PostSurvey(SurveyResultModel surveyModel)
        {
            int result = 0;


            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand("INSERT INTO survey_result (parkCode, emailAddress, state, activityLevel) " +
                                                "VALUES ( @parkCode, @emailAddress, @state, @activityLevel) SELECT CAST(SCOPE_IDENTITY() as int)", conn);
                cmd.Parameters.AddWithValue("@parkCode", surveyModel.ParkCode);
                cmd.Parameters.AddWithValue("@emailAddress", surveyModel.Email);
                cmd.Parameters.AddWithValue("@state", surveyModel.State);
                cmd.Parameters.AddWithValue("@activityLevel", surveyModel.ActivityLevel);
                result = (int)cmd.ExecuteScalar();
            }

            return(result);
        }
Esempio n. 9
0
        public JsonResult getSurveyResult(int surveyId, int userId)
        {
            SurveyForm        sur    = new SurveyForm();
            SurveyResultModel survey = new SurveyResultModel();
            ResultModel       result = new ResultModel();

            result.SurveyId = surveyId;
            result.UserId   = userId;
            result.results  = sur.getSurveyResult(surveyId, userId);

            // return result;
            return(Json(result, JsonRequestBehavior.AllowGet));


            //catch(Exception ex)
            //{
            //    return Json(ex.Message, JsonRequestBehavior.AllowGet);
            //}
        }
Esempio n. 10
0
        public IList <SurveyResultModel> GetAllSurveys()
        {
            List <SurveyResultModel> surveys = new List <SurveyResultModel>();

            using (SqlConnection conn = new SqlConnection(_connectionString))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand("SELECT parkCode, COUNT(*) AS numVotes FROM survey_result GROUP BY parkCode ORDER BY numVotes DESC", conn);


                SqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    SurveyResultModel rm = new SurveyResultModel();
                    rm.ParkCode = Convert.ToString(reader["parkCode"]);
                    rm.NumVotes = Convert.ToInt32(reader["numVotes"]);
                    surveys.Add(rm);
                }
            }

            return(surveys);
        }
Esempio n. 11
0
 public IActionResult Survey(SurveyResultModel RM)
 {
     _surveyDAO.PostSurvey(RM);
     return(RedirectToAction("Favorites"));
 }
Esempio n. 12
0
        public async Task <IActionResult> Index()
        {
            var userId  = GetUserId();
            var isAdmin = User.IsInRole(Roles.ADMIN);

            var meetings = await _database.AnnualMeetings
                           .Include(m => m.Attendees.Where(a => isAdmin || a.UserId == userId))
                           .ThenInclude(a => a.User)
                           .Include(m => m.Survey)
                           .Expressionify()
                           .OrderBy(m => m.MeetingStartsAt)
                           .ToListAsync();

            var meeting = meetings
                          .FirstOrDefault(m => m.MeetingEndsAt > TimeProvider.UtcNow);

            var member = await _database.Users
                         .Expressionify()
                         .Where(u => u.Id == userId)
                         .FirstOrDefaultAsync(u => u.HasPayedMembershipThisYear());

            if (meeting is null)
            {
                meeting = meetings
                          .OrderByDescending(m => m.MeetingEndsAt)
                          .FirstOrDefault();

                if (meeting is null)
                {
                    return(View("NoMeeting"));
                }
            }
            else if (meeting.IsLive() && member != null)
            {
                var attendee = meeting.Attendees.GetOrAdd(a => a.UserId == member.Id,
                                                          () => new AnnualMeetingAttendee
                {
                    User      = member,
                    CreatedAt = TimeProvider.UtcNow
                });

                attendee.Visits++;
                attendee.LastVisited = TimeProvider.UtcNow;

                await _database.SaveChangesAsync();
            }

            var results = await _database.AnnualMeetings
                          .Expressionify()
                          .Select(s => SurveyResultModel.Create(s))
                          .FirstOrDefaultAsync(s => s.MeetingId == meeting.Id);

            return(View(new Model
            {
                Id = meeting.Id,
                IsMember = member != null,
                UserId = member.Id,
                Title = meeting.Title,
                MeetingInvitation = meeting.MeetingInvitation,
                MeetingInfo = meeting.MeetingInfo,
                MeetingSummary = meeting.MeetingSummary,
                MeetingStartsAt = meeting.MeetingStartsAt,
                HasStarted = meeting.MeetingStartsAt < TimeProvider.UtcNow,
                HasEnded = meeting.MeetingEndsAt < TimeProvider.UtcNow,
                Attendees = meeting.Attendees.Where(a => a.User is not null).Select(a => new Model.Attendee
                {
                    UserId = a.UserId,
                    Name = a.User.FullName,
                    Visits = a.Visits,
                    FirstVisit = a.CreatedAt,
                    LastVisit = a.LastVisited
                }).ToList(),
                VotingResults = results
            }));
Esempio n. 13
0
 public SurveyResultDataDTO GetSurveyResultByACSessionIdAcEmail(int acSessionId, int subModuleItemId, string adobeConnectEmail)
 {
     return(SurveyResultModel.GetSurveyResultByACSessionIdAcEmail(acSessionId, subModuleItemId, adobeConnectEmail));
 }
Esempio n. 14
0
 public SurveyResultDataDTO GetSurveyResultByACSessionId(int acSessionId, int subModuleItemId)
 {
     return(SurveyResultModel.GetSurveyResultByACSessionId(acSessionId, subModuleItemId));
 }