public async Task <IActionResult> CreateClass(CreateClassCommand command)
        {
            Request.Headers.TryGetValue("Authorization", out var token);
            string role = await AuthHelper.GetRoleFromTokenAsync(token);

            if (role != "admin")
            {
                Log.Error("401 Error. Unauthorized in DanceClass Controller: CreateClass()");
                return(StatusCode(401, new { Error = "Unauthorized" }));
            }
示例#2
0
        public async Task ShouldCreateClassCorrectly()
        {
            var context = new FakeDbContext();
            var handler = new CreateClassCommandHandler(context);
            var request = new CreateClassCommand(3, "f");

            await handler.Handle(request, CancellationToken.None);

            context.Classes.Should().HaveCount(2).And.Contain(x => x.Year == 3 & x.Section == "f");
        }
示例#3
0
        public async Task DoesValidatorPreventFromCreatingDuplicateClass()
        {
            var context   = new FakeDbContext();
            var validator = new CreateClassCommandValidator(context);
            var request   = new CreateClassCommand(1, "a");

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
            result.Errors.Should().HaveCount(1).And.ContainSingle(x => x.ErrorMessage == "Mentioned class must be unique." && x.ErrorCode == "AsyncPredicateValidator");
        }
示例#4
0
        public async Task DoesValidatorPreventFromCreatingClassWithNoYearAndSection()
        {
            var context   = new FakeDbContext();
            var validator = new CreateClassCommandValidator(context);
            var request   = new CreateClassCommand(0, null);

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
            result.Errors.Should().HaveCount(2).And.Contain(x => x.ErrorCode == "NotEmptyValidator");
        }
示例#5
0
        public async Task DoesValidatorPreventFromCreatingClassWithTooLongSectionName()
        {
            var context   = new FakeDbContext();
            var validator = new CreateClassCommandValidator(context);
            var request   = new CreateClassCommand(3, new string(Enumerable.Repeat('a', 300).ToArray()));

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeFalse();
            result.Errors.Should().HaveCount(1).And.ContainSingle(x => x.ErrorCode == "MaximumLengthValidator");
        }
示例#6
0
        public async Task DoesValidatorAllowCorrectCreateClassCommand()
        {
            var context   = new FakeDbContext();
            var validator = new CreateClassCommandValidator(context);
            var request   = new CreateClassCommand(3, "f");

            var result = await validator.ValidateAsync(request);

            result.IsValid.Should().BeTrue();
            result.Errors.Should().HaveCount(0);
        }
        public RedirectToRouteResult DoCreate(ClassDTO model)
        {
            var cmd = new CreateClassCommand(Guid.NewGuid(), model.Name, model.Credits);

            commandBus.Send(cmd);

            return(RedirectToRoute(new
            {
                action = "Index",
                controller = "Class"
            }));
        }
        public async Task <IActionResult> CreateClass(CreateClassCommand command)
        {
            Request.Headers.TryGetValue("Authorization", out var token);
            string role = await AuthHelper.GetRoleFromTokenAsync(token);

            if (role != "admin")
            {
                return(StatusCode(401, new { Error = "Unauthorized" }));
            }

            BaseResponse <int> result = (BaseResponse <int>) await Mediator.Send(command);

            return(!result.Success ? StatusCode(result.Error.StatusCode, result.Error) : Ok(result));
        }
        public static int CreateClass(string ClassName, string Description, string School, bool changeStundenplan, bool createAufgabe, bool deleteAufgabe, bool createTermin, bool deleteTermin)
        {
            CreateClassCommand command = new CreateClassCommand();

            command.EMail = EMAIL;
            command.Hash  = HASH;

            command.ClassName         = ClassName;
            command.Description       = Description;
            command.School            = School;
            command.changeStundenplan = changeStundenplan;
            command.createAufgabe     = createAufgabe;
            command.deleteAufgabe     = deleteAufgabe;
            command.createTermin      = createTermin;
            command.deleteTermin      = deleteTermin;

            ResultWithNoData result = JsonConvert.DeserializeObject <ResultWithNoData>(TCPManager.SendRequest(JsonConvert.SerializeObject(command)));

            return(result.statusCode);
        }
        public static string CreateClass(string CommandPara)
        {
            SQLManager.Connection.Close();

            CreateClassCommand Command = new CreateClassCommand();
            ResultWithNoData   Result  = new ResultWithNoData();
            Random             rand    = new Random();
            int cid = 0;

            Command = JsonConvert.DeserializeObject <CreateClassCommand>(CommandPara);

            if (CheckUserData(Command.EMail, Command.Hash) == false)
            {
                Result.statusCode = 270;
                return(JsonConvert.SerializeObject(Result));
            }

            using (MySqlCommand mysqlCommand = SQLManager.Connection.CreateCommand())
            {
                SQLManager.Connection.Open();

                mysqlCommand.CommandText = "SELECT Creator FROM classes WHERE Creator='" + Command.EMail + "'";

                MySqlDataReader mysqlreader;

                mysqlreader = mysqlCommand.ExecuteReader();

                if (mysqlreader.HasRows)
                {
                    mysqlreader.Read();

                    string MySQL_EMail = mysqlreader.GetString("Creator");

                    if (MySQL_EMail.Equals(Command.EMail, StringComparison.InvariantCultureIgnoreCase))
                    {
                        mysqlreader.Close();
                        SQLManager.Connection.Close();

                        Result.statusCode = 301;
                        return(JsonConvert.SerializeObject(Result));
                    }
                }

                mysqlreader.Close();
                SQLManager.Connection.Close();
            }

            using (MySqlCommand mysqlCommand = SQLManager.Connection.CreateCommand())
            {
                SQLManager.Connection.Open();

                mysqlCommand.CommandText = "INSERT INTO classes (Creator,Name,Description,School,Perm_changeStundenplan, Perm_createAufgabe, Perm_deleteAufgabe, Perm_createTermin, Perm_deleteTermin ) VALUES (?Creator,?ClassName,?Description,?School,?changeStundenplan, ?createAufgabe, ?deleteAufgabe, ?createTermin, ?deleteTermin )";


                mysqlCommand.Parameters.AddWithValue("?Creator", Command.EMail);
                mysqlCommand.Parameters.AddWithValue("?ClassName", Command.ClassName);
                mysqlCommand.Parameters.AddWithValue("?Description", Command.Description);
                mysqlCommand.Parameters.AddWithValue("?School", Command.School);
                mysqlCommand.Parameters.AddWithValue("?changeStundenplan", Command.changeStundenplan);
                mysqlCommand.Parameters.AddWithValue("?createAufgabe", Command.createAufgabe);
                mysqlCommand.Parameters.AddWithValue("?deleteAufgabe", Command.deleteAufgabe);
                mysqlCommand.Parameters.AddWithValue("?createTermin", Command.createTermin);
                mysqlCommand.Parameters.AddWithValue("?deleteTermin", Command.deleteTermin);

                mysqlCommand.ExecuteNonQuery();

                SQLManager.Connection.Close();
            }

            using (MySqlCommand mysqlCommand = SQLManager.Connection.CreateCommand())
            {
                SQLManager.Connection.Open();

                mysqlCommand.CommandText = "SELECT CID FROM classes WHERE Creator='" + Command.EMail + "'";

                MySqlDataReader mysqlreader;

                mysqlreader = mysqlCommand.ExecuteReader();

                if (mysqlreader.HasRows)
                {
                    mysqlreader.Read();

                    cid = mysqlreader.GetInt32("CID");
                }

                mysqlreader.Close();
                SQLManager.Connection.Close();
            }

            using (MySqlCommand mysqlCommand = SQLManager.Connection.CreateCommand())
            {
                SQLManager.Connection.Open();

                mysqlCommand.CommandText = "UPDATE `users` SET `CID` = '" + cid + "' WHERE `EMail` = '" + Command.EMail + "'";

                mysqlCommand.ExecuteNonQuery();

                SQLManager.Connection.Close();
            }

            using (MySqlCommand mysqlCommand = SQLManager.Connection.CreateCommand())
            {
                SQLManager.Connection.Open();
                mysqlCommand.CommandText = "UPDATE `users` SET `HasSelected` = '1' WHERE `EMail` = '" + Command.EMail + "'";

                mysqlCommand.ExecuteNonQuery();

                SQLManager.Connection.Close();
            }
            Result.statusCode = 201;
            return(JsonConvert.SerializeObject(Result));
        }
示例#11
0
        public async Task <IActionResult> CreateClass([FromBody] CreateClassCommand command)
        {
            var classId = await _mediator.Send(command);

            return(Created($"api/classes/{classId}", null));
        }
示例#12
0
        public void Post(Class charClass)
        {
            var command = new CreateClassCommand();

            command.CreateClass(charClass);
        }
 public async Task <ObjectResult> Post(CreateClassCommand command)
 {
     return(await Execute(command, "You have successfully added the class"));
 }
示例#14
0
 public async Task <IActionResult> Create(CreateClassCommand command)
 => await SendAsync(command, resource : "class");