Ejemplo n.º 1
0
        public ActionResult Stop(int id)
        {
            var doswiadczenieRecord = doswiadczenieRepository.Get(id);

            DoswiadczenieStopViewModel viewModel;

            if (doswiadczenieRecord.Pryzmy.ToList().Any(p => pryzmaStopRepository.GetByPryzma(p.Id) != null))
            {
                viewModel = new DoswiadczenieStopViewModel(doswiadczenieRecord)
                {
                    Pryzmy = doswiadczenieRecord.Pryzmy.ToList()
                             .Select(p => new PryzmaStopViewModel(pryzmaStopRepository.GetByPryzma(p.Id)))
                             .ToList()
                };
            }
            else
            {
                viewModel = new DoswiadczenieStopViewModel(doswiadczenieRecord)
                {
                    Pryzmy = doswiadczenieRecord.Pryzmy.Select(p => new PryzmaStopViewModel(p))
                };
            }

            if (doswiadczenieRecord.DataStop == null)
            {
                doswiadczenieRecord.DataStop = DateTime.Now;
                UnitOfWork.Rollback();
            }

            return(View(viewModel));
        }
Ejemplo n.º 2
0
        public ActionResult Stop(FormCollection collection, int id)
        {
            var doswiadczenieRecord = doswiadczenieRepository.Get(id);

            var viewModel = new DoswiadczenieStopViewModel(doswiadczenieRecord);

            TryUpdateModel(viewModel);

            if (ModelState.IsValid)
            {
                // ReSharper disable once PossibleInvalidOperationException
                if (viewModel.DataStop.Value < viewModel.Doswiadczenie.DataStart)
                {
                    ModelState.AddModelError("DataStop", string.Format("Data zakończenia doświadczenia nie może być mniejsza niż data rozpoczęcia doświadczenia, tj. {0}", viewModel.Doswiadczenie.DataStart.Value.ToString("yyyy-MM-dd")));
                }
            }

            if (ModelState.IsValid && !doswiadczenieRecord.Stopped)
            {
                foreach (var pryzmaStop in viewModel.Pryzmy)
                {
                    var pryzma = pryzmaRepository.Get(pryzmaStop.PryzmaId);
                    pryzmaStop.Record.Pryzma = pryzma;
                    pryzmaStopRepository.Add(pryzmaStop.Record);
                }

                doswiadczenieRecord.Stopped  = true;
                doswiadczenieRecord.DataStop = viewModel.DataStop;

                return(RedirectToAction("Index"));
            }

            if (doswiadczenieRecord.Stopped)
            {
                Notifier.AddError("Nie można zakończyć już zakończonego doświadczenia.");
            }

            foreach (var pryzmaStart in viewModel.Pryzmy)
            {
                pryzmaStart.SetPryzma(pryzmaRepository.Get(pryzmaStart.PryzmaId));
            }
            viewModel.Doswiadczenie = doswiadczenieRecord;

            UnitOfWork.Rollback();

            return(View(viewModel));
        }