private ViewResult DoEditValidation(CompetitionEditorViewModel viewModel) { if (!ModelState.IsValid) { return(View(viewModel)); } return(null); }
public static CompetitionV SetData(this CompetitionV entity, CompetitionEditorViewModel viewModel) { entity.CompetitionName = viewModel.CompetitionName; entity.CompetitionType = viewModel.CompetitionType; entity.OrganisationGuid = viewModel.OrganisationGuid; entity.Rank = viewModel.Rank; entity.WebAddress = viewModel.WebAddress; return(entity); }
public ActionResult Create(CompetitionEditorViewModel viewModel) { if (!ModelState.IsValid) { return(View(viewModel)); } var competitionV = viewModel.ToCompetitionV(UserId, UserId); competitionV.CampaignPeriodType = PeriodType.Year; competitionV.CampaignPeriodValue = 1; DbProvider.Add(new Competition() { PrimaryKey = viewModel.HeaderKey }); DbProvider.Add(competitionV); DbProvider.SaveChanges(); return(RedirectToDetailsIndex(competitionV.HeaderKey)); }
public async Task <ActionResult> Edit(CompetitionEditorViewModel viewModel) { await SetModelsByPrimaryKey(viewModel); viewModel.EditableViewModels = viewModel.VersionEntity.Competition.GetEditableVersions(viewModel.ViewDate); var validate = DoEditValidation(viewModel); if (validate != null) { return(validate); } var query = viewModel.HeaderEntity.GetApprovedVersionsByEffectiveDate <Competition, CompetitionV>(viewModel.EffectiveFrom); if (query.Any()) { var entityV = query.Single(); if (viewModel.Equals(entityV)) { ModelState.AddModelError(string.Empty, "No changes have been made."); return(View(viewModel)); } if (entityV.ModifiedUserId == UserId) { entityV.SetData(viewModel); entityV.DateModified = DateTime.Now; DbProvider.SaveChanges(); SetSaveChangesMessage(SaveChangesMessageType.ChangesSaved); return(RedirectToEditor("Summary", entityV)); } else { entityV.IsActive = false; var newEntityV = viewModel.ToCompetitionV(entityV.OwnerUserId, UserId); newEntityV.EffectiveTo = viewModel.EffectiveTo; DbProvider.Add(newEntityV); DbProvider.SaveChanges(); SetSaveChangesMessage(SaveChangesMessageType.ChangesSaved); return(RedirectToEditor("Summary", newEntityV)); } } else { if (viewModel.Equals(viewModel.VersionEntity)) { ModelState.AddModelError("EffectiveFrom", "Only the effective date has changed."); return(View(viewModel)); } var newEntityV = viewModel.ToCompetitionV(UserId, UserId); newEntityV.EffectiveTo = Date.HighDate; DbProvider.Add(newEntityV); var competitionV = await DbProvider.GetCompetition(viewModel.HeaderKey, viewModel.ViewDate); competitionV.Competition.NormaliseVersionEffectiveDates <CompetitionV>(); DbProvider.SaveChanges(); return(RedirectToEditor("Summary", newEntityV)); } }
public ActionResult Create() { return(View(CompetitionEditorViewModel.CreateNew <CompetitionEditorViewModel>())); }