public ActionResult Save(
            EditMode editMode, string id,
            DateTime?positionDateTime, string comment, double?latitude, double?longitude)
        {
            var positionReport = GetPositionReport(editMode, id);

            positionReport.PositionDateTime = positionDateTime;
            positionReport.Comment          = comment;

            if (latitude != null && longitude != null)
            {
                positionReport.Position = new Position(latitude.Value, longitude.Value);
            }

            if (!ModelState.IsValid)
            {
                var editData = new EditPositionReportData
                {
                    EditMode       = editMode,
                    PositionReport = positionReport
                };

                return(View("Edit", editData));
            }

            if (editMode == EditMode.Add)
            {
                _positionReportRepository.Save(positionReport);
            }

            _positionReportRepository.SubmitChanges();

            return(RedirectToAction("Index"));
        }
        public ActionResult Edit(string id)
        {
            var editData = new EditPositionReportData
            {
                EditMode       = EditMode.Edit,
                PositionReport = LoadPositionReport(id)
            };

            return(View("Edit", editData));
        }
        public ActionResult Add()
        {
            var editData = new EditPositionReportData
            {
                EditMode       = EditMode.Add,
                PositionReport = _positionReportRepository.Create()
            };

            return(View("Edit", editData));
        }