public static AttendeeViewModel Create(IRepository repository, SeminarPerson seminarPerson = null) { Check.Require(repository != null, "Repository must be supplied"); var viewModel = new AttendeeViewModel {SeminarPerson = seminarPerson ?? new SeminarPerson()}; return viewModel; }
public static MySeminarViewModel Create(IRepository repository, SeminarPerson seminarPerson) { Check.Require(repository != null, "Repository is required."); var viewModel = new MySeminarViewModel() { SeminarPerson = seminarPerson, Seminar = seminarPerson.Seminar }; // load business address var address = seminarPerson.Person.Addresses.Where(a => a.AddressType.Id == StaticIndexes.Address_Business[0]).FirstOrDefault(); address = address ?? new Address(); // if it has a coupon code, then add it in if (!string.IsNullOrWhiteSpace(seminarPerson.CouponCode)) { viewModel.CrpLink = string.Format(ConfigurationManager.AppSettings["crplinkCoupon"], seminarPerson.Seminar.RegistrationId, //0 seminarPerson.ReferenceId, //1 seminarPerson.Seminar.RegistrationPassword, //2 seminarPerson.CouponCode, //3 seminarPerson.Person.FirstName, //4 seminarPerson.Person.LastName, //5 seminarPerson.Title, //6 new address.Line1, //7 address.Line2, //8 address.City, //9 address.State, //10 address.Zip, //11 seminarPerson.Person.Phone, //12 seminarPerson.Person.User.Email); //13 } else { viewModel.CrpLink = string.Format(ConfigurationManager.AppSettings["CrpLink"], seminarPerson.Seminar.RegistrationId, //0 seminarPerson.ReferenceId, //1 seminarPerson.Seminar.RegistrationPassword, //2 seminarPerson.Person.FirstName, //3 seminarPerson.Person.LastName, //4 seminarPerson.Title, //5 new address.Line1, //6 address.Line2, //7 address.City, //8 address.State, //9 address.Zip, //10 seminarPerson.Person.Phone, //11 seminarPerson.Person.User.Email); //12 } return viewModel; }
public static SessionPersonViewModel Create(IRepository repository, Session session, SeminarPerson seminarPerson = null) { Check.Require(repository != null, "Repository is required."); var seminar = repository.OfType<Seminar>().GetNullableById(session.Seminar.Id); var viewModel = new SessionPersonViewModel() { SeminarPeople = seminar.SeminarPeople, Session = session, SeminarPerson = seminarPerson ?? new SeminarPerson() }; return viewModel; }
public Person CreateSeminarPerson(Application application, ModelStateDictionary modelState) { var person = SetPerson(application, application.User.Person); var firm = application.Firm ?? new Firm(application.FirmName, !string.IsNullOrWhiteSpace(application.FirmDescription)? application.FirmDescription : "n/a"); var seminarPerson = new SeminarPerson() { Seminar = application.Seminar, Title = application.JobTitle, Firm = firm, Commodities = new List<Commodity>(application.Commodities), FirmType = application.FirmType, OtherFirmType = application.OtherFirmType }; if (!string.IsNullOrWhiteSpace(application.OtherCommodity)) { // transfer "other" commodities var others = application.OtherCommodity.Split(','); if (others.Count() > 0) { foreach (var com in others) { var existing = _commodityRepository.Queryable.Where(a => a.Name == com).FirstOrDefault(); // check for an existing commodity if (existing != null) { // assign that commodity if it exists seminarPerson.Commodities.Add(existing); } else { // otherwise create a new one var newcom = new Commodity() { IsActive = false, Name = com }; seminarPerson.Commodities.Add(newcom); } } } } person.AddSeminarPerson(seminarPerson); UpdateAddress(person, application); UpdateAssistant(person, application); person.TransferValidationMessagesTo(modelState); seminarPerson.TransferValidationMessagesTo(modelState); if (modelState.IsValid) { _firmRepository.EnsurePersistent(firm); _personRepository.EnsurePersistent(person); _seminarPersonRepository.EnsurePersistent(seminarPerson); return person; } return null; }
public ActionResult Create(int? id, PersonEditModel personEditModel, HttpPostedFileBase profilepic) { ModelState.Clear(); var seminar = _seminarRepository.GetNullableById(id.HasValue ? id.Value : 0); var person = personEditModel.Person; var user = _userRepository.Queryable.FirstOrDefault(a => a.LoweredUserName == personEditModel.UserName.ToLower()); person.User = user; person.AddSite(SiteService.LoadSite(Site)); SeminarPerson seminarPerson = null; if (seminar != null) { seminarPerson = new SeminarPerson(seminar, person) { Invite = true, Title = personEditModel.Title }; person.AddSeminarPerson(seminarPerson); seminarPerson.TransferValidationMessagesTo(ModelState); } person = SetPerson(personEditModel, seminarPerson, ModelState, person, profilepic); ModelState.Remove("Person.User"); if (ModelState.IsValid) { // try to create the user var createStatus = _membershipService.CreateUser(personEditModel.UserName , Guid.NewGuid().ToString().Replace("-", string.Empty).Substring(0, 10) , personEditModel.Email); // retrieve the user to assign var createdUser = _userRepository.Queryable.FirstOrDefault(a => a.LoweredUserName == personEditModel.UserName.ToLower()); person.User = createdUser; // save only if user creation was successful if (createStatus == MembershipCreateStatus.Success) { // we're good save the person object _personRepository.EnsurePersistent(person); Message = string.Format(Messages.Saved, "Person"); if (person.OriginalPicture != null) return this.RedirectToAction(a => a.UpdateProfilePicture(person.Id, null, false)); else return this.RedirectToAction(a => a.AdminEdit(createdUser.Id, null, null)); } ModelState.AddModelError("Create User", AccountValidation.ErrorCodeToString(createStatus)); } ViewData["site"] = Site; var viewModel = PersonViewModel.Create(Repository, _firmService, Site, seminar, person, personEditModel.Email); viewModel.Addresses = personEditModel.Addresses; viewModel.UserName = personEditModel.UserName; return View(viewModel); }
private Person SetPerson(PersonEditModel personEditModel, SeminarPerson seminarPerson, ModelStateDictionary modelState, Person person = null, HttpPostedFileBase profilePic = null) { modelState.Clear(); person = person ?? personEditModel.Person; // copy all the fields Mapper.Map(personEditModel, person); SetAddresses(person, personEditModel.Addresses, ModelState); SetContacts(person, personEditModel.Contacts, ModelState); if (seminarPerson != null) { SetCommodities(seminarPerson, personEditModel.Commodities); if (personEditModel.Firm != null || !string.IsNullOrEmpty(personEditModel.FirmName)) { seminarPerson.Firm = personEditModel.Firm ?? new Firm(personEditModel.FirmName, personEditModel.FirmDescription) { WebAddress = personEditModel.FirmWebAddress }; } if (personEditModel.Title != null) //Not sure what is happening here. This may fix it. { seminarPerson.Title = personEditModel.Title; } } // deal with the image)) if (profilePic != null) { // blank out existing image files person.OriginalPicture = null; person.MainProfilePicture = null; person.ThumbnailPicture = null; // read the file and set the original picture var reader = new BinaryReader(profilePic.InputStream); person.OriginalPicture = reader.ReadBytes(profilePic.ContentLength); person.ContentType = profilePic.ContentType; } // run the validation person.TransferValidationMessagesTo(modelState); return person; }
private static void SetCommodities(SeminarPerson seminarPerson, IList<Commodity> commodities) { if ( seminarPerson.Commodities != null ) seminarPerson.Commodities.Clear(); seminarPerson.Commodities = new List<Commodity>(commodities); }
public ActionResult AddConfirm(int id, int personId, SeminarPerson seminarPerson, Firm firm) { var seminar = _seminarRespository.GetNullableById(id); if (seminar == null) { Message = string.Format(Messages.NotFound, "Seminar", id); return this.RedirectToAction<SeminarController>(a => a.Index()); } var person = _personRepository.GetNullableById(personId); if (person == null) { Message = string.Format(Messages.NotFound, "person", personId); return this.RedirectToAction(a => a.Add(id)); } if (firm.Id > 0) { seminarPerson.Firm = _firmRepository.GetNullableById(firm.Id); } else if (firm.Id == 0) { seminarPerson.Firm = firm; } // fill in the values seminarPerson.Person = person; seminarPerson.Seminar = seminar; ModelState.Clear(); seminarPerson.TransferValidationMessagesTo(ModelState); if (seminarPerson.Firm != null) { seminarPerson.Firm.TransferValidationMessagesTo(ModelState); } if (ModelState.IsValid) { _seminarPersonRepository.EnsurePersistent(seminarPerson); Message = string.Format("{0} has been added to the {1} seminar.", person.FullName, seminar.Year); _notificationService.AddToMailingList(seminar, person, MailingLists.Registered); // add user to the reminder emails _notificationService.AddToMailingList(seminar, person, MailingLists.PaymentReminder); _notificationService.AddToMailingList(seminar, person, MailingLists.HotelReminder); if (string.IsNullOrWhiteSpace(person.Biography)) _notificationService.AddToMailingList(seminar, person, MailingLists.BioReminder); if (person.OriginalPicture == null) _notificationService.AddToMailingList(seminar, person, MailingLists.PhotoReminder); return this.RedirectToAction(a => a.Add(id)); } var viewModel = AddConfirmViewModel.Create(Repository, _firmService, seminar, person, seminarPerson, seminarPerson.Firm); return View(viewModel); }