public static Organisation GetOrganisation() { var user = UserManager.FindById(HttpContext.Current.User.Identity.GetUserId()); Organisation org = null; using (TasklyDbContext db = new TasklyDbContext()) { org = db.Organisations.Find(user.OrganisationID.Value); } return org; }
public static bool IsInRole(string user, string role) { using (TasklyDbContext db = new TasklyDbContext()) { using (var store = new UserStore<TasklyUser>(db)) { using (var manager = new UserManager<TasklyUser>(store)) { return manager.IsInRole(user, role); } } } }
/// <summary> /// creates a demo survey for an organisation /// </summary> /// <param name="organisationId"></param> public static void CreateDemo(int organisationId) { using (TasklyDbContext db = new TasklyDbContext()) { var survey = new Survey { OrganisationID = organisationId, Name = "Demo Survey", EndUrl = "/admin/", Active = true, UID = TaskilyHelper.UniqueCode(), WelcomeTitle = "Hello", WelcomeMessage = "<p>Welcome to the taskily demo survey</p></p>This survey is designed to show you how taskily works</p>", CompleteTitle = "Thanks", CompleteMessage = "Thank you for completing this survey", TaskCount = 5, TasksHeading = "US States", TasksSubHeading = "Tell us the 5 states you like most", OrderHeading = "US States", OrderSubHeading = "Which one do you like the most", OrderText = "Now put the five states you picked in order, with your favorite one at the top", }; db.Surveys.Add(survey); db.SaveChanges(); // add the tasks var tasks = new List<SurveyTask> { new SurveyTask { Name = "Alabama", Description = "Montgomery", Active = true, survey = survey}, new SurveyTask { Name = "Alaska", Description = "Juneau", Active = true, survey = survey}, new SurveyTask { Name = "Arizona", Description = "Phoenix", Active = true, survey = survey}, new SurveyTask { Name = "Arkansas", Description = "Little Rock", Active = true, survey = survey}, new SurveyTask { Name = "California", Description = "Sacramento", Active = true, survey = survey}, new SurveyTask { Name = "Colorado", Description = "Denver", Active = true, survey = survey}, new SurveyTask { Name = "Connecticut", Description = "Hartford", Active = true, survey = survey}, new SurveyTask { Name = "Delaware", Description = "Dover", Active = true, survey = survey}, new SurveyTask { Name = "Florida", Description = "Tallahassee", Active = true, survey = survey}, new SurveyTask { Name = "Georgia", Description = "Atlanta", Active = true, survey = survey}, new SurveyTask { Name = "Hawaii", Description = "Honolulu", Active = true, survey = survey}, new SurveyTask { Name = "Idaho", Description = "Boise", Active = true, survey = survey}, new SurveyTask { Name = "Illinois", Description = "Springfield", Active = true, survey = survey}, new SurveyTask { Name = "Indiana", Description = "Indianapolis", Active = true, survey = survey}, new SurveyTask { Name = "Iowa", Description = "Des Moines", Active = true, survey = survey}, new SurveyTask { Name = "Kansas", Description = "Topeka", Active = true, survey = survey}, new SurveyTask { Name = "Kentucky", Description = "Frankfort", Active = true, survey = survey}, new SurveyTask { Name = "Louisiana", Description = "Baton Rouge", Active = true, survey = survey}, new SurveyTask { Name = "Maine", Description = "Augusta", Active = true, survey = survey}, new SurveyTask { Name = "Maryland", Description = "Annapolis", Active = true, survey = survey}, new SurveyTask { Name = "Massachusetts", Description = "Boston", Active = true, survey = survey}, new SurveyTask { Name = "Michigan", Description = "Lansing", Active = true, survey = survey}, new SurveyTask { Name = "Minnesota", Description = "Saint Paul", Active = true, survey = survey}, new SurveyTask { Name = "Mississippi", Description = "Jackson", Active = true, survey = survey}, new SurveyTask { Name = "Missouri", Description = "Jefferson City", Active = true, survey = survey}, new SurveyTask { Name = "Montana", Description = "Helena", Active = true, survey = survey}, new SurveyTask { Name = "Nebraska", Description = "Lincoln", Active = true, survey = survey}, new SurveyTask { Name = "Nevada", Description = "Carson City", Active = true, survey = survey}, new SurveyTask { Name = "New Hampshire", Description = "Concord", Active = true, survey = survey}, new SurveyTask { Name = "New Jersey", Description = "Trenton", Active = true, survey = survey}, new SurveyTask { Name = "New Mexico", Description = "Santa Fe", Active = true, survey = survey}, new SurveyTask { Name = "New York", Description = "Albany", Active = true, survey = survey}, new SurveyTask { Name = "North Carolina", Description = "Raleigh", Active = true, survey = survey}, new SurveyTask { Name = "North Dakota", Description = "Bismarck", Active = true, survey = survey}, new SurveyTask { Name = "Ohio", Description = "Columbus", Active = true, survey = survey}, new SurveyTask { Name = "Oklahoma", Description = "Oklahoma City", Active = true, survey = survey}, new SurveyTask { Name = "Oregon", Description = "Salem", Active = true, survey = survey}, new SurveyTask { Name = "Pennsylvania", Description = "Harrisburg", Active = true, survey = survey}, new SurveyTask { Name = "Rhode Island", Description = "Providence", Active = true, survey = survey}, new SurveyTask { Name = "South Carolina", Description = "Columbia", Active = true, survey = survey}, new SurveyTask { Name = "South Dakota", Description = "Pierre", Active = true, survey = survey}, new SurveyTask { Name = "Tennessee", Description = "Nashville", Active = true, survey = survey}, new SurveyTask { Name = "Texas", Description = "Austin", Active = true, survey = survey}, new SurveyTask { Name = "Utah", Description = "Salt Lake City", Active = true, survey = survey}, new SurveyTask { Name = "Vermont", Description = "Montpelier", Active = true, survey = survey}, new SurveyTask { Name = "Virginia", Description = "Richmond", Active = true, survey = survey}, new SurveyTask { Name = "Washington", Description = "Olympia", Active = true, survey = survey}, new SurveyTask { Name = "West Virginia", Description = "Charleston", Active = true, survey = survey}, new SurveyTask { Name = "Wisconsin", Description = "Madison", Active = true, survey = survey}, new SurveyTask { Name = "Wyoming", Description = "Cheyenne", Active = true, survey = survey} }; tasks.ForEach(t => db.Tasks.Add(t)); var Questions = new List<Question> { new Question { Name = "Age", Text = "How old are you?", Type = QuestionType.MultipleChoice, Data = "0-18\n19-30\n31-45\n46-75\n75+", Survey = survey}, new Question { Name = "Feedback", Text = "Any other feedback?", Type = QuestionType.FreeText, Survey = survey } }; Questions.ForEach(q => db.Questions.Add(q)); db.SaveChanges(); } }
public async Task<ActionResult> ExternalLoginConfirmation(ExternalLoginConfirmationViewModel model, string returnUrl) { if (User.Identity.IsAuthenticated) { return RedirectToAction("Manage"); } if (ModelState.IsValid) { // Get the information about the user from the external login provider var info = await AuthenticationManager.GetExternalLoginInfoAsync(); if (info == null) { return View("ExternalLoginFailure"); } var user = new TasklyUser() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user); if (result.Succeeded) { result = await UserManager.AddLoginAsync(user.Id, info.Login); if (result.Succeeded) { await SignInAsync(user, isPersistent: false); // // create the organisation at sign-up // var organisation = new Organisation { Name = model.Organisation, AccountType = OrgAccountType.free }; var db = new TasklyDbContext(); db.Organisations.Add(organisation); db.SaveChanges(); db.Dispose(); user.UserDisplayName = model.UserDisplayName; user.OrganisationID = organisation.ID; UserManager.Update(user); DemoSurvey.CreateDemo(organisation.ID); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // SendEmail(user.Email, callbackUrl, "Confirm your account", "Please confirm your account by clicking this link"); return RedirectToLocal(returnUrl); } } AddErrors(result); } ViewBag.ReturnUrl = returnUrl; return View(model); }
public async Task<ActionResult> Register(RegisterViewModel model) { if (ModelState.IsValid) { var user = new TasklyUser() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { // // create the organisation at sign-up // var organisation = new Organisation { Name = model.Organisation, AccountType = OrgAccountType.free }; var db = new TasklyDbContext(); db.Organisations.Add(organisation); db.SaveChanges(); db.Dispose(); user.OrganisationID = organisation.ID; user.UserDisplayName = model.UserDisplayName; UserManager.Update(user); DemoSurvey.CreateDemo(organisation.ID); try { var emailHelper = new Helpers.TaskilyEmailHelper(); emailHelper.SendWelcomeEmail(model.Email); } catch(Exception ex) { Trace.TraceError("Error Sending Welcome Email: {0}", ex.ToString()); } await SignInAsync(user, isPersistent: false); // For more information on how to enable account confirmation and password reset please visit http://go.microsoft.com/fwlink/?LinkID=320771 // Send an email with this link // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id); // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme); // await UserManager.SendEmailAsync(user.Id, "Confirm your account", "Please confirm your account by clicking <a href=\"" + callbackUrl + "\">here</a>"); return RedirectToAction("Index", "Admin"); } else { AddErrors(result); } } // If we got this far, something failed, redisplay form return View(model); }
// private TasklyDbContext db = new TasklyDbContext(); // // GET: /API/Stats/GetSummary/id // public SurveySummary GetSummary(int id) { SurveySummary data = new SurveySummary(); int totalCount = 0; int totalWeight = 0; int responseCount = 0; int maxWeight = 0; using (TasklyDbContext db = new TasklyDbContext()) { var survey = db.Surveys.Find(id); maxWeight = survey.TaskCount; if (!AdminSecurity.IsValidOrganisation(survey.OrganisationID)) { // public results (for non- if ( survey.organisation.AccountType == OrgAccountType.free || !survey.PublicResults ) return null; } var responses = db.Responses .Include(r => r.Picked) .Where(r => r.SurveyID == id).ToList(); foreach (var response in responses) { foreach (var task in response.Picked) { if (!data.Tasks.Any(x => x.ID == task.SurveyTaskID)) { data.Tasks.Add(new ResponseData { ID = task.SurveyTaskID, Name = task.Task.Name, Count = 1, Weight = task.Weight }); } else { var existingTask = data.Tasks.Where(x => x.ID == task.SurveyTaskID).Single(); if (existingTask != null) { data.Tasks.Remove(existingTask); existingTask.Count++; existingTask.Weight += task.Weight; data.Tasks.Add(existingTask); } } totalCount++; totalWeight += task.Weight; } } responseCount = responses.Count(); } foreach(var item in data.Tasks) { // item.CountPercent = ((double)item.Count / totalCount); item.CountPercent = ((double)item.Count / responseCount); item.WeightPercent = ((double)item.Weight / totalWeight); // item.WeightPercent = ((double)item.Weight / (maxWeight * responseCount)); item.Importance = ((double)item.Weight / item.Count); } return data; }