Compare commits

..

No commits in common. "main" and "staging" have entirely different histories.

21 changed files with 50 additions and 142 deletions

2
.gitignore vendored
View File

@ -88,7 +88,7 @@ desktop.ini
.dotnet-tools/
# Secrets and config files
# appsettings.*.json
appsettings.*.json
secrets.json
*.key
*.pem

View File

@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<AssemblyVersion>1.0.0.1</AssemblyVersion>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<Authors>Preetisagar Parida, Kishor Tripathy</Authors>
<Company>Odiware Technologies</Company>
<Product>OnlineAssessment Web API</Product>

View File

@ -98,17 +98,6 @@ namespace OnlineAssessment.Controllers
return Ok(new { isSucess = result });
}
[Route("uploadQuestionImage")]
[HttpPost]
[Authorize(Roles = "Admin,Teacher")]
public async Task<IActionResult> UploadQuestionImageAsync(int practice_id, IFormFile file)
{
int institute_id = int.Parse(Security.GetValueFromToken("InstituteId", HttpContext.User.Identity as ClaimsIdentity));
int user_id = Security.GetIdFromJwtToken(UserClaim.UserId, HttpContext.User.Identity as ClaimsIdentity);
var result = await _AWSS3FileService.UploadQuestionImage(institute_id, file);
return Ok(new { isSucess = result });
}
[Route("filesList")]
[HttpGet]
[Authorize(Roles = "Admin,Teacher")]

View File

@ -11,7 +11,7 @@ namespace OnlineAssessment.Helpers
{
public interface IAWSS3BucketHelper
{
Task<string> UploadFile(System.IO.Stream inputStream, string fileName);
Task<bool> UploadFile(System.IO.Stream inputStream, string fileName);
Task<bool> UploadFileWithMeta(System.IO.Stream inputStream, string fileName, string meta);
Task<ListVersionsResponse> FilesList();
Task<Stream> GetFile(string key);
@ -27,7 +27,7 @@ namespace OnlineAssessment.Helpers
this._amazonS3 = s3Client;
this._settings = settings.Value;
}
public async Task<string> UploadFile(System.IO.Stream inputStream, string fileName)
public async Task<bool> UploadFile(System.IO.Stream inputStream, string fileName)
{
try
{
@ -39,9 +39,9 @@ namespace OnlineAssessment.Helpers
};
PutObjectResponse response = await _amazonS3.PutObjectAsync(request);
if (response.HttpStatusCode == System.Net.HttpStatusCode.OK)
return $"https://{_settings.AWSS3.BucketName}.s3.{_settings.AWSS3.Region}.amazonaws.com/{fileName}";
return true;
else
return null;
return false;
}
catch (Exception ex)
{

View File

@ -12,16 +12,15 @@ namespace OnlineAssessment.Services
{
public interface IAWSS3FileService
{
Task<string> UploadFile(string uploadFileName);
Task<bool> UploadFile(string uploadFileName);
//Task<bool> UploadProfileImage(int institute_id, int user_id, string uploadFileName);
Task<Object> UploadProfileImage(int institute_id, int user_id, IFormFile file);
Task<Object> UploadExamImage(int institute_id, int user_id, int exam_id, IFormFile file);
Task<Object> UploadPracticeImage(int institute_id, int user_id, int practice_id, IFormFile file);
Task<Object> UploadQuestionImage(int institute_id, IFormFile file);
Task<List<FilePathWithMeta>> FilesList();
Task<Stream> GetFile(int institute_id, int user_id, string folder, string key);
Task<string> UpdateFile(UploadFileName uploadFileName, string key);
Task<bool> UpdateFile(UploadFileName uploadFileName, string key);
Task<bool> DeleteFile(string key);
Task<bool> DeleteProfileImage(int institute_id, int user_id);
}
@ -33,7 +32,7 @@ namespace OnlineAssessment.Services
{
this._AWSS3BucketHelper = AWSS3BucketHelper;
}
public async Task<string> UploadFile(string uploadFileName)
public async Task<bool> UploadFile(string uploadFileName)
{
try
{
@ -77,7 +76,7 @@ namespace OnlineAssessment.Services
{
try
{
IList<string> AllowedFileExtensions = new List<string> { ".png", ".jpg", ".jpeg" };
IList<string> AllowedFileExtensions = new List<string> { ".png", ".jpg" };
string fileExtension = Path.GetExtension(file.FileName.ToString()).ToLower();
if (!AllowedFileExtensions.Contains(fileExtension))
{
@ -101,16 +100,15 @@ namespace OnlineAssessment.Services
{
try
{
IList<string> AllowedFileExtensions = new List<string> { ".png", ".jpg", ".jpeg" };
IList<string> AllowedFileExtensions = new List<string> { ".png" };
string fileExtension = Path.GetExtension(file.FileName.ToString()).ToLower();
if (!AllowedFileExtensions.Contains(fileExtension))
{
var message = string.Format("Please Upload image of type .png., jpg, jpeg");
var message = string.Format("Please Upload image of type .png.");
return message;
}
string fileName = string.Empty;
string folder = "/exams/";
fileExtension = ".png";
fileName = $"{institute_id.ToString()}{folder}{exam_id.ToString()}{fileExtension}";
return await _AWSS3BucketHelper.UploadFile(file.OpenReadStream(), fileName);
}
@ -124,7 +122,7 @@ namespace OnlineAssessment.Services
{
try
{
IList<string> AllowedFileExtensions = new List<string> { ".png", ".jpg", ".jpeg" };
IList<string> AllowedFileExtensions = new List<string> { ".png" };
string fileExtension = Path.GetExtension(file.FileName.ToString()).ToLower();
if (!AllowedFileExtensions.Contains(fileExtension))
{
@ -133,7 +131,6 @@ namespace OnlineAssessment.Services
}
string fileName = string.Empty;
string folder = "/practices/";
fileExtension = ".png";
fileName = $"{institute_id.ToString()}{folder}{practice_id.ToString()}{fileExtension}";
return await _AWSS3BucketHelper.UploadFile(file.OpenReadStream(), fileName);
}
@ -143,36 +140,6 @@ namespace OnlineAssessment.Services
}
}
public async Task<Object> UploadQuestionImage(int institute_id, IFormFile file)
{
try
{
// Allowed file types
IList<string> AllowedFileExtensions = new List<string> { ".png", ".jpg", ".jpeg" };
string fileExtension = Path.GetExtension(file.FileName).ToLower();
if (!AllowedFileExtensions.Contains(fileExtension))
{
throw new Exception("Please upload an image of type .png, .jpg, or .jpeg");
}
string folder = "/questions/";
fileExtension = ".png";
// Create a unique file name (so older uploads don't get overwritten)
string uniqueFileName = $"{institute_id}/{folder}/{Guid.NewGuid()}{fileExtension}";
// Upload file to S3
return await _AWSS3BucketHelper.UploadFile(file.OpenReadStream(), uniqueFileName);
}
catch (Exception ex)
{
throw new Exception($"Image upload failed: {ex.Message}");
}
}
public async Task<List<FilePathWithMeta>> FilesList()
{
try
@ -235,7 +202,7 @@ namespace OnlineAssessment.Services
throw ex;
}
}
public async Task<string> UpdateFile(UploadFileName uploadFileName, string key)
public async Task<bool> UpdateFile(UploadFileName uploadFileName, string key)
{
try
{

View File

@ -8,11 +8,10 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "BTG3gPH/5QU/Ziaw9qfFcCR7n1uQ58BpJeY2enHpagQNiaQohW6//faJRPLyjzLzsufkT3kcnHv7+P6DKFrnahIHTFJAhmPTRfVppxEotvCAmd6bHfq7IT9UhGEAzJkEldkpRe780FaHNfmer6pIGhS9P15G2ZrP99vd3Pxu/nUyBcoKTbo40I7lKUQJ4gRUZbWjjD/bjwMFs9ouKC7CDQ=="
//Staging Connection String
//"DefaultConnectionString": "3O5IBcQilkuCpSiL2/78srPWCHpYVGryBrDmdDH7ymmzevrvLYfgEbsScCZKknceXynyLeTn/5v0PJ4ddIyj6xF/wS+l7ElwqwaaGlpVEFNG4RetA1YQ/dKg92Y9czBU9QeEkT7DVwsBpb4LX+3X0uOd0VlQYhIQ1bmF0YNmlubv3O0k8c4UFM8sVzPexSIx8JuqhjWgfDw5sAgyKqvg/Q=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU="
//"DefaultConnectionString": "yV213mRnQngKYPWcDvOoPbSopWdQ0VutXa7+S2RRjoI4G3nsjIF0PYPmwJffxL1WCdb+20HrHyf1t+DCMnGtzz6WWiwQ0oHWB26iCqTKLgQi53fmcRWMJsZkkxh4u8zKueZuEi6c/Er2MrTF4lwdqFkQmA3Wi/FzJAsifsqVer717EJkhhnz+h0pC4bQkX7P+y2TmirFPhJNWLb/uFFc5XIuKMYvuggyIOQoo84mLnX4s0Nn+FbzzmkLgVO1+dnrJAgWVJoiHcEvbdcQkfNw4LlvJ4qHS7oiBo2erYpo2USX4EwaBHnYA4xginfbudlv"
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",

View File

@ -8,11 +8,8 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "wB5dpl3FEA6ZAZOKD3hmWgcwfHESYidkz0oW18Dund4RTe6vT9K1J+zZDUHdzJ8wagNAz/ZVQB6oKhRqa3fqNHtUEf0jAHTCHvSO5Z07gYu9sE02tGerCvZydVR5f/AmwMNa34wHBEA1ASXgo38i+u0Y7iq3LUM/OJI/oevkYec5f6TzJmqPdrEOKRkwsWgDbXos96cVqEliCAt2BVpR8g=="
//Staging Connection String
//"DefaultConnectionString": "7D8cq/bCLiMdJBw4FlTpea3Px4UJryffPEqWW88xDv1O/+zyh60HU73a39dR3fjQq0XLZq4QNchqsX++Anqj+upqfqYpEwb+omIWLOQ/qt21Ms9yUYjS+3xA8ixtr6c3RBzbJxLr9oRrvnXhmCi1jOnoJAS5UaNC4ObKtK2nSa193lLyh8d95hSlSZOqcde2UKLDMVN85V9BDElPzhiX8A=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU="
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",
@ -29,4 +26,3 @@
"ProfilesLocation": "awss3credentials"
}
}

View File

@ -359,10 +359,8 @@ namespace OnlineAssessment.Common
}
/// <summary>
/// Encryption Helper
/// </summary>
public static class AesEncryptionHelper
public static class AesEncryptionHelper
{
private static readonly string EncryptionKey = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
private static readonly byte[] Salt = new byte[] { 0x21, 0x42, 0x63, 0x84, 0xA5, 0xC6, 0xE7, 0x08, 0x29, 0x4A, 0x6B, 0x8C, 0xAD, 0xCE, 0xEF, 0x10 };

View File

@ -13,11 +13,10 @@ namespace OnlineAssessment
/// </summary>
public static IServiceCollection AddDbConnections(this IServiceCollection services, IConfiguration configuration)
{
//===================================
//string connString1 = @"Server=94.249.213.139;Database=OA_STAGING;User Id=odiware;Password=HariHara@1234!;TrustServerCertificate=True;MultipleActiveResultSets=true";
//string connection1 = AesEncryptionHelper.Encrypt(connString1);
//string connection2 = AesEncryptionHelper.Decrypt(connection1);
//===================================
string connString1 = @"Server=94.249.213.139;Database=OA_STAGING;User Id=sa;Password=Odiware@1234!;TrustServerCertificate=True;MultipleActiveResultSets=true";
string connection1 = AesEncryptionHelper.Encrypt(connString1);
string connString = configuration.GetConnectionString("DefaultConnectionString");
string connection = AesEncryptionHelper.Decrypt(connString);

View File

@ -1205,7 +1205,6 @@ namespace OnlineAssessment.Data.EFCore
join us in _context.Users on ex.CreatedBy equals us.Id
join qs in _context.ExamQuestionsMarkWeight on us.IsActive equals qs.IsActive into qns
where ex.InstituteId == institute_id
&& uge.UserGroupId == batch_id && uge.IsActive == true
&& sections.All(a => a.IsActive == true)
@ -1234,14 +1233,6 @@ namespace OnlineAssessment.Data.EFCore
examDetail.attempts_allowed = item.e.AttemptsAllowed;
//examDetail.points_needed = (short)item.e.CreditsNeeded;
//examDetail.points_available = myExamPoints;
var latestAttempt = _context.ExamAttempts
.Where(a => a.ExamId == item.e.Id && a.CreatedBy == user_id)
.OrderByDescending(a => a.CreatedOn)
.FirstOrDefault();
if (latestAttempt != null)
examDetail.attempt_status = latestAttempt.Status;
examDetail.start_date = item.e.ExamOpenDatetime;
examDetail.end_date = item.e.ExamCloseDatetime;
examDetail.exam_duration = item.e.ExamDurationInSeconds;

View File

@ -8,11 +8,9 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "BTG3gPH/5QU/Ziaw9qfFcCR7n1uQ58BpJeY2enHpagQNiaQohW6//faJRPLyjzLzsufkT3kcnHv7+P6DKFrnahIHTFJAhmPTRfVppxEotvCAmd6bHfq7IT9UhGEAzJkEldkpRe780FaHNfmer6pIGhS9P15G2ZrP99vd3Pxu/nUyBcoKTbo40I7lKUQJ4gRUZbWjjD/bjwMFs9ouKC7CDQ=="
//Staging Connection String
//"DefaultConnectionString": "3O5IBcQilkuCpSiL2/78srPWCHpYVGryBrDmdDH7ymmzevrvLYfgEbsScCZKknceXynyLeTn/5v0PJ4ddIyj6xF/wS+l7ElwqwaaGlpVEFNG4RetA1YQ/dKg92Y9czBU9QeEkT7DVwsBpb4LX+3X0uOd0VlQYhIQ1bmF0YNmlubv3O0k8c4UFM8sVzPexSIx8JuqhjWgfDw5sAgyKqvg/Q=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU="
//"DefaultConnectionString": "yV213mRnQngKYPWcDvOoPbSopWdQ0VutXa7+S2RRjoI4G3nsjIF0PYPmwJffxL1WCdb+20HrHyf1t+DCMnGtzz6WWiwQ0oHWB26iCqTKLgQi53fmcRWMJsZkkxh4u8zKueZuEi6c/Er2MrTF4lwdqFkQmA3Wi/FzJAsifsqVer717EJkhhnz+h0pC4bQkX7P+y2TmirFPhJNWLb/uFFc5XIuKMYvuggyIOQoo84mLnX4s0Nn+FbzzmkLgVO1+dnrJAgWVJoiHcEvbdcQkfNw4LlvJ4qHS7oiBo2erYpo2USX4EwaBHnYA4xginfbudlv"
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",

View File

@ -8,15 +8,12 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "wB5dpl3FEA6ZAZOKD3hmWgcwfHESYidkz0oW18Dund4RTe6vT9K1J+zZDUHdzJ8wagNAz/ZVQB6oKhRqa3fqNHtUEf0jAHTCHvSO5Z07gYu9sE02tGerCvZydVR5f/AmwMNa34wHBEA1ASXgo38i+u0Y7iq3LUM/OJI/oevkYec5f6TzJmqPdrEOKRkwsWgDbXos96cVqEliCAt2BVpR8g=="
//Staging Connection String
//"DefaultConnectionString": "7D8cq/bCLiMdJBw4FlTpea3Px4UJryffPEqWW88xDv1O/+zyh60HU73a39dR3fjQq0XLZq4QNchqsX++Anqj+upqfqYpEwb+omIWLOQ/qt21Ms9yUYjS+3xA8ixtr6c3RBzbJxLr9oRrvnXhmCi1jOnoJAS5UaNC4ObKtK2nSa193lLyh8d95hSlSZOqcde2UKLDMVN85V9BDElPzhiX8A=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU="
//"DefaultConnectionString": "yV213mRnQngKYPWcDvOoPbSopWdQ0VutXa7+S2RRjoI4G3nsjIF0PYPmwJffxL1WCdb+20HrHyf1t+DCMnGtzz6WWiwQ0oHWB26iCqTKLgQi53fmcRWMJsZkkxh4u8zKueZuEi6c/Er2MrTF4lwdqFkQmA3Wi/FzJAsifsqVer717EJkhhnz+h0pC4bQkX7P+y2TmirFPhJNWLb/uFFc5XIuKMYvuggyIOQoo84mLnX4s0Nn+FbzzmkLgVO1+dnrJAgWVJoiHcEvbdcQkfNw4LlvJ4qHS7oiBo2erYpo2USX4EwaBHnYA4xginfbudlv"
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",
"Issuer": "Odiware"
}
}

View File

@ -8,11 +8,9 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "BTG3gPH/5QU/Ziaw9qfFcCR7n1uQ58BpJeY2enHpagQNiaQohW6//faJRPLyjzLzsufkT3kcnHv7+P6DKFrnahIHTFJAhmPTRfVppxEotvCAmd6bHfq7IT9UhGEAzJkEldkpRe780FaHNfmer6pIGhS9P15G2ZrP99vd3Pxu/nUyBcoKTbo40I7lKUQJ4gRUZbWjjD/bjwMFs9ouKC7CDQ=="
//Staging Connection String
//"DefaultConnectionString": "3O5IBcQilkuCpSiL2/78srPWCHpYVGryBrDmdDH7ymmzevrvLYfgEbsScCZKknceXynyLeTn/5v0PJ4ddIyj6xF/wS+l7ElwqwaaGlpVEFNG4RetA1YQ/dKg92Y9czBU9QeEkT7DVwsBpb4LX+3X0uOd0VlQYhIQ1bmF0YNmlubv3O0k8c4UFM8sVzPexSIx8JuqhjWgfDw5sAgyKqvg/Q=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU=",
//"DefaultConnectionString": "hCF2clp1tO6WycvgTXFGR4FIKxVkmfNDpAjGOcJ9P3YZkw9veDhS4Bk5zdWSw8Ngm+o9D7NJ5wq7pO4kY3Hj20yNI7YJygcdxz9pbEDqzmICXVd+oDnShIzFKQpy+blHQH0WcXeMJiry0xoJWTaG1Q9JTZUepUXuB2Iabkvf0sb08ENGCwPMOVquKPDNu/psU2TGXeSgXAIbSRm6fDS+mj3dw3MBtzUGlrMwBdWVo3rWifmMV5Wx0NWOaYFAr2UVuJI3mAecQpAk0rt7jmug+w=="
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",

View File

@ -8,15 +8,12 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "wB5dpl3FEA6ZAZOKD3hmWgcwfHESYidkz0oW18Dund4RTe6vT9K1J+zZDUHdzJ8wagNAz/ZVQB6oKhRqa3fqNHtUEf0jAHTCHvSO5Z07gYu9sE02tGerCvZydVR5f/AmwMNa34wHBEA1ASXgo38i+u0Y7iq3LUM/OJI/oevkYec5f6TzJmqPdrEOKRkwsWgDbXos96cVqEliCAt2BVpR8g=="
//Staging Connection String
//"DefaultConnectionString": "7D8cq/bCLiMdJBw4FlTpea3Px4UJryffPEqWW88xDv1O/+zyh60HU73a39dR3fjQq0XLZq4QNchqsX++Anqj+upqfqYpEwb+omIWLOQ/qt21Ms9yUYjS+3xA8ixtr6c3RBzbJxLr9oRrvnXhmCi1jOnoJAS5UaNC4ObKtK2nSa193lLyh8d95hSlSZOqcde2UKLDMVN85V9BDElPzhiX8A=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU="
//"DefaultConnectionString": "hCF2clp1tO6WycvgTXFGR4FIKxVkmfNDpAjGOcJ9P3YZkw9veDhS4Bk5zdWSw8Ngm+o9D7NJ5wq7pO4kY3Hj20yNI7YJygcdxz9pbEDqzmICXVd+oDnShIzFKQpy+blHQH0WcXeMJiry0xoJWTaG1Q9JTZUepUXuB2Iabkvf0sb08ENGCwPMOVquKPDNu/psU2TGXeSgXAIbSRm6fDS+mj3dw3MBtzUGlrMwBdWVo3rWifmMV5Wx0NWOaYFAr2UVuJI3mAecQpAk0rt7jmug+w=="
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",
"Issuer": "Odiware"
}
}

View File

@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>net9.0</TargetFramework>
<AssemblyVersion>1.0.0.1</AssemblyVersion>
<AssemblyVersion>1.0.0.0</AssemblyVersion>
<Authors>Preetisagar Parida, Kishor Tripathy</Authors>
<Company>Odiware Technologies</Company>
<Product>OnlineAssessment Web API</Product>

View File

@ -8,11 +8,9 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "BTG3gPH/5QU/Ziaw9qfFcCR7n1uQ58BpJeY2enHpagQNiaQohW6//faJRPLyjzLzsufkT3kcnHv7+P6DKFrnahIHTFJAhmPTRfVppxEotvCAmd6bHfq7IT9UhGEAzJkEldkpRe780FaHNfmer6pIGhS9P15G2ZrP99vd3Pxu/nUyBcoKTbo40I7lKUQJ4gRUZbWjjD/bjwMFs9ouKC7CDQ=="
//Staging Connection String
//"DefaultConnectionString": "3O5IBcQilkuCpSiL2/78srPWCHpYVGryBrDmdDH7ymmzevrvLYfgEbsScCZKknceXynyLeTn/5v0PJ4ddIyj6xF/wS+l7ElwqwaaGlpVEFNG4RetA1YQ/dKg92Y9czBU9QeEkT7DVwsBpb4LX+3X0uOd0VlQYhIQ1bmF0YNmlubv3O0k8c4UFM8sVzPexSIx8JuqhjWgfDw5sAgyKqvg/Q=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU="
//"DefaultConnectionString": "yV213mRnQngKYPWcDvOoPbSopWdQ0VutXa7+S2RRjoI4G3nsjIF0PYPmwJffxL1WCdb+20HrHyf1t+DCMnGtzz6WWiwQ0oHWB26iCqTKLgQi53fmcRWMJsZkkxh4u8zKueZuEi6c/Er2MrTF4lwdqFkQmA3Wi/FzJAsifsqVer717EJkhhnz+h0pC4bQkX7P+y2TmirFPhJNWLb/uFFc5XIuKMYvuggyIOQoo84mLnX4s0Nn+FbzzmkLgVO1+dnrJAgWVJoiHcEvbdcQkfNw4LlvJ4qHS7oiBo2erYpo2USX4EwaBHnYA4xginfbudlv"
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",

View File

@ -8,15 +8,11 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "wB5dpl3FEA6ZAZOKD3hmWgcwfHESYidkz0oW18Dund4RTe6vT9K1J+zZDUHdzJ8wagNAz/ZVQB6oKhRqa3fqNHtUEf0jAHTCHvSO5Z07gYu9sE02tGerCvZydVR5f/AmwMNa34wHBEA1ASXgo38i+u0Y7iq3LUM/OJI/oevkYec5f6TzJmqPdrEOKRkwsWgDbXos96cVqEliCAt2BVpR8g=="
//Staging Connection String
//"DefaultConnectionString": "7D8cq/bCLiMdJBw4FlTpea3Px4UJryffPEqWW88xDv1O/+zyh60HU73a39dR3fjQq0XLZq4QNchqsX++Anqj+upqfqYpEwb+omIWLOQ/qt21Ms9yUYjS+3xA8ixtr6c3RBzbJxLr9oRrvnXhmCi1jOnoJAS5UaNC4ObKtK2nSa193lLyh8d95hSlSZOqcde2UKLDMVN85V9BDElPzhiX8A=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU="
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",
"Issuer": "Odiware"
}
}

View File

@ -8,11 +8,9 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "BTG3gPH/5QU/Ziaw9qfFcCR7n1uQ58BpJeY2enHpagQNiaQohW6//faJRPLyjzLzsufkT3kcnHv7+P6DKFrnahIHTFJAhmPTRfVppxEotvCAmd6bHfq7IT9UhGEAzJkEldkpRe780FaHNfmer6pIGhS9P15G2ZrP99vd3Pxu/nUyBcoKTbo40I7lKUQJ4gRUZbWjjD/bjwMFs9ouKC7CDQ=="
//Staging Connection String
//"DefaultConnectionString": "3O5IBcQilkuCpSiL2/78srPWCHpYVGryBrDmdDH7ymmzevrvLYfgEbsScCZKknceXynyLeTn/5v0PJ4ddIyj6xF/wS+l7ElwqwaaGlpVEFNG4RetA1YQ/dKg92Y9czBU9QeEkT7DVwsBpb4LX+3X0uOd0VlQYhIQ1bmF0YNmlubv3O0k8c4UFM8sVzPexSIx8JuqhjWgfDw5sAgyKqvg/Q=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU="
//"DefaultConnectionString": "yV213mRnQngKYPWcDvOoPbSopWdQ0VutXa7+S2RRjoI4G3nsjIF0PYPmwJffxL1WCdb+20HrHyf1t+DCMnGtzz6WWiwQ0oHWB26iCqTKLgQi53fmcRWMJsZkkxh4u8zKueZuEi6c/Er2MrTF4lwdqFkQmA3Wi/FzJAsifsqVer717EJkhhnz+h0pC4bQkX7P+y2TmirFPhJNWLb/uFFc5XIuKMYvuggyIOQoo84mLnX4s0Nn+FbzzmkLgVO1+dnrJAgWVJoiHcEvbdcQkfNw4LlvJ4qHS7oiBo2erYpo2USX4EwaBHnYA4xginfbudlv"
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",

View File

@ -8,15 +8,11 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "wB5dpl3FEA6ZAZOKD3hmWgcwfHESYidkz0oW18Dund4RTe6vT9K1J+zZDUHdzJ8wagNAz/ZVQB6oKhRqa3fqNHtUEf0jAHTCHvSO5Z07gYu9sE02tGerCvZydVR5f/AmwMNa34wHBEA1ASXgo38i+u0Y7iq3LUM/OJI/oevkYec5f6TzJmqPdrEOKRkwsWgDbXos96cVqEliCAt2BVpR8g=="
//Staging Connection String
//"DefaultConnectionString": "7D8cq/bCLiMdJBw4FlTpea3Px4UJryffPEqWW88xDv1O/+zyh60HU73a39dR3fjQq0XLZq4QNchqsX++Anqj+upqfqYpEwb+omIWLOQ/qt21Ms9yUYjS+3xA8ixtr6c3RBzbJxLr9oRrvnXhmCi1jOnoJAS5UaNC4ObKtK2nSa193lLyh8d95hSlSZOqcde2UKLDMVN85V9BDElPzhiX8A=="
"DefaultConnectionString": "CWl5kdPv3XVgCewNZ9xsMWbKUfspY55eD30t624CW5XFBxN2arokRw5kglCPdfNE9fc0xdbYTyXrFJ1s/KVEknD0+Zz3unUPUcZjqtJrgZaOSTpxPANvf3pERJbTDELV91SrUGHsY/VugofFmzMLPTgsv9tXeGSsK/YE0uPS1i6ekiEPjm3P7t3K8Eho4rtkS+2SRFLPNIgp/tBDJ7t71yoNYZzk+zoh58jS3WiZni6BeT37eNfgCcqNg/7Jn7wW6c3IcDll6Pbw7hlQvHvxX4Xl3YFEb2x+bPCZELacMC11548Ax0nnRumfdzryCDI/ohfO3ZMA/Fni4j0g5A8qiruTtM2wwfaaDNZAPLA2aJU="
//"DefaultConnectionString": "B58MwWJom8ajCI4ia0DN+uXUcjx9/6VSwwwQLNRr0ALJmE2hmLwzJV6FYk3YezpmAQxcFLiBG1mToDKYxumHzWoyyr3/8JrMxcxJWctehH6XLaoreNgAG4pfVoNqXdy2LLDfxrh+MfXMe5vTzSRd/wgsiNcfFYzvoOA6ecg/K15a6/aM4CBWkylwwihQdCn/u567QL8IlAeUkPSM97dI6OGUYDzuGNoubGBDd2bBEKpY+HZ5gdF+hOxiC68XlkSykjk7vCDg5oIO2wNXvi2D0BmwEpXxhCMUFNaqJN7qpmo="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",
"Issuer": "Odiware"
}
}

View File

@ -4,11 +4,7 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "BTG3gPH/5QU/Ziaw9qfFcCR7n1uQ58BpJeY2enHpagQNiaQohW6//faJRPLyjzLzsufkT3kcnHv7+P6DKFrnahIHTFJAhmPTRfVppxEotvCAmd6bHfq7IT9UhGEAzJkEldkpRe780FaHNfmer6pIGhS9P15G2ZrP99vd3Pxu/nUyBcoKTbo40I7lKUQJ4gRUZbWjjD/bjwMFs9ouKC7CDQ=="
//Staging Connection String
//"DefaultConnectionString": "3O5IBcQilkuCpSiL2/78srPWCHpYVGryBrDmdDH7ymmzevrvLYfgEbsScCZKknceXynyLeTn/5v0PJ4ddIyj6xF/wS+l7ElwqwaaGlpVEFNG4RetA1YQ/dKg92Y9czBU9QeEkT7DVwsBpb4LX+3X0uOd0VlQYhIQ1bmF0YNmlubv3O0k8c4UFM8sVzPexSIx8JuqhjWgfDw5sAgyKqvg/Q=="
"DefaultConnectionString": "3O5IBcQilkuCpSiL2/78srPWCHpYVGryBrDmdDH7ymmzevrvLYfgEbsScCZKknceXynyLeTn/5v0PJ4ddIyj6xF/wS+l7ElwqwaaGlpVEFNG4RetA1YQ/dKg92Y9czBU9QeEkT7DVwsBpb4LX+3X0uOd0VlQYhIQ1bmF0YNmlubv3O0k8c4UFM8sVzPexSIx8JuqhjWgfDw5sAgyKqvg/Q=="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",

View File

@ -4,11 +4,7 @@
},
"AllowedHosts": "*",
"ConnectionStrings": {
//Production connection string
"DefaultConnectionString": "wB5dpl3FEA6ZAZOKD3hmWgcwfHESYidkz0oW18Dund4RTe6vT9K1J+zZDUHdzJ8wagNAz/ZVQB6oKhRqa3fqNHtUEf0jAHTCHvSO5Z07gYu9sE02tGerCvZydVR5f/AmwMNa34wHBEA1ASXgo38i+u0Y7iq3LUM/OJI/oevkYec5f6TzJmqPdrEOKRkwsWgDbXos96cVqEliCAt2BVpR8g=="
//Staging Connection String
//"DefaultConnectionString": "7D8cq/bCLiMdJBw4FlTpea3Px4UJryffPEqWW88xDv1O/+zyh60HU73a39dR3fjQq0XLZq4QNchqsX++Anqj+upqfqYpEwb+omIWLOQ/qt21Ms9yUYjS+3xA8ixtr6c3RBzbJxLr9oRrvnXhmCi1jOnoJAS5UaNC4ObKtK2nSa193lLyh8d95hSlSZOqcde2UKLDMVN85V9BDElPzhiX8A=="
"DefaultConnectionString": "3O5IBcQilkuCpSiL2/78srPWCHpYVGryBrDmdDH7ymmzevrvLYfgEbsScCZKknceXynyLeTn/5v0PJ4ddIyj6xF/wS+l7ElwqwaaGlpVEFNG4RetA1YQ/dKg92Y9czBU9QeEkT7DVwsBpb4LX+3X0uOd0VlQYhIQ1bmF0YNmlubv3O0k8c4UFM8sVzPexSIx8JuqhjWgfDw5sAgyKqvg/Q=="
},
"Jwt": {
"Key": "THIS_IS_ODIWARE_SECRET_KEY",
@ -21,4 +17,3 @@
"BaseUrl": "https://odiware.odoo.com"
}
}