public ActionResult AddProgrammer(string SN) { if(SN == null || SN.Length != 8) { return View("Error"); } using(var db = new HTDBEnt()) { var exists = db.HTDevices.FirstOrDefault(tf => tf.SN == SN.ToUpper()); if(exists is HTDevice) return View("Error"); string userid = User.Identity.GetUserId(); var currentuser = db.HTUsers.FirstOrDefault(tf => tf.AspNetUserId == userid); HTDevice dev = new HTDevice() { SN = SN.ToUpper(), AddDate = DateTime.Now, OwnerID = currentuser.Id, Locked = true }; db.HTDevices.Add(dev); db.SaveChanges(); MailManager.SendWhenUserAddNewDevice(SN, currentuser.AspNetUser.UserName); } return RedirectToAction("Index"); }
public async Task<ActionResult> Register(RegisterViewModel model) { if(ModelState.IsValid) { var user = new ApplicationUser { UserName = model.Email, Email = model.Email }; var result = await UserManager.CreateAsync(user, model.Password); if(result.Succeeded) { await SignInManager.SignInAsync(user, isPersistent: false, rememberBrowser: false); var htuser = new HTUser() { AspNetUserId = user.Id ,Locked = true, RegisterDate = DateTime.Now }; using(var db = new HTDBEnt()) { using(var transaction = db.Database.BeginTransaction()) { try { db.HTUsers.Add(htuser); db.SaveChanges(); if(model.DeviceSN == null || model.DeviceSN.Length != 8) { model.DeviceSN = "OOOOOOOO"; } var RegDevice = new HTDevice() { SN = model.DeviceSN.ToUpper(), OwnerID = htuser.Id, Locked = true , AddDate = DateTime.Now}; db.HTDevices.Add(RegDevice); db.SaveChanges(); transaction.Commit(); MailManager.SendNewUserRegister(user.UserName, RegDevice.SN); } catch(Exception) { transaction.Rollback(); } } } // Дополнительные сведения о том, как включить подтверждение учетной записи и сброс пароля, см. по адресу: http://go.microsoft.com/fwlink/?LinkID=320771 // Отправка сообщения электронной почты с этой ссылкой // 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, "Подтверждение учетной записи", "Подтвердите вашу учетную запись, щелкнув <a href=\"" + callbackUrl + "\">здесь</a>"); return RedirectToAction("Index", "Personal"); } AddErrors(result); } // Появление этого сообщения означает наличие ошибки; повторное отображение формы return View(model); }