public void GetTime() { var username = HttpContext.User.Identity.Name; var user = db.User.Where(x => x.Username == username).FirstOrDefault(); if (user.SleepTemporary.Any()) { var sTemp = user.SleepTemporary.LastOrDefault(); //walidacja 24h TimeSpan HOURS_VALIDATE = new TimeSpan(23, 59, 59); TimeSpan timeSpanTemp = DateTime.Now - sTemp.StartSleep; if (timeSpanTemp < HOURS_VALIDATE) { Sleep sleep = new Sleep(sTemp.StartSleep, DateTime.Now.ToLocalTime()); user.Sleep.Add(sleep); } db.SleepTemporary.Remove(sTemp); } else { SleepTemporary st = new SleepTemporary(); st.StartSleep = DateTime.Now; db.SleepTemporary.Add(st); user.SleepTemporary.Add(st); } db.SaveChanges(); }
public ActionResult VerifyAccount(string id) { bool Status = false; using (var db = new SleepLogAppEntities()) { db.Configuration.ValidateOnSaveEnabled = false; //to avoid confirm password does not match on save in db User verifyUser = db.User.Where(x => x.ActivationCode == new Guid(id)).FirstOrDefault(); if (verifyUser != null) { verifyUser.IsEmailVerified = true; Status = true; #region //sleep deInitializer for (int i = 0; i < verifyUser.Sleep.Count; i++) { //verifyUser.Sleep.Remove(verifyUser.Sleep.ToList()[i]); db.Sleep.Remove(verifyUser.Sleep.ToList()[i]); } #endregion db.SaveChanges(); } ViewBag.Status = Status; } return(View()); }
public ActionResult Registration( [Bind(Exclude = "IsEmailVerified, LastLoginDate, ActivationCode, " + "SleepTemporary, Sleep")] User user) { bool Status = false; string Message = string.Empty; //Model Validation if (ModelState.IsValid) { user.IsEmailVerified = false; user.CreatedDate = DateTime.Now; #region //Email is taken bool isEmailTaken = IsEmailTaken(user.Email); if (isEmailTaken) { ModelState.AddModelError("EmailExist", "Email already exist"); return(View(user)); } #endregion #region //username is taken bool isUsernameTaken = IsUsernameTaken(user.Username); if (isUsernameTaken) { ModelState.AddModelError("UsernameExist", "Username already exist"); return(View(user)); } #endregion #region //Generate activation code user.ActivationCode = Guid.NewGuid(); #endregion #region //Password Hashing user.Password = Crypto.Hash(user.Password); user.ConfirmPassword = Crypto.Hash(user.ConfirmPassword); #endregion #region //Save to db and initialize sleeps using (var db = new SleepLogAppEntities()) { db.User.Add(user); #region //sleep initializer var SleepList = SleepsInitializer.SleepsInitialize(); foreach (Sleep sleep in SleepList) { sleep.SetAmountOfSleep(); //możnaby przerzucić do SleepInitializer user.Sleep.Add(sleep); } #endregion db.SaveChanges(); } #endregion #region //Send activation mail to user SendVeryficationLinkEmail(user.Email, user.ActivationCode.ToString()); Message = "Registration succesfully done. Account activation link " + "has been sent to your email adress:" + user.Email; Status = true; #endregion } else { Message = "Invalid Request"; } ViewBag.Message = Message; ViewBag.Status = Status; return(View(user)); }