diff --git a/Marco.Pms.Model/Dtos/Tenant/CreateTenantDto.cs b/Marco.Pms.Model/Dtos/Tenant/CreateTenantDto.cs new file mode 100644 index 0000000..9e990d8 --- /dev/null +++ b/Marco.Pms.Model/Dtos/Tenant/CreateTenantDto.cs @@ -0,0 +1,29 @@ +using System.ComponentModel.DataAnnotations; + +namespace Marco.Pms.Model.Dtos.Tenant +{ + public class CreateTenantDto + { + //[Required] + //public string Username { get; set; } + + [Required] + [EmailAddress] + public string Email { get; set; } + + [Required] + [MinLength(6)] + [RegularExpression(@"^(?=.*[^a-zA-Z0-9])(?=.*\d)(?=.*[A-Z]).+$", ErrorMessage = "Passwords must have at least one non-alphanumeric character, at least one digit ('0'-'9'), and at least one uppercase ('A'-'Z').")] + public string Password { get; set; } + + + public string OrganizatioinName { get; set; } + public string? About { get; set; } + public string? OragnizationSize { get; set; } + public int IndustryId { get; set; } + public string Website { get; set; } + public string Name { get; set; } + public string ContactNumber { get; set; } + public DateTime OnBoardingDate { get; set; } + } +} diff --git a/Marco.Pms.Model/Entitlements/ApplicationRole.cs b/Marco.Pms.Model/Entitlements/ApplicationRole.cs index 512e99b..b972f66 100644 --- a/Marco.Pms.Model/Entitlements/ApplicationRole.cs +++ b/Marco.Pms.Model/Entitlements/ApplicationRole.cs @@ -1,8 +1,4 @@ -using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; -using System.ComponentModel; -using System.ComponentModel.DataAnnotations.Schema; - -namespace Marco.Pms.Model.Entitlements +namespace Marco.Pms.Model.Entitlements { public class ApplicationRole { diff --git a/Marco.Pms.Model/Entitlements/ApplicationUser.cs b/Marco.Pms.Model/Entitlements/ApplicationUser.cs index ef7770a..0906436 100644 --- a/Marco.Pms.Model/Entitlements/ApplicationUser.cs +++ b/Marco.Pms.Model/Entitlements/ApplicationUser.cs @@ -1,16 +1,12 @@ -using Microsoft.AspNetCore.Identity; -using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; -using Microsoft.Extensions.Logging; -using System.ComponentModel; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel; +using Microsoft.AspNetCore.Identity; namespace Marco.Pms.Model.Entitlements { public class ApplicationUser : IdentityUser { - [Required] - public string Role { get; set; } // e.g. Admin, SiteManager, SkilledWorker, etc. + //[Required] + // public string Role { get; set; } // e.g. Admin, SiteManager, SkilledWorker, etc. [DisplayName("TenantId")] diff --git a/Marco.Pms.Model/Entitlements/Client.cs b/Marco.Pms.Model/Entitlements/Client.cs index 1ce97dd..4494e63 100644 --- a/Marco.Pms.Model/Entitlements/Client.cs +++ b/Marco.Pms.Model/Entitlements/Client.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Marco.Pms.Model.Entitlements +namespace Marco.Pms.Model.Entitlements { public class Tenant { @@ -14,6 +8,9 @@ namespace Marco.Pms.Model.Entitlements public string DomainName { get; set; } public string ContactName { get; set; } public string ContactNumber { get; set; } + + //public string? OragnizationSize { get; set; } + //public int IndustryId { get; set; } public DateTime OnBoardingDate { get; set; } } } diff --git a/Marco.Pms.Model/Entitlements/FeaturePermission.cs b/Marco.Pms.Model/Entitlements/FeaturePermission.cs index 830807a..f7f33c7 100644 --- a/Marco.Pms.Model/Entitlements/FeaturePermission.cs +++ b/Marco.Pms.Model/Entitlements/FeaturePermission.cs @@ -1,12 +1,5 @@ -using Marco.Pms.Model.Projects; +using System.ComponentModel.DataAnnotations.Schema; using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; -using System; -using System.Collections.Generic; -using System.ComponentModel.DataAnnotations.Schema; -using System.Data; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace Marco.Pms.Model.Entitlements { diff --git a/Marco.Pms.Model/Entitlements/JobRole.cs b/Marco.Pms.Model/Entitlements/JobRole.cs index 3557525..d89f317 100644 --- a/Marco.Pms.Model/Entitlements/JobRole.cs +++ b/Marco.Pms.Model/Entitlements/JobRole.cs @@ -1,5 +1,5 @@ -using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; -using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations.Schema; +using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; namespace Marco.Pms.Model.Entitlements { diff --git a/Marco.Pms.Model/Mapper/TenantMapper.cs b/Marco.Pms.Model/Mapper/TenantMapper.cs new file mode 100644 index 0000000..9198ebc --- /dev/null +++ b/Marco.Pms.Model/Mapper/TenantMapper.cs @@ -0,0 +1,37 @@ +using Marco.Pms.Model.Dtos.Tenant; +using Marco.Pms.Model.Entitlements; +using Marco.Pms.Model.ViewModels.Tenant; + +namespace Marco.Pms.Model.Mapper +{ + public static class TenantMapper + { + public static Tenant CreateDtoToTenant(this CreateTenantDto createTenant) + { + return new Tenant + { + Name = createTenant.OrganizatioinName, + Description = createTenant.About, + DomainName = createTenant.Website, + ContactName = createTenant.Name, + //OragnizationSize = OragnizationSize, + //IndustryId = IndustryId, + ContactNumber = createTenant.ContactNumber, + OnBoardingDate = createTenant.OnBoardingDate, + }; + } + public static TenantVM ToTenantVMFromTenant(this Tenant tenant) + { + return new TenantVM + { + OrganizationName = tenant.Name, + About = tenant.Description, + Website = tenant.DomainName, + Name = tenant.ContactName, + //OragnizationSize = OragnizationSize, + ContactNumber = tenant.ContactNumber, + OnBoardingDate = tenant.OnBoardingDate, + }; + } + } +} diff --git a/Marco.Pms.Model/Utilities/RolesConfiguration.cs b/Marco.Pms.Model/Utilities/RolesConfiguration.cs new file mode 100644 index 0000000..4eb9b1f --- /dev/null +++ b/Marco.Pms.Model/Utilities/RolesConfiguration.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Marco.Pms.Model.Utilities +{ + public class RoleConfiguration + { + public string JobRoleName { get; set; } + public string JobRoleDescription { get; set; } + public string RoleName { get; set; } + public string RoleDescription { get; set; } + } +} diff --git a/Marco.Pms.Model/ViewModels/Tenant/TenantVM.cs b/Marco.Pms.Model/ViewModels/Tenant/TenantVM.cs new file mode 100644 index 0000000..36b6066 --- /dev/null +++ b/Marco.Pms.Model/ViewModels/Tenant/TenantVM.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Marco.Pms.Model.ViewModels.Tenant +{ + public class TenantVM + { + public string OrganizationName { get; set; } + public string About { get; set; } + public string Website { get; set; } + public string Name { get; set; } + public string ContactNumber { get; set; } + + //public string? OragnizationSize { get; set; } + //public int IndustryId { get; set; } + public DateTime OnBoardingDate { get; set; } + } +} diff --git a/Marco.Pms.Services/Controllers/AttendanceController.cs b/Marco.Pms.Services/Controllers/AttendanceController.cs index 37b3471..128af7e 100644 --- a/Marco.Pms.Services/Controllers/AttendanceController.cs +++ b/Marco.Pms.Services/Controllers/AttendanceController.cs @@ -217,7 +217,10 @@ namespace MarcoBMS.Services.Controllers try { Attendance attendance = await _context.Attendes.FirstOrDefaultAsync(a => a.EmployeeID == recordAttendanceDot.EmployeeID && - a.AttendanceDate.Date == recordAttendanceDot.Date.Date && a.TenantId == TenantId); ; + a.AttendanceDate.Date == recordAttendanceDot.Date.Date && a.TenantId == TenantId); + + DateTime finalDateTime = GetDateFromTimeStamp(recordAttendanceDot, recordAttendanceDot.MarkTime); + if (attendance != null) @@ -236,13 +239,13 @@ namespace MarcoBMS.Services.Controllers //string timeString = "10:30 PM"; // Format: "hh:mm tt" - DateTime finalDateTime = GetDateFromTimeStamp(recordAttendanceDot, recordAttendanceDot.MarkTime); + //DateTime finalDateTime = GetDateFromTimeStamp(recordAttendanceDot, recordAttendanceDot.MarkTime); attendance.OutTime = finalDateTime; } else if (recordAttendanceDot.Action == ATTENDANCE_MARK_TYPE.REQUEST_REGULARIZE) { - DateTime finalDateTime = GetDateFromTimeStamp(recordAttendanceDot, recordAttendanceDot.MarkTime); + //DateTime finalDateTime = GetDateFromTimeStamp(recordAttendanceDot, recordAttendanceDot.MarkTime); attendance.OutTime = finalDateTime; attendance.Activity = ATTENDANCE_MARK_TYPE.REQUEST_REGULARIZE; @@ -277,7 +280,7 @@ namespace MarcoBMS.Services.Controllers attendance.Date = DateTime.UtcNow; - DateTime finalDateTime = GetDateFromTimeStamp(recordAttendanceDot, recordAttendanceDot.MarkTime); + //DateTime finalDateTime = GetDateFromTimeStamp(recordAttendanceDot, recordAttendanceDot.MarkTime); attendance.InTime = finalDateTime; attendance.OutTime = null; @@ -295,7 +298,8 @@ namespace MarcoBMS.Services.Controllers AttendanceId = attendance.Id, // Use existing or new AttendanceId Activity = attendance.Activity, - ActivityTime = recordAttendanceDot.Date, + ActivityTime = finalDateTime, + //ActivityTime = recordAttendanceDot.Date, Comment = recordAttendanceDot.Comment, EmployeeID = recordAttendanceDot.EmployeeID, Latitude = recordAttendanceDot.Latitude, @@ -303,7 +307,8 @@ namespace MarcoBMS.Services.Controllers TenantId = TenantId, UpdatedBy = GetUserId(), - UpdatedOn = DateTime.UtcNow + UpdatedOn = recordAttendanceDot.Date + //UpdatedOn = DateTime.UtcNow }; //if (recordAttendanceDot.Image != null && recordAttendanceDot.Image.Count > 0) //{ diff --git a/Marco.Pms.Services/Controllers/AuthController.cs b/Marco.Pms.Services/Controllers/AuthController.cs index 2259142..f31ba55 100644 --- a/Marco.Pms.Services/Controllers/AuthController.cs +++ b/Marco.Pms.Services/Controllers/AuthController.cs @@ -1,18 +1,15 @@ -using Marco.Pms.Model.Authentication; +using System.Net; +using Marco.Pms.Model.Authentication; using Marco.Pms.Model.Dtos; using Marco.Pms.Model.Dtos.Util; using Marco.Pms.Model.Employees; using Marco.Pms.Model.Entitlements; using Marco.Pms.Model.Utilities; -using Marco.Pms.Model.ViewModels.Employee; using MarcoBMS.Services.Helpers; using MarcoBMS.Services.Service; -using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Identity; -using Microsoft.AspNetCore.Identity.Data; using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; -using System.Net; namespace MarcoBMS.Services.Controllers { diff --git a/Marco.Pms.Services/Controllers/TenantController.cs b/Marco.Pms.Services/Controllers/TenantController.cs new file mode 100644 index 0000000..dd0dccc --- /dev/null +++ b/Marco.Pms.Services/Controllers/TenantController.cs @@ -0,0 +1,173 @@ +using System.Text.Json; +using Marco.Pms.DataAccess.Data; +using Marco.Pms.Model.Dtos.Tenant; +using Marco.Pms.Model.Employees; +using Marco.Pms.Model.Entitlements; +using Marco.Pms.Model.Mapper; +using Marco.Pms.Model.Utilities; +using Marco.Pms.Model.ViewModels.Tenant; +using MarcoBMS.Services.Service; +using Microsoft.AspNetCore.Identity; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; + +namespace Marco.Pms.Services.Controllers +{ + [Route("api/[controller]")] + [ApiController] + public class TenantController : ControllerBase + { + private readonly string jsonString = System.IO.File.ReadAllText("Data/RolesCofiguration.json"); + private readonly ApplicationDbContext _context; + private readonly UserManager _userManager; + private readonly ILoggingService _logger; + public TenantController(ApplicationDbContext context,UserManager userManager, ILoggingService logger) + { + _context = context; + _userManager = userManager; + _logger = logger; + } + [HttpPost] + public async Task CreateTenant([FromForm] CreateTenantDto createTenantDto) + { + if (!ModelState.IsValid) + { + return BadRequest(ModelState); + } + + if (await _userManager.FindByEmailAsync(createTenantDto.Email) != null && await _context.Tenants.FirstOrDefaultAsync(t => t.Name == createTenantDto.OrganizatioinName) != null) + { + return BadRequest("Tenant Already Exists"); + } + + Tenant newTenant = createTenantDto.CreateDtoToTenant(); + _context.Tenants.Add(newTenant); + await _context.SaveChangesAsync(); + + //Tenant? tenant = await _context.Tenants.FirstOrDefaultAsync(t => t.Name == newTenant.Name); + + if (newTenant != null) + { + RoleConfiguration settings = JsonSerializer.Deserialize(jsonString); + var TenantId = newTenant.Id; + JobRole jobRole = new JobRole + { + Name = settings.JobRoleName, + Description = settings.JobRoleDescription, + TenantId = TenantId + }; + + ApplicationRole role = new ApplicationRole + { + Role = settings.RoleName, + Description = settings.RoleDescription, + TenantId = TenantId + }; + + _context.JobRoles.Add(jobRole); + _context.ApplicationRoles.Add(role); + await _context.SaveChangesAsync(); + + + List permissions = await _context.FeaturePermissions.AsNoTracking().ToListAsync(); + List rolePermissionMappings = new List(); + + foreach (var permission in permissions) + { + var item = new RolePermissionMappings() { ApplicationRoleId = role.Id, FeaturePermissionId = permission.Id }; + bool assigned = _context.RolePermissionMappings.Any(c => c.ApplicationRoleId == role.Id && c.FeaturePermissionId == permission.Id); + if (permission.IsEnabled && !assigned) + rolePermissionMappings.Add(item); + + } + _context.RolePermissionMappings.AddRange(rolePermissionMappings); + await _context.SaveChangesAsync(); + + var user = new ApplicationUser + { + UserName = createTenantDto.Email, + Email = createTenantDto.Email, + TenantId = TenantId, + IsRootUser = true, + EmailConfirmed = true + }; + + var result = await _userManager.CreateAsync(user, createTenantDto.Password); + if (result.Succeeded) + { + Employee newEmployee = CreateTenantDtoToEmployee(createTenantDto, TenantId, user.Id,jobRole.Id); + _context.Employees.Add(newEmployee); + await _context.SaveChangesAsync(); + + var employeeRoleMapping = new EmployeeRoleMapping + { + EmployeeId = newEmployee.Id, + RoleId = role.Id, + TenantId = TenantId, + IsEnabled = true + }; + _context.EmployeeRoleMappings.Add(employeeRoleMapping); + await _context.SaveChangesAsync(); + return Ok(ApiResponse.SuccessResponse(result.Succeeded, "Tenant created successfully.", 200)); + } + else + { + // Log the errors for debugging + foreach (var error in result.Errors) + { + // Log error.Description + _logger.LogError("{Error}",error.Description); + } + return BadRequest("Failed to create the root user."); + } + } + return BadRequest("Falied to create Tenant"); + + } + + [HttpGet("profile/{tenantId}")] + public async Task GetTenantProfile(int tenantId) + { + if (tenantId <= 0) + { + return BadRequest("Tenant Id is required and must be greater than zero."); + } + var tenant = await _context.Tenants.FirstOrDefaultAsync(t => t.Id == tenantId); + if (tenant == null) + { + return NotFound("Tenant Not Found"); + } + TenantVM tenantVM = tenant.ToTenantVMFromTenant(); + return Ok(ApiResponse.SuccessResponse(tenantVM, "Tenant Profile.", 200)); + } + + private static Employee CreateTenantDtoToEmployee(CreateTenantDto model, int TenantId, string? ApplicationUserId,int jobRoleId) + { + return new Employee + { + ApplicationUserId = ApplicationUserId, + FirstName = model.Name, + LastName = "", + Email = model.Email, + TenantId = TenantId, + CurrentAddress = "", + BirthDate = DateTime.UtcNow, + EmergencyPhoneNumber = "", + EmergencyContactPerson = "", + AadharNumber = "", + Gender = "", + MiddleName = "", + PanNumber = "", + PeramnentAddress = "", + PhoneNumber = "", + Photo = null, // GetFileDetails(model.Photo).Result.FileData, + JobRoleId = jobRoleId, + JoiningDate = DateTime.UtcNow, + + }; + } + + + } + +} diff --git a/Marco.Pms.Services/Data/RolesCofiguration.json b/Marco.Pms.Services/Data/RolesCofiguration.json new file mode 100644 index 0000000..aa9034e --- /dev/null +++ b/Marco.Pms.Services/Data/RolesCofiguration.json @@ -0,0 +1,6 @@ +{ + "JobRoleName": "Admin", + "JobRoleDescription": "Admin", + "RoleName": "SuperUser", + "RoleDescription": "SuperUser" +} \ No newline at end of file diff --git a/Marco.Pms.Services/Helpers/UserHelper.cs b/Marco.Pms.Services/Helpers/UserHelper.cs index 4f1d42f..cc6bcc4 100644 --- a/Marco.Pms.Services/Helpers/UserHelper.cs +++ b/Marco.Pms.Services/Helpers/UserHelper.cs @@ -1,7 +1,5 @@ -using Marco.Pms.Model.Dtos.Employees; -using Marco.Pms.Model.Entitlements; +using System.Security.Claims; using Microsoft.AspNetCore.Identity; -using System.Security.Claims; namespace MarcoBMS.Services.Helpers { @@ -29,6 +27,7 @@ namespace MarcoBMS.Services.Helpers if (string.IsNullOrEmpty(userId)) return null; var user = await _userManager.FindByEmailAsync(userId); + //var user = await _userManager.FindByNameAsync(userId); // For fetching user using username return user; //await _userManager.FindByIdAsync(userId); } diff --git a/Marco.Pms.Services/Middleware/LoggingMiddleware.cs b/Marco.Pms.Services/Middleware/LoggingMiddleware.cs index 28535b2..cca31af 100644 --- a/Marco.Pms.Services/Middleware/LoggingMiddleware.cs +++ b/Marco.Pms.Services/Middleware/LoggingMiddleware.cs @@ -29,7 +29,7 @@ namespace MarcoBMS.Services.Middleware using (LogContext.PushProperty("TenantId", tenantId)) - using (LogContext.PushProperty("TraceId", context.TraceIdentifier)) + //using (LogContext.PushProperty("TraceId", context.TraceIdentifier)) using (LogContext.PushProperty("UserAgent", request.Headers["User-Agent"].ToString())) using (LogContext.PushProperty("HttpMethod", request.Method)) using (LogContext.PushProperty("Timestamp", DateTime.UtcNow)) @@ -44,7 +44,7 @@ namespace MarcoBMS.Services.Middleware using (LogContext.PushProperty("StatusCode", response.StatusCode.ToString())) using (LogContext.PushProperty("ResponseTimeMs", stopwatch.ElapsedMilliseconds)) using (LogContext.PushProperty("LogLevel", "Information")) - _logger.LogInformation("HTTP {method} {path} responded {statusCode} in {timeTaken} ms", request.Method,request.Path, response.StatusCode.ToString(),stopwatch.ElapsedMilliseconds); + _logger.LogInformation("HTTP {HttpMethod} {RequestPath} responded {statusCode} in {ResponseTimeMs} ms", request.Method,request.Path, response.StatusCode.ToString(),stopwatch.ElapsedMilliseconds); } catch (Exception ex) { @@ -53,7 +53,7 @@ namespace MarcoBMS.Services.Middleware using (LogContext.PushProperty("StatusCode", "500")) using (LogContext.PushProperty("ResponseTimeMs", stopwatch.ElapsedMilliseconds)) using (LogContext.PushProperty("LogLevel", "Error")) - _logger.LogError("API Error{error}", ex.Message); + _logger.LogError("API Error: {Error}", ex.Message); throw; } } diff --git a/Marco.Pms.Services/Program.cs b/Marco.Pms.Services/Program.cs index dda2b5f..a1a7162 100644 --- a/Marco.Pms.Services/Program.cs +++ b/Marco.Pms.Services/Program.cs @@ -12,6 +12,7 @@ using Microsoft.OpenApi.Models; using Serilog; using System.Text; +Serilog.Debugging.SelfLog.Enable(Console.Error); var builder = WebApplication.CreateBuilder(args); @@ -166,9 +167,13 @@ app.UseCors("Policy"); app.UseStaticFiles(); // Enables serving static files +<<<<<<< HEAD //app.UseSerilogRequestLogging(); // This is Default Serilog Logging Middleware we are not using this because we're using custom logging middleware +======= +//app.UseSerilogRequestLogging(); // Log HTTP requests +>>>>>>> a4156153ff6618675abf0590395745816019a973 app.UseHttpsRedirection(); app.UseMiddleware(); app.UseMiddleware(); diff --git a/Marco.Pms.Services/Service/ILoggingService.cs b/Marco.Pms.Services/Service/ILoggingService.cs index 744ab19..39dbb00 100644 --- a/Marco.Pms.Services/Service/ILoggingService.cs +++ b/Marco.Pms.Services/Service/ILoggingService.cs @@ -6,7 +6,7 @@ namespace MarcoBMS.Services.Service { void LogInfo(string? message, params object[]? args); void LogWarning(string? message, params object[]? args); - void LogError(Exception? ex, string? message, params object[]? args); + void LogError(string? message, params object[]? args); } } diff --git a/Marco.Pms.Services/Service/LoggingServices.cs b/Marco.Pms.Services/Service/LoggingServices.cs index aec6257..10fc5ab 100644 --- a/Marco.Pms.Services/Service/LoggingServices.cs +++ b/Marco.Pms.Services/Service/LoggingServices.cs @@ -11,9 +11,8 @@ namespace MarcoBMS.Services.Service _logger = logger; } - public void LogError(Exception? ex, string? message, params object[]? args) + public void LogError(string? message, params object[]? args) { - using (LogContext.PushProperty("Error", ex)) using (LogContext.PushProperty("LogLevel", "Error")) _logger.LogError(message, args); } diff --git a/Marco.Pms.Services/Service/RefreshTokenService.cs b/Marco.Pms.Services/Service/RefreshTokenService.cs index 9909283..b8240e1 100644 --- a/Marco.Pms.Services/Service/RefreshTokenService.cs +++ b/Marco.Pms.Services/Service/RefreshTokenService.cs @@ -1,16 +1,11 @@ -using Marco.Pms.DataAccess.Data; +using System.IdentityModel.Tokens.Jwt; +using System.Security.Claims; +using System.Text; +using Marco.Pms.DataAccess.Data; using Marco.Pms.Model.Authentication; -using Marco.Pms.Model.Entitlements; -using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Caching.Memory; using Microsoft.IdentityModel.Tokens; -using Newtonsoft.Json.Linq; -using SharpCompress.Common; -using System.IdentityModel.Tokens.Jwt; -using System.Security.Claims; -using System.Security.Cryptography; -using System.Text; namespace MarcoBMS.Services.Service diff --git a/Marco.Pms.Services/appsettings.json b/Marco.Pms.Services/appsettings.json index bb0e7e5..dd7e402 100644 --- a/Marco.Pms.Services/appsettings.json +++ b/Marco.Pms.Services/appsettings.json @@ -21,16 +21,16 @@ "configure": [ { "Name": "MongoDB", - "Args": { - "databaseUrl": "mongodb://localhost:27017/DotNetLogs", - //"databaseUrl": "mongodb://devuser:xxxxx@147.93.98.152:27017/MarcoPMS?authSource=admin", - "collectionName": "application_logs", - "batchPostingLimit": 50, - "cappedMaxSizeMb": "1024", - "cappedMaxDocuments": "1000", - "rollingInterval": "Day" - //"outputTemplate": "[{Timestamp:yyyy/MM/dd HH:mm} {Level:u3}] {SourceContext}:{NewLine} {Message:lj}{Exception}{NewLine}" - } + "Args": { + "databaseUrl": "mongodb+srv://ashutoshnehete:OL1Cy0pTQaGn4hcP@marcopms.m32uppx.mongodb.net/MarcoPMS?retryWrites=true&w=majority", + //"databaseUrl": "mongodb://devuser:xxxxx@147.93.98.152:27017/MarcoPMS?authSource=admin", + "collectionName": "application_logs", + "batchPostingLimit": 50, + "cappedMaxSizeMb": "1024", + "cappedMaxDocuments": "1000", + "rollingInterval": "Day" + //"outputTemplate": "[{Timestamp:yyyy/MM/dd HH:mm} {Level:u3}] {SourceContext}:{NewLine} {Message:lj}{Exception}{NewLine}" + } }, { "Name": "File", @@ -64,8 +64,13 @@ "ConnectionStrings": { // "DefaultConnectionString": "Server=103.50.160.45;User ID=marcowvh_admin;Password=Marcoemp@123;Database=marcowvh_empattendanceci", +<<<<<<< HEAD //"DefaultConnectionString": "Server=localhost;port=3333;User ID=root;Password=root;Database=MarcoBMS1", "DefaultConnectionString": "Server=147.93.98.152;User ID=devuser;Password=AppUser@123$;Database=MarcoBMS1" +======= + "DefaultConnectionString": "Server=localhost;port=3333;User ID=root;Password=root;Database=MarcoBMS1", + //"DefaultConnectionString": "Server=147.93.98.152;User ID=devuser;Password=AppUser@123$;Database=MarcoBMS1" +>>>>>>> a4156153ff6618675abf0590395745816019a973 }, "AppSettings": { "WebFrontendUrl": "http://localhost:5173",