예제 #1
0
        public async Task <BaseResponseDto <ClassDto> > Handle(CreateClassRequest request, CancellationToken cancellationToken)
        {
            BaseResponseDto <ClassDto> response = new BaseResponseDto <ClassDto>();

            try
            {
                System.Security.Claims.ClaimsPrincipal claims = new System.Security.Claims.ClaimsPrincipal();

                var identifier = claims.Claims.FirstOrDefault(predicate => predicate.Type == "id");
                if (identifier == null)
                {
                    response.Errors.Add("Yetkilendirme hatası");
                    response.Data = null;
                }
                else
                {
                    var user = await _repositoryWrapper.User.Find(int.Parse(identifier.ToString()));

                    if (user.UserRole != "Admin")
                    {
                        response.Errors.Add("Sınıf oluşturmak için yetkiniz bulunmamaktadır.");
                        response.Data = null;
                    }
                    else
                    {
                        var newClass = new Class
                        {
                            CreatedAt        = DateTime.Now,
                            EducationYear    = request.EducationYear,
                            ModifiedAt       = DateTime.Now,
                            Name             = request.Name,
                            AlphaNumericCode = AlphanumericCodeGenerator(8)
                        };
                        await _repositoryWrapper.Class.Create(newClass);

                        if (await _repositoryWrapper.SaveChangesAsync())
                        {
                            response.Data = newClass.Adapt <ClassDto>();
                        }
                        else
                        {
                            response.Errors.Add("Veri tabanı kayıt esnasında bir sorun oluştu.");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                _logger.LogError(ex, ex.InnerException.Message);
                response.Errors.Add(ex.InnerException.Message);
                response.Errors.Add("Class oluşturulurken bir hata oluştu.");
            }
            return(response);
        }