We will return 200 as status code on success call of a method.
{
"code": 200,
"text": "string",
"data": [ ]
}
{
"code": 200,
"text": "string",
"paging": {
"CurrentPageNumber": 0,
"PageSize": 0,
"HasNextPage": true
},
"data": [ ]
}
We will return 0 as status code when failure the method calling.
{
"code": 0,
"text": "string",
"data": null
}
we will return -1 as status code when any error occured while calling the method.
{
"code": -1,
"text": "string",
"data": null
}
api/admin/adminuser_add
This method is used to create new Admin. Returns response as JSON object.
{
"course_type": "string",
"admin_username": "string",
"admin_password": "string",
"admin_information": {
"admin_firstname":"string",
"admin_lastname":"string",
"admin_emailaddress":"string",
"admin_accesslevel_id":"string",
"phone_number":"string"
},
"us_trustees":{
"ustrustees_agencyId":"string",
"ustrustees_loginId":"string",
"ustrustees_password":"string",
"ustrustees_issueridentity":"string"
},
"two_factor_authentication":{
"enabled_2FA":true
}
}
| Parameters | Validation |
|---|---|
| course_type | Required |
| admin_username | Required |
| admin_password | Required |
| admin_firstname | Required |
| admin_lastname | Required |
| admin_emailaddress | Required and should be a valid email |
| admin_accesslevel_id | Required |
| phone_number | Required and should be 10 digits. |
| ustrustees_agencyId | Required |
| ustrustees_loginId | Required |
| ustrustees_password | Required |
| ustrustees_issueridentity | Required |
| enabled_2FA | Required and should be true or false |
{
"code": 200,
"text": "Success",
"data": "Admin added successfully"
}
{
"code": 0,
"text": "User doesn't Exsist'",
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"data": null
}
Request:
class AdminRequest
{
public string course_type { get; set; }
public string admin_username { get; set; }
public string admin_password { get; set; }
public AdminInformation admin_information { get; set; }
public USTrustees us_trustees { get; set; }
public TwoFactorAuthentication two_factor_authentication { get; set; }
}
public class AdminInformation
{
public string admin_firstname { get; set; }
public string admin_lastname { get; set; }
public string admin_emailaddress { get; set; }
public string admin_accesslevel_id { get; set; }
public string phone_number { get; set; }
}
public class USTrustees
{
public string ustrustees_agencyId { get; set; }
public string ustrustees_loginId { get; set; }
public string ustrustees_password { get; set; }
public string ustrustees_issueridentity { get; set; }
}
public class TwoFactorAuthentication
{
public bool enabled_2FA { get; set; }
}
AdminRequest objAdminRequest = new AdminRequest();
objAdminRequest.admin_information = new AdminInformation();
objAdminRequest.us_trustees = new USTrustees();
objAdminRequest.two_factor_authentication = new TwoFactorAuthentication();
objAdminRequest.admin_information.admin_firstname = "firstapi";
objAdminRequest.admin_information.admin_lastname = "lastapi";
objAdminRequest.admin_information.admin_emailaddress = "rssr4@g.c";
objAdminRequest.admin_information.admin_accesslevel_id = "Admin";
objAdminRequest.admin_information.phone_number = "1234567890";
objAdminRequest.us_trustees.ustrustees_agencyId = "1234";
objAdminRequest.us_trustees.ustrustees_loginId = "67891";
objAdminRequest.us_trustees.ustrustees_password = "12345";
objAdminRequest.us_trustees.ustrustees_issueridentity = "1";
objAdminRequest.two_factor_authentication.enabled_2FA = true;
Code:
public ApiResponseCreate(string collectionName, BsonDocument document)
{
if (!ValidateDocument(document, out string errorMessage))
{
return new ApiResponse
{
Success = false,
Message = errorMessage
};
}
document["createdDate"] = DateTime.UtcNow;
document["updatedDate"] = DateTime.UtcNow;
_mongoDBContext.InsertOne(collectionName, document);
return new ApiResponse
{
Success = true,
TotalRecords = 1,
Message = "Document created successfully.",
Data = BsonHelper.ConvertDocument(document)
};
}
}
private bool ValidateDocument(BsonDocument document, out string message)
{
foreach (var element in document.Elements)
{
if (element.Value.IsBsonDocument)
{
if (!ValidateDocument(element.Value.AsBsonDocument, out message))
return false;
}
else
{
// Email Validation
if (element.Name.ToLower().Contains("email") && element.Value.IsString)
{
try
{
string email = element.Value.AsString;
var mail = new MailAddress(email);
if (mail.Address != email)
{
message = "Invalid email format.";
return false;
}
}
catch
{
message = "Invalid email format.";
return false;
}
}
// ADD PHONE VALIDATION HERE
if (element.Name.ToLower().Contains("phone") && element.Value.IsString)
{
string phone = element.Value.AsString.Trim();
if (!System.Text.RegularExpressions.Regex.IsMatch(phone, @"^\d{10}$"))
{
message = "Phone number must contain exactly 10 digits.";
return false;
}
}
}
}
message = string.Empty;
return true;
}
Response:
{
"code": 200,
"text": "Success",
"data": "Admin added successfully"
}
/api/admins/adminuserlist_get
This method is used to get Admin details. Returns response as JSON object.
{
"admin_username": "string",
"admin_emailaddress":"string",
"course_type": "string",
"PageNumber": 0,
"PageSize": 0
}
{
"code": 200,
"Success": true,
"Message": "Records retrieved successfully.",
"TotalRecords": 2,
"Data": [
{
"_id": "6a4b8be0ad73b3b1adcb7e4f",
"admin_username": "MOMO",
"admin_password": "1",
"course_type": "Edu",
"admin_information": {
"admin_firstname": "harika",
"admin_lastname": "harika",
"admin_emailaddress": "harika.ganapathi@dharani.co.in",
"admin_accesslevel_id": "Master Admin",
"is_admin_active": true,
"is_default_masteradmin": false,
"phone_number": "(123) 456-7890"
},
"us_trustees": {
"ustrustees_agencyId": "Njharika",
"ustrustees_loginId": "harika123",
"ustrustees_password": "L*3LTjuI@o%dZDQQ",
"ustrustees_issueridentity": "3344"
},
"two_factor_authentication": {
"enabled_2FA": false,
"authyId": "1934"
},
"admin_added_timestamp": "2025-05-29T08:26:54.083Z",
"admin_updated_timestamp": "2025-05-29T08:26:54.083Z"
},
{
"_id": "6a4b8be0ad73b3b1adcb7e46",
"admin_username": "Harika",
"admin_password": "1",
"course_type": "Edu",
"admin_information": {
"admin_firstname": "harika",
"admin_lastname": "harika",
"admin_emailaddress": "harika.ganapathi@dharani.co.in",
"admin_accesslevel_id": "Admin",
"is_admin_active": true,
"is_default_masteradmin": false,
"phone_number": "(111) 111-1111"
},
"two_factor_authentication": {
"enabled_2FA": true,
"authyId": "9775668"
},
"admin_added_timestamp": "2023-07-10T05:35:05.8Z",
"admin_updated_timestamp": "2023-07-10T05:35:05.8Z"
}
]
}
{
"code": 0,
"text": "Failed",
"additionalText": "",
"paging": null,
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"additionalText": "Unexpected error occurred",
"paging": null,
"data": null
}
Request:
class AdminGetRequest
{
public string admin_username { get; set; }
public string admin_emailaddress { get; set; }
public string course_type { get; set; }
}
AdminRequest objAdminRequest = new AdminRequest();
objAdminRequest.admin_username="sample";
objAdminRequest.admin_emailaddress = "rssr4@g.c";
objAdminRequest.course_type = "sampleapi";
Code:
public ApiResponse> GetAll(string collectionName, FilterDefinition filter, PaginationRequest request)
{
var sort = Builders.Sort.Descending("_id");
var totalRecords = _mongoDBContext.CountDocuments(collectionName, filter);
var documents = _mongoDBContext.GetPagedData( collectionName,filter,sort,request.PageNumber,request.PageSize);
var response = documents
.Select(BsonHelper.ConvertDocument)
.ToList();
return new ApiResponse>
{
Success = true,
Message = response.Any()
? "Records retrieved successfully."
: "No records found.",
TotalRecords = totalRecords,
Data = response
};
}
/api/attorney/attorney_add
This method is used to create new Attorney. Returns response as JSON object.
{
"firm_name": "string",
"attorney_first_name": "string",
"attorney_last_name": "string",
"attorney_email_id": "string",
"attorney_phone_no": "string",
"attorney_fax": "string",
"AdditionalEmail1": "string",
"AdditionalEmail2": "string",
"AdditionalEmail3": "string",
"AdditionalEmail4": "string",
"AdditionalEmail5": "string",
"AdditionalEmail6": "string",
"AdditionalEmail7": "string",
"AdditionalEmail8": "string",
"AdditionalEmail9": "string",
"AdditionalEmail10": "string",
"AdditionalEmail11": "string",
"AdditionalEmail12": "string",
"AdditionalEmail13": "string",
"AdditionalEmail14": "string",
"AdditionalEmail15": "string",
"AdditionalEmail16": "string",
"AdditionalEmail17": "string",
"AdditionalEmail18": "string",
"AdditionalEmail19": "string",
"AdditionalEmail20": "string",
"is_certificate_filed": true,
"is_billing_approval": true,
"address": {
"address_line1": "string",
"city": "string",
"state": "string",
"zip": "string"
},
"billing_address": {
"address_line1": "string",
"city": "string",
"state": "string",
"zip": "string"
},
"card_details": {
"card_first_name": "string",
"card_last_name": "string",
"card_type": "string",
"credit_card_number": "string",
"credit_card_exp_month": "string",
"credit_card_exp_year": "string"
}
}
| Parameters | Validation |
|---|---|
| firm_name | Required |
| attorney_first_name | Required |
| attorney_last_name | Required |
| attorney_email_id | Required and should be a valid email |
| attorney_phone_no | Required and should be 10 digits. |
| address_line1 | Required |
| city | Required |
| state | Required |
| zip | Required |
| is_certificate_filed | Required |
| is_billing_approval | Required |
{
"code": 200,
"text": "Success",
"data": "Attorney added successfully"
}
{
"code": 0,
"text": "Invalid Email Format'",
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"data": null
}
Request:
public class AttorneyRequest
{
public string firm_name { get; set; }
public string attorney_first_name { get; set; }
public string attorney_last_name { get; set; }
public string attorney_email_id { get; set; }
public string attorney_phone_no { get; set; }
public string attorney_fax { get; set; }
public string AdditionalEmail1 { get; set; }
public string AdditionalEmail2 { get; set; }
public string AdditionalEmail3 { get; set; }
public string AdditionalEmail4 { get; set; }
public string AdditionalEmail5 { get; set; }
public string AdditionalEmail6 { get; set; }
public string AdditionalEmail7 { get; set; }
public string AdditionalEmail8 { get; set; }
public string AdditionalEmail9 { get; set; }
public string AdditionalEmail10 { get; set; }
public string AdditionalEmail11 { get; set; }
public string AdditionalEmail12 { get; set; }
public string AdditionalEmail13 { get; set; }
public string AdditionalEmail14 { get; set; }
public string AdditionalEmail15 { get; set; }
public string AdditionalEmail16 { get; set; }
public string AdditionalEmail17 { get; set; }
public string AdditionalEmail18 { get; set; }
public string AdditionalEmail19 { get; set; }
public string AdditionalEmail20 { get; set; }
public bool is_certificate_filed { get; set; }
public bool is_billing_approval { get; set; }
public Address address { get; set; }
public BillingAddress billing_address { get; set; }
public CardDetails card_details { get; set; }
}
public class Address
{
public string address_line1 { get; set; }
public string city { get; set; }
public string state { get; set; }
public string zip { get; set; }
}
public class BillingAddress
{
public string address_line1 { get; set; }
public string city { get; set; }
public string state { get; set; }
public string zip { get; set; }
}
public class CardDetails
{
public string card_first_name { get; set; }
public string card_last_name { get; set; }
public string card_type { get; set; }
public string credit_card_number { get; set; }
public string credit_card_exp_month { get; set; }
public string credit_card_exp_year { get; set; }
}
AttorneyRequest objAttorneyRequest = new AttorneyRequest();
objAttorneyRequest.firm_name = "ABC Legal Associates";
objAttorneyRequest.attorney_first_name = "John";
objAttorneyRequest.attorney_last_name = "Doe";
objAttorneyRequest.attorney_email_id = "john.doe@abclegal.com";
objAttorneyRequest.attorney_phone_no = "9876543210";
objAttorneyRequest.attorney_fax = "04012345678";
objAttorneyRequest.AdditionalEmail1 = "billing@abclegal.com";
objAttorneyRequest.AdditionalEmail2 = "accounts@abclegal.com";
objAttorneyRequest.AdditionalEmail3 = "support@abclegal.com";
objAttorneyRequest.AdditionalEmail4 = "assistant@abclegal.com";
objAttorneyRequest.AdditionalEmail5 = "legal1@abclegal.com";
objAttorneyRequest.AdditionalEmail6 = "legal2@abclegal.com";
objAttorneyRequest.AdditionalEmail7 = "office@abclegal.com";
objAttorneyRequest.AdditionalEmail8 = "contact@abclegal.com";
objAttorneyRequest.AdditionalEmail9 = "review@abclegal.com";
objAttorneyRequest.AdditionalEmail10 = "manager@abclegal.com";
objAttorneyRequest.AdditionalEmail11 = "team1@abclegal.com";
objAttorneyRequest.AdditionalEmail12 = "team2@abclegal.com";
objAttorneyRequest.AdditionalEmail13 = "operations@abclegal.com";
objAttorneyRequest.AdditionalEmail14 = "records@abclegal.com";
objAttorneyRequest.AdditionalEmail15 = "finance@abclegal.com";
objAttorneyRequest.AdditionalEmail16 = "hr@abclegal.com";
objAttorneyRequest.AdditionalEmail17 = "admin@abclegal.com";
objAttorneyRequest.AdditionalEmail18 = "collections@abclegal.com";
objAttorneyRequest.AdditionalEmail19 = "info@abclegal.com";
objAttorneyRequest.AdditionalEmail20 = "help@abclegal.com";
objAttorneyRequest.is_certificate_filed = true;
objAttorneyRequest.is_billing_approval = false;
objAttorneyRequest.address = new Address();
objAttorneyRequest.address.address_line1 = "123 Main Street";
objAttorneyRequest.address.city = "Dallas";
objAttorneyRequest.address.state = "TX";
objAttorneyRequest.address.zip = "75001";
objAttorneyRequest.billing_address = new BillingAddress();
objAttorneyRequest.billing_address.address_line1 = "456 Business Avenue";
objAttorneyRequest.billing_address.city = "Houston";
objAttorneyRequest.billing_address.state = "TX";
objAttorneyRequest.billing_address.zip = "77001";
objAttorneyRequest.card_details = new CardDetails();
objAttorneyRequest.card_details.card_first_name = "John";
objAttorneyRequest.card_details.card_last_name = "Doe";
objAttorneyRequest.card_details.card_type = "Visa";
objAttorneyRequest.card_details.credit_card_number = "4111111111111111";
objAttorneyRequest.card_details.credit_card_exp_month = "08";
objAttorneyRequest.card_details.credit_card_exp_year = "2031";
Code:
public ApiResponse
Create(string collectionName, BsonDocument document)
{
document["createdDate"] = DateTime.UtcNow;
document["updatedDate"] = DateTime.UtcNow;
_mongoDBContext.InsertOne(collectionName, document);
return new ApiResponse
{
Success = true,
TotalRecords = 1,
Message = "Document created successfully.",
Data = BsonHelper.ConvertDocument(document)
};
}
Response:
{
"code": 200,
"text": "Success",
"data": "Attorney added successfully"
}
/api/attorney/attorneylist_get
This method is used to get attorney details. Returns response as JSON object.
{
"firm_name": "string",
"attorney_email_id": "string",
"attorney_first_name": "string",
"attorney_last_name": "string",
"PageNumber": 0,
"PageSize": 0
}
{
"code": 200,
"Success": true,
"Message": "Records retrieved successfully.",
"TotalRecords": 1,
"Data": [
{
"_id": "6a4f394e4e582f1e192dea11",
"firm_name": "ABC Legal Associates",
"attorney_first_name": "John",
"attorney_last_name": "Doe",
"attorney_email_id": "john.doe@abclegal.com",
"attorney_phone_no": "9876543210",
"attorney_fax": "04012345678",
"is_certificate_filed": true,
"is_billing_approval": false,
"address": {
"address_line1": "123 Main Street",
"city": "Dallas",
"state": "TX",
"zip": "75001"
},
"billing_address": {
"address_line1": "456 Business Avenue",
"city": "Houston",
"state": "TX",
"zip": "77001"
},
"card_details": {
"card_first_name": "John",
"card_last_name": "Doe",
"card_type": "Visa",
"credit_card_number": "xxxxxxxxxxxx1111",
"credit_card_exp_month": "08",
"credit_card_exp_year": "2031"
},
"emails": [
"billing@abclegal.com",
"accounts@abclegal.com",
"support@abclegal.com",
"assistant@abclegal.com",
"legal1@abclegal.com",
"legal2@abclegal.com",
"office@abclegal.com",
"contact@abclegal.com",
"review@abclegal.com",
"manager@abclegal.com",
"team1@abclegal.com",
"team2@abclegal.com",
"operations@abclegal.com",
"records@abclegal.com",
"finance@abclegal.com",
"hr@abclegal.com",
"admin@abclegal.com",
"collections@abclegal.com",
"info@abclegal.com",
"help@abclegal.com"
],
"status": "Pending",
"attorney_requested_list": {
"request_from_site": "CC",
"request_added_time_stamp": "2026-07-09T06:01:50.02Z"
},
"createdDate": "2026-07-09T06:01:50.02Z",
"updatedDate": "2026-07-09T06:01:50.02Z"
}
]
}
{
"code": 0,
"text": "Failed",
"additionalText": "",
"paging": null,
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"additionalText": "Unexpected error occurred",
"paging": null,
"data": null
}
Request:
class AttorneyGetRequest
{
public string firm_name { get; set; }
public string attorney_email_id { get; set; }
public string attorney_first_name { get; set; }
public string attorney_last_name { get; set; }
}
AttorneyGetRequest objAttorneyGetRequest = new AttorneyGetRequest();
objAttorneyGetRequest.firm_name="sample";
objAttorneyGetRequest.attorney_email_id = "rssr4@g.c";
objAttorneyGetRequest.attorney_first_name = "sampleapi";
objAttorneyGetRequest.attorney_last_name = "sampleapi";
Code:
public ApiResponse> GetAll(string collectionName, FilterDefinition filter, PaginationRequest request)
{
var sort = Builders.Sort.Descending("_id");
var totalRecords = _mongoDBContext.CountDocuments(collectionName, filter);
var documents = _mongoDBContext.GetPagedData(collectionName,filter,sort,request.PageNumber,request.PageSize);
var response = documents.Select(BsonHelper.ConvertDocument).ToList();
return new ApiResponse>
{
Success = true,
Message = response.Any() ? "Records retrieved successfully." : "No records found.",
TotalRecords = totalRecords,
Data = response
};
}
/api/primary/primarydetails_add
This method is used to create new Primary. Returns response as JSON object.
{
"course_type": "string",
"pagenumber": int,
"pagerouteurl": "string",
"pagecategory_en": "string"
"pagetitle_en":"string",
"audiourl_en":"string",
"audioduration_en":int,
"videourl_en":"string",
"videoduration_en":int,
"pagecategory_sp":"string",
"pagetitle_sp":"string",
"audiourl_sp":"string",
"audioduration_sp":int,
"videourl_sp":"string",
"videoduration_sp":int
}
| Parameters | Validation |
|---|---|
| course_type | Required |
| pagenumber | Required |
| pagerouteurl | Required |
| pagecategory_en | Required |
| pagetitle_en | Required |
| audiourl_en | Required |
| audioduration_en | Required |
| videourl_en | Required |
| videoduration_en | Required |
| pagecategory_sp | Required |
| pagetitle_sp | Required |
| audiourl_sp | Required |
| audioduration_sp | Required |
| videourl_sp | Required |
| videoduration_sp | Required |
{
"code": 200,
"text": "Success",
"data": "Primary added successfully"
}
{
"code": 0,
"text": "User doesn't Exsist'",
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"data": null
}
Request:
class PrimaryRequest
{
public string course_type { get; set; }
public int pagenumber { get; set; }
public string pagerouteurl { get; set; }
public string pagecategory_en { get; set; }
public string pagetitle_en { get; set; }
public string audiourl_en { get; set; }
public int audioduration_en { get; set; }
public string videourl_en { get; set; }
public int videoduration_en { get; set; }
public string pagecategory_sp { get; set; }
public string pagetitle_sp { get; set; }
public string audiourl_sp { get; set; }
public int audioduration_sp { get; set; }
public string videourl_sp { get; set; }
public int videoduration_sp { get; set; }
PrimaryRequest objPrimaryRequest = new PrimaryRequest();
objPrimaryRequest.course_type = "sampleapi";
objPrimaryRequest.pagenumber=1;
objPrimaryRequest.pagerouteurl="adminapi";
objPrimaryRequest.pagecategory_en = "firstapi";
objPrimaryRequest.pagetitle_en = "lastapi";
objPrimaryRequest.audiourl_en = "rssr4@g.c";
objPrimaryRequest.audioduration_en = 123;
objPrimaryRequest.videourl_en = "1234567890";
objPrimaryRequest.videoduration_en = 150;
objPrimaryRequest.pagecategory_sp = "firstapi";
objPrimaryRequest.pagetitle_sp = "lastapi";
objPrimaryRequest.audiourl_sp = "rssr4@g.c";
objPrimaryRequest.audioduration_sp = 123;
objPrimaryRequest.videourl_sp = "1234567890";
objPrimaryRequest.videoduration_sp = 150;
Code:
public ApiResponse
Create(string collectionName, BsonDocument document)
{
document["createdDate"] = DateTime.UtcNow;
document["updatedDate"] = DateTime.UtcNow;
_mongoDBContext.InsertOne(collectionName, document);
return new ApiResponse
{
Success = true,
TotalRecords = 1,
Message = "Document created successfully.",
Data = BsonHelper.ConvertDocument(document)
};
}
Response:
{
"code": 200,
"text": "Success",
"data": "Primary added successfully"
}
/api/primary/primarydetailslist_get
This method is used to get Primary details. Returns response as JSON object.
{
"course_type": "string",
"pagetitle_en":"string",
"pagetitle_sp": "string",
"PageNumber": 0,
"PageSize": 0
}
{
"code": 200,
"Success": true,
"Message": "Records retrieved successfully.",
"TotalRecords": 2,
"Data": [
{
"_id": "6a4c904a6344d1fb4d628fab",
"course_type": "CC",
"pagenumber": 6,
"pagerouteurl": "CourseBudgeting/Course_budgeting_Intro",
"pagecategory_en": "Budgeting",
"pagetitle_en": "Introduction to Budgeting",
"audiourl_en": "Pg6.mp3",
"audioduration_en": 38,
"videourl_en": "z0s7n9462c",
"videoduration_en": 48,
"pagecategory_sp": "Presupuesto",
"pagetitle_sp": "Introducción al Presupuesto",
"audiourl_sp": "Pg6.mp3",
"audioduration_sp": 44,
"videourl_sp": "5vfxlul9ek",
"videoduration_sp": 57
},
{
"_id": "6a4c904a6344d1fb4d628fa6",
"course_type": "CC",
"pagenumber": 1,
"pagerouteurl": "Course/Course_Intro",
"pagecategory_en": "Intro",
"pagetitle_en": "Introduction",
"audiourl_en": "Page1.mp3",
"audioduration_en": 127,
"videourl_en": "hscaiihvw4",
"videoduration_en": 146,
"pagecategory_sp": "Introducción",
"pagetitle_sp": "Introducción",
"audiourl_sp": "Page1.mp3",
"audioduration_sp": 108,
"videourl_sp": "ic8eqflzp2",
"videoduration_sp": 146
}
]
}
{
"code": 0,
"text": "Failed",
"additionalText": "",
"paging": null,
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"additionalText": "Unexpected error occurred",
"paging": null,
"data": null
}
Request:
class PrimaryRequestGet
{
public string course_type { get; set; }
public string pagetitle_en { get; set; }
public string pagetitle_sp { get; set; }
}
PrimaryRequestGet objPrimaryRequest = new PrimaryRequestGet();
objPrimaryRequest.course_type="sample";
objPrimaryRequest.pagetitle_en = "rssr4@g.c";
objPrimaryRequest.pagetitle_sp = "sampleapi";
Code:
public ApiResponse> GetAll(string collectionName, FilterDefinition filter, PaginationRequest request)
{
var sort = Builders.Sort.Descending("_id");
var totalRecords = _mongoDBContext.CountDocuments(collectionName, filter);
var documents = _mongoDBContext.GetPagedData( collectionName,filter,sort,request.PageNumber,request.PageSize);
var response = documents
.Select(BsonHelper.ConvertDocument)
.ToList();
return new ApiResponse>
{
Success = true,
Message = response.Any()
? "Records retrieved successfully."
: "No records found.",
TotalRecords = totalRecords,
Data = response
};
}
/api/product/Product_add
This method is used to create new Product. Returns response as JSON object.
{
"category_name":"string",
"products_list":{
"product_name":"string",
"description":"string",
"images":"string",
"videos":"string",
"minimum_quantity":int,
"maximum_quantity":int,
"default_quantity":int,
"has_multiple_quantity":true,
"actual_price":decimal,
"discounted_price":decimal,
"product_shortcode":"string",
"page_url":"string",
"has_uspsdelivery":true,
"is_active":true,
"show_bestsellertag":true,
"show_newtag":true,
"is_outofstock":true,
"is_product_visbileornot":true,
"star_summary"{
"rating1":int,
"rating2":int,
"rating3":int,
"rating4":int,
"rating5":int,
"total_review":double,
"total_review_count":int
},
"subproduct_details":{
"subproductname":"string",
"image_url":"string",
"has_shippingprice":true,
"shipping_price":decimal,
"is_subproduct_visibleornot":true,
"price_quantinty":{
"quantity":int,
"actual_price":decimal,
"discounted_price":decimal
}
}
}
}
| Parameters | Validation |
|---|---|
| category_name | Required |
| product_name | Required |
| description | Required |
| images | Required |
| product_shortcode | Required |
| page_url | Required |
| language | Required |
| rating1 | Required |
| rating2 | Required |
| rating3 | Required |
| rating4 | Required |
| rating5 | Required |
| total_review | Required |
| subproductname | Required |
{
"code": 200,
"text": "Success",
"data": "Product added successfully"
}
{
"code": 0,
"text": "User doesn't Exsist'",
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"data": null
}
Request:
class ProductRequest
{
public string category_name { get; set; }
public Listproducts_list { get; set; }
}
class Product
{
public string product_name { get; set; }
public string description { get; set; }
public Listimages { get; set; }
public Listvideos { get; set; }
public int minimum_quantity { get; set; }
public int maximum_quantity { get; set; }
public int default_quantity { get; set; }
public bool has_multiple_quantity { get; set; }
public decimal actual_price { get; set; }
public decimal discounted_price { get; set; }
public string product_shortcode { get; set; }
public string page_url { get; set; }
public bool has_uspsdelivery { get; set; }
public bool is_active { get; set; }
public bool show_bestsellertag { get; set; }
public bool show_newtag { get; set; }
public bool is_outofstock { get; set; }
public bool is_product_visbileornot { get; set; }
public string language { get; set; }
public StarSummary star_summary { get; set; }
public Listsubproduct_details { get; set; }
}
public class StarSummary
{
public int rating1 { get; set; }
public int rating2 { get; set; }
public int rating3 { get; set; }
public int rating4 { get; set; }
public int rating5 { get; set; }
public double total_review { get; set; }
public int total_review_count { get; set; }
}
public class SubProduct
{
public string subproductname { get; set; }
public string image_url { get; set; }
public bool has_shippingprice { get; set; }
public decimal shipping_price { get; set; }
public bool is_subproduct_visibleornot { get; set; }
public Listprice_quantinty { get; set; }
}
public class PriceQuantity
{
public int quantity { get; set; }
public decimal actual_price { get; set; }
public decimal discounted_price { get; set; }
}
ProductRequest objProductRequest = new ProductRequest();
objProductRequest.category_name = "Sample Category";
objProductRequest.products_list = new List();
Product objProduct = new Product();
objProduct.product_name = "Budget Planner";
objProduct.description = "Sample product description";
objProduct.images = new List
{
"https://example.com/image1.jpg",
"https://example.com/image2.jpg"
};
objProduct.videos = new List
{
"https://example.com/video1.mp4"
};
objProduct.minimum_quantity = 1;
objProduct.maximum_quantity = 10;
objProduct.default_quantity = 1;
objProduct.has_multiple_quantity = true;
objProduct.actual_price = 500;
objProduct.discounted_price = 450;
objProduct.product_shortcode = "BP001";
objProduct.page_url = "https://example.com/budget-planner";
objProduct.has_uspsdelivery = true;
objProduct.is_active = true;
objProduct.show_bestsellertag = true;
objProduct.show_newtag = false;
objProduct.is_outofstock = false;
objProduct.is_product_visbileornot = true;
objProduct.language = "en";
objProduct.star_summary = new StarSummary();
objProduct.star_summary.rating1 = 2;
objProduct.star_summary.rating2 = 5;
objProduct.star_summary.rating3 = 10;
objProduct.star_summary.rating4 = 20;
objProduct.star_summary.rating5 = 100;
objProduct.star_summary.total_review = 4.6;
objProduct.star_summary.total_review_count = 137;
objProduct.subproduct_details = new List();
SubProduct subProduct = new SubProduct();
subProduct.subproductname = "Standard Edition";
subProduct.image_url = "https://example.com/subproduct.jpg";
subProduct.has_shippingprice = true;
subProduct.shipping_price = 50;
subProduct.is_subproduct_visibleornot = true;
subProduct.price_quantinty = new List();
PriceQuantity priceQty = new PriceQuantity();
priceQty.quantity = 1;
priceQty.actual_price = 500;
priceQty.discounted_price = 450;
subProduct.price_quantinty.Add(priceQty);
objProduct.subproduct_details.Add(subProduct);
objProductRequest.products_list.Add(objProduct);
Code:
public ApiResponse
Create(string collectionName, BsonDocument document)
{
document["createdDate"] = DateTime.UtcNow;
document["updatedDate"] = DateTime.UtcNow;
_mongoDBContext.InsertOne(collectionName, document);
return new ApiResponse
{
Success = true,
TotalRecords = 1,
Message = "Document created successfully.",
Data = BsonHelper.ConvertDocument(document)
};
}
Response:
{
"code": 200,
"text": "Success",
"data": "Product added successfully"
}
/api/product/productlist_get
This method is used to get Product details. Returns response as JSON object.
{
"category_name": "string",
"product_name":"string",
"product_shortcode": "string",
"language":"string",
"PageNumber": 0,
"PageSize": 0
}
{
"code": 200,
"Success": true,
"Message": "Records retrieved successfully.",
"TotalRecords": 1,
"Data": [
{
"_id": "6a4cec1b914330eca486f614",
"category_name": "Others",
"products_list": [
{
"product_name": "Bankruptcy Court Records",
"description": "Instantly Order Your Bankruptcy Records Online",
"images": [
"https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bankruptcy-records-main.png"
],
"videos": [
"http://www.youtu.be/0mtD4TeK0DY?autoplay=0&autohide=1&controls=0&rel=0"
],
"minimum_quantity": 5,
"maximum_quantity": 1,
"default_quantity": 0,
"has_multiple_quantity": false,
"actual_price": 15,
"discounted_price": 49.95,
"product_shortcode": "BCR",
"page_url": "bankruptcy-court-records.aspx",
"has_uspsdelivery": true,
"is_active": true,
"show_bestsellertag": true,
"show_newtag": false,
"is_outofstock": false,
"is_product_visbileornot": true,
"language": 301,
"star_summary": {
"rating1": 0,
"rating2": 3,
"rating3": 41,
"rating4": 74,
"rating5": 353,
"total_review": 4.6,
"total_review_count": 471
},
"subproduct_details": [
{
"subproductname": "Complete Bankruptcy File",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bankruptcy-records-main.png",
"has_shippingprice": true,
"shipping_price": 19.95,
"is_subproduct_visibleornot": true,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 150,
"discounted_price": 49.95
}
]
},
{
"subproductname": "Bankruptcy Discharge Document",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bankruptcy-records-main.png",
"has_shippingprice": true,
"shipping_price": 9.95,
"is_subproduct_visibleornot": true,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 25,
"discounted_price": 34.95
}
]
}
]
},
{
"product_name": "Registros de la corte de bancarrota",
"description": "Solicite instantáneamente sus registros de bancarrota en línea",
"images": [
"https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bankruptcy-records-main (4).png",
"https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bankruptcy-records-main (4).png",
"https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bankruptcy-records-main (4).png",
"https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bankruptcy-records-main (4).png"
],
"videos": [
"http://www.youtu.be/0mtD4TeK0DY?autoplay=0&autohide=1&controls=0&rel=0"
],
"minimum_quantity": 5,
"maximum_quantity": 1,
"default_quantity": 0,
"has_multiple_quantity": false,
"actual_price": 15,
"discounted_price": 49.95,
"product_shortcode": "BCR",
"page_url": "bankruptcy-court-records.aspx",
"has_uspsdelivery": true,
"is_active": true,
"show_bestsellertag": true,
"show_newtag": false,
"is_outofstock": false,
"is_product_visbileornot": true,
"language": 302,
"star_summary": {
"rating1": 0,
"rating2": 3,
"rating3": 41,
"rating4": 74,
"rating5": 353,
"total_review": 4.6,
"total_review_count": 471
},
"subproduct_details": [
{
"subproductname": "Archivo completo de quiebra",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bankruptcy-records-main.png",
"has_shippingprice": true,
"shipping_price": 19.95,
"is_subproduct_visibleornot": true,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 150,
"discounted_price": 49.95
}
]
},
{
"subproductname": "Documento de descarga de bancarrota",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bankruptcy-records-main (1).png",
"has_shippingprice": true,
"shipping_price": 9.95,
"is_subproduct_visibleornot": true,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 25,
"discounted_price": 10
}
]
}
]
}
]
}
]
}
{
"code": 0,
"text": "Failed",
"additionalText": "",
"paging": null,
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"additionalText": "Unexpected error occurred",
"paging": null,
"data": null
}
Request:
class ProductGetRequest
{
public string category_name { get; set; }
public string product_name { get; set; }
public string product_shortcode { get; set; }
public string language { get; set; }
}
ProductGetRequest objProductRequest = newProductGetRequest();
objProductRequest.category_name="Others";
objProductRequest.product_name = "Teen Books";
objProductRequest.product_shortcode = "TB";
objProductRequest.language ="English"
Code:
public ApiResponse> GetAll(string collectionName, FilterDefinition filter, PaginationRequest request)
{
var sort = Builders.Sort.Descending("_id");
var totalRecords = _mongoDBContext.CountDocuments(collectionName, filter);
var documents = _mongoDBContext.GetPagedData( collectionName,filter,sort,request.PageNumber,request.PageSize);
var response = documents
.Select(BsonHelper.ConvertDocument)
.ToList();
return new ApiResponse>
{
Success = true,
Message = response.Any()
? "Records retrieved successfully."
: "No records found.",
TotalRecords = totalRecords,
Data = response
};
}
/api/product/productlistby_search
This method is used to Search Product details. Returns response as JSON object.
{
"searchText":"string",
"PageNumber": 0,
"PageSize": 0
}
{
"code": 200,
"Success": true,
"Message": "Records retrieved successfully.",
"TotalRecords": 1,
"Data": [
{
"_id": "6a4cec1b914330eca486f613",
"category_name": "Finance",
"products_list": [
{
"product_name": "Budget Planner",
"description": "Get your portable budget planner book now and take control of your finances!\n\n",
"images": [
"https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bp-open.webp"
],
"videos": [
"https://www.youtube.com/embed/0mtD4TeK0DY?autoplay=0&autohide=1&controls=0&rel=0"
],
"minimum_quantity": 5,
"maximum_quantity": 1,
"default_quantity": 1,
"has_multiple_quantity": true,
"actual_price": 15,
"discounted_price": 20,
"product_shortcode": "BP",
"page_url": "budget-planner.aspx",
"has_uspsdelivery": true,
"is_active": true,
"show_bestsellertag": true,
"show_newtag": false,
"is_outofstock": false,
"is_product_visbileornot": true,
"language": 301,
"star_summary": {
"rating1": 0,
"rating2": 0,
"rating3": 35,
"rating4": 323,
"rating5": 1047,
"total_review": 4.9,
"total_review_count": 1405
},
"subproduct_details": [
{
"subproductname": "Navy-Blue",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/navy-blue-bp.webp",
"has_shippingprice": false,
"shipping_price": 0,
"is_subproduct_visibleornot": true,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 15,
"discounted_price": 20
},
{
"quantity": 2,
"actual_price": 40,
"discounted_price": 30
},
{
"quantity": 3,
"actual_price": 60,
"discounted_price": 40
},
{
"quantity": 4,
"actual_price": 80,
"discounted_price": 50
},
{
"quantity": 5,
"actual_price": 100,
"discounted_price": 60
}
]
},
{
"subproductname": "Emerald-Green",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/emerald-bp.png",
"has_shippingprice": false,
"shipping_price": 0,
"is_subproduct_visibleornot": false,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 20,
"discounted_price": 10
},
{
"quantity": 2,
"actual_price": 25,
"discounted_price": 15
},
{
"quantity": 3,
"actual_price": 35,
"discounted_price": 20
},
{
"quantity": 4,
"actual_price": 35,
"discounted_price": 25
},
{
"quantity": 5,
"actual_price": 40,
"discounted_price": 30
}
]
},
{
"subproductname": "Black",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/black.png",
"has_shippingprice": false,
"shipping_price": 0,
"is_subproduct_visibleornot": false,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 20,
"discounted_price": 15
},
{
"quantity": 2,
"actual_price": 25,
"discounted_price": 20
},
{
"quantity": 3,
"actual_price": 30,
"discounted_price": 25
},
{
"quantity": 4,
"actual_price": 37,
"discounted_price": 30
},
{
"quantity": 5,
"actual_price": 40,
"discounted_price": 35
}
]
}
]
},
{
"product_name": "Planificadora de presupuesto",
"description": "¡Obtenga su libro planificador de presupuesto portátil ahora y tome el control de sus finanzas!",
"images": [
" https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bp.png",
"https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bp-open.png",
"https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/budget-planner-2.png",
"https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/stickers.png"
],
"videos": [
"https://www.youtube.com/embed/0mtD4TeK0DY?autoplay=0&autohide=1&controls=0&rel=0"
],
"minimum_quantity": 5,
"maximum_quantity": 1,
"default_quantity": 1,
"has_multiple_quantity": true,
"actual_price": 40,
"discounted_price": 20,
"product_shortcode": "BP",
"page_url": "budget-planner.aspx",
"has_uspsdelivery": true,
"is_active": true,
"show_bestsellertag": true,
"show_newtag": false,
"is_outofstock": false,
"is_product_visbileornot": true,
"language": 302,
"star_summary": {
"rating1": 0,
"rating2": 0,
"rating3": 35,
"rating4": 323,
"rating5": 1047,
"total_review": 4.9,
"total_review_count": 1405
},
"subproduct_details": [
{
"subproductname": "Azul-marino",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/bp.webp",
"has_shippingprice": false,
"shipping_price": 0,
"is_subproduct_visibleornot": true,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 15,
"discounted_price": 20
},
{
"quantity": 2,
"actual_price": 40,
"discounted_price": 30
},
{
"quantity": 3,
"actual_price": 60,
"discounted_price": 40
},
{
"quantity": 4,
"actual_price": 80,
"discounted_price": 50
},
{
"quantity": 5,
"actual_price": 100,
"discounted_price": 60
}
]
},
{
"subproductname": "Verde Esmeralda",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/emerald-bp.png",
"has_shippingprice": false,
"shipping_price": 0,
"is_subproduct_visibleornot": false,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 20,
"discounted_price": 10
},
{
"quantity": 2,
"actual_price": 25,
"discounted_price": 15
},
{
"quantity": 3,
"actual_price": 35,
"discounted_price": 20
},
{
"quantity": 4,
"actual_price": 35,
"discounted_price": 25
},
{
"quantity": 5,
"actual_price": 40,
"discounted_price": 30
}
]
},
{
"subproductname": "Negro",
"image_url": "https://s3.amazonaws.com/TESTCCEDU/CCPRODUCTSIMAGES/black.png",
"has_shippingprice": false,
"shipping_price": 0,
"is_subproduct_visibleornot": false,
"price_quantinty": [
{
"quantity": 1,
"actual_price": 20,
"discounted_price": 15
},
{
"quantity": 2,
"actual_price": 25,
"discounted_price": 20
},
{
"quantity": 3,
"actual_price": 30,
"discounted_price": 25
},
{
"quantity": 4,
"actual_price": 37,
"discounted_price": 30
},
{
"quantity": 5,
"actual_price": 40,
"discounted_price": 35
}
]
}
]
}
]
}
]
}
{
"code": 0,
"text": "Failed",
"additionalText": "",
"paging": null,
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"additionalText": "Unexpected error occurred",
"paging": null,
"data": null
}
Request:
{
public string searchText { get; set; }
}
Code:
public ApiResponse> Search(string searchText)
{
var regex = new BsonRegularExpression(searchText, "i");
var pipeline = new[]
{
// Match category or product
new BsonDocument("$match",
new BsonDocument("$or", new BsonArray
{
new BsonDocument("category_name", regex),
new BsonDocument("products_list.product_name", regex),
new BsonDocument("products_list.product_shortcode", regex)
})),
// Return only matching products
new BsonDocument("$project",
new BsonDocument
{
{ "_id", 1 },
{ "category_name", 1 },
{
"products_list",
new BsonDocument("$cond",
new BsonArray
{
// If category matches return all products
new BsonDocument("$regexMatch",
new BsonDocument
{
{ "input", "$category_name" },
{ "regex", searchText },
{ "options", "i" }
}),
"$products_list",
// Else return only matching products
new BsonDocument("$filter",
new BsonDocument
{
{ "input", "$products_list" },
{ "as", "product" },
{
"cond",
new BsonDocument("$or", new BsonArray
{
new BsonDocument("$regexMatch",
new BsonDocument
{
{ "input", "$$product.product_name" },
{ "regex", searchText },
{ "options", "i" }
}),
new BsonDocument("$regexMatch",
new BsonDocument
{
{ "input", "$$product.product_shortcode" },
{ "regex", "^" + searchText + "$" },
{ "options", "i" }
})
})
}
})
})
}
})
};
var documents = _mongoDBContext.Aggregate("Products", pipeline);
var response = documents
.Select(BsonHelper.ConvertDocument)
.ToList();
return new ApiResponse>
{
Success = true,
Message = response.Any()
? "Records retrieved successfully."
: "No records found.",
TotalRecords = response.Count,
Data = response
};
}
Response:
{
"code": 200,
"text": "Success",
"data": [
{
"category_name": "Books",
"products_list": [
{
"product_name": "MongoDB Guide",
"product_shortcode": "BK01"
}
]
}
]
}
api/user/userdetails_add
This method is used to create new User. Returns response as JSON object.
{
"email": "string",
"password": "string",
"enrollments":
{
"course_type ":"string",
"account_type ":"string",
"language ":"string",
"userfirst_name ":"string",
"userlast_name ":"string",
"spouse_details":
{
"first_name":"string",
"last_name":"string"
},
"contact_details":
{
"phone_number":"string",
"sms_optIn":true,
"allow_receive_sms":true,
"address":{
"address1":"string",
"city":"string",
"state":"string",
"zip_code":"string"
},
"household_size":int,
"attorney_information":
{
"attorney_email":"string",
"attorney_name":"string",
"attorney_phone":"string",
"billing_code":"string"
},
"payment_flags":
{
"course_paid":true,
"certificate_paid":true,
"video_paid":true,
"filing_paid":true
},
"identity_verification":
{
"verifyIdentity_question":"string",
"verifyIdentity_answer":"string",
"verifyIdentity_spouse_question":"string",
"verifyIdentity_spouse_answer":"string"
},
"caseinfo":
{
"case_number":"string",
"user_ssn":"string",
"spouse_ssn":"string",
"judicial_district_state":"string",
"judicial_district_county":"string",
"chapter_number":"string"
},
"is_newsletter_remainder":true
},
"creditCards":
{
"first_name":"string",
"last_name":"string",
"credit_card_number":"string",
"card_type":"string",
"expiry_month":"string",
"expiry_year":"string",
"is_default":true
}
}
| Parameters | Validation |
|---|---|
| Required and should be valid. | |
| password | Required |
| course_type | Required |
| account_type | Required |
| language | Required |
| userfirst_name | Required |
| userlast_name | Required |
| phone_number | Required and should be 10 digits. |
| sms_optIn | Required |
| allow_receive_sms | Required |
| address1 | Required |
| city | Required |
| state | Required |
| zip_code | Required |
| household_size | Required |
| verifyIdentity_question | Required |
| verifyIdentity_answer | Required |
| user_ssn | Required |
| judicial_district_state | Required |
| is_newsletter_remainder | Required |
| first_name | Required |
| last_name | Required |
| credit_card_number | Required |
| card_type | Required |
| expiry_month | Required |
| expiry_year | Required |
| is_default | Required |
{
"code": 200,
"text": "Success",
"data": "User added successfully"
}
{
"code": 0,
"text": "User doesn't Exsist'",
"data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"data": null
}
Request:
public class UserRequest
{
public string email { get; set; }
public string password { get; set; }
public Listenrollments { get; set; } = new List();
public ListcreditCards { get; set; } = new List();
}
public class Enrollment
{
public string course_type { get; set; }
public string account_type { get; set; }
public string language { get; set; }
public string userfirst_name { get; set; }
public string userlast_name { get; set; }
public SpouseDetails spouse_details { get; set; }
public ContactDetails contact_details { get; set; }
public int household_size { get; set; }
public AttorneyAddressRequest attorney_information { get; set; }
public PaymentFlags payment_flags { get; set; }
public IdentityVerification identity_verification { get; set; }
public CaseInfo caseinfo { get; set; }
public bool is_newsletter_remainder { get; set; }
}
public class SpouseDetails{
public string first_name { get; set; }
public string last_name { get; set; }
}
public class ContactDetails
{
public string phone_number { get; set; }
public bool sms_optIn { get; set; }
public bool allow_receive_sms { get; set; }
public AddressDetails address { get; set; }
}
public class AddressDetails
{
public string address1 { get; set; }
public string city { get; set; }
public string state { get; set; }
public string zip_code { get; set; }
}
public class AttorneyAddressRequest
{
public string attorney_email { get; set; }
public string attorney_name { get; set; }
public string attorney_phone { get; set; }
public string billing_code { get; set; }
}
public class PaymentFlags
{
public bool course_paid { get; set; }
public bool certificate_paid { get; set; }
public bool video_paid { get; set; }
public bool filing_paid { get; set; }
}
public class IdentityVerification
{
public string verifyIdentity_question { get; set; }
public string verifyIdentity_answer { get; set; }
public string verifyIdentity_spouse_question { get; set; }
public string verifyIdentity_spouse_answer { get; set; }
}
public class CaseInfo
{
public string case_number { get; set; }
public string user_ssn { get; set; }
public string spouse_ssn { get; set; }
public string judicial_district_state { get; set; }
public string judicial_district_county { get; set; }
public string chapter_number { get; set; }
}
public class CreditCard
{
public string first_name { get; set; }
public string last_name { get; set; }
public string credit_card_number { get; set; }
public string card_type { get; set; }
public string expiry_month { get; set; }
public string expiry_year { get; set; }
public bool is_default { get; set; }
}
UserRequest objUserRequest = new UserRequest();
objUserRequest.email = "sampleapi";
objUserRequest.password ="samples123";
objUserRequest.enrollments=new Enrollment();
objUserRequest.enrollments.course_type ="cc";
objUserRequest.enrollments.account_type = "single";
objUserRequest.enrollments.language = "English";
objUserRequest.enrollments.userfirst_name = "rssr";
objUserRequest.enrollments.userlast_name = "jk";
enrollments.spouse_details=new SpouseDetails();
objUserRequest.enrollments.spouse_details.first_name = "nancy";
objUserRequest.enrollments.spouse_details.last_name = "byer";
enrollments.contact_details=new ContactDetails();
objUserRequest.enrollments.contact_details.phone_number = "1234567891";
objUserRequest.enrollments.contact_details.sms_optIn = true;
objUserRequest.enrollments.contact_details.allow_receive_sms = true;
contact_details.address=new AddressDetails();
objUserRequest.enrollments.contact_details.address.address1 = "westend";
objUserRequest.enrollments.contact_details.address.city = "Missouri";
objUserRequest.enrollments.contact_details.address.state = "st.louis";
objUserRequest.enrollments.contact_details.address.zip_code = "22525";
objUserRequest.enrollments.household_size =1;
enrollments.attorney_information=new AttorneyAddressRequest();
objUserRequest.enrollments.attorney_information.attorney_email ="attorney2gmail.com";
objUserRequest.enrollments.attorney_information.attorney_name = "firstattorney";
objUserRequest.enrollments.attorney_information.attorney_phone = "lastattorney";
objUserRequest.enrollments.attorney_information.billing_code = "crdw11";
enrollments.payment_flags=new PaymentFlags();
objUserRequest.enrollments.payment_flags.course_paid = yes;
objUserRequest.enrollments.payment_flags.certificate_paid = yes;
objUserRequest.enrollments.payment_flags.video_paid = yes;
objUserRequest.enrollments.payment_flags.filing_paid = yes;
enrollments.identity_verification=new IdentityVerification();
objUserRequest.enrollments.identity_verification.verifyIdentity_question = "Born place";
objUserRequest.enrollments.identity_verification.verifyIdentity_answer = "jcahd";
objUserRequest.enrollments.identity_verification.verifyIdentity_spouse_question = "fav show";
objUserRequest.enrollments.identity_verification.verifyIdentity_spouse_answer = "bjhahs";
enrollments.caseinfo=new CaseInfo();
objUserRequest.enrollments.caseinfo.case_number = 1123444525;
objUserRequest.enrollments.caseinfo.user_ssn = 1550;
objUserRequest.enrollments.caseinfo.spouse_ssn = 2550;
objUserRequest.enrollments.caseinfo.judicial_district_state = "bdfgsdv";
objUserRequest.enrollments.caseinfo.judicial_district_county = "fvsdf";
objUserRequest.enrollments.caseinfo.chapter_number = 14;
objUserRequest.enrollments.is_newsletter_remainder = yes;
objUserRequest.creditCards=new CreditCard();
objUserRequest.creditCards.first_name = "tom";
objUserRequest.creditCards.last_name = "louis";
objUserRequest.creditCards.credit_card_number = "xxxxxxxxxxxx7585";
objUserRequest.creditCards.card_type = "visa";
objUserRequest.creditCards.expiry_month = "04";
objUserRequest.creditCards.expiry_year = "2050";
objUserRequest.creditCards.is_default = yes;
Code:
public ApiResponseCreate(string collectionName, BsonDocument document)
{
if (!ValidateDocument(document, out string errorMessage))
{
return new ApiResponse
{
Success = false,
Message = errorMessage
};
}
document["createdDate"] = DateTime.UtcNow;
document["updatedDate"] = DateTime.UtcNow;
_mongoDBContext.InsertOne(collectionName, document);
return new ApiResponse
{
Success = true,
TotalRecords = 1,
Message = "Document created successfully.",
Data = BsonHelper.ConvertDocument(document)
};
}
}
private bool ValidateDocument(BsonDocument document, out string message)
{
foreach (var element in document.Elements)
{
if (element.Value.IsBsonDocument)
{
if (!ValidateDocument(element.Value.AsBsonDocument, out message))
return false;
}
else
{
// Email Validation
if (element.Name.ToLower().Contains("email") && element.Value.IsString)
{
try
{
string email = element.Value.AsString;
var mail = new MailAddress(email);
if (mail.Address != email)
{
message = "Invalid email format.";
return false;
}
}
catch
{
message = "Invalid email format.";
return false;
}
}
// ADD PHONE VALIDATION HERE
if (element.Name.ToLower().Contains("phone") && element.Value.IsString)
{
string phone = element.Value.AsString.Trim();
if (!System.Text.RegularExpressions.Regex.IsMatch(phone, @"^\d{10}$"))
{
message = "Phone number must contain exactly 10 digits.";
return false;
}
}
}
}
message = string.Empty;
return true;
}
Response:
{
"code": 200,
"text": "Success",
"data": "User added successfully"
}
/api/user/userdeatilslist_get
This method is used to get User details. Returns response as JSON object.
{
"email": "string",
"first_name": "string",
"last_name": "string",
"PageNumber": 0,
"PageSize": 0
}
{
"Success": true,
"Message": "Records retrieved successfully.",
"TotalRecords": 1,
"Data": [
{
"_id": "6a4f52e567713a7e384c992f",
"email": "harika.ganapathi+561@dharani.co.in",
"password": "1",
"enrollments": [
{
"course_type": "Edu",
"account_type": "joint",
"language": "English",
"userfirst_name": "harika",
"userlast_name": "harika",
"contact_details": {
"phone_number": "1234567890",
"sms_optIn": true,
"allow_receive_sms": true,
"address": {
"address1": "123 random",
"city": "GNT",
"state": "AL",
"zip_code": "12345"
}
},
"household_size": 2,
"payment_flags": {
"course_paid": true,
"certificate_paid": false,
"video_paid": false,
"filing_paid": false
},
"caseinfo": {
"case_number": "12-45678",
"user_ssn": "1111",
"judicial_district_state": "ALASKA",
"chapter_number": "7",
"primary_judicial_district_code": "730"
},
"is_newsletter_remainder": false,
"user_status_details": {
"is_user_active": true
}
},
{
"course_type": "CC",
"account_type": "joint",
"language": "English",
"userfirst_name": "harika",
"userlast_name": "Ganapathi",
"contact_details": {
"phone_number": "1234567890",
"sms_optIn": true,
"allow_receive_sms": true,
"address": {
"address1": "123 random",
"city": "GNT",
"state": "AL",
"zip_code": "12345"
}
},
"household_size": 2,
"payment_flags": {
"course_paid": true,
"certificate_paid": false,
"video_paid": false,
"filing_paid": false
},
"identity_verification": {
"verifyIdentity_question": "a",
"verifyIdentity_answer": "b",
"verifyIdentity_spouse_question": "a",
"verifyIdentity_spouse_answer": "b"
},
"caseinfo": {
"user_ssn": "1111",
"judicial_district_state": "ALASKA",
"primary_judicial_district_code": "1"
},
"is_newsletter_remainder": false,
"user_status_details": {
"is_user_active": true
}
}
],
"creditCards": [
{
"first_name": "harika",
"last_name": "harika",
"credit_card_number": "4111111111111111",
"card_type": "Visa",
"expiry_month": "05",
"expiry_year": "28",
"is_default": true
}
],
"createdDate": "2026-07-09T07:51:01.908Z",
"updatedDate": "2026-07-09T07:51:01.908Z"
}
]
}
{
"Success": true,
"Message": "No records found.",
"TotalRecords": 0,
"Data": []
}
{
"code": -1,
"text": "Unexpected error occurred",
"additionalText": "Unexpected error occurred",
"paging": null,
"data": null
}
Request:
public class UserRequestGet
{
public string email { get; set; }
public string first_name { get; set; }
public string last_name { get; set; }
}
UserRequestGet objUserRequestGet = new UserRequestGet();
objUserRequestGet.email="sample@gmail.com";
objUserRequestGet.first_name = "Sample First Name";
objUserRequestGet.last_name = "Sample last Name";
Code:
public IHttpActionResult Get([FromBody] UserRequestGet request)
{
if (request == null)
return BadRequest("Request body is required.");
if (!ModelState.IsValid)
{
var errors = ModelState.Values
.SelectMany(x => x.Errors)
.Select(x => x.ErrorMessage)
.ToList();
return Content(HttpStatusCode.BadRequest, new
{
Success = false,
Message = "Validation Failed",
Errors = errors
});
}
var filter = Builders
.Filter.Empty;
// Email
if (!string.IsNullOrWhiteSpace(request.email))
{
filter &= Builders
.Filter.Eq(
"email",
request.email);
}
// First Name
if (!string.IsNullOrWhiteSpace(request.first_name))
{
filter &= Builders
.Filter.Regex(
"enrollments.userfirst_name",
new BsonRegularExpression(request.first_name, "i"));
}
// Last Name
if (!string.IsNullOrWhiteSpace(request.last_name))
{
filter &= Builders
.Filter.Regex(
"enrollments.userlast_name",
new BsonRegularExpression(request.last_name, "i"));
}
var result = _genericService.GetAll(
"UserDetails",
filter,
request);
return Ok(result);
}
/api/user/userdetails_update
This method is used to update User details. Returns response as JSON object.
{
"email": "string",
"first_name": "string",
"last_name": "string",
"PageNumber": 0,
"PageSize": 0
}
| Parameters | Validation |
|---|---|
| Required | |
| first_name | Required |
| last_name | Required |
{
Success = true,
Message = "User updated successfully."
};
{
"Success": false,
"Message": "User not found.",
"TotalRecords": 0,
"Data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"additionalText": "Unexpected error occurred",
"paging": null,
"data": null
}
Request:
public class UserDetailsUpdateRequest
{
public string first_name { get; set; }
public string last_name { get; set; }
public string email { get; set; }
public string language { get; set; }
public string course_type { get; set; }
}
UserDetailsUpdateRequest objUserDetailsUpdateRequest = new UserDetailsUpdateRequest();
objUserDetailsUpdateRequest.first_name = "Sample First Name";
objUserDetailsUpdateRequest.last_name = "Sample last Name";
objUserDetailsUpdateRequest.email="sample@gmail.com";
objUserDetailsUpdateRequest.language = "EN",
objUserDetailsUpdateRequest.course_type = "Edu"
Code:
public ApiResponse UpdateUser(UserDetailsUpdateRequest request)
{
var filter = Builders.Filter.Eq("email", request.email);
var existingUser = _mongoDBContext.FindOne("UserDetails",filter);
if (existingUser == null)
{
return new ApiResponse
{
Success = false,
Message = "User not found."
};
}
// Check Course Exists
var enrollments = existingUser["enrollments"].AsBsonArray;
bool courseExists = enrollments.Any(x =>
x["course_type"].AsString.Equals(
request.course_type,
StringComparison.OrdinalIgnoreCase));
if (!courseExists)
{
return new ApiResponse
{
Success = false,
Message = "Course type not found."
};
}
var updates = new List>();
if (!string.IsNullOrWhiteSpace(request.first_name))
{
updates.Add(Builders.Update.Set("enrollments.$[course].userfirst_name",request.first_name));
}
if (!string.IsNullOrWhiteSpace(request.last_name))
{
updates.Add(Builders.Update.Set(
"enrollments.$[course].userlast_name",
request.last_name));
}
if (!string.IsNullOrWhiteSpace(request.language))
{
updates.Add(Builders.Update.Set(
"enrollments.$[course].language",
request.language));
}
if (!updates.Any())
{
return new ApiResponse
{
Success = false,
Message = "No fields available to update."
};
}
var updateDefinition = Builders.Update.Combine(updates);
var options = new UpdateOptions
{
ArrayFilters = new List
{
new BsonDocumentArrayFilterDefinition(
new BsonDocument("course.course_type", request.course_type))
}
};
_mongoDBContext.UpdateOne(
"UserDetails",
filter,
updateDefinition,
options);
return new ApiResponse
{
Success = true,
Message = "User updated successfully."
};
}
/api/exam/userexamdetails_add
This method is used to create new Exam . Returns response as JSON object.
{
"user_email": "string",
"question1": {
"user_answer": "string"
},
"question2": {
"user_answer": "string"
},
"question3": {
"user_answer": "string"
},
"question4": {
"user_answer": "string"
},
"question5": {
"user_answer": "string"
},
"question6": {
"user_answer": "string"
},
"question7": {
"user_answer": "string"
},
"question8": {
"user_answer": "string"
},
"question9": {
"user_answer": "string"
},
"question10": {
"user_answer": "string"
},
"question11": {
"user_answer": "string"
},
"question12": {
"user_answer": "string"
},
"question13": {
"user_answer": "string"
},
"question14": {
"user_answer": "string"
},
"question15": {
"user_answer": "string"
},
"question16": {
"user_answer": "string"
},
"question17": {
"user_answer": "string"
},
"question18": {
"user_answer": "string"
},
"question19": {
"user_answer": "string"
},
"question20": {
"user_answer": "string"
}
}
}
| Parameters | Validation |
|---|---|
| user_email | Required |
| question1 | Required |
| question2 | Required |
| question3 | Required |
| question4 | Required |
| question5 | Required |
| question6 | Required |
| question7 | Required |
| question8 | Required |
| question9 | Required |
| question10 | Required |
| question11 | Required |
| question12 | Required |
| question13 | Required |
| question14 | Required |
| question15 | Required |
| question16 | Required |
| question17 | Required |
| question18 | Required |
| question19 | Required |
| question20 | Required |
{
"code": 200,
"text": "Success",
"data": "Exam added successfully"
}
{
"Success": false,
"Message": "User email not found.",
"TotalRecords": 0,
"Data": null
}
{
"code": -1,
"text": "Unexpected error occurred",
"data": null
}
Request:
public class ExamRequest
{
public string user_email { get; set; }
public Questions question1 { get; set; }
public Questions question2 { get; set; }
public Questions question3 { get; set; }
public Questions question4 { get; set; }
public Questions question5 { get; set; }
public Questions question6 { get; set; }
public Questions question7 { get; set; }
public Questions question8 { get; set; }
public Questions question9 { get; set; }
public Questions question10 { get; set; }
public Questions question11 { get; set; }
public Questions question12 { get; set; }
public Questions question13 { get; set; }
public Questions question14 { get; set; }
public Questions question15 { get; set; }
public Questions question16 { get; set; }
public Questions question17 { get; set; }
public Questions question18 { get; set; }
public Questions question19 { get; set; }
public Questions question20 { get; set; }
}
public class Questions
{
public string user_answer { get; set; }
}
ExamRequest objExamRequest = new ExamRequest();
objExamRequest.user_email = "john.doe@gmail.com";
objExamRequest.question1 = new Questions();
objExamRequest.question1.user_answer = "a";
objExamRequest.question2 = new Questions();
objExamRequest.question2.user_answer = "c";
objExamRequest.question3 = new Questions();
objExamRequest.question3.user_answer = "b";
objExamRequest.question4 = new Questions();
objExamRequest.question4.user_answer = "d";
objExamRequest.question5 = new Questions();
objExamRequest.question5.user_answer = "a";
objExamRequest.question6 = new Questions();
objExamRequest.question6.user_answer = "b";
objExamRequest.question7 = new Questions();
objExamRequest.question7.user_answer = "d";
objExamRequest.question8 = new Questions();
objExamRequest.question8.user_answer = "c";
objExamRequest.question9 = new Questions();
objExamRequest.question9.user_answer = "a";
objExamRequest.question10 = new Questions();
objExamRequest.question10.user_answer = "d";
objExamRequest.question11 = new Questions();
objExamRequest.question11.user_answer = "b";
objExamRequest.question12 = new Questions();
objExamRequest.question12.user_answer = "c";
objExamRequest.question13 = new Questions();
objExamRequest.question13.user_answer = "a";
objExamRequest.question14 = new Questions();
objExamRequest.question14.user_answer = "d";
objExamRequest.question15 = new Questions();
objExamRequest.question15.user_answer = "c";
objExamRequest.question16 = new Questions();
objExamRequest.question16.user_answer = "b";
objExamRequest.question17 = new Questions();
objExamRequest.question17.user_answer = "a";
objExamRequest.question18 = new Questions();
objExamRequest.question18.user_answer = "d";
objExamRequest.question19 = new Questions();
objExamRequest.question19.user_answer = "b";
objExamRequest.question20 = new Questions();
objExamRequest.question20.user_answer = "c";
Code:
public ApiResponse CreateExam(ExamRequest request)
{
var userFilter = Builders.Filter.And(
Builders.Filter.Eq("email", request.user_email),
Builders.Filter.Eq("enrollments.course_type", "Edu"));
var userProjection = Builders.Projection.Include("_id").Include("email");
var user = _mongoDBContext.FindOne("UserDetails",userFilter,userProjection);
if (user == null)
{
return new ApiResponse
{
Success = false,
Message = "User email not found."
};
}
var examFilter = Builders.Filter.Eq("user_email", request.user_email);
var examUser = _mongoDBContext.FindOne("Exam_UserDetails",examFilter);
if (examUser != null && examUser.Contains("exam_status") &&
examUser["exam_status"].AsString == "Pass")
{
return new ApiResponse
{
Success = false,
Message = "User is not allowed to write the exam."
};
}
var examProjection = Builders.Projection.Include("questions.question_id").Include("questions.answer");
var examDocument = _mongoDBContext.FindOne("ExamQuestions", Builders.Filter.Empty, examProjection);
if (examDocument == null)
{
return new ApiResponse
{
Success = false,
Message = "Exam questions not found."
};
}
var questions = examDocument["questions"].AsBsonArray;
int correctAnswers = 0;
var userAnswers = new BsonArray();
foreach (BsonDocument question in questions)
{
var property = typeof(ExamRequest).GetProperty($"question{question["question_id"]}");
if (property == null)
continue;
var answer = (Questions)property.GetValue(request);
if (answer != null &&
answer.user_answer == question["answer"].AsString)
{
correctAnswers++;
}
userAnswers.Add(new BsonDocument
{
{ "questionId", question["question_id"] },
{ "user_answer", answer?.user_answer ?? "" },
{ "correct_answer", question["answer"] }
});
}
if (examUser == null)
{
var document = new BsonDocument
{
{ "user_email", request.user_email },
{ "exam_attempts", 1 },
{ "exam_status", correctAnswers >= 14 ? "Pass" : "Fail" },
{ "created_date", DateTime.UtcNow },
{ "updated_date", DateTime.UtcNow },
{ "questions", userAnswers } };
return Create("Exam_UserDetails", document);
}
examUser["exam_attempts"] = examUser["exam_attempts"].AsInt32 + 1;
examUser["exam_status"] = correctAnswers >= 14 ? "Pass" : "Fail";
examUser["updated_date"] = DateTime.UtcNow;
foreach (var answer in userAnswers)
{
examUser["questions"].AsBsonArray.Add(answer);
}
return _genericService.Upsert("Exam_UserDetails", examFilter, examUser);
}
/api/exam/userexamlist_get
This method is used to get Exam details. Returns response as JSON object.
{
"user_email": "string",
"exam_status": "string",
"PageNumber": 0,
"PageSize": 0
}
{
"Success": true,
"Message": "Records retrieved successfully.",
"TotalRecords": 1,
"Data": [
{
"_id": "6a4e3ec03624e6cb149a87b4",
"user_email": "apr17@g.c",
"exam_status": "Pass",
"exam_attempts": 1,
"created_date": "2020-04-17T07:50:45.423Z",
"attempts": [
{
"questions": [
{
"question_id": 1,
"user_answer": "c",
"correct_answer": "c"
},
{
"question_id": 2,
"user_answer": "c",
"correct_answer": "c"
},
{
"question_id": 3,
"user_answer": "a",
"correct_answer": "a"
},
{
"question_id": 4,
"user_answer": "a",
"correct_answer": "a"
},
{
"question_id": 5,
"user_answer": "a",
"correct_answer": "a"
},
{
"question_id": 6,
"user_answer": "c",
"correct_answer": "c"
},
{
"question_id": 19,
"user_answer": "a",
"correct_answer": "a"
},
{
"question_id": 20,
"user_answer": "c",
"correct_answer": "c"
},
{
"question_id": 13,
"user_answer": "d",
"correct_answer": "d"
},
{
"question_id": 14,
"user_answer": "a",
"correct_answer": "a"
},
{
"question_id": 15,
"user_answer": "a",
"correct_answer": "a"
},
{
"question_id": 16,
"user_answer": "b",
"correct_answer": "b"
},
{
"question_id": 17,
"user_answer": "d",
"correct_answer": "d"
},
{
"question_id": 18,
"user_answer": "b",
"correct_answer": "b"
},
{
"question_id": 7,
"user_answer": "a",
"correct_answer": "a"
},
{
"question_id": 8,
"user_answer": "c",
"correct_answer": "c"
},
{
"question_id": 9,
"user_answer": "d",
"correct_answer": "d"
},
{
"question_id": 10,
"user_answer": "b",
"correct_answer": "b"
},
{
"question_id": 11,
"user_answer": "a",
"correct_answer": "a"
},
{
"question_id": 12,
"user_answer": "b",
"correct_answer": "b"
}
]
}
]
}
]
}
{
"Success": true,
"Message": "No records found.",
"TotalRecords": 0,
"Data": []
}
{
"code": -1,
"text": "Unexpected error occurred",
"additionalText": "Unexpected error occurred",
"paging": null,
"data": null
}
Request:
public class ExamRequestGet
{
public string user_email { get; set; }
public string exam_status { get; set; }
}
ExamRequestGet objExamRequestGet = new AttorneyGetRequest();
ExamRequestGet.user_email = "rssr4@g.c";
ExamRequestGet.exam_status = "active";
Code:
public ApiResponse> GetAll(string collectionName, FilterDefinition filter, PaginationRequest request)
{
var sort = Builders.Sort.Descending("_id");
var totalRecords = _mongoDBContext.CountDocuments(collectionName, filter);
var documents = _mongoDBContext.GetPagedData(collectionName,filter,sort,request.PageNumber,request.PageSize);
var response = documents.Select(BsonHelper.ConvertDocument).ToList();
return new ApiResponse>
{
Success = true,
Message = response.Any()
? "Records retrieved successfully."
: "No records found.",
TotalRecords = totalRecords,
Data = response
};
}
/api/survey/surveydetails_add
This method is used to create new Servey . Returns response as JSON object.
{
"email": "string",
"overall_rating": 0,
"budget_importance": 0,
"money_management": 0,
"credit_wisely": 0,
"financial_crisis": 0,
"consumer_information": 0,
"goals_explained": 0,
"course_topics": 0,
"material": 0,
"course_content": 0,
"learned_useful": 0,
"home_budget": 0
}
| Parameters | Validation |
|---|---|
| Required | |
| overall_rating | Required |
| budget_importance | Required |
| money_management | Required |
| credit_wisely | Required |
| financial_crisis | Required |
| consumer_information | Required |
| goals_explained | Required |
| course_topics | Required |
| material | Required |
| course_content | Required |
| learned_useful | Required |
| home_budget | Required |
{
"code": 200,
"text": "Success",
"data": "Survey added successfully"
}
{
"Message": "Email doesn't Exist"
}
{
"code": -1,
"text": "Unexpected error occurred",
"data": null
}
Request:
public class SurveyRequest
{
public string email { get; set; }
public int overall_rating { get; set; }
public int budget_importance { get; set; }
public int money_management { get; set; }
public int credit_wisely { get; set; }
public int financial_crisis { get; set; }
public int consumer_information { get; set; }
public int goals_explained { get; set; }
public int course_topics { get; set; }
public int material { get; set; }
public int course_content { get; set; }
public int learned_useful { get; set; }
public int home_budget { get; set; }
}
SurveyRequest objSurveyRequest = new SurveyRequest();
objSurveyRequest.email = "sample@gmail.com";
objSurveyRequest.overall_rating = 5;
objSurveyRequest.budget_importance = 4;
objSurveyRequest.money_management = 5;
objSurveyRequest.credit_wisely = 3;
objSurveyRequest.financial_crisis = 4;
objSurveyRequest.consumer_information = 5;
objSurveyRequest.goals_explained = 4;
objSurveyRequest.course_topics = 5;
objSurveyRequest.material = 4;
objSurveyRequest.course_content = 5;
objSurveyRequest.learned_useful = 5;
objSurveyRequest.home_budget = 4;
Code:
public ApiResponse Upsert(string collectionName,FilterDefinition filter,BsonDocument document)
{
var updateDefinition = Builders.Update.Combine(document.Elements.Select(x =>Builders.Update.Set(x.Name, x.Value)));
var result = _mongoDBContext.UpsertOne(collectionName, filter, updateDefinition);
string message;
if (result.UpsertedId != null)
message = "Record created successfully.";
else if (result.ModifiedCount > 0)
message = "Record updated successfully.";
else
message = "No changes made.";
return new ApiResponse
{
Success = true,
Message = message,
Data = BsonHelper.ConvertDocument(document)
};
}