public ActionResult HobbyDBUser(HobbyDBUserVM hdbUser) { int userRecordId = 0; if (ModelState.IsValid) { bool error = false; if (string.IsNullOrEmpty(hdbUser.HobbyDBUserName) || hdbUser.HobbyDBUserId <= 0) { ModelState.AddModelError(nameof(hdbUser.HobbyDBUserName), "The specified UserName is not valid."); error = false; } if (hdbUser.HobbyDBUserId <= 0) { ModelState.AddModelError(nameof(hdbUser.HobbyDBUserId), "The specified User Id is not valid."); error = false; } if (string.IsNullOrEmpty(hdbUser.Email)) { ModelState.AddModelError(nameof(hdbUser.Email), "The specified Email is not valid."); error = false; } if (!hdbUser.IsBuyer && !hdbUser.IsSeller) { ModelState.AddModelError(nameof(hdbUser.IsBuyer), "Buyer or Seller must be checked."); error = false; } if (error) { return(PartialView("_HobbyDBUser", hdbUser)); } UserRecord user = db.UserRecords.Where(u => u.Id != hdbUser.Id).SingleOrDefault(u => u.HDBUserId == hdbUser.HobbyDBUserId || u.HDBUserName.Equals(hdbUser.HobbyDBUserName, StringComparison.CurrentCultureIgnoreCase)); if (user != null) { string ctrl = user.HDBUserId == hdbUser.HobbyDBUserId ? nameof(hdbUser.HobbyDBUserId) : nameof(hdbUser.HobbyDBUserName); if (user.HDBUserId == hdbUser.HobbyDBUserId) { ModelState.AddModelError(nameof(hdbUser.HobbyDBUserId), "User with the specified User Id already exists"); } if (string.Compare(user.HDBUserName, hdbUser.HobbyDBUserName, true) == 0) { ModelState.AddModelError(nameof(hdbUser.HobbyDBUserName), "User with the specified User Id already exists"); } return(PartialView("_HobbyDBUser", hdbUser)); } if (error) { return(PartialView("_HobbyDBUser", hdbUser)); } Email preferredEmail = db.Emails.SingleOrDefault(e => string.Compare(e.EmailAddress, hdbUser.Email, true) == 0); if (preferredEmail == null) { preferredEmail = new Email() { EmailAddress = hdbUser.Email }; db.Emails.Add(preferredEmail); db.SaveChanges(); } Email payPalEmail = db.Emails.SingleOrDefault(e => string.Compare(e.EmailAddress, hdbUser.PayPalEmail, true) == 0); if (payPalEmail == null) { payPalEmail = new Email() { EmailAddress = hdbUser.PayPalEmail }; db.Emails.Add(payPalEmail); db.SaveChanges(); } if (hdbUser.Id == 0) { UserRecord ur = new UserRecord() { HDBUserName = hdbUser.HobbyDBUserName, HDBUserId = hdbUser.HobbyDBUserId, LastName = hdbUser.LastName, FirstName = hdbUser.FirstName, PhoneNumber = hdbUser.PhoneNumber, UserType = (hdbUser.IsBuyer ? UserRecord.UserTypes.Buyer : 0) | (hdbUser.IsSeller ? UserRecord.UserTypes.Seller : UserRecord.UserTypes.None), PreferredEmailId = preferredEmail.Id, PayPalEmailId = payPalEmail.Id }; db.UserRecords.Add(ur); db.SaveChanges(); userRecordId = ur.Id; var userRecords = db.UserRecords.OrderBy(r => r.HDBUserName).Include(u => u.PayPalEmail).Include(u => u.PreferredEmail); return(PartialView("_UserList", userRecords.ToList())); } else { UserRecord ur = db.UserRecords.First(x => x.Id == hdbUser.Id); ur.HDBUserName = hdbUser.HobbyDBUserName; ur.HDBUserId = hdbUser.HobbyDBUserId; ur.FirstName = hdbUser.FirstName; ur.LastName = hdbUser.LastName; ur.PhoneNumber = hdbUser.PhoneNumber; ur.UserType = (hdbUser.IsBuyer ? UserRecord.UserTypes.Buyer : UserRecord.UserTypes.None) | (hdbUser.IsSeller ? UserRecord.UserTypes.Seller : UserRecord.UserTypes.None); ur.PayPalEmailId = payPalEmail.Id; ur.PreferredEmailId = preferredEmail.Id; db.Entry(ur).State = EntityState.Modified; db.SaveChanges(); string pv = "_UserListItem"; if (!string.IsNullOrEmpty(hdbUser.Dialog.PartialView)) { pv = hdbUser.Dialog.PartialView; } return(PartialView(pv, ur)); } } else { return(PartialView(hdbUser)); } }
public ActionResult HobbyDBUser(HobbyDBUserVM hdbUser) { int userRecordId = 0; if (ModelState.IsValid) { bool error = false; if (string.IsNullOrEmpty(hdbUser.HobbyDBUserName) || hdbUser.HobbyDBUserId <= 0) { ModelState.AddModelError(nameof(hdbUser.HobbyDBUserName), "The specified UserName is not valid."); error = false; } if (hdbUser.HobbyDBUserId <= 0) { ModelState.AddModelError(nameof(hdbUser.HobbyDBUserId), "The specified User Id is not valid."); error = false; } if (string.IsNullOrEmpty(hdbUser.Email)) { ModelState.AddModelError(nameof(hdbUser.Email), "The specified Email is not valid."); error = false; } if (!hdbUser.IsBuyer && !hdbUser.IsSeller) { ModelState.AddModelError(nameof(hdbUser.IsBuyer), "Buyer or Seller must be checked."); error = false; } if (error) { return(View()); // PartialView("_HobbyDBUser", hdbUser); } UserRecord user = db.UserRecords.SingleOrDefault(u => u.HDBUserId == hdbUser.HobbyDBUserId || string.Compare(u.HDBUserName, hdbUser.HobbyDBUserName, true) == 0); if (user != null) { string ctrl = user.HDBUserId == hdbUser.HobbyDBUserId ? nameof(hdbUser.HobbyDBUserId) : nameof(hdbUser.HobbyDBUserName); if (user.HDBUserId == hdbUser.HobbyDBUserId) { ModelState.AddModelError(nameof(hdbUser.HobbyDBUserId), "User with the specified User Id already exists"); } if (string.Compare(user.HDBUserName, hdbUser.HobbyDBUserName, true) == 0) { ModelState.AddModelError(nameof(hdbUser.HobbyDBUserName), "User with the specified User Id already exists"); } return(View());// PartialView("_HobbyDBUser", hdbUser); } if (error) { return(View());// PartialView("_HobbyDBUser", hdbUser); } if (hdbUser.Id == 0) { Email preferredEmail = db.Emails.SingleOrDefault(e => string.Compare(e.EmailAddress, hdbUser.Email, true) == 0); if (preferredEmail == null) { preferredEmail = new Email() { EmailAddress = hdbUser.Email }; db.Emails.Add(preferredEmail); db.SaveChanges(); } Email payPalEmail = db.Emails.SingleOrDefault(e => string.Compare(e.EmailAddress, hdbUser.PayPalEmail, true) == 0); if (payPalEmail == null) { payPalEmail = new Email() { EmailAddress = hdbUser.PayPalEmail }; db.Emails.Add(payPalEmail); db.SaveChanges(); } UserRecord ur = new UserRecord() { HDBUserName = hdbUser.HobbyDBUserName, HDBUserId = hdbUser.HobbyDBUserId, LastName = hdbUser.LastName, FirstName = hdbUser.FirstName, PhoneNumber = hdbUser.PhoneNumber, UserType = (hdbUser.IsBuyer ? UserRecord.UserTypes.Buyer : 0) | (hdbUser.IsSeller ? UserRecord.UserTypes.Seller : UserRecord.UserTypes.None), PreferredEmailId = preferredEmail.Id, PayPalEmailId = payPalEmail.Id }; db.UserRecords.Add(ur); db.SaveChanges(); userRecordId = ur.Id; } } else { return(PartialView(hdbUser)); } CartVM cart = new CartVM(); cart.BuyerId = userRecordId; cart.SellerId = userRecordId; var list = db.UserRecords.OrderBy(u => u.HDBUserName).ToList(); if (hdbUser.IsBuyer) { ViewBag.DropDownType = true; ViewBag.tabIndex = 5; cart.Buyers = new SelectList(list.Where(u => (u.UserType & UserRecord.UserTypes.Buyer) == UserRecord.UserTypes.Buyer), "Id", "HDBUserName"); return(PartialView("_UpdateDropdown", cart)); } return(new ContentResult()); }