public void TestConstructorWithParametersDefaultsExpectedValues() { #region Arrange var ceremony = new Ceremony("Location", DateTime.Now.AddDays(10), 10, 100, DateTime.Now.AddDays(15), DateTime.Now.AddDays(20), CreateValidEntities.TermCode(4)); #endregion Arrange #region Act #endregion Act #region Assert Assert.AreEqual("Location", ceremony.Location); Assert.IsNotNull(ceremony.RegistrationParticipations); Assert.IsNotNull(ceremony.Majors); Assert.IsNotNull(ceremony.RegistrationPetitions); Assert.IsNotNull(ceremony.Editors); Assert.IsNotNull(ceremony.Colleges); Assert.IsNotNull(ceremony.Templates); Assert.AreEqual(DateTime.Now.AddDays(10).Date, ceremony.DateTime.Date); Assert.AreEqual(10, ceremony.TicketsPerStudent); Assert.AreEqual(100, ceremony.TotalTickets); Assert.AreEqual(DateTime.Now.Date, ceremony.RegistrationBegin.Date); Assert.AreEqual(DateTime.Now.AddDays(20).Date, ceremony.RegistrationDeadline.Date); Assert.AreEqual(DateTime.Now.Date, ceremony.ExtraTicketBegin.Date); Assert.AreEqual(DateTime.Now.Date, ceremony.ExtraTicketDeadline.Date); Assert.AreEqual(DateTime.Now.AddDays(15).Date, ceremony.PrintingDeadline.Date); Assert.AreEqual("Name4", ceremony.TermCode.Name); #endregion Assert }
public void TestConstructorWithNoParametersDefaultsExpectedValues() { #region Arrange var ceremony = new Ceremony(); #endregion Arrange #region Act #endregion Act #region Assert Assert.IsNotNull(ceremony.RegistrationParticipations); Assert.IsNotNull(ceremony.Majors); Assert.IsNotNull(ceremony.RegistrationPetitions); Assert.IsNotNull(ceremony.Editors); Assert.IsNotNull(ceremony.Colleges); Assert.IsNotNull(ceremony.Templates); Assert.AreEqual(DateTime.Now.Date, ceremony.DateTime.Date); Assert.AreEqual(DateTime.Now.Date, ceremony.RegistrationBegin.Date); Assert.AreEqual(DateTime.Now.Date, ceremony.RegistrationDeadline.Date); Assert.AreEqual(DateTime.Now.Date, ceremony.ExtraTicketBegin.Date); Assert.AreEqual(DateTime.Now.Date, ceremony.ExtraTicketDeadline.Date); Assert.AreEqual(DateTime.Now.Date, ceremony.PrintingDeadline.Date); #endregion Assert }
public async Task <Ceremony> UpdateAsync(Ceremony Cermoney) { context.Update(Cermoney); await context.SaveChangesAsync(); return(Cermoney); }
public async Task <Ceremony> AddAsync(Ceremony Cermoney) { context.Cermoney.Add(Cermoney); await context.SaveChangesAsync(); return(Cermoney); }
public OperationResult Edit(EditCeremony command) { var operation = new OperationResult(); operation.IsSuccedded = false; ceremony = _ceremonyRepository.Get(command.Id); if (ceremony == null) { return(operation.Failed(ApplicationMessages.RecordNotFound)); } if (_ceremonyRepository.Exist(x => x.Title == command.Title && x.Id != command.Id)) { return(operation.Failed(ApplicationMessages.DuplicatedRecord)); } var slug = command.Slug.Slugify(); var ImageFolderName = Tools.ToFolderName(this.GetType().Name); var ImagePath = $"{ImageFolderName}/{command.Slug}"; var imageFileName = _fileUploader.Upload(command.Image, ImagePath); var bannerFileName = _fileUploader.Upload(command.BannerFile, ImagePath); ceremony.Edit(command.Title, command.CeremonyDate.ToGeorgianDateTime(), command.IsLive, bannerFileName, imageFileName, command.ImageAlt, command.ImageTitle, command.Keywords, command.MetaDescription, slug); _ceremonyRepository.SaveChanges(); CreateOperationLog(ceremony.Id, 2); return(operation.Succedded()); }
public static TemplateViewModel Create(IRepository repository, Ceremony ceremony) { Check.Require(repository != null, "Repository is required."); var viewModel = new TemplateViewModel() {Templates = ceremony.Templates.Where(a=>a.IsActive).ToList(), Ceremony = ceremony}; return viewModel; }
public static List<MajorCode> Check(Ceremony ceremony, List<MajorCode> majorCodes, IRepository<Ceremony> ceremonyRepository) { var foundMajors = new List<MajorCode>(); foreach (var majorCode in majorCodes) { var code = majorCode; if(ceremonyRepository.Queryable.Where(a => a.TermCode == ceremony.TermCode && a.Id != ceremony.Id && a.Majors.Contains(code)).Any()) { foundMajors.Add(code); } } return foundMajors.Count > 0 ? foundMajors : null; }
public static AddEditorViewModel Create(IRepository repository, Ceremony ceremony) { Check.Require(repository != null, "Repository is required."); Check.Require(ceremony != null, "ceremony is required."); var viewModel = new AddEditorViewModel() { Ceremony = ceremony, Users = repository.OfType<vUser>().Queryable.OrderBy(a => a.LastName).ToList() }; return viewModel; }
public static TemplateCreateViewModel Create(IRepository repository, Template template, Ceremony ceremony) { Check.Require(repository != null, "Repository is required."); Check.Require(ceremony != null, "ceremony is required."); var viewModel = new TemplateCreateViewModel() { TemplateTypes = repository.OfType<TemplateType>().Queryable.OrderBy(a => a.Name), Template = template, Ceremony = ceremony }; return viewModel; }
public static Ceremony Ceremony(int? count) { var rtValue = new Ceremony(); rtValue.Location = "Location" + count.Extra(); rtValue.DateTime = rtValue.DateTime.AddDays(100); rtValue.TicketsPerStudent = 6; rtValue.PrintingDeadline = rtValue.DateTime.AddDays(-50); rtValue.RegistrationDeadline = rtValue.DateTime.AddDays(-20); rtValue.TermCode = new TermCode(); rtValue.TotalTickets = 1; rtValue.ConfirmationText = "ConfirmationText" + count.Extra(); return rtValue; }
public string GenerateEmailAllStudents(Ceremony ceremony, Student student, string body, TemplateType templateType, Registration registration, Attachment attachment, HttpRequestBase request, UrlHelper url) { //Check.Require(registrationParticipation != null, "registrationParticipation is required."); Check.Require(ceremony != null, "ceremony is required"); Check.Require(student != null, "student is required"); Check.Require(!string.IsNullOrWhiteSpace(body), "body is required."); _request = request; _url = url; _ceremony = ceremony; _student = student; //_registrationParticipation = registrationParticipation; //_registration = registrationParticipation.Registration; _registration = registration ?? new Registration(); _template = new Template(){TemplateType = templateType}; _attachment = attachment; return HandleBody(body); }
public void TestAddedEditorDefaultValue() { #region Arrange var ceremony = new Ceremony(); #endregion Arrange #region Act ceremony.AddEditor(CreateValidEntities.vUser(1), true); ceremony.AddEditor(CreateValidEntities.vUser(2), false); ceremony.AddEditor(CreateValidEntities.vUser(3)); //Defaulted ceremony.AddEditor(CreateValidEntities.vUser(4), true); #endregion Act #region Assert Assert.AreEqual(4, ceremony.Editors.Count); Assert.IsTrue(ceremony.Editors[0].Owner); Assert.IsFalse(ceremony.Editors[1].Owner); Assert.IsFalse(ceremony.Editors[2].Owner); Assert.IsTrue(ceremony.Editors[3].Owner); #endregion Assert }
public CeremonyWithMajor(Ceremony ceremony, MajorCode majorCode) { Ceremony = ceremony; MajorCode = majorCode; }
public void TestCanCorrectlyMapCeremony1() { #region Arrange var id = CeremonyRepository.Queryable.Max(x => x.Id) + 1; var session = NHibernateSessionManager.Instance.GetSession(); var compareDate1 = new DateTime(2010, 01, 01); var compareDate2 = new DateTime(2010, 01, 02); var compareDate3 = new DateTime(2010, 01, 03); var compareDate4 = new DateTime(2010, 01, 04); LoadColleges(3); var colleges = Repository.OfType<College>().GetAll(); //LoadCeremonyEditors(2); LoadUsers(3); var ceremony = new Ceremony(); ceremony.SetIdTo(id); ceremony.AddEditor(Repository.OfType<vUser>().GetById(1), true); ceremony.AddEditor(Repository.OfType<vUser>().GetById(2), false); //LoadMajorCode(3); var majors = Repository.OfType<MajorCode>().GetAll(); LoadRegistrationPetitions(3); var registrationPetitions = Repository.OfType<RegistrationPetition>().GetAll(); foreach (var registrationPetition in registrationPetitions) { registrationPetition.Ceremony = ceremony; //This would be set when the student creates the RegistrationPetition } LoadTemplateType(1); LoadTemplate(3); var templates = Repository.OfType<Template>().GetAll(); foreach (var template in templates) { template.Ceremony = ceremony; } //LoadTermCode(1); var termCode = Repository.OfType<TermCode>().Queryable.First(); LoadRegistrationParticipations(3,3); var registrationParticipations = Repository.OfType<RegistrationParticipation>().GetAll(); foreach (var registrationParticipation in registrationParticipations) { registrationParticipation.Ceremony = ceremony; } #endregion Arrange #region Act/Assert new PersistenceSpecification<Ceremony>(session, new CeremonyEqualityComparer()) .CheckProperty(c => c.Id, id) .CheckProperty(c => c.Colleges, colleges) .CheckProperty(c => c.DateTime, compareDate1) .CheckProperty(c => c.Editors, ceremony.Editors) .CheckProperty(c => c.ExtraTicketDeadline, compareDate2) .CheckProperty(c => c.ExtraTicketPerStudent, 5) .CheckProperty(c => c.Location, "Location") .CheckProperty(c => c.Majors, majors) .CheckProperty(c => c.PrintingDeadline, compareDate3) .CheckProperty(c => c.RegistrationDeadline, compareDate4) .CheckProperty(c => c.RegistrationPetitions, registrationPetitions) .CheckProperty(c => c.Templates, templates) .CheckProperty(c => c.TermCode, termCode) .CheckProperty(c => c.TicketsPerStudent, 6) .CheckProperty(c => c.TotalTickets, 1000) .CheckProperty(c => c.RegistrationParticipations, registrationParticipations) .VerifyTheMappings(); #endregion Act/Assert }
private void CopyCeremony(Ceremony destCeremony, Ceremony srcCeremony, IList<MajorCode> srcMajors, IList<College> srcColleges, IList<TicketDistributionMethod> srcTicketDistributionMethods ) { destCeremony.Name = srcCeremony.Name; destCeremony.DateTime = srcCeremony.DateTime; destCeremony.Location = srcCeremony.Location; destCeremony.TicketsPerStudent = srcCeremony.TicketsPerStudent; destCeremony.TotalTickets = srcCeremony.TotalTickets; destCeremony.ExtraTicketBegin = srcCeremony.ExtraTicketBegin; destCeremony.ExtraTicketDeadline = CreateDeadline(srcCeremony.ExtraTicketDeadline); destCeremony.ExtraTicketPerStudent = srcCeremony.ExtraTicketPerStudent; destCeremony.PrintingDeadline = srcCeremony.PrintingDeadline; destCeremony.MinUnits = srcCeremony.MinUnits; destCeremony.PetitionThreshold = srcCeremony.PetitionThreshold; destCeremony.Colleges = srcColleges; destCeremony.ConfirmationText = srcCeremony.ConfirmationText; destCeremony.WebsiteUrl = srcCeremony.WebsiteUrl; destCeremony.SurveyUrl = srcCeremony.SurveyUrl; destCeremony.Survey = srcCeremony.Survey; foreach (var ceremonySurvey in srcCeremony.CeremonySurveys) { var destCeremonySurvey = destCeremony.CeremonySurveys.SingleOrDefault(a => a.College.Id == ceremonySurvey.College.Id); if (destCeremonySurvey == null) { var cSurvey = new CeremonySurvey(); cSurvey.Ceremony = destCeremony; cSurvey.College = ceremonySurvey.College; cSurvey.Survey = ceremonySurvey.Survey; cSurvey.SurveyUrl = ceremonySurvey.SurveyUrl; destCeremony.CeremonySurveys.Add(cSurvey); } else { destCeremonySurvey.Survey = ceremonySurvey.Survey; destCeremonySurvey.SurveyUrl = ceremonySurvey.SurveyUrl; } } MergeCeremonyMajors(destCeremony.Majors, srcMajors, srcColleges); MergeTicketDistributionMethods(destCeremony.TicketDistributionMethods, srcTicketDistributionMethods); }
public ActionResult Create(CeremonyEditModel ceremonyEditModel) { ModelState.Clear(); if (string.IsNullOrEmpty(ceremonyEditModel.Term)) { ModelState.AddModelError("Term Code", "Term code must be selected."); } var termCode = _termRepository.GetNullableById(ceremonyEditModel.Term); if (termCode == null && !string.IsNullOrEmpty(ceremonyEditModel.Term)) { // term code doesn't exist, create a new one var vTermCode = _vTermRepository.GetNullableById(ceremonyEditModel.Term); termCode = new TermCode(vTermCode); } Ceremony ceremony = new Ceremony(); CopyCeremony(ceremony, ceremonyEditModel.Ceremony, ceremonyEditModel.CeremonyMajors, ceremonyEditModel.Colleges, ceremonyEditModel.TicketDistributionMethods); ceremony.TermCode = termCode; ceremony.AddEditor(_userService.GetCurrentUser(User), true); // fix the time on the end dates, so it ends on ceremony.TransferValidationMessagesTo(ModelState); if (ModelState.IsValid) { // save _termRepository.EnsurePersistent(termCode, true); Repository.OfType<Ceremony>().EnsurePersistent(ceremony); TermService.UpdateCurrent(termCode); // update the cache. // null out the current list of ceremonies the user has access to _ceremonyService.ResetUserCeremonies(); // display a message Message = "Ceremony has been created."; // redirect to the list return this.RedirectToAction(a => a.Edit(ceremony.Id)); } // redirect back to the page var viewModel = CeremonyViewModel.Create(Repository, User, _majorService, ceremony); viewModel.Ceremony = ceremony; return View(viewModel); }
public string GenerateRegistrationPetitionApproved(RegistrationPetition registrationPetition, Template template) { Check.Require(registrationPetition != null, "Registration Petition is required."); Check.Require(template != null, "Template is required"); Check.Require(template.TemplateType.Name == StaticValues.Template_RegistrationPetition_Approved, "template mismatch"); _ceremony = registrationPetition.Ceremony; _student = registrationPetition.Registration.Student; _registrationPetition = registrationPetition; _registration = registrationPetition.Registration; _template = template; return HandleBody(template.BodyText); }
public UpdateTicketModel(Ceremony ceremony, string message) { if (ceremony != null) { ProjectedAvailableTickets = ceremony.ProjectedAvailableTickets; ProjectedAvailableStreamingTickets = ceremony.ProjectedAvailableStreamingTickets; ProjectedTicketCount = ceremony.ProjectedTicketCount; ProjectedStreamingCount = ceremony.ProjectedTicketStreamingCount; } Message = message; }
private static CeremonyParticipation CreateCeremonyParticipation(int index, bool edit, Student student, MajorCode major, Ceremony ceremony, Registration registration, List<CeremonyParticipation> ceremonyParticipations, IRepository repository, bool admin = false) { if (ceremony != null) { var part = new CeremonyParticipation(); part.Index = index; part.Major = major; part.Ceremony = ceremony; part.Edit = edit; part.NeedsPetition = (student.TotalUnits < ceremony.MinUnits && student.TotalUnits >= ceremony.PetitionThreshold) || (ceremony.TermCode.CanRegister() && !ceremony.TermCode.CanRegister(true)); if (ceremonyParticipations != null) { var existingPart = ceremonyParticipations.FirstOrDefault(a => a.Ceremony == ceremony && a.Major == major); if (existingPart != null) { part.Tickets = existingPart.Tickets; part.Participate = existingPart.Participate; part.Cancel = existingPart.Cancel; part.NeedsPetition = existingPart.NeedsPetition; part.TicketDistributionMethod = existingPart.TicketDistributionMethod; } } if (registration != null) { var regPart = registration.RegistrationParticipations.FirstOrDefault(a => a.Ceremony.Id == ceremony.Id && a.Major.Id == major.Id); if (regPart != null) { part.ParticipationId = regPart.Id; part.Tickets = regPart.NumberTickets; part.Participate = !regPart.Cancelled; part.Cancel = regPart.Cancelled; part.NeedsPetition = false; // registered, don't need to petition part.TicketDistributionMethod = regPart.TicketDistributionMethod; } } if (admin) { // set the college/ceremony lookup values var college = repository.OfType<College>().Queryable.FirstOrDefault(x => x.Display && x.Id == major.College.Id); var ceremonies = repository.OfType<Ceremony>().Queryable.Where(x => x.TermCode == TermService.GetCurrent() && x.Colleges.Contains(college)).ToList(); var majors = ceremonies.SelectMany(x => x.Majors).Where(x => x.IsActive); part.College = college; part.Ceremonies = ceremonies; part.MajorCodes = majors.Where(x => x.College == college && x.ConsolidationMajor == null).OrderBy(x => x.MajorName).ToList(); } else { part.MajorCodes = part.Ceremony.Majors.OrderBy(x => x.MajorName).ToList(); } return part; } return null; }
public string GenerateExtraTicketRequestPetitionDecision(RegistrationParticipation registrationParticipation, Template template, Attachment attachment, HttpRequestBase request, UrlHelper url, string body = null) { Check.Require(registrationParticipation != null, "registrationParticipation is required."); Check.Require(registrationParticipation.Registration.Student != null, "registrationParticipation.Registration.Student is required."); Check.Require(template != null, "template is required."); Check.Require(template.TemplateType.Name == StaticValues.Template_TicketPetition_Decision, "Template mismatch."); Check.Require(registrationParticipation.Registration != null, "registrationParticipation.Registration is required."); Check.Require(registrationParticipation.ExtraTicketPetition != null, "registrationParticipation.ExtraTicketPetition is required."); _ceremony = registrationParticipation.Ceremony; _student = registrationParticipation.Registration.Student; _registrationParticipation = registrationParticipation; _registration = registrationParticipation.Registration; _template = template; _attachment = attachment; _request = request; _url = url; _extraTicketPetition = registrationParticipation.ExtraTicketPetition; if(string.IsNullOrWhiteSpace(body)) { return HandleBody(template.BodyText); } else { return HandleBody(body); } }
public string GenerateExtraTicketRequestPetitionConfirmation(RegistrationParticipation registrationParticipation, Template template) { Check.Require(registrationParticipation != null, "registrationParticipation is required."); Check.Require(registrationParticipation.Registration.Student != null, "registrationParticipation.Registration.Student is required."); Check.Require(template != null, "template is required."); Check.Require(template.TemplateType.Name == StaticValues.Template_TicketPetition, "Template mismatch."); Check.Require(registrationParticipation.Registration != null, "registrationParticipation.Registration is required."); Check.Require(registrationParticipation.ExtraTicketPetition != null, "registrationParticipation.ExtraTicketPetition is required."); _ceremony = registrationParticipation.Ceremony; _student = registrationParticipation.Registration.Student; _registrationParticipation = registrationParticipation; _registration = registrationParticipation.Registration; _template = template; _extraTicketPetition = registrationParticipation.ExtraTicketPetition; return HandleBody(template.BodyText); }
public string GenerateVisaLetterRequestDecision(VisaLetter visaLetter, Template template, HttpRequestBase request, UrlHelper url) { _ceremony = new Ceremony(); //Don't care about ceremony _student = visaLetter.Student; _registration = new Registration(); //Don't Need _template = template; _visaLetter = visaLetter; _request = request; _url = url; return HandleBody(template.BodyText); }
public static CeremonyViewModel Create(IRepository repository, IPrincipal user, IMajorService majorService , Ceremony ceremony) { Check.Require(repository != null, "Repository is required."); Check.Require(majorService != null, "Major Service is required."); var viewModel = new CeremonyViewModel() { TermCode = TermService.GetCurrent(), IsAdmin = user.IsInRole(Role.Codes.Admin), Ceremony = ceremony, Surveys = repository.OfType<Survey>().GetAll().ToList() }; // populate the colleges and majors var colleges = repository.OfType<College>().Queryable.Where(a => a.Display).ToList(); foreach (var clg in colleges) { if (viewModel.Ceremony.CeremonySurveys.All(a => a.College != clg)) { var ceremonySurvey = new CeremonySurvey(); ceremonySurvey.College = clg; ceremonySurvey.Ceremony = viewModel.Ceremony; viewModel.Ceremony.CeremonySurveys.Add(ceremonySurvey); } } IEnumerable<MajorCode> majors; if (ceremony.Id != 0) { viewModel.Colleges = new MultiSelectList(colleges, "Id", "Name", ceremony.Colleges.Select(x=>x.Id).ToList()); viewModel.TermCode = ceremony.TermCode; majors = majorService.GetByCollege(ceremony.Colleges.ToList()); viewModel.Majors = new MultiSelectList(majors, "Id", "Name", ceremony.Majors.Select(x => x.Id).ToList()); } else { viewModel.Colleges = new MultiSelectList(colleges, "Id", "Name"); } // populate the ticket distribution methods var tdmethods = repository.OfType<TicketDistributionMethod>().Queryable.Where(a => a.IsActive).ToList(); var selectedtdmethods = ceremony.TicketDistributionMethods.Select(a => a.Id).ToList(); viewModel.TicketDistributionMethods = new MultiSelectList(tdmethods, "Id", "Name", selectedtdmethods); // info for the time drop downs viewModel.Hours = new List<int>(); viewModel.Minutes = new List<string>(); viewModel.AmPm = new List<string>(); for (int i = 1; i < 13; i++) { viewModel.Hours.Add(i); } viewModel.Minutes.Add("00"); viewModel.Minutes.Add("30"); viewModel.AmPm.Add("AM"); viewModel.AmPm.Add("PM"); return viewModel; }
private bool ValidateMajorMove(MajorCode majorCode, Ceremony destCeremony, Ceremony origCeremony, out string message) { if (majorCode == null || origCeremony == null || destCeremony == null) { message = "There was an error, validating this move."; return false; } if (destCeremony.Majors.Contains(majorCode)) { message = "Major is already in the selected ceremony."; return false; } // figure out how many students/tickets are getting moved var participations = Repository.OfType<RegistrationParticipation>().Queryable .Where(a => a.Ceremony == origCeremony && a.Major == majorCode).ToList(); message = string.Format("You have requested to move {0} to {1} ceremony. This will move {2} students with {3} tickets leaving {4} available." , majorCode.Name, destCeremony.DateTime.ToString("g"), participations.Count(), participations.Sum(a => a.TotalTickets) , destCeremony.AvailableTickets - participations.Sum(a => a.TotalTickets)); return true; }
public void QueueVisaLetterDecision(VisaLetter visaLetter, Ceremony ceremony, HttpRequestBase request, UrlHelper url) { Check.Require(visaLetter != null, "Visa Letter Request Required."); var template = ceremony.Templates.FirstOrDefault(a => a.TemplateType.Name == StaticValues.Template_VisaLetterDecision && a.IsActive); if (template != null) { var subject = template.Subject; var body = _letterGenerator.GenerateVisaLetterRequestDecision(visaLetter, template, request, url); var emailQueue = new EmailQueue(visaLetter.Student, template, subject, body); _emailQueueRepository.EnsurePersistent(emailQueue); } }
public string GenerateMoveMajor(RegistrationParticipation registrationParticipation, Template template) { Check.Require(registrationParticipation != null, "registrationParticipation is required."); Check.Require(template != null, "template is required."); Check.Require(template.TemplateType.Name == StaticValues.Template_MoveMajor, "template mismatch."); _ceremony = registrationParticipation.Ceremony; _student = registrationParticipation.Registration.Student; _registrationParticipation = registrationParticipation; _registration = registrationParticipation.Registration; _template = template; return HandleBody(template.BodyText); }