Esempio n. 1
0
        public async Task<ActionResult> Login(string userName, string password)
        {
            UserCredentialsModel user = null;
            try
            {
                var client = new OAuth2Client(new Uri(tokenEndPointURL), "mymonkeycap", "Nexusdata#1");

                await Task.Run(() =>
                {
                    var requestResponse = client.RequestAccessTokenUserName(userName, password, "openid profile offline_access");
                    var claims = new[]
                    {
                        new Claim("access_token",requestResponse.AccessToken),
                        new Claim("refresh_token", requestResponse.RefreshToken)
                    };

                    var claimsIdentity = new ClaimsIdentity(claims,
                        DefaultAuthenticationTypes.ApplicationCookie);
                    HttpContext.GetOwinContext().Authentication.SignIn(claimsIdentity);
                });

                user = new UserCredentialsModel
                {
                    Email = userName,
                    IsLoggedIn = true
                };
            }
            catch (Exception ex)
            {
                return Json(ex.Message, JsonRequestBehavior.AllowGet); 
            }

            return Json(user, JsonRequestBehavior.AllowGet);
        }
Esempio n. 2
0
        public static string AllowAccess(string id)
        {
            string json = String.Empty;
            if (!string.IsNullOrEmpty(id))
            {
                var page = new authenticate();
                var userid = page.User.Identity.GetUserId();

                //Decrypt values
                var _id = StringCipher.Decrypt(id.ToString(), keyEncryptQueryString);
                var arrValues = page.DecryptValues(_id);
                string clientid = arrValues[0];
                string redirectUri = arrValues[1];
                string state = arrValues[2];

                var time = DateTime.UtcNow;
                byte[] timeByteArray = BitConverter.GetBytes(time.ToBinary());
                var key = Guid.NewGuid();
                byte[] keyByteArray = key.ToByteArray();
                string token = Convert.ToBase64String(timeByteArray.Concat(keyByteArray).ToArray());
                token = token.Replace("+", "").Replace("/", "");
                var usersAppsAccessGranted = new UsersAppsAccessGranted
                {
                    Userid = userid,
                    ExternalAuthClientsID = clientid,
                    AccessGranted = true,
                    Key = key.ToString(),
                    Token = token,
                    CreatedOn = time
                };

                var dbAction = new DbActions();
                dbAction.AddUserAppsAccessGranted(usersAppsAccessGranted);

                var returnData = new
                {
                    Token = token,
                    RedirectUri = redirectUri,
                    State = state
                };

                json = JsonConvert.SerializeObject(returnData);
            }
            return json;
        }
        public async Task<IHttpActionResult> ForgetPassword(ForgetPasswordModel model)
        {
            if (model.Email != null)
            {
                model.Email = EncryptDecryptHelper.Decrypt(model.Email);
                var user = await _userManager.FindByNameAsync(model.Email);
                if (user == null || !(await _userManager.IsEmailConfirmedAsync(user.Id)))
                {
                    return Json(new { Success = false, Error = TeleConsult.Web.Const.NotificationMessage.ErrorWhenConfirmEmailForForgotPassword });
                }

                // 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.GeneratePasswordResetTokenAsync(user.Id);
                var callbackUrl = this.Url.Link("Default", new { controller = "Account", action = "ResetPassword", userId = user.Id, code = code });

                object transformWith = new
                    {
                        Name = Services.Users.GetUserById(user.Id).Name,
                        ResetLink = callbackUrl
                    };
                List<Attachment> attachments = new List<Attachment>();
                List<string> destinationEmails = new List<string>();
                destinationEmails.Add(user.Email);
                await Services.Mail.SendMail("ResetPasswordEmailTemplate", destinationEmails, "Reset Password", transformWith, attachments);
                return Json(new { Success = true });
            }
            else
            {
                return Json(new { Success = false, Error = "Email is null" });
            }
        }
        static void CreateMedicines(MyHealthContext context, int tenantId)
        {
            var data = new[] {
                       new {
                           Name="Tylenol",
                           Dose = 100.0,
                           Unit = InternationalUnit.Milligrams,
                           TimeOfDay = TimeOfDay.Dinner
                       },
                       new {
                           Name="Tamiflu",
                           Dose = 100.0,
                           Unit = InternationalUnit.Milligrams,
                           TimeOfDay = TimeOfDay.Breakfast
                       },
                       new {
                           Name="Advil",
                           Dose = 0.5,
                           Unit = InternationalUnit.Milliliters,
                           TimeOfDay = TimeOfDay.Lunch
                       },
                       new {
                           Name="Cafergot",
                           Dose = 100.0,
                           Unit = InternationalUnit.Milligrams,
                           TimeOfDay = TimeOfDay.Breakfast
                       },
                };
            var medicines = new List<Medicine>();
            var patients = context.Patients.Select(p => p.PatientId).ToList();

            var globalIdx = 0;

            foreach (int patientId in patients)
            {
                foreach (var _ in Enumerable.Range(0, 4))
                {
                    var currentMedicineData = data[globalIdx];
                    var medicine = new Medicine
                    {
                        Name = currentMedicineData.Name,
                        Dose = currentMedicineData.Dose,
                        DoseUnit = currentMedicineData.Unit,
                        PatientId = patientId,
                        TimeOfDay = currentMedicineData.TimeOfDay,
                        TenantId = tenantId
                    };
                    medicines.Add(medicine);
                    globalIdx++;
                    globalIdx = globalIdx % data.Length;
                }

                context.Medicines.AddRange(medicines);
            }
            context.SaveChanges();
        }
        public IActionResult Authenticate()
        {
            var payload = new {
                Authenticated = User.IsSignedIn(),
                Username = User.GetUserName()
            };

            return Json(payload);
        }
Esempio n. 6
0
		public async Task<ActionResult> DropQuiz(string courseId, Guid slideId, bool isLti)
		{
			var slide = courseManager.GetCourse(courseId).GetSlideById(slideId);
			if (slide is QuizSlide)
			{
				var userId = User.Identity.GetUserId();
				if (userQuizzesRepo.GetQuizDropStates(courseId, userId, slideId).Count(b => b) < GetMaxDropCount(slide as QuizSlide) &&
					!userQuizzesRepo.IsQuizScoredMaximum(courseId, userId, slideId))
				{
					await userQuizzesRepo.DropQuiz(userId, slideId);
					await slideCheckingsRepo.RemoveAttempts(courseId, slideId, userId);
					await visitsRepo.UpdateScoreForVisit(courseId, slideId, userId);
					if (isLti)
						LtiUtils.SubmitScore(slide, userId);
				}
			}
			var model = new { courseId, slideId = slide.Id, isLti };
			if (isLti)
				return RedirectToAction("LtiSlide", "Course", model);
			return RedirectToAction("SlideById", "Course", model);
		}
Esempio n. 7
0
		public async Task<ActionResult> ClearAnswers(string courseId, Guid slideId, bool isLti)
		{
			var slide = courseManager.GetCourse(courseId).GetSlideById(slideId);
			var userId = User.Identity.GetUserId();
			await userQuizzesRepo.RemoveAnswers(userId, slideId);
			await visitsRepo.RemoveAttempts(slideId, userId);
			var model = new { courseId, slideId = slide.Id };
			if (isLti)
			{
				LtiUtils.SubmitScore(slide, userId);
				return RedirectToAction("LtiSlide", "Course", model);
			}
			return RedirectToAction("SlideById", "Course", model);
		}