Example #1
0
        public void FinishRequest()
        {
            FishingRecord record;

            // validate fields
            try
            {
                // date and time
                CommonPresenterStuff.ValidateDateEarlierThanNow(_view.DateTimeStart, "start date and time");
                CommonPresenterStuff.ValidateCronologicalDates(_view.DateTimeStart, _view.DateTimeEnd,
                                                               "start date and time", "end date and time");

                // location name
                CommonPresenterStuff.ValidateFieldNotEmpty(_view.Location, "location");

                // nature events
                CommonPresenterStuff.ValidateFieldNotEmpty(_view.Wind, "wind");
                CommonPresenterStuff.ValidateFieldNotEmpty(_view.MoonPhase, "moon phase");
                CommonPresenterStuff.ValidateFieldNotEmpty(_view.Tide, "tide");
            }
            catch (Exception e)
            {
                _view.ShowErrorMessage(e.Message);
                return;
            }

            // if fish catch or sale is empty, warn user
            if (_fishCatch.GetCaughtFish().Count == 0)
            {
                if (!_view.WarnUser(CommonPresenterStuff.WarnFieldEmptyMessage("fish catch")))
                {
                    return;
                }
            }
            if (_fishCatch.GetSoldFish().Count == 0)
            {
                if (!_view.WarnUser(CommonPresenterStuff.WarnFieldEmptyMessage("fish sale")))
                {
                    return;
                }
            }

            // try create record
            Winds      wind      = CommonPresenterStuff.GetWindEnum(_view.Wind);
            MoonPhases moonPhase = CommonPresenterStuff.GetMoonPhaseEnum(_view.MoonPhase);
            Tides      tide      = CommonPresenterStuff.GetTideEnum(_view.Tide);

            try
            {
                record = FishingRecordFactory.CreateFishingRecord(_view.DateTimeStart, _view.DateTimeEnd,
                                                                  _view.Location, wind, moonPhase, tide, _fishCatch);
            }
            catch (Exception)
            {
                _view.ShowErrorMessage(CommonPresenterStuff.ErrorMessage());
                return;
            }

            Finish(record);
        }
Example #2
0
        public void AddFishingRecordRequest()
        {
            // ensure nature contex is not empty
            if (_view.Wind == "")
            {
                _view.ShowErrorMessage(_windEmptyError);
                return;
            }
            if (_view.MoonPhase == "")
            {
                _view.ShowErrorMessage(_moonPhaseEmptyError);
                return;
            }
            if (_view.Tide == "")
            {
                _view.ShowErrorMessage(_tideEmptyError);
                return;
            }

            Winds      wind      = CommonFunctionalities.GetWindEnum(_view.Wind);
            MoonPhases moonPhase = CommonFunctionalities.GetMoonPhaseEnum(_view.MoonPhase);
            Tides      tide      = CommonFunctionalities.GetTideEnum(_view.Tide);

            try
            {
                FishingRecord record = FishingRecordFactory.CreateFishingRecord(_view.StartDateTime, _view.EndDateTime,
                                                                                _view.Location, wind, moonPhase, tide, fishCatch);

                FishingRecordRepository.GetInstance().AddRecord(record);
            }
            catch (FishermanBaseException e)
            {
                _view.ShowErrorMessage(e.Info);
                return;
            }

            _parent.AddRecordName(DateTime.Now);

            _view.End();
        }