public void AddNewTenant(string email, string firstName, string middleName, string lastName, DateTime birthDate, string gender, string phone, string address, string appLang) { if (_db.user.Any(u => u.Email == email)) { throw new MyException(Errors.UserExists); } var trans = _db.Database.BeginTransaction(); var password = StringTransformationProvider.GeneratePassword(); try { var newUser = new user { Email = email, Deleted = false, Guid = Guid.NewGuid().ToString(), Password = StringTransformationProvider.Md5(password), UserTypeId = _db.usertype.First(t => t.Tag == UserTypes.Tenant).Id }; _db.user.Add(newUser); _db.SaveChanges(); _db.tenant.Add(new tenant { Address = address, BirthDate = birthDate, UserId = newUser.Id, FirstName = firstName, LastName = lastName, MiddleName = middleName, Gender = gender, Phone = phone }); _db.SaveChanges(); trans.Commit(); MailProvider.SendMailWithCredintails(password, firstName, middleName, email, appLang); } catch { trans.Rollback(); throw; } }
public ActionResult AddNewGuide(NewGuideModel model) { var repo = DependencyResolver.Current.GetService <IRepository>(); try { model.Password = StringTransformationProvider.GeneratePassword(); repo.AddNewGuide(model); MailProvider.SendMailWithCredintails(model.Password, model.FirstName, model.MiddleName, model.Email); } catch (MyException e) { return(new JsonResult { JsonRequestBehavior = JsonRequestBehavior.DenyGet, Data = new { success = false, errorReason = e.Error.Message } }); } return(new JsonResult { JsonRequestBehavior = JsonRequestBehavior.DenyGet, Data = new { success = true } }); }