public ActionResult Start(FormCollection collection, int id) { var doswiadczenieRecord = doswiadczenieRepository.Get(id); var viewModel = new DoswiadczenieStartViewModel(doswiadczenieRecord); TryUpdateModel(viewModel); if (ModelState.IsValid) { // ReSharper disable once PossibleInvalidOperationException if (viewModel.DataStart.Value < viewModel.Doswiadczenie.Data) { ModelState.AddModelError("DataStart", string.Format("Data startowa doświadczenia nie może być mniejsza niż data założenia doświadczenia, tj. {0}", viewModel.Doswiadczenie.Data.ToString("yyyy-MM-dd"))); } } if (ModelState.IsValid && !doswiadczenieRecord.Started) { foreach (var pryzmaStart in viewModel.Pryzmy) { var pryzma = pryzmaRepository.Get(pryzmaStart.PryzmaId); pryzmaStart.Record.Pryzma = pryzma; pryzmaStartRepository.Add(pryzmaStart.Record); } doswiadczenieRecord.Started = true; return(RedirectToAction("Index")); } if (doswiadczenieRecord.Started) { Notifier.AddError("Nie można wystartować już wystartowanego doświadczenia."); } foreach (var pryzmaStart in viewModel.Pryzmy) { pryzmaStart.SetPryzma(pryzmaRepository.Get(pryzmaStart.PryzmaId)); } viewModel.Doswiadczenie = doswiadczenieRecord; UnitOfWork.Rollback(); return(View(viewModel)); }
public ActionResult Start(int id) { var doswiadczenieRecord = doswiadczenieRepository.Get(id); if (!doswiadczenieRecord.Pryzmy.Any() || doswiadczenieRecord.Pryzmy.ToList().Any(p => !p.Skladniki.Any())) { Notifier.AddError("Nie można wystartować doświadczenia. Brak pryzm lub nie wszystkie pryzmy mają wypełnione składniki."); return(RedirectToAction("Index")); } DoswiadczenieStartViewModel viewModel; if (doswiadczenieRecord.Pryzmy.ToList().Any(p => pryzmaStartRepository.GetByPryzma(p.Id) != null)) { viewModel = new DoswiadczenieStartViewModel(doswiadczenieRecord) { Pryzmy = doswiadczenieRecord.Pryzmy.ToList() .Select(p => new PryzmaStartViewModel(pryzmaStartRepository.GetByPryzma(p.Id))) .ToList() }; } else { viewModel = new DoswiadczenieStartViewModel(doswiadczenieRecord) { Pryzmy = doswiadczenieRecord.Pryzmy.Select(p => new PryzmaStartViewModel(p)) }; } if (doswiadczenieRecord.DataStart == null) { doswiadczenieRecord.DataStart = DateTime.Now > doswiadczenieRecord.Data ? DateTime.Now : doswiadczenieRecord.Data; UnitOfWork.Rollback(); } return(View(viewModel)); }