public async Task <IActionResult> CreateMatch(MatchCreateRequest request)
        {
            //Creazione modello richiesto da admin
            var model = new Match
            {
                Name = request.Name,
                MatchDateTimeStart   = request.MatchDateTimeStart,
                MatchDateTimeEnd     = request.MatchDateTimeEnd,
                AssociationId        = request.AssociationId,
                PlaceId              = request.PlaceId,
                OpenMatch            = request.OpenMatch,
                UnifyClassifications = request.UnifyClassifications,
                Cost           = request.Cost,
                PaymentDetails = request.PaymentDetails
            };

            //Invocazione del service layer
            var validations = await BasicLayer.CreateMatch(model, PlatformUtils.GetIdentityUserId(User));

            if (validations.Count > 0)
            {
                return(BadRequest(validations));
            }

            var association = BasicLayer.GetAssociation(model.AssociationId);
            var place       = BasicLayer.GetPlace(model.PlaceId);

            //Return contract
            return(Ok(ContractUtils.GenerateContract(model, association, place)));
        }
Exemplo n.º 2
0
        public async Task ShouldCreateMatchBeOkHavingProvidedData()
        {
            //Conteggio gli elementi prima della creazione
            var countBefore = Scenario.Matches.Count;

            var existingAssociation = Scenario.Associations.FirstOrDefault();
            var existingPlace       = Scenario.Places.FirstOrDefault();

            //Composizione della request
            var request = new MatchCreateRequest
            {
                Name                 = RandomizationUtils.GenerateRandomString(50),
                AssociationId        = existingAssociation.Id,
                PlaceId              = existingPlace.Id,
                MatchDateTimeStart   = DateTime.Now,
                MatchDateTimeEnd     = DateTime.Now.AddDays(1),
                OpenMatch            = true,
                UnifyClassifications = true
            };

            //Invoke del metodo
            var response = await Controller.CreateMatch(request);

            //Conteggio gli elementi dopo la creazione
            var countAfter = Scenario.Matches.Count;

            //Parsing della risposta e assert
            var parsed = ParseExpectedOk <MatchContract>(response);

            Assert.IsTrue(parsed != null &&
                          countAfter == countBefore + 1 &&
                          parsed.Data.Name == request.Name &&
                          parsed.Data.Association.AssociationId == request.AssociationId &&
                          parsed.Data.Place.PlaceId == request.PlaceId &&
                          parsed.Data.MatchDateTimeStart == request.MatchDateTimeStart &&
                          parsed.Data.MatchDateTimeEnd == request.MatchDateTimeEnd &&
                          parsed.Data.OpenMatch == request.OpenMatch &&
                          parsed.Data.UnifyClassifications == request.UnifyClassifications
                          );
        }
Exemplo n.º 3
0
        public async Task ShouldCreateMatchBeBadRequestWithoutPermission()
        {
            UpdateIdentityUser(GetUserWithoutPermission(new List <Permissions> {
                Permissions.ManageMatches, Permissions.CreateMatches
            }));

            //Conteggio gli elementi prima della creazione
            var countBefore           = Scenario.Matches.Count;
            var countBeforePermission = Scenario.Permissions.Count;

            var existingAssociation = Scenario.Associations.FirstOrDefault();
            var existingPlace       = Scenario.Places.FirstOrDefault();

            //Composizione della request
            var request = new MatchCreateRequest
            {
                Name                 = RandomizationUtils.GenerateRandomString(50),
                AssociationId        = existingAssociation.Id,
                PlaceId              = existingPlace.Id,
                MatchDateTimeStart   = DateTime.Now,
                MatchDateTimeEnd     = DateTime.Now.AddDays(1),
                OpenMatch            = true,
                UnifyClassifications = true
            };

            //Invoke del metodo
            var response = await Controller.CreateMatch(request);

            //Conteggio gli elementi dopo la creazione
            var countAfter           = Scenario.Matches.Count;
            var countAfterPermission = Scenario.Permissions.Count;

            //Parsing della risposta e assert
            var parsed = ParseExpectedBadRequest(response);

            Assert.IsTrue(parsed != null);
            Assert.AreEqual(countBefore, countAfter);
            // because is made by an admin the permissions should be the same
            Assert.AreEqual(countBeforePermission, countAfterPermission);
        }