Skip to content

.NET core web application template with pre-builds, Use this template and deep dive into your product requirement rather then initial setup's.

Notifications You must be signed in to change notification settings

BirajMainali/dotnet-web-template

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

.NET Core Web App Template

Pre-build's

  • Generic Repository, Just inject IRepository to get started.
    IRepository<AppUser, long> userRepository
  • Register your services into Dependencies with marks
    public interface IUserValidator : IScopedDependency // We have other too.
    {
       Task EnsureUniqueUserEmail(string email, long? id = null);
    }
  • Add your database Entity
    public class AppUser : FullAuditedEntity<long>
    {
     // props.
    }
  • Unit Of work
    public class UserService(IUserValidator userValidator, IUow uow) : IUserService
    { 
    public async Task<AppUser> CreateUser(UserDto dto)
    {
        using var tsc = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled);
        var user = new AppUser();
        await uow.CreateAsync(user);
        await uow.CommitAsync();
        tsc.Complete();
        return user;
    }
  • Nepali Date, Importantly mentioned implementation show nepali but send English date request.
       <multi-date-span value="Datetime.Now()"/> // display nepali date.
       <vc:date-input-vc name="To" value="@Model.Date"/> // nepali date input
  • To current user information, We have ICurrentUserProvider
        public interface ICurrentUserProvider
        {
            bool IsLoggedIn();
            Task<AppUser> GetCurrentUser();
            long? GetCurrentUserId();
            string GetCurrentConnectionKey();
        }
  • Multi-tenant Configuration appsetting.json. Physical separation is been used.
     "UseMultiTenancy": true,  you can control tenant from here.
  • App-setting configurations
        IOptions<AppSettings> options
  • Use Serilog
     ILogger<IMultiTenantHandler> logger
     Log.Error(e, "Error while getting tenant"); 
  • Resolve http response
     [Route("WhatIsMyTenant")]
     public IActionResult WhatIsMyTenant()
     {
         try
         {
             var connectionKey = _currentUserProvider.GetCurrentConnectionKey();
             return this.SendSuccess("Success", connectionKey); // here
         }
         catch (Exception e)
         {
             Log.Error(e, "Error while getting tenant");
             return this.SendError(e.Message); // here
         }
     }

Others

  • Swagger /Swagger
  • Logs ./Logs
  • Use of custom authentication including jwt and cookie.
  • Physical content can saved outside application scope.
  • Explore FileHelper to work with physical file.
  • Check IDatabaseConnectionProvider to create new dapper connection.
  • Used tabler theme

About

.NET core web application template with pre-builds, Use this template and deep dive into your product requirement rather then initial setup's.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy