Esempio n. 1
0
        public ActionResult Create(EventViewModel model)
        {
            if (!ModelState.IsValid)
            {
                model.SquadList  = GetSquadList();
                model.EventTypes = GetEventTypeList();
                return(View(model));
            }

            try {
                EventSetupRequest request = Map(model);
                var response = eventService.CreateEvent(request);
                if (!response.RequestIsFulfilled)
                {
                    foreach (var error in response.Errors)
                    {
                        ModelState.AddModelError("", error);
                    }

                    model.SquadList  = GetSquadList();
                    model.EventTypes = GetEventTypeList();
                    return(View(model));
                }

                return(RedirectToAction(nameof(Index)));
            } catch {
                model.SquadList  = GetSquadList();
                model.EventTypes = GetEventTypeList();
                return(View(model));
            }
        }
Esempio n. 2
0
 public DataAccess.Models.EventSetup?Execute(EventSetupRequest request)
 {
     using (var db = databaseFactory.CreateNew())
     {
         return(db.EventSetups.SingleOrDefault(x => x.ChatId == request.ChatId && x.MessageId == request.MessageId));
     }
 }
Esempio n. 3
0
        public Response UpdateEvent(EventSetupRequest request)
        {
            if (request.EventId.IsEmpty())
            {
                return(Response.CreateResponse(new EntityNotFoundException("Event Id must be specified when updating an existing event")));
            }
            else
            {
                var @event = eventQuery.GetEvent(request.EventId.Value);
                if (@event == null)
                {
                    return(Response.CreateResponse(new EntityNotFoundException("The specified event does not exist")));
                }
                else if (@event.ClubId != request.ClubId)
                {
                    return(Response.CreateResponse(new IllegalOperationException("The specified event does not belong to this club")));
                }
            }

            var(isValid, squads, trainingMaterials, response) = Validate(request);
            if (!isValid)
            {
                return(response);
            }

            try {
                eventRepository.UpdateEvent(Map(request, squads, trainingMaterials));
            } catch (Exception ex) {
                return(Response.CreateResponse(ex));
            }
            return(Response.CreateSuccessResponse());
        }
Esempio n. 4
0
 private Event Map(EventSetupRequest request, IEnumerable <Squad> squads, IEnumerable <TrainingMaterial> trainingMaterials) => new Event(request.ClubId, request.EventId)
 {
     EndDate           = request.EndDate.Value,
     Location          = request.Location,
     StartDate         = request.StartDate.Value,
     Title             = request.Title,
     Squads            = squads,
     TrainingMaterials = trainingMaterials,
     EventType         = request.EventType.Value
 };
Esempio n. 5
0
        private async void btnRunFirstTimeSetup_Click(object sender, EventArgs e)
        {
            btnRunFirstTimeSetup.Text = "Setting up...";

            GameSetupRequest gameSetupRequest  = new GameSetupRequest();
            TimeResponse     gameSetupResponse = await gameSetupRequest.sendRequest(http);

            EventSetupRequest eventSetupRequest  = new EventSetupRequest();
            TimeResponse      eventSetupResponse = await eventSetupRequest.sendRequest(http);

            Helper.configOff("firstTimeSetup");

            Close();
        }
Esempio n. 6
0
        public Response CreateEvent(EventSetupRequest request)
        {
            if (!request.EventId.IsEmpty())
            {
                return(Response.CreateResponse(new IllegalOperationException("Event Id must not be specified when creating a new event")));
            }

            var(isValid, squads, trainingMaterials, response) = Validate(request);
            if (!isValid)
            {
                return(response);
            }

            try {
                eventRepository.AddEvent(Map(request, squads, trainingMaterials));
            } catch (Exception ex) {
                return(Response.CreateResponse(ex));
            }
            return(Response.CreateSuccessResponse());
        }
Esempio n. 7
0
        private (bool isValid, IEnumerable <Squad> squads, IEnumerable <TrainingMaterial> trainingMaterials, Response response) Validate(EventSetupRequest request)
        {
            var validationResult = setUpRequestValidator.Validate(request);

            if (!validationResult.IsValid)
            {
                return(false, null, null, Response.CreateResponse(validationResult.Messages));
            }

            var club = clubQuery.GetClub(request.ClubId);

            if (club == null)
            {
                return(false, null, null, Response.CreateResponse(new EntityNotFoundException("The specified club doesn not exist")));
            }

            var clubSquads = squadQuery.GetSquads(club.Guid);
            var allOfRequestedSquadsBelongToClub = !request.Squads.Except(clubSquads.Select(s => s.Guid)).Any();

            if (!allOfRequestedSquadsBelongToClub)
            {
                return(false, null, null, Response.CreateResponse(new IllegalOperationException("Not all of specified squads belong to this club")));
            }

            List <TrainingMaterial> trainingMaterials = null;

            if (request.TrainingMaterials != null && request.TrainingMaterials.Any())
            {
                var clubTrainingMaterials = libraryQuery.GetTrainingMaterials(club.Guid);
                var allOfRequestedMaterialsBelongToClub = !request.TrainingMaterials.Except(clubTrainingMaterials.Select(t => t.Guid)).Any();
                if (!allOfRequestedMaterialsBelongToClub)
                {
                    return(false, null, null, Response.CreateResponse(new IllegalOperationException("Not all of specified materials belong to this club")));
                }

                trainingMaterials = request.TrainingMaterials.Join(clubTrainingMaterials, t1 => t1, t2 => t2.Guid, (guid, trainignMaterial) => trainignMaterial).ToList();
            }

            var squads = request.Squads.Join(clubSquads, s1 => s1, s2 => s2.Guid, (guid, squad) => squad).ToList();

            return(true, squads, trainingMaterials, Response.CreateSuccessResponse());
        }