Пример #1
0
        public void FinishRequest(string inName, string inLatitude, string inLongitude, string inDepth, string inComment)
        {
            Location location;
            double   latitude, longitude, depth;

            // validate fields
            try
            {
                // location name
                CommonPresenterStuff.ValidateFieldNotEmpty(_view.LocationName, "name");

                // latitude
                CommonPresenterStuff.ValidateFieldNotEmpty(_view.Latitude, "latitude");
                latitude = CommonPresenterStuff.ValidateDoubleString(_view.Latitude, "latitude");
                CommonPresenterStuff.ValidateDoubleInRange(latitude, -90.0, 90.0, "latitude");

                // longitude
                CommonPresenterStuff.ValidateFieldNotEmpty(_view.Longitude, "longitude");
                longitude = CommonPresenterStuff.ValidateDoubleString(_view.Longitude, "longitude");
                CommonPresenterStuff.ValidateDoubleInRange(longitude, -180.0, 180.0, "longitude");

                // depth
                CommonPresenterStuff.ValidateFieldNotEmpty(_view.Depth, "depth");
                depth = CommonPresenterStuff.ValidateDoubleString(_view.Depth, "depth");
                CommonPresenterStuff.ValidateDoubleGreaterThan(depth, 0.0, "depth");
            }
            catch (Exception e)
            {
                _view.ShowErrorMessage(e.Message);
                return;
            }

            // if comment is empty, warn user
            if (_view.Comment == "")
            {
                if (!_view.WarnUser(CommonPresenterStuff.WarnFieldEmptyMessage("comment")))
                {
                    return;
                }
            }

            // try creating location
            try
            {
                location = LocationFactory.CreateLocation(inName, latitude, longitude, depth, inComment);
            }
            catch (Exception)
            {
                _view.ShowErrorMessage(CommonPresenterStuff.ErrorMessage());
                return;
            }

            Finish(location);
        }