kodlamaio-projects / narchitecture Goto Github PK
View Code? Open in Web Editor NEWInspired by Clean Architecture, nArchitecture is a monolith project which uses advanced techniques.
License: MIT License
Inspired by Clean Architecture, nArchitecture is a monolith project which uses advanced techniques.
License: MIT License
Why was this project started? What is this supposed to do? Readme is empty. Found this place with the githunt extension and have no idea why it has so many stars.
Hi!
I run the code first migration. Registered a user successfully. But right after the registration of user, these is a line "RefreshToken addedRefreshToken = await _authService.AddRefreshToken(createdRefreshToken);" in the Handle() method of RegisterCommand. On Execting that line I am getting the following error
"Non-exhaustive switch expression failed to match its input.
Unmatched value was Unchanged."
Do you have any idea why I am getting this error on adding refresh token?
Hi, I have cloned this project and found it very interesting. It has tremendous features to learn. I am trying to register a user by using WebApi (/api/Auth/Register). But it gives an error that "Invalid object name 'Users'.". So my question is how do I create all the tables in the SQL-Server database?
Merhabalar,
nArchitecture.RentACarProject/src/rentACar/Application/Features/Brands/Commands/DeleteBrand/DeleteBrandCommand.cs sınıfı içerisinde Handle(...) Metodunda await _brandBusinessRules.BrandIdShouldExistWhenSelected(request.Id); satırında verinin varlığını kontrol ettikten sonra silme işlemini gerçekleştiremiyor. Hata mesajı almıyorum fakat veri tabanında silmek istenen veri duruyor. Eğer belirtilen satır açıklama satırına alınırsa (veri varlığı sorgulanmazsa) silme işlemi bu sefer doğru bir şekilde gerçekleşiyor. Acaba repository yi dispose etmediğimizden olabilir mi?
Şu şekilde bir tablomuz olduğunu varsayalım. Eğer tablomuzda sadece id numarası 1 olan bir verimiz olduğunu varsayarsak ve belirtilen sorgudaki kodu değiştirirsek. Mesela _ProgrammingLanguage? result = await _programmingLanguageRepository.GetAsync(b => b.Id != id); if (result != null) throw new BusinessException("........");
bu işlemde 1 numaralı id silinmek istediğinde silme işlemi gerçekleştirecektir. Fakat birden fazla verimiz olduğunda ve ilk verilerden birini seçtiğimizde bu sorgu yanlış olacaktır onu anladım fakat bu sorguyu yazmamım asıl amacı hata nedenin yazarak anlatabilmek.
Kısacası benim anladığım biz verinin varlığını sorgulamaya çalıştığımızda repository.GetAsync() işleminde eğer veriyi bulursa örneğin 1 id li veriyi buldu ve bu veri var olduğu için hata mesajı fırlatmayacağından dolayı bu veriyi silemiyoruz. Silme işleminde bir hata ile karşılaşılmamıştır fakat silme gerçekleşmemektedir..
Kodlama.io ödevi üzerinden fotoğraf gösterebildim. Projeyi redis hatası yüzünden açamadım. Bu sebepten dolayı kodları kontrol ederekten diğer proje üzerinden fotoğraf ekledim.
Atılan her sorguda WHERE x."DeletedDate" IS NULL eklendiğini göz önüne alırsak bu kolonu indexlemek mantıklı ve bu indexte de sadece null olanları indexlemesi için
Sql kodu:
CREATE NONCLUSTERED INDEX Ix_DeleteIndex ON dbo.XTable (DeletedDate) WHERE DeletedDate IS NULL
veya
CREATE INDEX Ix_DeleteIndex ON dbo.XTable (DeletedDate) WHERE DeletedDate IS NULL
EF configuration dosyalarında ise şu yeterli olacaktır:
builder.HasIndex(e => e.DeletedDate).HasFilter(""DeletedDate" IS NULL");
Merhaba,
Proje MongoDB destekliyor mu ?
İyi Çalışmalar
cli uzerinden etity için crud işlemlerini oluşturdum.
swager üstünden test etmek istediğimde ise her ne yaptıysam contextimi düzenlediysemde sürekli şu hatayı almaktayım
Microsoft.Data.SqlClient.SqlException (0x80131904): Invalid object name 'xxxxxxxxxxxxx'.
dbcontextim
public static IServiceCollection AddPersistenceServices(this IServiceCollection services, IConfiguration configuration)
{
services.AddDbContext<BaseDbContext>(options => options.UseSqlServer(configuration.GetConnectionString("BaseDb")));
services.AddScoped<ICompanyRepository, CompanyRepository>();
return services;
}
Refresh token mekanizması çalışmıyor. Token sonsuz döngü yaratıyor. Aşağıdaki de hata mesajımız:
System.Text.Json.JsonException: A possible object cycle was detected. This can either be due to a cycle or if the object depth is larger than the maximum allowed depth of 32. Consider using ReferenceHandler.Preserve on JsonSerializerOptions to support cycles. Path: $.RefreshToken.User.RefreshTokens.User.RefreshTokens.User.RefreshTokens.User.RefreshTokens.User.RefreshTokens.User.RefreshTokens.User.RefreshTokens.User.RefreshTokens.User.RefreshTokens.User.RefreshTokens.UserId.
Sorun bence RefreshToken türü ile user arasında oluşturulan llişkiden veya komple refresh token mekanizmasından kaynaklı.
Ayrıca ilişkili hata kayıtları nArchGen projesi reposunda da mevcut
Merhaba, DependencyResolvers hangi katmanın altında tanımlanmalı? CorePackages içerisinde yerleştirmek istiyorum fakat webapi projesi içerisinde ki Infrastructure katmanının varlığı kafamı karıştırıyor. CorePackages içerisinde tanımladığım DependencyResolver'ı tüm webapi projelerimin kullanmasını değişkenlik gösterenleri ise docker configurationu veya appsettings içindeki configuration'a göre çözümlesin veya çözümlemesinin kararını vereceğim bir yapıya çevirmek istiyorum. Eğer webapi projesindeki Infrastructure altında tanımlarsam aynı kodu diğer web servisleri içerisinde'de tanımlamam gerekir, tam olarak mantığıma yerleştiremedim.
projemde postgresql kullanıyorum.
migration ve update database yapıldı. login endpointinden default user ile giriş yapıyorum. tokeni alıp swaggerda authorize kutusuna basına Bearer ekleyip user sekmesinden GetFromAuth calıstırıyorum. user dont exist diyor. debug ettigimde ise userid ve diger detaylar null veya 0 olarak geliyor. acaba atladıgım bir nokta mı var. detaylar aşagıda:
users controller'da GetFromAuth endpointinde userId gelmiyor. getUserIdFromRequest metodundan 0 olarak geliyor.
action metodunun içinde kendim elle aşagıdaki gibi httpcontext.user'a ulasmaya calısıyorum ama oradan da null sonuc geliyor.
var user = HttpContext.User;
var userId = user.FindFirst(ClaimTypes.NameIdentifier)?.Value;
var username = user.Identity.Name;
var userId2 = User.FindFirstValue(ClaimTypes.NameIdentifier);
Projede yeni bir sınıf oluşturalım. İsimlendirme kısmında dikkat edilmesi gereken bir durum var. Oluşturduğumuz sınıfların isimlerinin sonuna sadece sayı ekleniyor, örneğin: Deneme2 gibi. Sonrasında "narchgen generate crud" komutu ile generate işlemine başlayalım. İçeride istediğimizi seçerek oluşturun.
Ancak, şu bir hata var: "narchgen generate crud" komutunu çalıştırdığımızda, Application/Features altında dosya oluştururken normalde Deneme2s yapmasını bekleriz. Ancak bu, doğru şekilde yapılmıyor ve sadece Deneme2 olarak oluşturuluyor. Bu durum, domain içindeki referansı karıştırarak hata almamıza neden oluyor.
Diyelimki vs editörümüz yok veya mac bir bilgisayarımız var bu durumda vs da ki Package Manager di sanırım bu olmadığından dolayı .Net CLI kullanarak migratiosn işlemleri yapmamız gerekicek . Buradaki hata da tam olarak bu dur . Aşağıdaki kodu eklerseniz sorun çözülüyor . Sevdiğim bir Code generator olduğu için bunun da sisteme eklenmesini isterim.
namespace Persistence.Contexts;
public class DesingTimeDbContextFactory : IDesignTimeDbContextFactory<BaseDbContext>
{
public BaseDbContext CreateDbContext(string[] args)
{
IConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
string basePath = Path.Combine(Directory.GetCurrentDirectory(), "..", "WebAPI");
configurationBuilder.SetBasePath(basePath);
// appsettings.json dosyasının olduğu yolu ekleyin
configurationBuilder.AddJsonFile("appsettings.json");
IConfiguration configuration = configurationBuilder.Build();
// appsettings.json içindeki "BaseDb" bağlantı dizesini alın
string connection = configuration.GetConnectionString("BaseDb");
// DbContextOptionsBuilder kullanarak bağlantıyı belirtin
DbContextOptionsBuilder<BaseDbContext> dbContextOptionsBuilder = new DbContextOptionsBuilder<BaseDbContext>();
dbContextOptionsBuilder.UseSqlServer(connection);
// BaseDbContext örneğini oluşturun ve bağlantıyı geçirin
return new BaseDbContext(dbContextOptionsBuilder.Options);
}
}
Öncelikle emeğinize sağlık bana faydası dokunuyor.
Projeyi geliştiriyorsunuz bu da çok güzel bir şey ancak son geliştirmeler ile ilgili şöyle bir problemim var; önceden core paketleri de proje içinde olduğu için üzerinde oynamalar yaparak kendimize göre değiştirebiliyorduk ancak şu an nuget paketi olarak yayımlandığı için bu esneklik kaybolmuş görünüyor. önceki şekilde olması bence daha sağlıklı olacaktır. iyi günler dilerim.
How can I use contains operator of dynamic case-insensitive
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.