2025-11-15 11:14:31 +00:00
using System ;
using System.Collections.Generic ;
using System.Linq ;
using System.Web ;
using OSS.Repositories ;
using System.Web.Mvc ;
using OSS.Models ;
using System.Security ;
using Newtonsoft.Json.Linq ;
using Newtonsoft.Json ;
using System.Globalization ;
using System.IO ;
using System.Threading.Tasks ;
using Microsoft.Security.Application ;
using System.Net.Http ;
using System.Text ;
using System.Net.Http.Headers ;
using System.Security.AccessControl ;
using Rotativa ;
using System.Data.Entity.Migrations ;
using System.Web.WebPages ;
using System.Data.Entity.Validation ;
2025-11-18 20:59:21 +00:00
using System.Data.SqlClient ;
2025-11-18 22:13:59 +00:00
using System.Data ;
2025-11-15 11:14:31 +00:00
namespace OSS.Controllers
{
[Authorize]
public class NewCOIController : Controller
{
private OSSDBContext myContext = new OSSDBContext ( ) ;
public ActionResult Index ( )
{
return View ( ) ;
}
public ActionResult IndexExpansion ( )
{
return View ( ) ;
}
public ActionResult IndexAmendment ( )
{
return View ( ) ;
}
public ActionResult AmendmentApplication ( )
{
return View ( "AmendmentApplication" ) ;
}
public ActionResult Extension ( )
{
return View ( "Extension" ) ;
}
public ActionResult ExtensionIndex ( )
{
return View ( "ExtensionIndex" ) ;
}
public ActionResult PickUpOfficeAmendment ( )
{
return View ( "PickUpOfficeAmendment" ) ;
}
public ActionResult PickUpOfficeNew ( )
{
return View ( "PickUpOfficeNew" ) ;
}
public ActionResult PickUpOfficeExpansion ( )
{
return View ( "PickUpOfficeExpansion" ) ;
}
public ActionResult PickUpOfficeExtension ( )
{
return View ( "PickUpOfficeExtension" ) ;
}
public ActionResult ApplicationStatus ( long Id )
{
var selectData = myContext . ApplicationManagers . Where ( t = > t . ApplicationID = = Id ) . SingleOrDefault ( ) ;
Session [ "CompanyName" ] = selectData . CompanyName ;
Session [ "ProjectName" ] = selectData . ProjectName ;
Session [ "ProjectCode" ] = selectData . ProjectCode ;
Session [ "ApplicationDate" ] = selectData . CreatedDate ;
Session [ "ApplicationType" ] = selectData . ServiceName ;
Session [ "EvaluationStatus" ] = selectData . EvaluationStatus ;
Session [ "Comment" ] = selectData . Comments ;
return View ( "ApplicationStatus" ) ;
}
public ActionResult ApplicationStatuAmend ( long Id )
{
var selectData = myContext . ApplicationManagers . Where ( t = > t . ApplicationID = = Id ) . SingleOrDefault ( ) ;
Session [ "CompanyName" ] = selectData . CompanyName ;
Session [ "ProjectName" ] = selectData . ProjectName ;
Session [ "ProjectCode" ] = selectData . ProjectCode ;
Session [ "ApplicationDate" ] = selectData . CreatedDate ;
Session [ "ApplicationType" ] = selectData . ServiceName ;
Session [ "EvaluationStatus" ] = selectData . EvaluationStatus ;
Session [ "Comment" ] = selectData . Comments ;
return View ( "ApplicationStatuAmend" ) ;
}
public ActionResult ApplicationStatusComment ( long Id )
{
var selectData = myContext . ApplicationManagers . Where ( t = > t . ApplicationID = = Id ) . SingleOrDefault ( ) ;
Session [ "CompanyName" ] = selectData . CompanyName ;
Session [ "ProjectName" ] = selectData . ProjectName ;
Session [ "ProjectCode" ] = selectData . ProjectCode ;
Session [ "ApplicationDate" ] = selectData . CreatedDate ;
Session [ "ApplicationType" ] = selectData . ServiceName ;
Session [ "Comment" ] = selectData . Comments ;
return View ( "ApplicationStatusComment" ) ;
}
public ActionResult ApplicationStatusExtension ( long Id )
{
var selectData = myContext . ApplicationManagers . Where ( t = > t . ApplicationID = = Id ) . SingleOrDefault ( ) ;
Session [ "CompanyName" ] = selectData . CompanyName ;
Session [ "ProjectName" ] = selectData . ProjectName ;
Session [ "ProjectCode" ] = selectData . ProjectCode ;
Session [ "ApplicationDate" ] = selectData . CreatedDate ;
Session [ "ApplicationType" ] = selectData . ServiceName ;
Session [ "Comment" ] = selectData . Comments ;
return View ( "ApplicationStatusExtension" ) ;
}
public ActionResult ValidateAttachments ( )
{
2025-11-24 04:05:25 +00:00
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkApplicationForm = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Application Form" ) ;
if ( checkApplicationForm = = null )
{
TempData [ "error" ] = " Please upload Application form" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
var checkAttachmentBank = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Bank Statement" ) ;
if ( checkAttachmentBank = = null )
{
TempData [ "error" ] = " Please upload Bank Statement" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
var checkAttachmentBoard = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Board Resolution" ) ;
if ( checkAttachmentBoard = = null )
{
TempData [ "error" ] = " Please upload Board Resolution" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
var checkAttachmentBusinesP = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Business Plan" ) ;
if ( checkAttachmentBusinesP = = null )
{
TempData [ "error" ] = " Please upload Business Plan" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
var checkAttachmentInc = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "INCORPORATION" ) ;
if ( checkAttachmentInc = = null )
{
TempData [ "error" ] = " Please upload Certificate of Incorporation" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
2025-11-15 11:14:31 +00:00
return RedirectToAction ( "PickUpOfficeNew" ) ;
}
public ActionResult ValidateAttachmentsDeffered ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkApplicationForm = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Application Form" ) ;
if ( checkApplicationForm = = null )
{
TempData [ "error" ] = " Please upload Application form" ;
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
var checkAttachmentBank = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Bank Statement" ) ;
if ( checkAttachmentBank = = null )
{
TempData [ "error" ] = " Please upload Bank Statement" ;
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
var checkAttachmentBoard = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Board Resolution" ) ;
if ( checkAttachmentBoard = = null )
{
TempData [ "error" ] = " Please upload Board Resolution" ;
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
var checkAttachmentBusinesP = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Business Plan" ) ;
if ( checkAttachmentBusinesP = = null )
{
TempData [ "error" ] = " Please upload Business Plan" ;
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
var checkAttachmentInc = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "INCORPORATION" ) ;
if ( checkAttachmentInc = = null )
{
TempData [ "error" ] = " Please upload Certificate of Incorporation" ;
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
return RedirectToAction ( "ResubmitNew" ) ;
}
public ActionResult ValidateAttachmentsAmendment ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkApplicationForm = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Application Letter" ) ;
if ( checkApplicationForm = = null )
{
TempData [ "error" ] = " Please upload Application Letter" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
var checkAttachmentBank = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "TIC Certificate" ) ;
if ( checkAttachmentBank = = null )
{
TempData [ "error" ] = " Please upload TIC Certificate" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
var checkAttachmentBoard = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Brela Offical Search" ) ;
if ( checkAttachmentBoard = = null )
{
TempData [ "error" ] = " Please upload Brela Offical Search" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
var checkAttachmentBusinesP = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Progresss Report" ) ;
if ( checkAttachmentBusinesP = = null )
{
TempData [ "error" ] = " Please upload Progresss Report" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
var checkAttachmentInc = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Pictures of your Project" ) ;
if ( checkAttachmentInc = = null )
{
TempData [ "error" ] = " Please upload Pictures of your Project" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
return RedirectToAction ( "PickUpOfficeAmendment" ) ;
}
public ActionResult ValidateAttachmentsExpansion ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkApplicationForm = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Application Form" ) ;
if ( checkApplicationForm = = null )
{
TempData [ "error" ] = " Please upload Application form" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
var checkAttachmentBank = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Bank Statement" ) ;
if ( checkAttachmentBank = = null )
{
TempData [ "error" ] = " Please upload Bank Statement" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
var checkAttachmentBoard = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Board Resolution" ) ;
if ( checkAttachmentBoard = = null )
{
TempData [ "error" ] = " Please upload Board Resolution" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
var checkAttachmentBusinesP = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Business Plan" ) ;
if ( checkAttachmentBusinesP = = null )
{
TempData [ "error" ] = " Please upload Business Plan" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
var checkAttachmentCert = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "TIC Certificate" ) ;
if ( checkAttachmentBank = = null )
{
TempData [ "error" ] = " Please upload TIC Certificate" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
var checkAttachmentInc = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "INCORPORATION" ) ;
if ( checkAttachmentInc = = null )
{
TempData [ "error" ] = " Please upload Certificate of Incorporation" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
return RedirectToAction ( "PickUpOfficeExpansion" ) ;
}
public ActionResult ValidateAttachmentsAmendmentDeffered ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkApplicationForm = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Application Letter" ) ;
if ( checkApplicationForm = = null )
{
TempData [ "error" ] = " Please upload Application Letter" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
var checkAttachmentBank = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "TIC Certificate" ) ;
if ( checkAttachmentBank = = null )
{
TempData [ "error" ] = " Please upload TIC Certificate" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
var checkAttachmentBoard = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Brela Offical Search" ) ;
if ( checkAttachmentBoard = = null )
{
TempData [ "error" ] = " Please upload Brela Offical Search" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
var checkAttachmentBusinesP = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Progresss Report" ) ;
if ( checkAttachmentBusinesP = = null )
{
TempData [ "error" ] = " Please upload Progresss Report" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
var checkAttachmentInc = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Pictures of your Project" ) ;
if ( checkAttachmentInc = = null )
{
TempData [ "error" ] = " Please upload Pictures of your Project" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
return RedirectToAction ( "ResubmitAmendment" ) ;
}
public ActionResult ValidateAttachmentsExtension ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkApplicationForm = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Application Letter" ) ;
if ( checkApplicationForm = = null )
{
TempData [ "error" ] = " Please upload Application Letter" ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
var checkAttachmentAForm = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Application form" ) ;
if ( checkAttachmentAForm = = null )
{
TempData [ "error" ] = " Please upload Application form " ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
var checkAttachmentBank = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "TIC Certificate" ) ;
if ( checkAttachmentBank = = null )
{
TempData [ "error" ] = " Please upload TIC Certificate" ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
var checkAttachmentBoard = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Brela Offical Search" ) ;
if ( checkAttachmentBoard = = null )
{
TempData [ "error" ] = " Please upload Brela Offical Search" ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
var checkAttachmentBusinesP = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Progresss Report" ) ;
if ( checkAttachmentBusinesP = = null )
{
TempData [ "error" ] = " Please upload Progresss Report" ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
var checkAttachmentInc = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Pictures of your Project" ) ;
if ( checkAttachmentInc = = null )
{
TempData [ "error" ] = " Please upload Pictures of your Project" ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
TempData [ "success" ] = " Your application has been submitted , waiting for approval before generating control number" ;
//
return RedirectToAction ( "PickUpOfficeExtension" ) ;
//return RedirectToAction("WaitingApproval");
}
public ActionResult ValidateAttachmentsExtensionDeffered ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkApplicationForm = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Application Letter" ) ;
if ( checkApplicationForm = = null )
{
TempData [ "error" ] = " Please upload Application Letter" ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
var checkAttachmentBank = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "TIC Certificate" ) ;
if ( checkAttachmentBank = = null )
{
TempData [ "error" ] = " Please upload TIC Certificate" ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
var checkAttachmentBoard = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Brela Offical Search" ) ;
if ( checkAttachmentBoard = = null )
{
TempData [ "error" ] = " Please upload Brela Offical Search" ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
var checkAttachmentAForm = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Application form" ) ;
if ( checkAttachmentAForm = = null )
{
TempData [ "error" ] = " Please upload Application form " ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
var checkAttachmentBusinesP = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Progresss Report" ) ;
if ( checkAttachmentBusinesP = = null )
{
TempData [ "error" ] = " Please upload Progresss Report" ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
var checkAttachmentInc = myContext . AttachmentsList . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode & & t . AttachmentName = = "Pictures of your Project" ) ;
if ( checkAttachmentInc = = null )
{
TempData [ "error" ] = " Please upload Pictures of your Project" ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
TempData [ "success" ] = " Your application has been submitted , waiting for approval before generating control number" ;
return RedirectToAction ( "ResubmitExtension" ) ;
}
[HttpPost]
public ActionResult PostAppoloadedFile ( HttpPostedFileBase UploadedPdf , Attachments model )
{
String FileExt = Path . GetExtension ( UploadedPdf . FileName ) . ToUpper ( ) ;
if ( FileExt = = ".PDF" )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkFileExists = myContext . AttachmentsList . SingleOrDefault ( t = > t . AttachmentName = = model . AttachmentName & & t . ProjectCode = = ProjectCode ) ;
if ( checkFileExists = = null )
{
string fileName = null ;
string path = @"\\192.168.2.32\Attachments\" + Session [ "ProjectCode" ] . ToString ( ) ;
if ( model . UploadedPdf ! = null & & model . UploadedPdf . ContentLength > 0 & & model . UploadedPdf . ContentLength < = 7000000 )
{
try
{
fileName = model . AttachmentName + FileExt ;
if ( ! Directory . Exists ( path ) )
{
DirectoryInfo directory = new DirectoryInfo ( path ) ;
Directory . CreateDirectory ( path ) ;
}
string newpath = Path . Combine ( path , fileName ) ;
UploadedPdf . SaveAs ( newpath ) ;
Attachments addAttchment = new Attachments ( ) ;
addAttchment . AttachmentPath = Session [ "ProjectCode" ] . ToString ( ) + "/" + fileName ;
addAttchment . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addAttchment . UploadedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addAttchment . UploadedDate = DateTime . Now ;
addAttchment . AttachmentName = model . AttachmentName ;
myContext . AttachmentsList . Add ( addAttchment ) ;
myContext . SaveChangesAsync ( ) ;
TempData [ "success" ] = model . AttachmentName + " successfully saved" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error!... Failed to upload attachement" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
}
else
{
TempData [ "error" ] = "Maximum file size 7Mb" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
}
else
{
TempData [ "success" ] = model . AttachmentName + " Already uploaded" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
}
else
{
TempData [ "error" ] = "Please upload pdf file" ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
}
[HttpPost]
public ActionResult PostAppoloadedFileExpansion ( HttpPostedFileBase UploadedPdf , Attachments model )
{
String FileExt = Path . GetExtension ( UploadedPdf . FileName ) . ToUpper ( ) ;
if ( FileExt = = ".PDF" )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkFileExists = myContext . AttachmentsList . SingleOrDefault ( t = > t . AttachmentName = = model . AttachmentName & & t . ProjectCode = = ProjectCode ) ;
if ( checkFileExists = = null )
{
string fileName = null ;
string path = @"\\192.168.2.32\Attachments\" + Session [ "ProjectCode" ] . ToString ( ) ;
if ( model . UploadedPdf ! = null & & model . UploadedPdf . ContentLength > 0 & & model . UploadedPdf . ContentLength < = 7000000 )
{
try
{
fileName = model . AttachmentName + FileExt ;
if ( ! Directory . Exists ( path ) )
{
DirectoryInfo directory = new DirectoryInfo ( path ) ;
Directory . CreateDirectory ( path ) ;
}
string newpath = Path . Combine ( path , fileName ) ;
UploadedPdf . SaveAs ( newpath ) ;
Attachments addAttchment = new Attachments ( ) ;
addAttchment . AttachmentPath = Session [ "ProjectCode" ] . ToString ( ) + "/" + fileName ; ;
addAttchment . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addAttchment . UploadedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addAttchment . UploadedDate = DateTime . Now ;
addAttchment . AttachmentName = model . AttachmentName ;
myContext . AttachmentsList . Add ( addAttchment ) ;
myContext . SaveChangesAsync ( ) ;
TempData [ "success" ] = model . AttachmentName + " successfully saved" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error!...Failed to upload attachement" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
}
else
{
TempData [ "error" ] = "Maximum file size 7Mb" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
}
else
{
TempData [ "error" ] = model . AttachmentName + " Already uploaded" ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
}
else
{
TempData [ "error" ] = "Please pdf file only " ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
}
[HttpPost]
public ActionResult PostAppoloadedFileAmendment ( HttpPostedFileBase UploadedPdf , Attachments model )
{
String FileExt = Path . GetExtension ( UploadedPdf . FileName ) . ToUpper ( ) ;
if ( FileExt = = ".PDF" )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkFileExists = myContext . AttachmentsList . SingleOrDefault ( t = > t . AttachmentName = = model . AttachmentName & & t . ProjectCode = = ProjectCode ) ;
if ( checkFileExists = = null )
{
string fileName = null ;
string path = @"\\192.168.2.32\Attachments\" + Session [ "ProjectCode" ] . ToString ( ) ;
if ( model . UploadedPdf ! = null & & model . UploadedPdf . ContentLength > 0 & & model . UploadedPdf . ContentLength < = 7000000 )
{
try
{
fileName = model . AttachmentName + FileExt ;
if ( ! Directory . Exists ( path ) )
{
DirectoryInfo directory = new DirectoryInfo ( path ) ;
Directory . CreateDirectory ( path ) ;
}
string newpath = Path . Combine ( path , fileName ) ;
UploadedPdf . SaveAs ( newpath ) ;
Attachments addAttchment = new Attachments ( ) ;
addAttchment . AttachmentPath = Session [ "ProjectCode" ] . ToString ( ) + "/" + fileName ;
addAttchment . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addAttchment . UploadedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addAttchment . UploadedDate = DateTime . Now ;
addAttchment . AttachmentName = model . AttachmentName ;
myContext . AttachmentsList . Add ( addAttchment ) ;
myContext . SaveChangesAsync ( ) ;
TempData [ "success" ] = model . AttachmentName + " successfully saved" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error!...Failed to upload attachement" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
}
else
{
TempData [ "error" ] = "Maximum file size 7Mb" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
}
else
{
TempData [ "success" ] = model . AttachmentName + " Already Uploaded" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
}
else
{
TempData [ "error" ] = "Please upload pdf documents only" ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
}
[HttpPost]
public ActionResult PostAppoloadedFileAmendmentDeffered ( HttpPostedFileBase UploadedPdf , Attachments model )
{
String FileExt = Path . GetExtension ( UploadedPdf . FileName ) . ToUpper ( ) ;
if ( FileExt = = ".PDF" )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkFileExists = myContext . AttachmentsList . SingleOrDefault ( t = > t . AttachmentName = = model . AttachmentName & & t . ProjectCode = = ProjectCode ) ;
if ( checkFileExists = = null )
{
string fileName = null ;
string path = @"\\192.168.2.32\Attachments\" + Session [ "ProjectCode" ] . ToString ( ) ;
if ( model . UploadedPdf ! = null & & model . UploadedPdf . ContentLength > 0 & & model . UploadedPdf . ContentLength < = 7000000 )
{
try
{
fileName = GenerateINoCN ( ) + model . AttachmentName + FileExt ;
if ( ! Directory . Exists ( path ) )
{
DirectoryInfo directory = new DirectoryInfo ( path ) ;
Directory . CreateDirectory ( path ) ;
}
string newpath = Path . Combine ( path , fileName ) ;
UploadedPdf . SaveAs ( newpath ) ;
Attachments addAttchment = new Attachments ( ) ;
addAttchment . AttachmentPath = Session [ "ProjectCode" ] . ToString ( ) + "/" + fileName ;
addAttchment . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addAttchment . UploadedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addAttchment . UploadedDate = DateTime . Now ;
addAttchment . AttachmentName = model . AttachmentName ;
myContext . AttachmentsList . Add ( addAttchment ) ;
myContext . SaveChangesAsync ( ) ;
TempData [ "success" ] = model . AttachmentName + " successfully saved" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error!...Failed to upload attachement" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
}
else
{
TempData [ "error" ] = "Maximum file size 7Mb" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
}
else
{
TempData [ "success" ] = model . AttachmentName + " Already Uploaded" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
}
else
{
TempData [ "error" ] = "Please upload pdf documents only" ;
return RedirectToAction ( "AttachmentsAmendmentDeffered" ) ;
}
}
[HttpPost]
public ActionResult PostAppoloadedFileExtension ( HttpPostedFileBase UploadedPdf , Attachments model )
{
String FileExt = Path . GetExtension ( UploadedPdf . FileName ) . ToUpper ( ) ;
if ( FileExt = = ".PDF" )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkFileExists = myContext . AttachmentsList . SingleOrDefault ( t = > t . AttachmentName = = model . AttachmentName & & t . ProjectCode = = ProjectCode ) ;
if ( checkFileExists = = null )
{
string fileName = null ;
string path = @"\\192.168.2.32\Attachments\" + Session [ "ProjectCode" ] . ToString ( ) ;
if ( model . UploadedPdf ! = null & & model . UploadedPdf . ContentLength > 0 & & model . UploadedPdf . ContentLength < = 7000000 )
{
try
{
fileName = model . AttachmentName + FileExt ;
if ( ! Directory . Exists ( path ) )
{
DirectoryInfo directory = new DirectoryInfo ( path ) ;
Directory . CreateDirectory ( path ) ;
}
string newpath = Path . Combine ( path , fileName ) ;
UploadedPdf . SaveAs ( newpath ) ;
Attachments addAttchment = new Attachments ( ) ;
addAttchment . AttachmentPath = Session [ "ProjectCode" ] . ToString ( ) + "/" + fileName ;
addAttchment . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addAttchment . UploadedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addAttchment . UploadedDate = DateTime . Now ;
addAttchment . AttachmentName = model . AttachmentName ;
myContext . AttachmentsList . Add ( addAttchment ) ;
myContext . SaveChangesAsync ( ) ;
TempData [ "success" ] = model . AttachmentName + " successfully saved" ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error!...Failed to upload attachement" ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
}
else
{
return RedirectToAction ( "AttachmentsExtension" ) ;
}
}
else
{
TempData [ "success" ] = model . AttachmentName + " Already Uploaded" ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
}
else
{
TempData [ "error" ] = "Please upload pdf documents only" ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
}
[HttpPost]
public ActionResult PostAppoloadedFileExtensionDeffered ( HttpPostedFileBase UploadedPdf , Attachments model )
{
String FileExt = Path . GetExtension ( UploadedPdf . FileName ) . ToUpper ( ) ;
if ( FileExt = = ".PDF" )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkFileExists = myContext . AttachmentsList . SingleOrDefault ( t = > t . AttachmentName = = model . AttachmentName & & t . ProjectCode = = ProjectCode ) ;
if ( checkFileExists = = null )
{
string fileName = null ;
string path = @"\\192.168.2.32\Attachments\" + Session [ "ProjectCode" ] . ToString ( ) ;
if ( model . UploadedPdf ! = null & & model . UploadedPdf . ContentLength > 0 & & model . UploadedPdf . ContentLength < = 7000000 )
{
try
{
fileName = GenerateINoCN ( ) + model . AttachmentName + FileExt ;
if ( ! Directory . Exists ( path ) )
{
DirectoryInfo directory = new DirectoryInfo ( path ) ;
Directory . CreateDirectory ( path ) ;
}
string newpath = Path . Combine ( path , fileName ) ;
UploadedPdf . SaveAs ( newpath ) ;
Attachments addAttchment = new Attachments ( ) ;
addAttchment . AttachmentPath = Session [ "ProjectCode" ] . ToString ( ) + "/" + fileName ;
addAttchment . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addAttchment . UploadedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addAttchment . UploadedDate = DateTime . Now ;
addAttchment . AttachmentName = model . AttachmentName ;
myContext . AttachmentsList . Add ( addAttchment ) ;
myContext . SaveChangesAsync ( ) ;
TempData [ "success" ] = model . AttachmentName + " successfully saved" ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error!...Failed to upload attachement" ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
}
else
{
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
}
else
{
TempData [ "success" ] = model . AttachmentName + " Already Uploaded" ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
}
else
{
TempData [ "error" ] = "Please upload pdf documents only" ;
return RedirectToAction ( "AttachmentsExtensionDeffered" ) ;
}
}
[HttpPost]
public ActionResult PostAppoloadedFileNewDeffered ( HttpPostedFileBase UploadedPdf , Attachments model )
{
String FileExt = Path . GetExtension ( UploadedPdf . FileName ) . ToUpper ( ) ;
if ( FileExt = = ".PDF" )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkFileExists = myContext . AttachmentsList . SingleOrDefault ( t = > t . AttachmentName = = model . AttachmentName & & t . ProjectCode = = ProjectCode ) ;
if ( checkFileExists = = null )
{
string fileName = null ;
string path = @"\\192.168.2.32\Attachments\" + Session [ "ProjectCode" ] . ToString ( ) ;
if ( model . UploadedPdf ! = null & & model . UploadedPdf . ContentLength > 0 & & model . UploadedPdf . ContentLength < = 7000000 )
{
try
{
fileName = GenerateINoCN ( ) + model . AttachmentName + FileExt ;
if ( ! Directory . Exists ( path ) )
{
DirectoryInfo directory = new DirectoryInfo ( path ) ;
Directory . CreateDirectory ( path ) ;
}
string newpath = Path . Combine ( path , fileName ) ;
UploadedPdf . SaveAs ( newpath ) ;
Attachments addAttchment = new Attachments ( ) ;
addAttchment . AttachmentPath = Session [ "ProjectCode" ] . ToString ( ) + "/" + fileName ;
addAttchment . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addAttchment . UploadedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addAttchment . UploadedDate = DateTime . Now ;
addAttchment . AttachmentName = model . AttachmentName ;
myContext . AttachmentsList . Add ( addAttchment ) ;
myContext . SaveChangesAsync ( ) ;
TempData [ "success" ] = model . AttachmentName + " successfully saved" ;
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error!...Failed to upload attachement" ;
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
}
else
{
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
}
else
{
TempData [ "success" ] = model . AttachmentName + " Already uploaded" ;
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
}
else
{
TempData [ "error" ] = "Please upload pdf file" ;
return RedirectToAction ( "AttachmentsNewDeffered" ) ;
}
}
public ActionResult LoadgeNewCOI ( )
{
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var checkCMProfile = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
if ( checkCMProfile ! = null )
{
StepsManagement stManager = new StepsManagement ( ) ;
stManager . CompanyName = checkCMProfile . CompanyName ;
stManager . StepNo = "1" ;
stManager . CreatedDate = DateTime . Now ;
stManager . CompanyTIN = checkCMProfile . CompanyTIN ;
stManager . CompanyEmail = Username ;
stManager . UpdatedDate = DateTime . Now ;
stManager . EvaluationStatus = "Company Details" ;
stManager . SubmittedStatus = "Not Submitted" ;
stManager . ApplicationType = "New" ;
Session [ "CompanyName" ] = checkCMProfile . CompanyName ;
Session [ "CompanyTIN" ] = checkCMProfile . CompanyTIN ;
Session [ "ProjectCode" ] = GenerateINo ( ) ;
stManager . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
myContext . StepsManagements . Add ( stManager ) ;
myContext . SaveChanges ( ) ;
var pobj = new ProjectRepository ( ) ;
var _birthObjectp = pobj . CreateLocation ( ) ;
return View ( "ProjectDetails" , _birthObjectp ) ;
}
return View ( "LoadgeNewCOI" , _birthObject ) ;
}
public ActionResult LoadgeNewExpansion ( )
{
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var checkCMProfile = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
if ( checkCMProfile ! = null )
{
StepsManagement stManager = new StepsManagement ( ) ;
stManager . CompanyName = checkCMProfile . CompanyName ;
stManager . StepNo = "1" ;
stManager . CreatedDate = DateTime . Now ;
stManager . CompanyTIN = checkCMProfile . CompanyTIN ;
stManager . CompanyEmail = Username ;
stManager . UpdatedDate = DateTime . Now ;
stManager . ApplicationType = "Expansion" ;
stManager . EvaluationStatus = "Company Details" ;
stManager . SubmittedStatus = "Not Submitted" ;
Session [ "CompanyName" ] = checkCMProfile . CompanyName ;
Session [ "CompanyTIN" ] = checkCMProfile . CompanyTIN ;
Session [ "ProjectCode" ] = GenerateINo ( ) ;
stManager . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
myContext . StepsManagements . Add ( stManager ) ;
myContext . SaveChanges ( ) ;
var pobj = new ProjectRepository ( ) ;
var _birthObjectp = pobj . CreateLocation ( ) ;
return View ( "ExpansionProject" , _birthObjectp ) ;
}
return View ( "LoadgeNewExpansion" , _birthObject ) ;
}
public ActionResult LoadgeNewAmendment ( )
{
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var checkCMProfile = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
if ( checkCMProfile ! = null )
{
StepsManagement stManager = new StepsManagement ( ) ;
stManager . CompanyName = checkCMProfile . CompanyName ;
stManager . StepNo = "1" ;
stManager . CreatedDate = DateTime . Now ;
stManager . CompanyTIN = checkCMProfile . CompanyTIN ;
stManager . CompanyEmail = Username ;
stManager . UpdatedDate = DateTime . Now ;
stManager . ApplicationType = "Amendment" ;
stManager . EvaluationStatus = "Company Details" ;
stManager . SubmittedStatus = "Not Submitted" ;
Session [ "CompanyName" ] = checkCMProfile . CompanyName ;
Session [ "CompanyTIN" ] = checkCMProfile . CompanyTIN ;
Session [ "ProjectCode" ] = GenerateINo ( ) ;
stManager . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
myContext . StepsManagements . Add ( stManager ) ;
myContext . SaveChanges ( ) ;
var pobj = new ProjectRepository ( ) ;
var _birthObjectp = pobj . CreateLocation ( ) ;
return View ( "AmendmentApplication" ) ;
}
return View ( "LoadgeNewAmendment" , _birthObject ) ;
}
public ActionResult LoadgeNewExtesion ( )
{
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var checkCMProfile = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
if ( checkCMProfile ! = null )
{
StepsManagement stManager = new StepsManagement ( ) ;
stManager . CompanyName = checkCMProfile . CompanyName ;
stManager . StepNo = "1" ;
stManager . CreatedDate = DateTime . Now ;
stManager . CompanyTIN = checkCMProfile . CompanyTIN ;
stManager . CompanyEmail = Username ;
stManager . UpdatedDate = DateTime . Now ;
stManager . ApplicationType = "Extension" ;
stManager . EvaluationStatus = "Company Details" ;
stManager . SubmittedStatus = "Not Submitted" ;
Session [ "CompanyName" ] = checkCMProfile . CompanyName ;
Session [ "CompanyTIN" ] = checkCMProfile . CompanyTIN ;
Session [ "ProjectCode" ] = GenerateINo ( ) ;
stManager . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
myContext . StepsManagements . Add ( stManager ) ;
myContext . SaveChanges ( ) ;
var pobj = new ProjectRepository ( ) ;
var _birthObjectp = pobj . CreateLocation ( ) ;
return View ( "Extension" ) ;
}
return View ( "LoadgeNewExtesion" , _birthObject ) ;
}
public ActionResult ProjectDetails ( )
{
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
Session [ "InvestorNo" ] = GenerateINo ( ) ;
return View ( "ProjectDetails" , _birthObject ) ;
}
public ActionResult ShowCompleteCompany ( )
{
var Username = Session [ "CompanyEmail" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = selectListRegion ;
checkIfExists . IncorpCertDate . ToString ( ) ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowCompleteCompanyExtension ( )
{
var Username = Session [ "CompanyEmail" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = selectListRegion ;
checkIfExists . IncorpCertDate . ToString ( ) ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowCompleteCompanyExpansion ( )
{
var Username = Session [ "CompanyEmail" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = selectListRegion ;
checkIfExists . IncorpCertDate . ToString ( ) ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowAmendmentDetails ( )
{
var Username = Session [ "CompanyEmail" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . CompanyAmmendmentsExternal . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
return View ( checkIfExists ) ;
}
public ActionResult ShowExtensionDetails ( )
{
var Username = Session [ "CompanyEmail" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . CompanyAmmendmentsExternal . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
return View ( checkIfExists ) ;
}
public ActionResult ShowCompleteCompanyAmendment ( )
{
var Username = Session [ "CompanyEmail" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = selectListRegion ;
checkIfExists . IncorpCertDate . ToString ( ) ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowFinancingProfile ( )
{
var Username = Session [ "CompanyEmail" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . FinancingProfilesExternals . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) ;
var checkIfPExists = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) ;
var obj = new FinancingRepository ( ) ;
var objC = new Countries ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
IEnumerable < SelectListItem > selectForeignCountry =
from s in _birthObject . ListofForeignEquity // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . SourceCountryEquity ) ,
Text = checkIfExists . SourceCountryEquity ,
Value = checkIfExists . SourceCountryEquity
} ;
checkIfExists . ListofForeignEquity = objC . GetCountries ( ) ;
IEnumerable < SelectListItem > selectForeignLoan =
from s in _birthObject . ListofForeignLoan
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . SourceCountryLoan ) ,
Text = checkIfExists . SourceCountryLoan ,
Value = checkIfExists . SourceCountryLoan
} ;
checkIfExists . ListofForeignLoan = objC . GetCountries ( ) ;
Session [ "TypeOfOwnership" ] = checkIfPExists . TypeofOwnership ;
return View ( checkIfExists ) ;
}
public ActionResult ShowErrorPage ( )
{
return View ( ) ;
}
public ActionResult ShowFinancingProfileExpansion ( )
{
var Username = Session [ "CompanyEmail" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . FinancingProfilesExternals . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) ;
var obj = new FinancingRepository ( ) ;
var objC = new Countries ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
IEnumerable < SelectListItem > selectForeignCountry =
from s in _birthObject . ListofForeignEquity // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . SourceCountryEquity ) ,
Text = checkIfExists . SourceCountryEquity ,
Value = checkIfExists . SourceCountryEquity
} ;
checkIfExists . ListofForeignEquity = objC . GetCountries ( ) ;
IEnumerable < SelectListItem > selectForeignLoan =
from s in _birthObject . ListofForeignLoan
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . SourceCountryLoan ) ,
Text = checkIfExists . SourceCountryLoan ,
Value = checkIfExists . SourceCountryLoan
} ;
checkIfExists . ListofForeignLoan = objC . GetCountries ( ) ;
return View ( checkIfExists ) ;
}
public IEnumerable < SelectListItem > GetListofRegionsEdit ( string RegionName )
{
using ( var context1 = new OSSDBContext ( ) )
{
List < SelectListItem > Attachment = context1 . Regions . AsNoTracking ( )
. Select ( n = >
new SelectListItem
{
Value = n . RegionName ,
Text = n . RegionName
} ) . ToList ( ) ;
var countrytip2 = new SelectListItem ( )
{
Value = RegionName ,
Text = RegionName
} ;
Attachment . Insert ( 0 , countrytip2 ) ;
return new SelectList ( Attachment , "Value" , "Text" ) ;
}
}
public ActionResult ShowProjectDetails ( )
{
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . ProjectProfilesExternal . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = GetListofRegionsEdit ( checkIfExists . Region ) ;
IEnumerable < SelectListItem > SelectSectors =
from s in _birthObject . ListofSectors // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Sector ) ,
Text = checkIfExists . Sector ,
Value = checkIfExists . Sector
} ;
checkIfExists . ListofSectors = SelectSectors ;
IEnumerable < SelectListItem > SelectSubSector =
from s in _birthObject . ListofSubectors // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . SubSector ) ,
Text = checkIfExists . SubSector ,
Value = checkIfExists . SubSector
} ;
checkIfExists . ListofSubectors = SelectSubSector ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowDMDetailsDetails ( )
{
var Username = Session [ "CompanyEmail" ] ;
var checkIfExists = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = GetListofRegionsEdit ( checkIfExists . Region ) ;
checkIfExists . IncorpCertDate . ToString ( ) ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowDMDetailsDetailsDetails ( )
{
var Username = Session [ "CompanyEmail" ] ;
var checkIfExists = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = selectListRegion ;
checkIfExists . IncorpCertDate . ToString ( ) ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowDMDetailsDetailsExtension ( )
{
var Username = Session [ "CompanyEmail" ] ;
var checkIfExists = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = selectListRegion ;
checkIfExists . IncorpCertDate . ToString ( ) ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowDMDetailsDetailsExpansion ( )
{
var Username = Session [ "CompanyEmail" ] ;
var checkIfExists = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = selectListRegion ;
checkIfExists . IncorpCertDate . ToString ( ) ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowProjectDetailsExpansion ( )
{
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfExists = myContext . ProjectProfilesExternal . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = selectListRegion ;
IEnumerable < SelectListItem > SelectSectors =
from s in _birthObject . ListofSectors // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Sector ) ,
Text = checkIfExists . Sector ,
Value = checkIfExists . Sector
} ;
checkIfExists . ListofSectors = SelectSectors ;
IEnumerable < SelectListItem > SelectSubSector =
from s in _birthObject . ListofSubectors // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . SubSector ) ,
Text = checkIfExists . SubSector ,
Value = checkIfExists . SubSector
} ;
checkIfExists . ListofSubectors = SelectSubSector ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult ShowDMDetailsDetailsAmendment ( )
{
var Username = Session [ "CompanyEmail" ] ;
var checkIfExists = myContext . CompanyProfileExternal . Where ( t = > t . AddedBy = = Username . ToString ( ) ) . SingleOrDefault ( ) ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
IEnumerable < SelectListItem > selectListRegion =
from s in _birthObject . ListofRegions // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( s . Text = = checkIfExists . Region ) ,
Text = checkIfExists . Region ,
Value = checkIfExists . Region
} ;
checkIfExists . ListofRegions = selectListRegion ;
checkIfExists . IncorpCertDate . ToString ( ) ;
IEnumerable < SelectListItem > selectListDistrict =
from t in _birthObject . ListofDistricts // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( t . Text = = checkIfExists . District ) ,
Text = checkIfExists . District ,
Value = checkIfExists . District
} ;
checkIfExists . ListofDistricts = selectListDistrict ;
IEnumerable < SelectListItem > selectListWard =
from y in _birthObject . ListofWards // where ever you get this from, database etc.
select new SelectListItem
{
Selected = ( y . Text = = checkIfExists . Ward ) ,
Text = checkIfExists . Ward ,
Value = checkIfExists . Ward
} ;
checkIfExists . ListofWards = selectListWard ;
return View ( checkIfExists ) ;
}
public ActionResult FinancingDetailsExternal ( )
{
var obj = new FinancingRepository ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
return View ( "FinancingDetailsExternal" , _birthObject ) ;
}
public ActionResult FinancingDetailsExpansion ( )
{
var obj = new FinancingRepository ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
return View ( "FinancingDetailsExpansion" , _birthObject ) ;
}
public ActionResult RedirectCompany ( )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var checkIfExist = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . AddedBy = = Username & & t . CleaningStatus = = "Submitted" ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowCompleteCompany" , "NewCOI" ) ;
}
return RedirectToAction ( "ShowDMDetailsDetails" , "NewCOI" ) ;
}
public ActionResult RedirectCompanyExpansion ( )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var checkIfExist = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . AddedBy = = Username & & t . CleaningStatus = = "Submitted" ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowCompleteCompanyExpansion" , "NewCOI" ) ;
}
return RedirectToAction ( "ShowDMDetailsDetailsExpansion" , "NewCOI" ) ;
}
public ActionResult RedirectCompanyAmendment ( )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var checkIfExist = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . AddedBy = = Username & & t . CleaningStatus = = "Submitted" ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowCompleteCompanyAmendment" , "NewCOI" ) ;
}
return RedirectToAction ( "ShowDMDetailsDetailsAmendment" , "NewCOI" ) ;
}
public ActionResult RedirectCompanyExtension ( )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var checkIfExist = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . AddedBy = = Username & & t . CleaningStatus = = "Submitted" ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowCompleteCompanyExtension" , "NewCOI" ) ;
}
return RedirectToAction ( "ShowDMDetailsDetailsExtension" , "NewCOI" ) ;
}
public ActionResult RedirectProject ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowProjectDetails" , "NewCOI" ) ;
}
return RedirectToAction ( "ProjectDetails" , "NewCOI" ) ;
}
public ActionResult RedirectProjectExpansion ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowProjectDetailsExpansion" , "NewCOI" ) ;
}
return RedirectToAction ( "ExpansionProject" , "NewCOI" ) ;
}
public ActionResult RedirectProjectAmendment ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowAmendmentDetails" , "NewCOI" ) ;
}
return RedirectToAction ( "AmendmentApplication" , "NewCOI" ) ;
}
public ActionResult RedirectProjectExtension ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowExtensionDetails" , "NewCOI" ) ;
}
return RedirectToAction ( "Extension" , "NewCOI" ) ;
}
public ActionResult RedirectFinancing ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . FinancingProfilesExternals . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowFinancingProfile" , "NewCOI" ) ;
}
return RedirectToAction ( "FinancingDetailsExternal" , "NewCOI" ) ;
}
public ActionResult RedirectFinancingExpansion ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . FinancingProfilesExternals . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist ! = null )
{
return RedirectToAction ( "ShowFinancingProfileExpansion" , "NewCOI" ) ;
}
return RedirectToAction ( "FinancingDetailsExpansion" , "NewCOI" ) ;
}
public ActionResult AttachmentsNew ( )
{
return View ( "AttachmentsNew" ) ;
}
public ActionResult AttachmentsNewDeffered ( )
{
return View ( "AttachmentsNewDeffered" ) ;
}
public ActionResult AttachmentsExpansion ( )
{
return View ( "AttachmentsExpansion" ) ;
}
public ActionResult AttachmentsAmendments ( )
{
return View ( "AttachmentsAmendments" ) ;
}
public ActionResult AttachmentsAmendmentDeffered ( )
{
return View ( "AttachmentsAmendmentDeffered" ) ;
}
public ActionResult AttachmentsExtension ( )
{
return View ( "AttachmentsExtension" ) ;
}
public ActionResult AttachmentsExtensionDeffered ( )
{
return View ( "AttachmentsExtensionDeffered" ) ;
}
[HttpPost]
public ActionResult WaitingApproval ( ApplicationManager model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . ApplicationManagers . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkApplicant = myContext . InvestorExternl . SingleOrDefault ( t = > t . CompanyEmail = = Username ) ;
var checkAmentExist = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist = = null )
{
var getPDetails = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
ApplicationManager inv = new ApplicationManager ( ) ;
inv . ProjectCode = ProjectCode ;
inv . ProjectName = getPDetails . ProjectName ;
inv . CompanyName = getPDetails . CompanyName ;
// Changes to remove hardcoded exchange rates
ExchangeRate exchangeRate = myContext . ExchangeRates . SingleOrDefault ( t = > t . Currency = = model . Currency ) ;
COIPrice coiPrice = myContext . COIPrices . SingleOrDefault ( t = > t . ApplicationType = = "Extension" ) ;
if ( exchangeRate ! = null & & coiPrice ! = null ) {
decimal Price = coiPrice . Price * exchangeRate . Rate ;
string priceStr = Price . ToString ( ) ;
priceStr = priceStr . Contains ( "." ) ? priceStr . TrimEnd ( '0' ) . TrimEnd ( '.' ) : priceStr ;
inv . Amount = Price ;
Session [ "Amount" ] = priceStr ;
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( Price ) + " " + exchangeRate . CurrencyDesc ;
Session [ "Currency" ] = model . Currency ;
inv . Currency = model . Currency ;
inv . Station = model . Station ;
inv . ServiceName = Session [ "ServiceName" ] . ToString ( ) ;
inv . MobileNo = checkApplicant . Mobile ;
inv . CreatedDate = DateTime . Now ;
inv . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
inv . CompanyEmail = Username ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "Completed" ;
checkSteps . SubmittedStatus = "Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
checkAmentExist . ApprovalStatus = "Waiting_Approval" ;
myContext . ApplicationManagers . Add ( inv ) ;
myContext . SaveChanges ( ) ;
}
return RedirectToAction ( "ExtensionIndex" ) ;
}
else
{
return RedirectToAction ( "ExtensionIndex" ) ;
}
}
public ActionResult ResubmitExtension ( )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . ApplicationManagers . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkApplicant = myContext . InvestorExternl . SingleOrDefault ( t = > t . CompanyEmail = = Username ) ;
var checkAmentExist = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist ! = null )
{
var getPDetails = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
getPDetails . AssignedStatus = "Investor_Returned" ;
checkIfExist . EvaluationStatus = "Investor_Returned" ;
checkAmentExist . ApprovalStatus = "Waiting_Approval" ;
myContext . SaveChanges ( ) ;
TempData [ "success" ] = "Application successfully returned for evaluation" ;
return RedirectToAction ( "ExtensionIndex" ) ;
}
else
{
return RedirectToAction ( "ExtensionIndex" ) ;
}
}
public ActionResult ResubmitAmendment ( )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . ApplicationManagers . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkAmendDetails = myContext . CompanyAmmendments . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkApplicant = myContext . InvestorExternl . SingleOrDefault ( t = > t . CompanyEmail = = Username ) ;
var checkAmentExist = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist ! = null )
{
var getPDetails = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
checkAmendDetails . CurrentlyWith = "Returned" ;
checkAmendDetails . ProcessingStatus = "DIF" ;
checkIfExist . EvaluationStatus = "DIF" ;
checkAmentExist . ApprovalStatus = "DIF" ;
myContext . SaveChanges ( ) ;
TempData [ "success" ] = "Application successfully returned for evaluation" ;
return RedirectToAction ( "IndexAmendment" ) ;
}
else
{
return RedirectToAction ( "IndexAmendment" ) ;
}
}
public ActionResult ResubmitNew ( )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . ApplicationManagers . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkApplicant = myContext . InvestorExternl . SingleOrDefault ( t = > t . CompanyEmail = = Username ) ;
var checkPExist = myContext . ProjectProfiles . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist ! = null )
{
checkIfExist . EvaluationStatus = "DIF" ;
checkPExist . ProcessingStatus = "DIF" ;
checkPExist . CurrentlyWith = "Returned" ;
myContext . ApplicationManagers . AddOrUpdate ( ) ;
myContext . ProjectProfiles . AddOrUpdate ( ) ;
myContext . SaveChanges ( ) ;
TempData [ "success" ] = "Application successfully returned for evaluation" ;
return View ( "Index" ) ;
}
else
{
return View ( "Index" ) ;
}
}
2025-11-16 09:56:51 +00:00
private void EnsurePaymentSessionDefaults ( string currencyIfUnset = "" )
{
if ( Session [ "Currency" ] = = null ) Session [ "Currency" ] = currencyIfUnset ;
if ( Session [ "Amount" ] = = null ) Session [ "Amount" ] = "" ;
if ( Session [ "AmountinWords" ] = = null ) Session [ "AmountinWords" ] = "" ;
}
private bool TrySaveInvoice ( OSSDBContext ctx , ApplicationManager inv , CompanyProfileExternal company , out string error )
{
error = null ;
try
{
ctx . ApplicationManagers . Add ( inv ) ;
if ( company ! = null )
{
company . CleaningStatus = "Submitted" ;
}
ctx . SaveChanges ( ) ;
return true ;
}
catch ( System . Data . Entity . Validation . DbEntityValidationException ex )
{
var msgs = ex . EntityValidationErrors
. SelectMany ( e = > e . ValidationErrors )
. Select ( e = > e . PropertyName + ": " + e . ErrorMessage ) ;
error = "Validation failed: " + string . Join ( "; " , msgs ) ;
return false ;
}
catch ( Exception ex )
{
error = ex . Message ;
return false ;
}
}
2025-11-15 11:14:31 +00:00
public ActionResult Payment ( ApplicationManager model )
{
2025-11-16 06:11:01 +00:00
try
2025-11-15 11:14:31 +00:00
{
2025-11-16 06:11:01 +00:00
if ( Session [ "CompanyEmail" ] = = null | | Session [ "ProjectCode" ] = = null )
{
ViewBag . Error = "Your session expired. Please login again." ;
return RedirectToAction ( "Index" , "Home" ) ;
}
if ( string . IsNullOrWhiteSpace ( model ? . Currency ) )
{
ViewBag . Error = "Currency is required." ;
2025-11-16 09:56:51 +00:00
EnsurePaymentSessionDefaults ( ) ;
2025-11-16 06:11:01 +00:00
return View ( "Payment" ) ;
}
2025-11-15 11:14:31 +00:00
2025-11-16 06:11:01 +00:00
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
2025-11-16 09:56:51 +00:00
var serviceName = ( ( Session [ "ServiceName" ] as string ) ? ? string . Empty ) . Trim ( ) ;
// Normalize service name to match tblService keys (e.g., "Application for New Certificate" -> "New")
var rawService = serviceName ;
if ( rawService . IndexOf ( "new" , StringComparison . OrdinalIgnoreCase ) > = 0 )
{
serviceName = "New" ;
}
else if ( rawService . IndexOf ( "expansion" , StringComparison . OrdinalIgnoreCase ) > = 0 )
{
serviceName = "Expansion" ;
}
// Enforce TZS only as requested
model . Currency = "TZS" ;
// Pre-compute amount from tblService (before early returns), single-row fetch (no iteration)
var getPDetailsEarly = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( getPDetailsEarly ! = null )
{
var ownershipRawEarly = ( getPDetailsEarly . TypeofOwnership ? ? "" ) . Trim ( ) ;
var isLocalEarly = ownershipRawEarly . Equals ( "Local" , StringComparison . OrdinalIgnoreCase ) ;
var isForeignOrMixedEarly =
ownershipRawEarly . Equals ( "Foreign" , StringComparison . OrdinalIgnoreCase ) | |
ownershipRawEarly . Equals ( "JV" , StringComparison . OrdinalIgnoreCase ) | |
ownershipRawEarly . Equals ( "Mixed" , StringComparison . OrdinalIgnoreCase ) | |
ownershipRawEarly . Equals ( "Mixed (Foreigners & Tanzanians)" , StringComparison . OrdinalIgnoreCase ) ;
var serviceKeyEarly = serviceName ;
if ( ! isLocalEarly & & isForeignOrMixedEarly ) serviceKeyEarly = serviceName + "_Foreign" ;
var feeRow = myContext . ServiceFees . FirstOrDefault ( s = >
s . ServiceName = = serviceKeyEarly ) ;
if ( feeRow ! = null & & feeRow . Fee . HasValue & & feeRow . Fee . Value > 0 )
{
TempData [ "PreAmountTZS" ] = feeRow . Fee . Value . ToString ( "0" ) ;
}
else
{
TempData [ "PreAmountTZS" ] = null ; // force UI error downstream if not configured
}
}
2025-11-15 11:14:31 +00:00
2025-11-16 06:11:01 +00:00
var checkIfExist = myContext . ApplicationManagers . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkIfCompany = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . AddedBy = = Username ) ;
var checkApplicant = myContext . InvestorExternl . SingleOrDefault ( t = > t . CompanyEmail = = Username ) ;
if ( checkIfExist = = null )
{
var getPDetails = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( getPDetails = = null )
{
ViewBag . Error = "Project details not found." ;
2025-11-16 09:56:51 +00:00
EnsurePaymentSessionDefaults ( ) ;
return View ( "Payment" ) ;
}
// Only New/Expansion supported in this TZS ownership block
if ( ! ( serviceName . Equals ( "New" , StringComparison . OrdinalIgnoreCase ) | |
serviceName . Equals ( "Expansion" , StringComparison . OrdinalIgnoreCase ) ) )
{
ViewBag . Error = $"Unsupported ServiceName '{serviceName}'. Expected New/Expansion." ;
EnsurePaymentSessionDefaults ( ) ;
2025-11-16 06:11:01 +00:00
return View ( "Payment" ) ;
}
2025-11-15 11:14:31 +00:00
2025-11-16 06:11:01 +00:00
ApplicationManager inv = new ApplicationManager ( ) ;
inv . ProjectCode = ProjectCode ;
inv . ProjectName = getPDetails . ProjectName ;
inv . CompanyName = getPDetails . CompanyName ;
inv . ServiceName = serviceName ;
inv . MobileNo = checkApplicant ? . Mobile ;
inv . CreatedDate = DateTime . Now ;
inv . CompanyTIN = Session [ "CompanyTIN" ] ! = null ? Session [ "CompanyTIN" ] . ToString ( ) : null ;
inv . CompanyEmail = Username ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
if ( checkSteps ! = null )
{
checkSteps . StepNo = "Completed" ;
checkSteps . SubmittedStatus = "Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
}
inv . Currency = model . Currency ;
inv . Station = model . Station ;
inv . CompanyTIN = Session [ "CompanyTIN" ] ! = null ? Session [ "CompanyTIN" ] . ToString ( ) : null ;
2025-11-16 09:56:51 +00:00
// Use precomputed amount from tblService or fallback (saved in TempData earlier)
decimal amountToUse ;
if ( TempData [ "PreAmountTZS" ] ! = null & & decimal . TryParse ( TempData [ "PreAmountTZS" ] . ToString ( ) , out amountToUse ) )
2025-11-16 06:11:01 +00:00
{
2025-11-16 09:56:51 +00:00
inv . Amount = amountToUse ;
Session [ "Amount" ] = amountToUse . ToString ( "0" ) ;
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( amountToUse ) + " Tanzanian Shillings" ;
2025-11-16 06:11:01 +00:00
Session [ "Currency" ] = model . Currency ;
}
2025-11-16 09:56:51 +00:00
else
2025-11-16 06:11:01 +00:00
{
2025-11-16 09:56:51 +00:00
var ownershipForKey = getPDetails . TypeofOwnership ! = null & & getPDetails . TypeofOwnership . Equals ( "Local" , StringComparison . OrdinalIgnoreCase )
? serviceName
: serviceName + "_Foreign" ;
var errMsg = $"Fee not configured in tblService for ServiceName='{ownershipForKey}', Currency='TZS'." ;
TempData [ "PaymentError" ] = errMsg ;
ViewBag . Error = errMsg ;
EnsurePaymentSessionDefaults ( "TZS" ) ;
// Show the appropriate payment page based on service
2025-11-16 06:11:01 +00:00
if ( serviceName . Equals ( "Expansion" , StringComparison . OrdinalIgnoreCase ) )
{
return View ( "PaymentExpansion" ) ;
}
return View ( "Payment" ) ;
}
2025-11-16 09:56:51 +00:00
string saveErrX ;
if ( ! TrySaveInvoice ( myContext , inv , checkIfCompany , out saveErrX ) )
2025-11-15 11:14:31 +00:00
{
2025-11-16 09:56:51 +00:00
ViewBag . Error = "Could not save invoice. " + saveErrX ;
EnsurePaymentSessionDefaults ( model . Currency ) ;
2025-11-16 06:11:01 +00:00
return View ( "Payment" ) ;
2025-11-15 11:14:31 +00:00
}
2025-11-16 09:56:51 +00:00
if ( serviceName . Equals ( "Expansion" , StringComparison . OrdinalIgnoreCase ) )
2025-11-16 06:11:01 +00:00
{
2025-11-16 09:56:51 +00:00
return View ( "PaymentExpansion" ) ;
2025-11-16 06:11:01 +00:00
}
2025-11-16 09:56:51 +00:00
return View ( "Payment" ) ;
2025-11-16 06:11:01 +00:00
}
else
{
// Invoice already exists; hydrate session so the view can display values
Session [ "Amount" ] = checkIfExist . Amount . ToString ( "0.##" ) ;
Session [ "Currency" ] = checkIfExist . Currency ;
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( checkIfExist . Amount ) + " " + checkIfExist . Currency ;
2025-11-15 11:14:31 +00:00
return View ( "Payment" ) ;
}
}
2025-11-16 06:11:01 +00:00
catch ( Exception ex )
2025-11-15 11:14:31 +00:00
{
2025-11-16 06:11:01 +00:00
ViewBag . Error = "Error processing payment. " + ex . Message ;
2025-11-16 09:56:51 +00:00
EnsurePaymentSessionDefaults ( ) ;
2025-11-15 11:14:31 +00:00
return View ( "Payment" ) ;
}
}
[HttpPost]
public ActionResult PaymentAmendment ( ApplicationManager model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . ApplicationManagers . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkApplicant = myContext . InvestorExternl . SingleOrDefault ( t = > t . CompanyEmail = = Username ) ;
if ( checkIfExist = = null )
{
var getPDetails = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
ApplicationManager inv = new ApplicationManager ( ) ;
inv . ProjectCode = ProjectCode ;
inv . ProjectName = getPDetails . ProjectName ;
inv . CompanyName = getPDetails . CompanyName ;
inv . ServiceName = Session [ "ServiceName" ] . ToString ( ) ;
inv . MobileNo = checkApplicant . Mobile ;
inv . CreatedDate = DateTime . Now ;
inv . Currency = model . Currency ;
inv . Station = model . Station ;
inv . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
// Changes to remove hardcoded exchange rates
ExchangeRate exchangeRate = myContext . ExchangeRates . SingleOrDefault ( t = > t . Currency = = model . Currency ) ;
COIPrice coiPrice = myContext . COIPrices . SingleOrDefault ( t = > t . ApplicationType = = "Amendment" ) ;
if ( exchangeRate ! = null & & coiPrice ! = null ) {
decimal Price = coiPrice . Price * exchangeRate . Rate ;
string priceStr = Price . ToString ( ) ;
priceStr = priceStr . Contains ( "." ) ? priceStr . TrimEnd ( '0' ) . TrimEnd ( '.' ) : priceStr ;
inv . Amount = Price ;
Session [ "Amount" ] = priceStr ;
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( Price ) + " " + exchangeRate . CurrencyDesc ;
Session [ "Currency" ] = model . Currency ;
inv . CompanyEmail = Username ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "Completed" ;
checkSteps . SubmittedStatus = "Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
myContext . ApplicationManagers . Add ( inv ) ;
myContext . SaveChanges ( ) ;
}
return View ( "PaymentAmendment" ) ;
}
else
{
return View ( "PaymentAmendment" ) ;
}
}
public ActionResult PaymentExtension ( )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . ApplicationManagers . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkApplicant = myContext . InvestorExternl . SingleOrDefault ( t = > t . CompanyEmail = = Username ) ;
if ( checkIfExist = = null )
{
var getPDetails = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
ApplicationManager inv = new ApplicationManager ( ) ;
inv . ProjectCode = ProjectCode ;
inv . ProjectName = getPDetails . ProjectName ;
inv . CompanyName = getPDetails . CompanyName ;
inv . ServiceName = Session [ "ServiceName" ] . ToString ( ) ;
inv . MobileNo = checkApplicant . Mobile ;
inv . CreatedDate = DateTime . Now ;
inv . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
COIPrice coiPrice = myContext . COIPrices . SingleOrDefault ( t = > t . ApplicationType = = "Extension" ) ;
decimal Price = coiPrice . Price ;
inv . Amount = Price ;
string priceStr = Price . ToString ( ) ;
priceStr = priceStr . Contains ( "." ) ? priceStr . TrimEnd ( '0' ) . TrimEnd ( '.' ) : priceStr ;
Session [ "Amount" ] = priceStr ;
inv . CompanyEmail = Username ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "Completed" ;
checkSteps . SubmittedStatus = "Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
myContext . ApplicationManagers . Add ( inv ) ;
myContext . SaveChanges ( ) ;
return View ( "PaymentExtension" ) ;
}
else
{
return View ( "PaymentExtension" ) ;
}
}
public ActionResult PaymentExpansion ( )
{
return View ( "PaymentExpansion" ) ;
}
2025-11-16 13:09:03 +00:00
// Create an additional payment invoice (e.g., surcharge when ownership underpayment occurs)
[Authorize]
public ActionResult AdditionalPayment ( string projectCode = null )
{
try
{
var username = Session [ "CompanyEmail" ] as string ;
if ( string . IsNullOrWhiteSpace ( username ) )
{
return RedirectToAction ( "Index" , "Home" ) ;
}
// Prefer explicit project code if provided, otherwise fall back to session
var code = ! string . IsNullOrWhiteSpace ( projectCode ) ? projectCode : ( Session [ "ProjectCode" ] as string ) ;
if ( string . IsNullOrWhiteSpace ( code ) )
{
TempData [ "PaymentError" ] = "No project selected. Open a project first or pass ?projectCode=..." ;
EnsurePaymentSessionDefaults ( "TZS" ) ;
return RedirectToAction ( "Payment" ) ;
}
2025-11-18 20:59:21 +00:00
// Find the parent application using ProjectCode
var parentApplication = myContext . ApplicationManagers
. Where ( a = > a . ProjectCode = = code )
. OrderByDescending ( a = > a . CreatedDate )
. FirstOrDefault ( ) ;
if ( parentApplication = = null )
2025-11-16 13:09:03 +00:00
{
2025-11-18 20:59:21 +00:00
TempData [ "PaymentError" ] = "Parent application not found for this project code." ;
2025-11-16 13:09:03 +00:00
EnsurePaymentSessionDefaults ( "TZS" ) ;
return RedirectToAction ( "Payment" ) ;
}
2025-11-18 20:59:21 +00:00
// Resolve additional amount and GFSCode from tblService (ServiceName='Additional_Amount', Currency='TZS', Status='1')
2025-11-16 13:09:03 +00:00
decimal addAmount = 0 m ;
2025-11-18 20:59:21 +00:00
string gfsCode = "142201370002" ; // Default fallback
2025-11-16 13:09:03 +00:00
try
{
var feeRow = myContext . ServiceFees
. AsNoTracking ( )
. FirstOrDefault ( s = >
( s . Status ? ? "" ) . Trim ( ) = = "1" & &
( s . Currency ? ? "" ) . Trim ( ) . ToUpper ( ) = = "TZS" & &
( s . ServiceName ? ? "" ) . Trim ( ) = = "Additional_Amount" ) ;
if ( feeRow ! = null & & feeRow . Fee . HasValue & & feeRow . Fee . Value > 0 m )
2025-11-18 20:59:21 +00:00
{
2025-11-16 13:09:03 +00:00
addAmount = feeRow . Fee . Value ;
2025-11-18 20:59:21 +00:00
if ( ! string . IsNullOrWhiteSpace ( feeRow . GFSCode ) )
gfsCode = feeRow . GFSCode ;
}
2025-11-16 13:09:03 +00:00
}
catch
{
// handled below
}
if ( addAmount < = 0 m )
{
var err = "Fee not configured in tblService for ServiceName='Additional_Amount', Currency='TZS'." ;
TempData [ "PaymentError" ] = err ;
EnsurePaymentSessionDefaults ( "TZS" ) ;
return RedirectToAction ( "Payment" ) ;
}
2025-11-18 22:13:59 +00:00
long? existingInvoiceId = null ;
try
{
existingInvoiceId = myContext . Database . SqlQuery < long? > (
"SELECT TOP 1 InvoiceID FROM tblInvoice WHERE ApplicationCode = @p0 AND SubServiceName LIKE 'Additional_Amount%' ORDER BY InvoiceID DESC" ,
code ) . FirstOrDefault ( ) ;
}
catch
{
// Continue to create new invoice
}
2025-11-16 13:09:03 +00:00
2025-11-18 20:59:21 +00:00
if ( existingInvoiceId . HasValue )
2025-11-16 13:09:03 +00:00
{
2025-11-18 22:13:59 +00:00
try
{
var invoiceDetails = myContext . Database . SqlQuery < dynamic > (
"SELECT Amount, Currency FROM tblInvoice WHERE InvoiceID = @p0" ,
existingInvoiceId . Value ) . FirstOrDefault ( ) ;
2025-11-18 20:59:21 +00:00
2025-11-18 22:13:59 +00:00
if ( invoiceDetails ! = null )
{
Session [ "Amount" ] = invoiceDetails . Amount . ToString ( ) ;
var currency = invoiceDetails . Currency ? ? "TZS" ;
Session [ "Currency" ] = currency ;
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( Convert . ToDecimal ( invoiceDetails . Amount ) ) + " " + currency ;
}
ViewBag . HideAdditionalButton = true ;
ViewBag . HideInvoiceGrid = true ;
TempData [ "HidePaidInvoices" ] = true ;
TempData [ "AdditionalContext" ] = true ;
return View ( "Payment" ) ;
}
catch ( Exception ex )
2025-11-18 20:59:21 +00:00
{
2025-11-18 22:13:59 +00:00
TempData [ "PaymentError" ] = "Error retrieving existing invoice: " + ex . Message ;
EnsurePaymentSessionDefaults ( "TZS" ) ;
return RedirectToAction ( "Payment" ) ;
2025-11-18 20:59:21 +00:00
}
2025-11-16 13:09:03 +00:00
}
2025-11-18 20:59:21 +00:00
string billItemRefNo = "BILL-" + DateTime . Now . ToString ( "yyyyMMddHHmmss" ) + "-" + code ;
2025-11-20 19:42:58 +00:00
int serviceTypeID = 11 ;
2025-11-18 20:59:21 +00:00
string sql = @ "
INSERT INTO [ dbo ] . [ tblInvoice ]
( [ FullName ] , [ PhoneNo ] , [ GFSCode ] , [ BillItemRefNo ] , [ SubServiceName ] , [ Amount ] , FrontUserId , ApplicationID , StartDate , Expiredate , ServiceTypeID , ApplicationCode , [ Currency ] , [ TIN_No ] )
VALUES
( @FullName , @PhoneNo , @GFSCode , @BillItemRefNo , @SubServiceName , @Amount , @FrontUserId , @ApplicationID , GETDATE ( ) , DATEADD ( day , 30 , GETDATE ( ) ) , @ServiceTypeID , @ApplicationCode , @Currency , @TIN_No ) ";
2025-11-18 22:13:59 +00:00
try
{
var parameters = new SqlParameter [ ]
{
new SqlParameter ( "@FullName" , SqlDbType . NVarChar , - 1 ) { Value = ( object ) parentApplication . FullName ? ? DBNull . Value } ,
new SqlParameter ( "@PhoneNo" , SqlDbType . NVarChar , - 1 ) { Value = ( object ) parentApplication . MobileNo ? ? DBNull . Value } ,
new SqlParameter ( "@GFSCode" , SqlDbType . NVarChar , 50 ) { Value = ( object ) gfsCode ? ? DBNull . Value } ,
new SqlParameter ( "@BillItemRefNo" , SqlDbType . NVarChar , 50 ) { Value = ( object ) billItemRefNo ? ? DBNull . Value } ,
new SqlParameter ( "@SubServiceName" , SqlDbType . VarChar , - 1 ) { Value = "Additional_Amount" } ,
new SqlParameter ( "@Amount" , SqlDbType . Decimal ) { Value = addAmount , Precision = 18 , Scale = 2 } ,
new SqlParameter ( "@FrontUserId" , SqlDbType . BigInt ) { Value = DBNull . Value } ,
new SqlParameter ( "@ApplicationID" , SqlDbType . BigInt ) { Value = parentApplication . ApplicationID } ,
new SqlParameter ( "@ServiceTypeID" , SqlDbType . BigInt ) { Value = ( long ) serviceTypeID } ,
new SqlParameter ( "@ApplicationCode" , SqlDbType . NVarChar , - 1 ) { Value = ( object ) code ? ? DBNull . Value } ,
new SqlParameter ( "@Currency" , SqlDbType . VarChar , 10 ) { Value = "TZS" } ,
new SqlParameter ( "@TIN_No" , SqlDbType . NVarChar , - 1 ) { Value = ( object ) parentApplication . CompanyTIN ? ? DBNull . Value }
} ;
int rowsAffected = myContext . Database . ExecuteSqlCommand ( sql , parameters ) ;
if ( rowsAffected < = 0 )
{
TempData [ "PaymentError" ] = "Could not create additional payment invoice." ;
EnsurePaymentSessionDefaults ( "TZS" ) ;
return RedirectToAction ( "Payment" ) ;
}
}
catch ( Exception ex )
2025-11-18 19:45:49 +00:00
{
2025-11-18 22:13:59 +00:00
TempData [ "PaymentError" ] = "Error creating additional payment invoice: " + ex . Message ;
2025-11-18 20:59:21 +00:00
EnsurePaymentSessionDefaults ( "TZS" ) ;
return RedirectToAction ( "Payment" ) ;
2025-11-18 19:45:49 +00:00
}
2025-11-16 13:09:03 +00:00
Session [ "Amount" ] = addAmount . ToString ( "0" ) ;
Session [ "Currency" ] = "TZS" ;
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( addAmount ) + " Tanzanian Shillings" ;
// In Additional Payment context: hide the "Pay Additional Amount" button and hide previous paid invoices
ViewBag . HideAdditionalButton = true ;
2025-11-18 22:13:59 +00:00
ViewBag . HideInvoiceGrid = true ;
2025-11-16 13:09:03 +00:00
TempData [ "HidePaidInvoices" ] = true ;
TempData [ "AdditionalContext" ] = true ;
return View ( "Payment" ) ;
}
catch ( Exception ex )
{
2025-11-18 22:13:59 +00:00
TempData [ "PaymentError" ] = "Error creating additional payment invoice: " + ex . Message ;
2025-11-16 13:09:03 +00:00
EnsurePaymentSessionDefaults ( "TZS" ) ;
return RedirectToAction ( "Payment" ) ;
}
}
2025-11-15 11:14:31 +00:00
public async Task < ActionResult > GenerateControlNo ( )
{
await Task . Delay ( 4000 ) ;
return View ( ) ;
}
[ValidateAntiForgeryToken]
[HttpPost]
public async Task < ActionResult > ProceControlNumber ( )
{
2025-11-16 13:09:03 +00:00
var Username = Session [ "CompanyEmail" ] as string ;
var ProjectCode = Session [ "ProjectCode" ] as string ;
var Currency = Session [ "Currency" ] as string ;
if ( string . IsNullOrWhiteSpace ( Username ) | | string . IsNullOrWhiteSpace ( ProjectCode ) )
{
TempData [ "PaymentError" ] = "Your session expired or project is missing. Please login and open the project again." ;
return RedirectToAction ( "Payment" , "NewCOI" ) ;
}
2025-12-09 07:53:28 +00:00
// First, check if there's a newer Additional_Amount invoice in tblInvoice
InvoiceDisplay additionalInvoice = null ;
try
{
additionalInvoice = myContext . Database . SqlQuery < InvoiceDisplay > (
"SELECT TOP 1 InvoiceID, Amount, Currency, ApplicationCode, ApplicationID, SubServiceName, FullName, PhoneNo, GFSCode, BillItemRefNo, StartDate, Expiredate, ServiceTypeID, PaymentStatus, ControlNo FROM tblInvoice WHERE ApplicationCode = @p0 AND SubServiceName LIKE 'Additional_Amount%' ORDER BY InvoiceID DESC" ,
new System . Data . SqlClient . SqlParameter ( "@p0" , ProjectCode ) ) . FirstOrDefault ( ) ;
}
catch
{
// Continue to check ApplicationManagers
}
2025-11-16 13:09:03 +00:00
2025-12-09 07:53:28 +00:00
ApplicationManager getPDetails = null ;
long? invoiceIdToUse = null ;
decimal amountToUse = 0 m ;
string currencyToUse = null ;
string companyNameToUse = null ;
string mobileNoToUse = null ;
string serviceNameToUse = null ;
// Always fetch the latest invoiceId from tblInvoice for this project (covers regenerated invoices)
long? latestInvoiceId = null ;
try
{
latestInvoiceId = myContext . Database . SqlQuery < long? > (
"SELECT TOP 1 InvoiceID FROM tblInvoice WHERE ApplicationCode = @p0 ORDER BY InvoiceID DESC" ,
new SqlParameter ( "@p0" , ProjectCode ) ) . FirstOrDefault ( ) ;
}
catch
{
// ignore, will handle below
}
if ( additionalInvoice ! = null )
2025-11-16 13:09:03 +00:00
{
2025-12-09 07:53:28 +00:00
// Use the additional payment invoice (2M) and keep company/contact from ApplicationManagers
invoiceIdToUse = additionalInvoice . InvoiceID ;
amountToUse = additionalInvoice . Amount ? ? 0 m ;
currencyToUse = additionalInvoice . Currency ? ? "TZS" ;
getPDetails = myContext . ApplicationManagers
. Where ( t = > t . ProjectCode = = ProjectCode )
. OrderByDescending ( t = > t . CreatedDate )
. FirstOrDefault ( ) ;
if ( getPDetails ! = null )
{
companyNameToUse = getPDetails . CompanyName ;
mobileNoToUse = getPDetails . MobileNo ;
serviceNameToUse = additionalInvoice . SubServiceName ? ? "Additional_Amount" ;
}
}
else
{
// Fall back to ApplicationManagers, but use the latest invoice ID from tblInvoice when available
getPDetails = myContext . ApplicationManagers
. Where ( t = > t . ProjectCode = = ProjectCode )
. OrderByDescending ( t = > t . CreatedDate )
. FirstOrDefault ( ) ;
if ( getPDetails = = null | | ! latestInvoiceId . HasValue )
{
TempData [ "PaymentError" ] = "No invoice found for this project. Create an invoice first." ;
return RedirectToAction ( "Payment" , "NewCOI" ) ;
}
invoiceIdToUse = latestInvoiceId ;
amountToUse = getPDetails . Amount ;
currencyToUse = getPDetails . Currency ;
companyNameToUse = getPDetails . CompanyName ;
mobileNoToUse = getPDetails . MobileNo ;
serviceNameToUse = getPDetails . ServiceName ;
}
if ( ! invoiceIdToUse . HasValue | | amountToUse < = 0 )
{
TempData [ "PaymentError" ] = "Invalid invoice data found." ;
2025-11-16 13:09:03 +00:00
return RedirectToAction ( "Payment" , "NewCOI" ) ;
}
2025-11-15 11:14:31 +00:00
2025-11-16 13:09:03 +00:00
ExchangeRate exchangeRate = myContext . ExchangeRates
2025-12-09 07:53:28 +00:00
. FirstOrDefault ( t = > t . Currency = = currencyToUse ) ;
2025-11-15 11:14:31 +00:00
if ( exchangeRate ! = null ) {
2025-12-09 07:53:28 +00:00
Session [ "EqAmount" ] = exchangeRate . Rate * amountToUse ;
2025-11-15 11:14:31 +00:00
} else {
TempData [ "error" ] = "Couldn\'t process control number. Contact Administrators" ;
return RedirectToAction ( "GenerateControlNo" , "NewCOI" ) ;
}
try
{
2025-12-09 07:53:28 +00:00
if ( getPDetails ! = null )
{
getPDetails . UpdatedDate = DateTime . Now ;
}
2025-11-15 11:14:31 +00:00
using ( var client = new HttpClient ( ) )
{
client . DefaultRequestHeaders . Accept . Clear ( ) ;
client . DefaultRequestHeaders . Accept . Add ( new MediaTypeWithQualityHeaderValue ( "application/json" ) ) ;
var mymodel = new mymodel
{
gepgCtrlno = new gepgCtrlno ( )
{
2025-12-09 07:53:28 +00:00
BillId = invoiceIdToUse . Value . ToString ( ) ,
BillAmt = amountToUse . ToString ( ) ,
2025-11-15 11:14:31 +00:00
BillEqvAmt = Session [ "EqAmount" ] . ToString ( ) ,
BillExprDt = DateTime . Now . AddDays ( 30 ) . ToString ( "yyyy-MM-ddTHH:mm:ss" ) ,
2025-12-09 07:53:28 +00:00
PyrId = companyNameToUse ? ? "" ,
PyrName = companyNameToUse ? ? "" ,
2025-11-15 11:14:31 +00:00
BillGenDt = DateTime . Now . ToString ( "yyyy-MM-ddTHH:mm:ss" ) ,
2025-12-09 07:53:28 +00:00
PyrCellNum = mobileNoToUse ? ? "" ,
Ccy = currencyToUse ? ? "TZS" ,
BillDesc = serviceNameToUse ? ? "" ,
2025-11-15 11:14:31 +00:00
BillItems = new BillItems
{
BillItem = new List < BillItem >
{
2025-12-09 07:53:28 +00:00
new BillItem { BillItemRef = invoiceIdToUse . Value . ToString ( ) , BillItemAmt = amountToUse . ToString ( ) , BillItemEqvAmt = Session [ "EqAmount" ] . ToString ( ) , GfsCode = "142201370002" }
2025-11-15 11:14:31 +00:00
}
} ,
systemInfo = new systemInfo
{
SpSysId = "TTIC003" ,
SpCode = "SP536" ,
SubSpCode = "1002"
}
}
} ;
var stringPayload = await Task . Run ( ( ) = > JsonConvert . SerializeObject ( mymodel ) ) ;
var httpContent = new StringContent ( stringPayload , Encoding . UTF8 , "application/json" ) ;
HttpResponseMessage responseMessage = await client . PostAsync ( "http://192.168.2.31:8090/tic/generate-controlno" , httpContent ) ;
var responseJson = await responseMessage . Content . ReadAsStringAsync ( ) ;
var jObject = JObject . Parse ( responseJson ) ;
2025-12-09 07:53:28 +00:00
// Store invoice ID in session for GenerateControlNo view
Session [ "InvoiceID" ] = invoiceIdToUse . Value ;
Session [ "Amount" ] = amountToUse . ToString ( ) ;
Session [ "Currency" ] = currencyToUse ;
2025-11-15 11:14:31 +00:00
return RedirectToAction ( "GenerateControlNo" , "NewCOI" ) ;
}
}
catch ( Exception ex )
{
TempData [ "error" ] = "Network timeout..please try again" ;
return RedirectToAction ( "GenerateControlNo" , "NewCOI" ) ;
}
}
public ActionResult ExpansionProject ( )
{
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ExpansionProject" , _birthObject ) ;
}
public ActionResult ProceedNext ( string TrackingNo )
{
var checkData = myContext . StepsManagements . Where ( t = > t . ProjectCode = = TrackingNo ) . SingleOrDefault ( ) ;
var checkType = myContext . ProjectProfilesExternal . Where ( t = > t . ProjectCode = = TrackingNo ) . SingleOrDefault ( ) ;
Session [ "CompanyTIN" ] = checkData . CompanyTIN ;
Session [ "CompanyName" ] = checkData . CompanyName ;
Session [ "ProjectCode" ] = checkData . ProjectCode ;
Session [ "ServiceName" ] = checkData . ApplicationType ;
if ( checkData . StepNo = = "1" )
{
return RedirectToAction ( "ProjectDetails" ) ;
}
if ( checkData . StepNo = = "2" )
{
Session [ "TypeofOwnership" ] = checkType . TypeofOwnership ;
return RedirectToAction ( "FinancingDetailsExternal" ) ;
}
if ( checkData . StepNo = = "3" )
{
Session [ "ServiceName" ] = checkType . ServiceName ;
return RedirectToAction ( "AttachmentsNew" ) ;
}
return View ( "Index" ) ;
}
public ActionResult RegenerateCNAmendment ( string TrackingNo )
{
var checkData = myContext . ApplicationManagers . Where ( t = > t . ProjectCode = = TrackingNo ) . SingleOrDefault ( ) ;
if ( checkData ! = null )
{
string priceStr = checkData . Amount . ToString ( ) ;
priceStr = priceStr . Contains ( "." ) ? priceStr . TrimEnd ( '0' ) . TrimEnd ( '.' ) : priceStr ;
Session [ "CompanyTIN" ] = checkData . CompanyTIN ;
Session [ "CompanyName" ] = checkData . CompanyName ;
Session [ "ProjectCode" ] = checkData . ProjectCode ;
Session [ "ServiceName" ] = checkData . ServiceName ;
Session [ "Currency" ] = checkData . Currency ;
Session [ "Amount" ] = priceStr ;
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( checkData . Amount ) ;
// Changes to remove hardcoded exchange rates
ExchangeRate exchangeRate = myContext . ExchangeRates . SingleOrDefault ( t = > t . Currency = = checkData . Currency ) ;
if ( exchangeRate ! = null ) {
Session [ "AmountinWords" ] + = " " + exchangeRate . CurrencyDesc ;
}
return View ( "PaymentAmendment" ) ;
}
return View ( "IndexAmendment" ) ;
}
public ActionResult RegenerateCN ( string TrackingNo )
{
var checkData = myContext . ApplicationManagers . Where ( t = > t . ProjectCode = = TrackingNo ) . SingleOrDefault ( ) ;
if ( checkData ! = null )
{
2025-11-20 19:42:58 +00:00
string priceStr = checkData . Amount . ToString ( ) ;
2025-11-15 11:14:31 +00:00
priceStr = priceStr . Contains ( "." ) ? priceStr . TrimEnd ( '0' ) . TrimEnd ( '.' ) : priceStr ;
Session [ "CompanyTIN" ] = checkData . CompanyTIN ;
Session [ "CompanyName" ] = checkData . CompanyName ;
Session [ "ProjectCode" ] = checkData . ProjectCode ;
Session [ "ServiceName" ] = checkData . ServiceName ;
Session [ "Currency" ] = checkData . Currency ;
Session [ "Amount" ] = priceStr ;
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( checkData . Amount ) ;
// Changes to remove hardcoded exchange rates
ExchangeRate exchangeRate = myContext . ExchangeRates . SingleOrDefault ( t = > t . Currency = = checkData . Currency ) ;
if ( exchangeRate ! = null ) {
Session [ "AmountinWords" ] + = " " + exchangeRate . CurrencyDesc ;
}
return View ( "Payment" ) ;
}
return View ( "Index" ) ;
}
public ActionResult ProceedNextExpansion ( string TrackingNo )
{
var checkData = myContext . StepsManagements . Where ( t = > t . ProjectCode = = TrackingNo ) . SingleOrDefault ( ) ;
var checkType = myContext . ProjectProfilesExternal . Where ( t = > t . ProjectCode = = TrackingNo ) . SingleOrDefault ( ) ;
Session [ "CompanyTIN" ] = checkData . CompanyTIN ;
Session [ "CompanyName" ] = checkData . CompanyName ;
Session [ "ProjectCode" ] = checkData . ProjectCode ;
Session [ "ServiceName" ] = checkData . ApplicationType ;
if ( checkData . StepNo = = "1" )
{
return RedirectToAction ( "LoadgeNewExpansion" ) ;
}
if ( checkData . StepNo = = "2" )
{
Session [ "TypeofOwnership" ] = checkType . TypeofOwnership ;
return RedirectToAction ( "FinancingDetailsExpansion" ) ;
}
if ( checkData . StepNo = = "3" )
{
Session [ "ServiceName" ] = checkType . ServiceName ;
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
return View ( "Index" ) ;
}
public ActionResult ProceedNextAmendment ( string TrackingNo )
{
var checkData = myContext . StepsManagements . Where ( t = > t . ProjectCode = = TrackingNo ) . SingleOrDefault ( ) ;
Session [ "CompanyTIN" ] = checkData . CompanyTIN ;
Session [ "CompanyName" ] = checkData . CompanyName ;
Session [ "ProjectCode" ] = checkData . ProjectCode ;
Session [ "ServiceName" ] = checkData . ApplicationType ;
if ( checkData . StepNo = = "1" )
{
return RedirectToAction ( "AmendmentApplication" ) ;
}
if ( checkData . StepNo = = "2" )
{
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
return View ( "Index" ) ;
}
public ActionResult ProceedNextExtention ( string TrackingNo )
{
var checkData = myContext . StepsManagements . Where ( t = > t . ProjectCode = = TrackingNo ) . SingleOrDefault ( ) ;
Session [ "CompanyTIN" ] = checkData . CompanyTIN ;
Session [ "CompanyName" ] = checkData . CompanyName ;
Session [ "ProjectCode" ] = checkData . ProjectCode ;
Session [ "ServiceName" ] = checkData . ApplicationType ;
if ( checkData . StepNo = = "1" )
{
return RedirectToAction ( "Extension" ) ;
}
if ( checkData . StepNo = = "2" )
{
return RedirectToAction ( "AttachmentsExtension" ) ;
}
return View ( "Index" ) ;
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostProjectProfile ( ProjectProfileExternal model )
{
try
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkIfPExists = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) ;
ProjectProfileExternal addnewPProfile = new ProjectProfileExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
Session [ "CompanyTIN" ] = checkIfExists . CompanyTIN ;
Session [ "CompanyName" ] = checkIfExists . CompanyName ;
Session [ "ServiceName" ] = "New" ;
if ( ModelState . IsValid )
{
if ( checkIfPExists = = null )
addnewPProfile . ProjectName = model . ProjectName ;
addnewPProfile . TypeofOwnership = model . TypeofOwnership ;
addnewPProfile . UnitMeasure = model . UnitMeasure ;
addnewPProfile . MainActivity = model . MainActivity ;
addnewPProfile . Region = model . Region ;
addnewPProfile . District = model . District ;
addnewPProfile . ServiceName = Session [ "ServiceName" ] . ToString ( ) ;
addnewPProfile . Email = model . ContactEmail ;
addnewPProfile . Mobile = model . Mobile ;
addnewPProfile . ProductionCapacity = model . ProductionCapacity ;
addnewPProfile . Ward = model . Ward ;
addnewPProfile . Sector = model . Sector ;
addnewPProfile . SubSector = model . SubSector ;
addnewPProfile . MenForeign = model . MenForeign ;
addnewPProfile . WomenForeign = model . WomenForeign ;
addnewPProfile . MenLocal = model . MenLocal ;
addnewPProfile . PostalAddress = model . PostalAddress ;
addnewPProfile . ContactMobile = model . ContactMobile ;
addnewPProfile . WomenLocal = model . WomenLocal ;
addnewPProfile . Street = model . Street ;
addnewPProfile . AreaType = model . AreaType ;
addnewPProfile . Area = model . Area ;
addnewPProfile . LandMarkType = model . LandMarkType ;
addnewPProfile . LandMarkDescription = model . LandMarkDescription ;
addnewPProfile . PlotNumber = model . PlotNumber ;
addnewPProfile . LastUpdateDate = DateTime . Now ;
addnewPProfile . UpdatedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewPProfile . Telephone = model . ContactMobile ;
addnewPProfile . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
addnewPProfile . CompanyName = Session [ "CompanyName" ] . ToString ( ) ;
addnewPProfile . BlockPlotNumber = model . BlockPlotNumber ;
addnewPProfile . HouseNo = model . HouseNo ;
addnewPProfile . StepName = "2" ;
addnewPProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewPProfile . CreatedDate = DateTime . Now ;
addnewPProfile . ContactPerson = model . ContactPerson ;
addnewPProfile . ContactEmail = model . ContactEmail ;
addnewPProfile . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addnewPProfile . Title = model . Title ;
Session [ "TypeofOwnership" ] = model . TypeofOwnership ;
TempData [ "success" ] = "Project Information Successfully Saved" ;
myContext . ProjectProfilesExternal . Add ( addnewPProfile ) ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "2" ;
checkSteps . ApplicationType = "New" ;
checkSteps . SubmittedStatus = "Not Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
if ( checkIfPExists = = null )
{
myContext . SaveChanges ( ) ;
return RedirectToAction ( "FinancingDetailsExternal" ) ;
}
else
{
checkIfPExists . ProjectName = model . ProjectName ;
checkIfPExists . TypeofOwnership = model . TypeofOwnership ;
checkIfPExists . UnitMeasure = model . UnitMeasure ;
checkIfPExists . MainActivity = model . MainActivity ;
checkIfPExists . Region = model . Region ;
checkIfPExists . District = model . District ;
checkIfPExists . ServiceName = Session [ "ServiceName" ] . ToString ( ) ;
checkIfPExists . Email = model . ContactEmail ;
checkIfPExists . Mobile = model . Mobile ;
checkIfPExists . ProductionCapacity = model . ProductionCapacity ;
checkIfPExists . Ward = model . Ward ;
checkIfPExists . Sector = model . Sector ;
checkIfPExists . SubSector = model . SubSector ;
checkIfPExists . MenForeign = model . MenForeign ;
checkIfPExists . WomenForeign = model . WomenForeign ;
checkIfPExists . MenLocal = model . MenLocal ;
checkIfPExists . PostalAddress = model . PostalAddress ;
checkIfPExists . ContactMobile = model . ContactMobile ;
checkIfPExists . WomenLocal = model . WomenLocal ;
checkIfPExists . Street = model . Street ;
checkIfPExists . AreaType = model . AreaType ;
checkIfPExists . Area = model . Area ;
checkIfPExists . LandMarkType = model . LandMarkType ;
checkIfPExists . LandMarkDescription = model . LandMarkDescription ;
checkIfPExists . PlotNumber = model . PlotNumber ;
checkIfPExists . LastUpdateDate = DateTime . Now ;
checkIfPExists . UpdatedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
checkIfPExists . Telephone = model . ContactMobile ;
checkIfPExists . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
checkIfPExists . CompanyName = Session [ "CompanyName" ] . ToString ( ) ;
checkIfPExists . BlockPlotNumber = model . BlockPlotNumber ;
checkIfPExists . HouseNo = model . HouseNo ;
checkIfPExists . StepName = "2" ;
checkIfPExists . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
checkIfPExists . CreatedDate = DateTime . Now ;
checkIfPExists . ContactPerson = model . ContactPerson ;
checkIfPExists . ContactEmail = model . ContactEmail ;
checkIfPExists . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
checkIfPExists . Title = model . Title ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "FinancingDetailsExternal" ) ;
}
}
else
{
TempData [ "error" ] = "Your inputs have some errors! correct and retry." ;
TempData [ "validation_errors" ] = ModelState . ToDictionary (
k = > k . Key ,
v = > v . Value . Errors . Select ( x = > x . ErrorMessage ) . ToArray ( ) ) ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ProjectDetails" , _birthObject ) ;
}
}
catch ( DbEntityValidationException ex )
{
IDictionary < string , string [ ] > errorsDictionary = new Dictionary < string , string [ ] > ( ) ;
foreach ( var validationErrors in ex . EntityValidationErrors )
{
foreach ( var validationError in validationErrors . ValidationErrors )
{
if ( ! errorsDictionary . ContainsKey ( validationError . PropertyName ) )
{
errorsDictionary [ validationError . PropertyName ] = new string [ ] { validationError . ErrorMessage } ;
}
else
{
errorsDictionary [ validationError . PropertyName ] = errorsDictionary [ validationError . PropertyName ]
. Concat ( new string [ ] { validationError . ErrorMessage } ) . ToArray ( ) ;
}
}
}
TempData [ "error" ] = "Your inputs have some errors! correct and retry." ;
TempData [ "validation_errors" ] = errorsDictionary ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ProjectDetails" , _birthObject ) ;
}
catch ( Exception ex )
{
TempData [ "error" ] = "Unexpected error occured! Please retry" ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ProjectDetails" , _birthObject ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostProjectProfileChange ( ProjectProfileExternal model )
{
try
{
if ( ModelState . IsValid )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
var checkProjectDetails = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExists ! = null ) {
if ( checkProjectDetails ! = null ) {
// ProjectProfileExternal addnewPProfile = new ProjectProfileExternal();
Session [ "CompanyTIN" ] = checkIfExists . CompanyTIN ;
Session [ "CompanyName" ] = checkIfExists . CompanyName ;
Session [ "ServiceName" ] = "New" ;
checkProjectDetails . ProjectName = model . ProjectName ;
checkProjectDetails . TypeofOwnership = model . TypeofOwnership ;
checkProjectDetails . UnitMeasure = model . UnitMeasure ;
checkProjectDetails . MainActivity = model . MainActivity ;
checkProjectDetails . Region = model . Region ;
checkProjectDetails . District = model . District ;
checkProjectDetails . ServiceName = Session [ "ServiceName" ] . ToString ( ) ;
checkProjectDetails . Email = model . ContactEmail ;
checkProjectDetails . Mobile = model . Mobile ;
checkProjectDetails . ProductionCapacity = model . ProductionCapacity ;
checkProjectDetails . Ward = model . Ward ;
checkProjectDetails . Sector = model . Sector ;
checkProjectDetails . SubSector = model . SubSector ;
checkProjectDetails . MenForeign = model . MenForeign ;
checkProjectDetails . WomenForeign = model . WomenForeign ;
checkProjectDetails . MenLocal = model . MenLocal ;
checkProjectDetails . PostalAddress = model . PostalAddress ;
checkProjectDetails . ContactMobile = model . ContactMobile ;
checkProjectDetails . WomenLocal = model . WomenLocal ;
checkProjectDetails . Street = model . Street ;
checkProjectDetails . AreaType = model . AreaType ;
checkProjectDetails . Area = model . Area ;
checkProjectDetails . LandMarkType = model . LandMarkType ;
checkProjectDetails . LandMarkDescription = model . LandMarkDescription ;
checkProjectDetails . PlotNumber = model . PlotNumber ;
checkProjectDetails . LastUpdateDate = DateTime . Now ;
checkProjectDetails . UpdatedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
checkProjectDetails . Telephone = model . ContactMobile ;
checkProjectDetails . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
checkProjectDetails . CompanyName = Session [ "CompanyName" ] . ToString ( ) ;
checkProjectDetails . BlockPlotNumber = model . BlockPlotNumber ;
checkProjectDetails . HouseNo = model . HouseNo ;
checkProjectDetails . StepName = "2" ;
checkProjectDetails . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
checkProjectDetails . CreatedDate = DateTime . Now ;
checkProjectDetails . ContactPerson = model . ContactPerson ;
checkProjectDetails . ContactEmail = model . ContactEmail ;
checkProjectDetails . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
checkProjectDetails . Title = model . Title ;
Session [ "TypeofOwnership" ] = model . TypeofOwnership ;
TempData [ "success" ] = "Project Information Successfully Saved" ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "RedirectFinancing" ) ;
} else {
TempData [ "error" ] = "Project with code " + ProjectCode + " does not exist" ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ShowProjectDetails" , _birthObject ) ;
}
} else {
TempData [ "error" ] = "Company with TIN " + model . CompanyTIN + " is not yet registered at TIC" ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ShowProjectDetails" , _birthObject ) ;
}
}
else
{
TempData [ "error" ] = "Your inputs have some errors! correct and retry." ;
TempData [ "validation_errors" ] = ModelState . ToDictionary (
k = > k . Key ,
v = > v . Value . Errors . Select ( x = > x . ErrorMessage ) . ToArray ( ) ) ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ShowProjectDetails" , _birthObject ) ;
}
}
catch ( DbEntityValidationException ex )
{
IDictionary < string , string [ ] > errorsDictionary = new Dictionary < string , string [ ] > ( ) ;
foreach ( var validationErrors in ex . EntityValidationErrors )
{
foreach ( var validationError in validationErrors . ValidationErrors )
{
if ( ! errorsDictionary . ContainsKey ( validationError . PropertyName ) )
{
errorsDictionary [ validationError . PropertyName ] = new string [ ] { validationError . ErrorMessage } ;
}
else
{
errorsDictionary [ validationError . PropertyName ] = errorsDictionary [ validationError . PropertyName ]
. Concat ( new string [ ] { validationError . ErrorMessage } ) . ToArray ( ) ;
}
}
}
TempData [ "error" ] = "Your inputs have some errors! correct and retry." ;
TempData [ "validation_errors" ] = errorsDictionary ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ShowProjectDetails" , _birthObject ) ;
}
catch ( Exception ex )
{
TempData [ "error" ] = "Unexpected error occured! Please retry" ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ShowProjectDetails" , _birthObject ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostAmendmentApplication ( CompanyAmmendmentExternal model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
CompanyAmmendmentExternal addnewAmendment = new CompanyAmmendmentExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
Session [ "CompanyTIN" ] = checkIfExists . CompanyTIN ;
Session [ "CompanyName" ] = checkIfExists . CompanyName ;
Session [ "ServiceName" ] = "Amendment" ;
addnewAmendment . ChangeofCompanyName = model . ChangeofCompanyName ;
addnewAmendment . ChangeOfLocation = model . ChangeOfLocation ;
addnewAmendment . ChangeofImplementationPeriod = model . ChangeofImplementationPeriod ;
addnewAmendment . LostCertificate = model . LostCertificate ;
addnewAmendment . ReIssueCertificate = model . ReIssueCertificate ;
addnewAmendment . CompanyName = checkIfExists . CompanyName ;
addnewAmendment . ProjectName = model . ProjectName ;
addnewAmendment . CompanyTIN = checkIfExists . CompanyTIN ;
addnewAmendment . ChangeofShareholders = model . ChangeofShareholders ;
addnewAmendment . ChangeOfAddress = model . ChangeOfAddress ;
addnewAmendment . CertificateNo = model . CertificateNo ;
addnewAmendment . IssuedDate = model . IssuedDate ;
addnewAmendment . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addnewAmendment . LoadgeBy = Session [ "ProjectCode" ] . ToString ( ) ;
addnewAmendment . CreatedDate = DateTime . Now ;
addnewAmendment . LoadgeBy = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "2" ;
checkSteps . SubmittedStatus = "Not Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
TempData [ "success" ] = "Project Information Successfully Saved" ;
var checkIfAExists = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) ;
if ( checkIfAExists = = null )
{
myContext . CompanyAmmendmentsExternal . Add ( addnewAmendment ) ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
else
{
checkIfAExists . ChangeofCompanyName = model . ChangeofCompanyName ;
checkIfAExists . ChangeOfLocation = model . ChangeOfLocation ;
checkIfAExists . ChangeofImplementationPeriod = model . ChangeofImplementationPeriod ;
checkIfAExists . LostCertificate = model . LostCertificate ;
checkIfAExists . ReIssueCertificate = model . ReIssueCertificate ;
checkIfAExists . CompanyName = checkIfExists . CompanyName ;
checkIfAExists . ProjectName = model . ProjectName ;
checkIfAExists . CompanyTIN = checkIfExists . CompanyTIN ;
checkIfAExists . ChangeofShareholders = model . ChangeofShareholders ;
checkIfAExists . ChangeOfAddress = model . ChangeOfAddress ;
checkIfAExists . CertificateNo = model . CertificateNo ;
checkIfAExists . IssuedDate = model . IssuedDate ;
checkIfAExists . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
checkIfAExists . LoadgeBy = Session [ "ProjectCode" ] . ToString ( ) ;
checkIfAExists . CreatedDate = DateTime . Now ;
checkIfAExists . LoadgeBy = Session [ "CompanyEmail" ] . ToString ( ) ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "AttachmentsAmendments" ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostExtension ( CompanyAmmendmentExternal model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
CompanyAmmendmentExternal addnewAmendment = new CompanyAmmendmentExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
Session [ "CompanyTIN" ] = checkIfExists . CompanyTIN ;
Session [ "CompanyName" ] = checkIfExists . CompanyName ;
Session [ "ServiceName" ] = "Extension" ;
addnewAmendment . ChangeofCompanyName = model . ChangeofCompanyName ;
addnewAmendment . ChangeOfLocation = model . ChangeOfLocation ;
addnewAmendment . ChangeofImplementationPeriod = model . ChangeofImplementationPeriod ;
addnewAmendment . LostCertificate = model . LostCertificate ;
addnewAmendment . ReIssueCertificate = model . ReIssueCertificate ;
addnewAmendment . CompanyName = checkIfExists . CompanyName ;
addnewAmendment . ProjectName = model . ProjectName ;
addnewAmendment . CompanyTIN = checkIfExists . CompanyTIN ;
addnewAmendment . ChangeofShareholders = model . ChangeofShareholders ;
addnewAmendment . ChangeOfAddress = model . ChangeOfAddress ;
addnewAmendment . CertificateNo = model . CertificateNo ;
addnewAmendment . Reason = model . Reason ;
addnewAmendment . IssuedDate = model . IssuedDate ;
addnewAmendment . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addnewAmendment . LoadgeBy = Session [ "ProjectCode" ] . ToString ( ) ;
addnewAmendment . CreatedDate = DateTime . Now ;
addnewAmendment . LoadgeBy = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "2" ;
checkSteps . SubmittedStatus = "Not Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
TempData [ "success" ] = "Project Information Successfully Saved" ;
var checkIfAExists = myContext . CompanyAmmendmentsExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) ;
if ( checkIfAExists = = null )
{
myContext . CompanyAmmendmentsExternal . Add ( addnewAmendment ) ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
else
{
checkIfAExists . ChangeofCompanyName = model . ChangeofCompanyName ;
checkIfAExists . ChangeOfLocation = model . ChangeOfLocation ;
checkIfAExists . ChangeofImplementationPeriod = model . ChangeofImplementationPeriod ;
checkIfAExists . LostCertificate = model . LostCertificate ;
checkIfAExists . ReIssueCertificate = model . ReIssueCertificate ;
checkIfAExists . CompanyName = checkIfExists . CompanyName ;
checkIfAExists . ProjectName = model . ProjectName ;
checkIfAExists . CompanyTIN = checkIfExists . CompanyTIN ;
checkIfAExists . ChangeofShareholders = model . ChangeofShareholders ;
checkIfAExists . ChangeOfAddress = model . ChangeOfAddress ;
checkIfAExists . CertificateNo = model . CertificateNo ;
checkIfAExists . Reason = model . Reason ;
checkIfAExists . IssuedDate = model . IssuedDate ;
checkIfAExists . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
checkIfAExists . LoadgeBy = Session [ "ProjectCode" ] . ToString ( ) ;
checkIfAExists . CreatedDate = DateTime . Now ;
checkIfAExists . LoadgeBy = Session [ "CompanyEmail" ] . ToString ( ) ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "AttachmentsExtension" ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostProjectProfileExpansion ( ProjectProfileExternal model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
ProjectProfileExternal addnewPProfile = new ProjectProfileExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
Session [ "CompanyTIN" ] = checkIfExists . CompanyTIN ;
Session [ "CompanyName" ] = checkIfExists . CompanyName ;
Session [ "ServiceName" ] = "Expansion" ;
addnewPProfile . ProjectName = model . ProjectName ;
addnewPProfile . TypeofOwnership = model . TypeofOwnership ;
addnewPProfile . UnitMeasure = model . UnitMeasure ;
addnewPProfile . MainActivity = model . MainActivity ;
addnewPProfile . Region = model . Region ;
addnewPProfile . District = model . District ;
addnewPProfile . ServiceName = Session [ "ServiceName" ] . ToString ( ) ;
addnewPProfile . Email = model . ContactEmail ;
addnewPProfile . Mobile = model . ContactMobile ;
addnewPProfile . TICCertificateNo = model . TICCertificateNo ;
addnewPProfile . IssuedDate = model . IssuedDate ;
addnewPProfile . ProductionCapacity = model . ProductionCapacity ;
addnewPProfile . Ward = model . Ward ;
addnewPProfile . Sector = model . Sector ;
addnewPProfile . SubSector = model . SubSector ;
addnewPProfile . MenForeign = model . MenForeign ;
addnewPProfile . WomenForeign = model . WomenForeign ;
addnewPProfile . MenLocal = model . MenLocal ;
addnewPProfile . PostalAddress = model . PostalAddress ;
addnewPProfile . ContactMobile = model . ContactMobile ;
addnewPProfile . WomenLocal = model . WomenLocal ;
addnewPProfile . Street = model . Street ;
addnewPProfile . AreaType = model . AreaType ;
addnewPProfile . Area = model . Area ;
addnewPProfile . LandMarkType = model . LandMarkType ;
addnewPProfile . LandMarkDescription = model . LandMarkDescription ;
addnewPProfile . PlotNumber = model . PlotNumber ;
addnewPProfile . LastUpdateDate = DateTime . Now ;
addnewPProfile . UpdatedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewPProfile . Telephone = model . ContactMobile ;
addnewPProfile . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
addnewPProfile . CompanyName = Session [ "CompanyName" ] . ToString ( ) ;
addnewPProfile . BlockPlotNumber = model . BlockPlotNumber ;
addnewPProfile . HouseNo = model . HouseNo ;
addnewPProfile . StepName = "2" ;
addnewPProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewPProfile . CreatedDate = DateTime . Now ;
addnewPProfile . ContactPerson = model . ContactPerson ;
addnewPProfile . OriginalCOI = model . OriginalCOI ;
addnewPProfile . IssuedDate = model . IssuedDate ;
addnewPProfile . ContactEmail = model . ContactEmail ;
addnewPProfile . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
addnewPProfile . Title = model . Title ;
Session [ "TypeofOwnership" ] = model . TypeofOwnership ;
TempData [ "success" ] = "Project Information Successfully Saved" ;
myContext . ProjectProfilesExternal . Add ( addnewPProfile ) ;
var ProjectCode = Session [ "ProjectCode" ] ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "2" ;
checkSteps . SubmittedStatus = "Not Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "FinancingDetailsExpansion" ) ;
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostProjectProfileExpansionChange ( ProjectProfileExternal model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
ProjectProfileExternal addnewPProfile = new ProjectProfileExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
var checkIfPExists = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
Session [ "CompanyTIN" ] = checkIfExists . CompanyTIN ;
Session [ "CompanyName" ] = checkIfExists . CompanyName ;
Session [ "ServiceName" ] = "Expansion" ;
checkIfPExists . ProjectName = model . ProjectName ;
checkIfPExists . TypeofOwnership = model . TypeofOwnership ;
checkIfPExists . UnitMeasure = model . UnitMeasure ;
checkIfPExists . MainActivity = model . MainActivity ;
checkIfPExists . Region = model . Region ;
checkIfPExists . District = model . District ;
checkIfPExists . ServiceName = Session [ "ServiceName" ] . ToString ( ) ;
checkIfPExists . Email = model . ContactEmail ;
checkIfPExists . Mobile = model . ContactMobile ;
checkIfPExists . TICCertificateNo = model . TICCertificateNo ;
checkIfPExists . IssuedDate = model . IssuedDate ;
checkIfPExists . ProductionCapacity = model . ProductionCapacity ;
checkIfPExists . Ward = model . Ward ;
checkIfPExists . Sector = model . Sector ;
checkIfPExists . SubSector = model . SubSector ;
checkIfPExists . MenForeign = model . MenForeign ;
checkIfPExists . WomenForeign = model . WomenForeign ;
checkIfPExists . MenLocal = model . MenLocal ;
checkIfPExists . PostalAddress = model . PostalAddress ;
checkIfPExists . ContactMobile = model . ContactMobile ;
checkIfPExists . WomenLocal = model . WomenLocal ;
checkIfPExists . Street = model . Street ;
checkIfPExists . AreaType = model . AreaType ;
checkIfPExists . Area = model . Area ;
checkIfPExists . LandMarkType = model . LandMarkType ;
checkIfPExists . LandMarkDescription = model . LandMarkDescription ;
checkIfPExists . PlotNumber = model . PlotNumber ;
checkIfPExists . LastUpdateDate = DateTime . Now ;
checkIfPExists . UpdatedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
checkIfPExists . Telephone = model . ContactMobile ;
checkIfPExists . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
checkIfPExists . CompanyName = Session [ "CompanyName" ] . ToString ( ) ;
checkIfPExists . BlockPlotNumber = model . BlockPlotNumber ;
checkIfPExists . HouseNo = model . HouseNo ;
checkIfPExists . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
checkIfPExists . CreatedDate = DateTime . Now ;
checkIfPExists . ContactPerson = model . ContactPerson ;
checkIfPExists . OriginalCOI = model . OriginalCOI ;
checkIfPExists . IssuedDate = model . IssuedDate ;
checkIfPExists . ContactEmail = model . ContactEmail ;
checkIfPExists . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
checkIfPExists . Title = model . Title ;
Session [ "TypeofOwnership" ] = model . TypeofOwnership ;
TempData [ "success" ] = "Project Information Successfully Saved" ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "RedirectFinancingExpansion" ) ;
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostCompanyProfile ( CompanyProfileExternal model )
{
try
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
CompanyProfileExternal addnewCMProfile = new CompanyProfileExternal ( ) ;
var checkIfSaved = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN & & t . AddedBy ! = Username ) ;
if ( checkIfSaved ! = null )
{
TempData [ "error" ] = "Failed to save Company Details, Company already exists created by " + checkIfSaved . AddedBy ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "LoadgeNewCOI" , _birthObject ) ;
}
else
{
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN & & t . AddedBy = = Username ) ;
if ( checkIfExists = = null )
{
addnewCMProfile . CompanyName = Sanitizer . GetSafeHtmlFragment ( model . CompanyName ) ;
addnewCMProfile . CompanyTIN = Sanitizer . GetSafeHtmlFragment ( model . CompanyTIN ) ;
addnewCMProfile . Category = Sanitizer . GetSafeHtmlFragment ( model . Category ) ;
addnewCMProfile . IncorpCertNo = Sanitizer . GetSafeHtmlFragment ( model . IncorpCertNo ) ;
addnewCMProfile . IncorpCertDate = model . IncorpCertDate ;
addnewCMProfile . Region = model . Region ;
addnewCMProfile . District = model . District ;
addnewCMProfile . Ward = model . Ward ;
addnewCMProfile . CompanyEmail = Sanitizer . GetSafeHtmlFragment ( model . CompanyEmail ) ;
addnewCMProfile . CompanyMobile = Sanitizer . GetSafeHtmlFragment ( model . CompanyMobile ) ;
addnewCMProfile . Street = Sanitizer . GetSafeHtmlFragment ( model . Street ) ;
addnewCMProfile . PostalAddress = Sanitizer . GetSafeHtmlFragment ( model . PostalAddress ) ;
addnewCMProfile . AreaType = Sanitizer . GetSafeHtmlFragment ( model . AreaType ) ;
addnewCMProfile . Area = Sanitizer . GetSafeHtmlFragment ( model . Area ) ;
addnewCMProfile . LandMarkType = Sanitizer . GetSafeHtmlFragment ( model . LandMarkType ) ;
addnewCMProfile . LandMarkDescription = Sanitizer . GetSafeHtmlFragment ( model . LandMarkDescription ) ;
addnewCMProfile . PlotNumber = Sanitizer . GetSafeHtmlFragment ( model . PlotNumber ) ;
addnewCMProfile . Telephone = Sanitizer . GetSafeHtmlFragment ( model . Telephone ) ;
addnewCMProfile . BlockPlotNumber = Sanitizer . GetSafeHtmlFragment ( model . BlockPlotNumber ) ;
addnewCMProfile . HouseNo = Sanitizer . GetSafeHtmlFragment ( model . HouseNo ) ;
addnewCMProfile . StepName = "1" ;
addnewCMProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewCMProfile . CreatedDate = DateTime . Now ;
addnewCMProfile . OperatingStatus = "Operating" ;
Session [ "CompanyName" ] = Sanitizer . GetSafeHtmlFragment ( model . CompanyName ) ;
Session [ "CompanyTIN" ] = Sanitizer . GetSafeHtmlFragment ( model . CompanyTIN ) ;
Session [ "ProjectCode" ] = GenerateINo ( ) ;
var getInvestorProfile = myContext . InvestorExternl . Where ( t = > t . CompanyEmail = = Username ) . SingleOrDefault ( ) ;
getInvestorProfile . CompanyTIN = model . CompanyTIN ;
getInvestorProfile . CompanyName = model . CompanyName ;
TempData [ "success" ] = "Company Information Successfully Saved" ;
myContext . CompanyProfileExternal . Add ( addnewCMProfile ) ;
StepsManagement stManager = new StepsManagement ( ) ;
stManager . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
stManager . CompanyName = Session [ "CompanyName" ] . ToString ( ) ;
stManager . StepNo = "1" ;
stManager . CreatedDate = DateTime . Now ;
stManager . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
stManager . CompanyEmail = Username ;
stManager . UpdatedDate = DateTime . Now ;
stManager . EvaluationStatus = "Company Details" ;
stManager . SubmittedStatus = "Not Submitted" ;
stManager . ApplicationType = "New" ;
myContext . StepsManagements . Add ( stManager ) ;
myContext . SaveChanges ( ) ;
TempData [ "success" ] = "Project profile page" ;
return RedirectToAction ( "RedirectProject" ) ;
}
else
{
TempData [ "error" ] = "Failed to save Company Details, Company already exists created by " + checkIfExists . AddedBy ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "LoadgeNewCOI" , _birthObject ) ;
}
}
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error!....failed to register company" ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "LoadgeNewCOI" , _birthObject ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostCompanyProfileUpdate ( CompanyProfileExternal model )
{
try
{
//if (ModelState.IsValid)
//{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
CompanyProfileExternal addnewCMProfile = new CompanyProfileExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN & & t . AddedBy = = Username ) ;
if ( checkIfExists ! = null )
{
checkIfExists . CompanyName = Sanitizer . GetSafeHtmlFragment ( model . CompanyName ) ;
checkIfExists . CompanyTIN = Sanitizer . GetSafeHtmlFragment ( model . CompanyTIN ) ;
checkIfExists . Category = Sanitizer . GetSafeHtmlFragment ( model . Category ) ;
checkIfExists . IncorpCertNo = Sanitizer . GetSafeHtmlFragment ( model . IncorpCertNo ) ;
checkIfExists . IncorpCertDate = model . IncorpCertDate ;
checkIfExists . Region = model . Region ;
checkIfExists . District = model . District ;
checkIfExists . Ward = model . Ward ;
checkIfExists . CompanyEmail = Sanitizer . GetSafeHtmlFragment ( model . CompanyEmail ) ;
checkIfExists . CompanyMobile = Sanitizer . GetSafeHtmlFragment ( model . CompanyMobile ) ;
checkIfExists . Street = Sanitizer . GetSafeHtmlFragment ( model . Street ) ;
checkIfExists . PostalAddress = Sanitizer . GetSafeHtmlFragment ( model . PostalAddress ) ;
checkIfExists . AreaType = Sanitizer . GetSafeHtmlFragment ( model . AreaType ) ;
checkIfExists . Area = Sanitizer . GetSafeHtmlFragment ( model . Area ) ;
checkIfExists . LandMarkType = Sanitizer . GetSafeHtmlFragment ( model . LandMarkType ) ;
checkIfExists . LandMarkDescription = Sanitizer . GetSafeHtmlFragment ( model . LandMarkDescription ) ;
checkIfExists . PlotNumber = Sanitizer . GetSafeHtmlFragment ( model . PlotNumber ) ;
checkIfExists . Telephone = Sanitizer . GetSafeHtmlFragment ( model . Telephone ) ;
checkIfExists . BlockPlotNumber = Sanitizer . GetSafeHtmlFragment ( model . BlockPlotNumber ) ;
checkIfExists . HouseNo = Sanitizer . GetSafeHtmlFragment ( model . HouseNo ) ;
addnewCMProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewCMProfile . CreatedDate = DateTime . Now ;
myContext . SaveChanges ( ) ;
TempData [ "success" ] = "Project profile page" ;
return RedirectToAction ( "RedirectProject" ) ;
}
else
{
TempData [ "error" ] = "Failed to update Company Profiles" ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "LoadgeNewCOI" , _birthObject ) ;
}
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error!....failed to register company" ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "LoadgeNewCOI" , _birthObject ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostCompanyProfileExpansion ( CompanyProfileExternal model )
{
if ( ModelState . IsValid )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
CompanyProfileExternal addnewCMProfile = new CompanyProfileExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
if ( checkIfExists = = null )
{
addnewCMProfile . CompanyName = Sanitizer . GetSafeHtmlFragment ( model . CompanyName ) ;
addnewCMProfile . CompanyTIN = Sanitizer . GetSafeHtmlFragment ( model . CompanyTIN ) ;
addnewCMProfile . Category = Sanitizer . GetSafeHtmlFragment ( model . Category ) ;
addnewCMProfile . IncorpCertNo = Sanitizer . GetSafeHtmlFragment ( model . IncorpCertNo ) ;
addnewCMProfile . IncorpCertDate = model . IncorpCertDate ;
addnewCMProfile . Region = model . Region ;
addnewCMProfile . District = model . District ;
addnewCMProfile . Ward = model . Ward ;
addnewCMProfile . CompanyEmail = Sanitizer . GetSafeHtmlFragment ( model . CompanyEmail ) ;
addnewCMProfile . CompanyMobile = Sanitizer . GetSafeHtmlFragment ( model . CompanyMobile ) ;
addnewCMProfile . Street = Sanitizer . GetSafeHtmlFragment ( model . Street ) ;
addnewCMProfile . PostalAddress = Sanitizer . GetSafeHtmlFragment ( model . PostalAddress ) ;
addnewCMProfile . AreaType = Sanitizer . GetSafeHtmlFragment ( model . AreaType ) ;
addnewCMProfile . Area = Sanitizer . GetSafeHtmlFragment ( model . Area ) ;
addnewCMProfile . LandMarkType = Sanitizer . GetSafeHtmlFragment ( model . LandMarkType ) ;
addnewCMProfile . LandMarkDescription = Sanitizer . GetSafeHtmlFragment ( model . LandMarkDescription ) ;
addnewCMProfile . PlotNumber = Sanitizer . GetSafeHtmlFragment ( model . PlotNumber ) ;
addnewCMProfile . Telephone = Sanitizer . GetSafeHtmlFragment ( model . Telephone ) ;
addnewCMProfile . BlockPlotNumber = Sanitizer . GetSafeHtmlFragment ( model . BlockPlotNumber ) ;
addnewCMProfile . HouseNo = Sanitizer . GetSafeHtmlFragment ( model . HouseNo ) ;
addnewCMProfile . StepName = "1" ;
addnewCMProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewCMProfile . CreatedDate = DateTime . Now ;
addnewCMProfile . OperatingStatus = "Operating" ;
Session [ "CompanyName" ] = Sanitizer . GetSafeHtmlFragment ( model . CompanyName ) ;
Session [ "CompanyTIN" ] = Sanitizer . GetSafeHtmlFragment ( model . CompanyTIN ) ;
Session [ "ProjectCode" ] = GenerateINo ( ) ;
var getInvestorProfile = myContext . InvestorExternl . Where ( t = > t . CompanyEmail = = Username ) . SingleOrDefault ( ) ;
getInvestorProfile . CompanyTIN = model . CompanyTIN ;
getInvestorProfile . CompanyName = model . CompanyName ;
TempData [ "success" ] = "Company Information Successfully Saved" ;
myContext . CompanyProfileExternal . Add ( addnewCMProfile ) ;
StepsManagement stManager = new StepsManagement ( ) ;
stManager . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
stManager . CompanyName = Session [ "CompanyName" ] . ToString ( ) ;
stManager . StepNo = "1" ;
stManager . CreatedDate = DateTime . Now ;
stManager . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
stManager . CompanyEmail = Username ;
stManager . UpdatedDate = DateTime . Now ;
stManager . EvaluationStatus = "Company Details" ;
stManager . SubmittedStatus = "Not Submitted" ;
myContext . StepsManagements . Add ( stManager ) ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "ExpansionProject" ) ;
}
else
{
var CheckIfApproved = myContext . ApplicationManagers . Where ( t = > t . CompanyTIN = = model . CompanyTIN ) ;
if ( CheckIfApproved ! = null )
{
checkIfExists . CompanyName = Sanitizer . GetSafeHtmlFragment ( model . CompanyName ) ;
checkIfExists . CompanyTIN = Sanitizer . GetSafeHtmlFragment ( model . CompanyTIN ) ;
checkIfExists . Category = Sanitizer . GetSafeHtmlFragment ( model . Category ) ;
checkIfExists . IncorpCertNo = Sanitizer . GetSafeHtmlFragment ( model . IncorpCertNo ) ;
checkIfExists . IncorpCertDate = model . IncorpCertDate ;
checkIfExists . Region = model . Region ;
checkIfExists . District = model . District ;
checkIfExists . Ward = model . Ward ;
checkIfExists . CompanyEmail = Sanitizer . GetSafeHtmlFragment ( model . CompanyEmail ) ;
checkIfExists . CompanyMobile = Sanitizer . GetSafeHtmlFragment ( model . CompanyMobile ) ;
checkIfExists . Street = Sanitizer . GetSafeHtmlFragment ( model . Street ) ;
checkIfExists . PostalAddress = Sanitizer . GetSafeHtmlFragment ( model . PostalAddress ) ;
checkIfExists . AreaType = Sanitizer . GetSafeHtmlFragment ( model . AreaType ) ;
checkIfExists . Area = Sanitizer . GetSafeHtmlFragment ( model . Area ) ;
checkIfExists . LandMarkType = Sanitizer . GetSafeHtmlFragment ( model . LandMarkType ) ;
checkIfExists . LandMarkDescription = Sanitizer . GetSafeHtmlFragment ( model . LandMarkDescription ) ;
checkIfExists . PlotNumber = Sanitizer . GetSafeHtmlFragment ( model . PlotNumber ) ;
checkIfExists . Telephone = Sanitizer . GetSafeHtmlFragment ( model . Telephone ) ;
checkIfExists . BlockPlotNumber = Sanitizer . GetSafeHtmlFragment ( model . BlockPlotNumber ) ;
checkIfExists . HouseNo = model . HouseNo ;
addnewCMProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewCMProfile . CreatedDate = DateTime . Now ;
myContext . SaveChanges ( ) ;
TempData [ "success" ] = "Project profile page" ;
return RedirectToAction ( "RedirectProjectExpansion" ) ;
}
TempData [ "success" ] = "Project profile page" ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ExpansionProject" , _birthObject ) ;
}
}
else
{
TempData [ "error" ] = "Please fill proper company details" ;
var obj = new CompanyRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "LoadgeNewExpansion" , _birthObject ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostCompanyProfileAmendment ( CompanyProfileExternal model )
{
try
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
CompanyProfileExternal addnewCMProfile = new CompanyProfileExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN ) ;
if ( checkIfExists = = null )
{
addnewCMProfile . CompanyName = model . CompanyName ;
addnewCMProfile . CompanyTIN = model . CompanyTIN ;
addnewCMProfile . Category = model . Category ;
addnewCMProfile . IncorpCertNo = model . IncorpCertNo ;
addnewCMProfile . IncorpCertDate = model . IncorpCertDate ;
addnewCMProfile . Region = model . Region ;
addnewCMProfile . District = model . District ;
addnewCMProfile . Ward = model . Ward ;
addnewCMProfile . CompanyEmail = model . CompanyEmail ;
addnewCMProfile . CompanyMobile = model . CompanyMobile ;
addnewCMProfile . Street = model . Street ;
addnewCMProfile . PostalAddress = model . PostalAddress ;
addnewCMProfile . AreaType = model . AreaType ;
addnewCMProfile . Area = model . Area ;
addnewCMProfile . LandMarkType = model . LandMarkType ;
addnewCMProfile . LandMarkDescription = model . LandMarkDescription ;
addnewCMProfile . PlotNumber = model . PlotNumber ;
addnewCMProfile . Telephone = model . Telephone ;
addnewCMProfile . BlockPlotNumber = model . BlockPlotNumber ;
addnewCMProfile . HouseNo = model . HouseNo ;
addnewCMProfile . StepName = "1" ;
addnewCMProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewCMProfile . CreatedDate = DateTime . Now ;
addnewCMProfile . OperatingStatus = "Operating" ;
Session [ "CompanyName" ] = model . CompanyName ;
Session [ "CompanyTIN" ] = model . CompanyTIN ;
Session [ "ProjectCode" ] = GenerateINo ( ) ;
var getInvestorProfile = myContext . InvestorExternl . Where ( t = > t . CompanyEmail = = Username ) . SingleOrDefault ( ) ;
getInvestorProfile . CompanyTIN = model . CompanyTIN ;
getInvestorProfile . CompanyName = model . CompanyName ;
TempData [ "success" ] = "Company Information Successfully Saved" ;
myContext . CompanyProfileExternal . Add ( addnewCMProfile ) ;
StepsManagement stManager = new StepsManagement ( ) ;
stManager . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
stManager . CompanyName = Session [ "CompanyName" ] . ToString ( ) ;
stManager . StepNo = "1" ;
stManager . CreatedDate = DateTime . Now ;
stManager . ApplicationType = "Amendment" ;
stManager . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
stManager . CompanyEmail = Username ;
stManager . UpdatedDate = DateTime . Now ;
stManager . EvaluationStatus = "Company Details" ;
stManager . SubmittedStatus = "Not Submitted" ;
myContext . StepsManagements . Add ( stManager ) ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "AmendmentApplication" ) ;
}
else
{
TempData [ "error" ] = "Failed to save Company Details, Company already exists created by " + checkIfExists . AddedBy ;
var pobj = new CompanyRepository ( ) ;
var _birthObjectp = pobj . CreateLocation ( ) ;
return View ( "LoadgeNewAmendment" , _birthObjectp ) ;
}
}
catch ( Exception ex )
{
TempData [ "error" ] = "Error occured while saving details.. Please contact TIC call centre" ;
var pobj = new CompanyRepository ( ) ;
var _birthObjectp = pobj . CreateLocation ( ) ;
return View ( "LoadgeNewAmendment" , _birthObjectp ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostCompanyProfileExtension ( CompanyProfileExternal model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
CompanyProfileExternal addnewCMProfile = new CompanyProfileExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
if ( checkIfExists = = null )
{
addnewCMProfile . CompanyName = model . CompanyName ;
addnewCMProfile . CompanyTIN = model . CompanyTIN ;
addnewCMProfile . Category = model . Category ;
addnewCMProfile . IncorpCertNo = model . IncorpCertNo ;
addnewCMProfile . IncorpCertDate = model . IncorpCertDate ;
addnewCMProfile . Region = model . Region ;
addnewCMProfile . District = model . District ;
addnewCMProfile . Ward = model . Ward ;
addnewCMProfile . CompanyEmail = model . CompanyEmail ;
addnewCMProfile . CompanyMobile = model . CompanyMobile ;
addnewCMProfile . Street = model . Street ;
addnewCMProfile . PostalAddress = model . PostalAddress ;
addnewCMProfile . AreaType = model . AreaType ;
addnewCMProfile . Area = model . Area ;
addnewCMProfile . LandMarkType = model . LandMarkType ;
addnewCMProfile . LandMarkDescription = model . LandMarkDescription ;
addnewCMProfile . PlotNumber = model . PlotNumber ;
addnewCMProfile . Telephone = model . Telephone ;
addnewCMProfile . BlockPlotNumber = model . BlockPlotNumber ;
addnewCMProfile . HouseNo = model . HouseNo ;
addnewCMProfile . StepName = "1" ;
addnewCMProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewCMProfile . CreatedDate = DateTime . Now ;
addnewCMProfile . OperatingStatus = "Operating" ;
Session [ "CompanyName" ] = model . CompanyName ;
Session [ "CompanyTIN" ] = model . CompanyTIN ;
Session [ "ProjectCode" ] = GenerateINo ( ) ;
var getInvestorProfile = myContext . InvestorExternl . Where ( t = > t . CompanyEmail = = Username ) . SingleOrDefault ( ) ;
getInvestorProfile . CompanyTIN = model . CompanyTIN ;
getInvestorProfile . CompanyName = model . CompanyName ;
TempData [ "success" ] = "Company Information Successfully Saved" ;
myContext . CompanyProfileExternal . Add ( addnewCMProfile ) ;
StepsManagement stManager = new StepsManagement ( ) ;
stManager . ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
stManager . CompanyName = Session [ "CompanyName" ] . ToString ( ) ;
stManager . StepNo = "1" ;
stManager . ApplicationType = "Extension" ;
stManager . CreatedDate = DateTime . Now ;
stManager . CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
stManager . CompanyEmail = Username ;
stManager . UpdatedDate = DateTime . Now ;
stManager . EvaluationStatus = "Company Details" ;
stManager . SubmittedStatus = "Not Submitted" ;
myContext . StepsManagements . Add ( stManager ) ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "Extension" ) ;
}
else
{
TempData [ "success" ] = "Project profile page" ;
return RedirectToAction ( "Extension" ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostCompanyProfileAmendmentChange ( CompanyProfileExternal model )
{
if ( ModelState . IsValid )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
CompanyProfileExternal addnewCMProfile = new CompanyProfileExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
if ( checkIfExists ! = null )
{
var CheckIfApproved = myContext . ApplicationManagers . Where ( t = > t . CompanyTIN = = model . CompanyTIN ) ;
if ( CheckIfApproved ! = null )
{
checkIfExists . CompanyName = Sanitizer . GetSafeHtmlFragment ( model . CompanyName ) ;
checkIfExists . CompanyTIN = Sanitizer . GetSafeHtmlFragment ( model . CompanyTIN ) ;
checkIfExists . Category = model . Category ;
checkIfExists . IncorpCertNo = model . IncorpCertNo ;
checkIfExists . IncorpCertDate = model . IncorpCertDate ;
checkIfExists . Region = model . Region ;
checkIfExists . District = model . District ;
checkIfExists . Ward = model . Ward ;
checkIfExists . CompanyEmail = model . CompanyEmail ;
checkIfExists . CompanyMobile = model . CompanyMobile ;
checkIfExists . Street = model . Street ;
checkIfExists . PostalAddress = model . PostalAddress ;
checkIfExists . AreaType = model . AreaType ;
checkIfExists . Area = model . Area ;
checkIfExists . LandMarkType = model . LandMarkType ;
checkIfExists . LandMarkDescription = model . LandMarkDescription ;
checkIfExists . PlotNumber = model . PlotNumber ;
checkIfExists . Telephone = model . Telephone ;
checkIfExists . BlockPlotNumber = model . BlockPlotNumber ;
checkIfExists . HouseNo = model . HouseNo ;
addnewCMProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewCMProfile . CreatedDate = DateTime . Now ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "AmendmentApplication" ) ;
}
else
{
TempData [ "success" ] = "Project profile page" ;
return View ( "AmendmentApplication" ) ;
}
}
return View ( "AmendmentApplication" ) ;
}
else
{
TempData [ "error" ] = "Failed to save details" ;
return View ( "AmendmentApplication" ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostCompanyProfileExtensionChange ( CompanyProfileExternal model )
{
if ( ModelState . IsValid )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
CompanyProfileExternal addnewCMProfile = new CompanyProfileExternal ( ) ;
var checkIfExists = myContext . CompanyProfileExternal . SingleOrDefault ( t = > t . CompanyTIN = = model . CompanyTIN | | t . AddedBy = = Username ) ;
if ( checkIfExists ! = null )
{
var CheckIfApproved = myContext . ApplicationManagers . Where ( t = > t . CompanyTIN = = model . CompanyTIN ) ;
if ( CheckIfApproved ! = null )
{
checkIfExists . CompanyName = Sanitizer . GetSafeHtmlFragment ( model . CompanyName ) ;
checkIfExists . CompanyTIN = Sanitizer . GetSafeHtmlFragment ( model . CompanyTIN ) ;
checkIfExists . Category = model . Category ;
checkIfExists . IncorpCertNo = model . IncorpCertNo ;
checkIfExists . IncorpCertDate = model . IncorpCertDate ;
checkIfExists . Region = model . Region ;
checkIfExists . District = model . District ;
checkIfExists . Ward = model . Ward ;
checkIfExists . CompanyEmail = model . CompanyEmail ;
checkIfExists . CompanyMobile = model . CompanyMobile ;
checkIfExists . Street = model . Street ;
checkIfExists . PostalAddress = model . PostalAddress ;
checkIfExists . AreaType = model . AreaType ;
checkIfExists . Area = model . Area ;
checkIfExists . LandMarkType = model . LandMarkType ;
checkIfExists . LandMarkDescription = model . LandMarkDescription ;
checkIfExists . PlotNumber = model . PlotNumber ;
checkIfExists . Telephone = model . Telephone ;
checkIfExists . BlockPlotNumber = model . BlockPlotNumber ;
checkIfExists . HouseNo = model . HouseNo ;
addnewCMProfile . AddedBy = Session [ "CompanyEmail" ] . ToString ( ) ;
addnewCMProfile . CreatedDate = DateTime . Now ;
myContext . SaveChanges ( ) ;
return RedirectToAction ( "Extension" ) ;
}
else
{
TempData [ "success" ] = "Project profile page" ;
return View ( "Extension" ) ;
}
}
return View ( "Extension" ) ;
}
else
{
TempData [ "error" ] = "Failed to save details" ;
return View ( "LoadgeNewExtension" ) ;
}
}
public ActionResult BrowseApplicantDocumentsNew ( )
{
var CompanyTIN = Session [ "CompanyTIN" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
return Redirect ( "/PrintAppProfileNew.aspx?CompanyTIN=" + CompanyTIN + "&ProjectCode=" + ProjectCode ) ;
}
public ActionResult ProcessReceipt ( long ID )
{
return Redirect ( "/PrintReceipt.aspx?InvoiceID=" + ID ) ;
}
public ActionResult BrowseApplicantDocumentsExpansion ( )
{
var CompanyTIN = Session [ "CompanyTIN" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
return Redirect ( "/ProjectAppProfileExpansion.aspx?CompanyTIN=" + CompanyTIN + "&ProjectCode=" + ProjectCode ) ;
}
public ActionResult BrowseApplicantDocumentsAmendment ( )
{
var CompanyTIN = Session [ "CompanyTIN" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
return Redirect ( "/PrintAppProfileAmendment.aspx?CompanyTIN=" + CompanyTIN + "&ProjectCode=" + ProjectCode ) ;
}
public ActionResult BrowseApplicantDocumentsExtension ( )
{
var CompanyTIN = Session [ "CompanyTIN" ] ;
var ProjectCode = Session [ "ProjectCode" ] ;
return Redirect ( "/PrintAppProfileExtension.aspx?CompanyTIN=" + CompanyTIN + "&ProjectCode=" + ProjectCode ) ;
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostFinancingProfile ( FinancingProfileExternal model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
FinancingProfileExternal addnewFProfile = new FinancingProfileExternal ( ) ;
var checkPExists = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkPExists ! = null )
{
addnewFProfile . ProjectCode = ProjectCode ;
addnewFProfile . CompanyTIN = CompanyTIN ;
addnewFProfile . AddedBy = Username ;
addnewFProfile . LocalEquity = model . LocalEquity ;
addnewFProfile . LocalLoan = model . LocalLoan ;
addnewFProfile . ForeignEquity = model . ForeignEquity ;
addnewFProfile . SourceCountryEquity = model . SourceCountryEquity ;
addnewFProfile . ForeignLoan = model . ForeignLoan ;
addnewFProfile . SourceCountryLoan = model . SourceCountryLoan ;
addnewFProfile . WorkingCapital = model . WorkingCapital ;
addnewFProfile . FixedAsset = ( model . LocalEquity + model . LocalLoan + model . ForeignEquity + model . ForeignLoan ) ;
addnewFProfile . TotalDDI = ( model . LocalEquity + model . LocalLoan ) ;
addnewFProfile . TotalForeign = model . ForeignEquity + model . ForeignLoan ;
addnewFProfile . TotalLocal = ( model . LocalEquity + model . LocalLoan ) ;
addnewFProfile . TotalCapital = ( model . WorkingCapital + model . LocalEquity + model . LocalLoan + model . ForeignEquity + model . ForeignLoan ) ;
addnewFProfile . MTotalCapital = ( addnewFProfile . TotalCapital * 0.000001 ) ;
addnewFProfile . MLocalEquity = ( model . LocalEquity * 0.000001 ) ;
addnewFProfile . MLocalLoan = ( model . LocalLoan * 0.000001 ) ;
addnewFProfile . MFixedAsset = ( addnewFProfile . FixedAsset * 0.000001 ) ;
addnewFProfile . MTotalDDI = ( model . LocalEquity + model . LocalLoan ) * ( 0.000001 ) ;
addnewFProfile . MTotalForeign = ( model . ForeignEquity + model . ForeignLoan ) * ( 0.000001 ) ;
addnewFProfile . MTotalLocal = ( model . LocalEquity + model . LocalLoan ) * ( 0.000001 ) ;
addnewFProfile . MForeignEquity = model . ForeignEquity * 0.000001 ;
addnewFProfile . MForeignLoan = model . ForeignLoan * 0.000001 ;
addnewFProfile . TotalFDI = ( model . ForeignEquity + model . ForeignLoan ) ;
addnewFProfile . MInvestmentBreakDown = addnewFProfile . MTotalCapital ;
addnewFProfile . MWorkingCapital = model . WorkingCapital * 0.000001 ;
addnewFProfile . MTotalFDI = ( model . ForeignEquity + model . ForeignLoan ) * ( 0.000001 ) ;
addnewFProfile . ProjectID = 0 ;
addnewFProfile . Jobs = 0 ;
addnewFProfile . StepName = "3" ;
addnewFProfile . CreatedDate = DateTime . Now ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "3" ;
checkSteps . SubmittedStatus = "Not Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
if ( ( Session [ "TypeofOwnership" ] . ToString ( ) = = "Foreign" | | Session [ "TypeofOwnership" ] . ToString ( ) = = "JV" ) & & addnewFProfile . TotalCapital < 500000 )
{
TempData [ "error" ] = "Total Capital should not be less than $500,000" ;
var obj = new FinancingRepository ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
return View ( "FinancingDetailsExternal" , _birthObject ) ;
}
if ( Session [ "TypeofOwnership" ] . ToString ( ) = = "Local" & & addnewFProfile . TotalCapital < 100000 )
{
TempData [ "error" ] = "Total Capital should not be less than $100,000" ;
var obj = new FinancingRepository ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
return View ( "FinancingDetailsExternal" , _birthObject ) ;
}
TempData [ "success" ] = "Financial Information Successfully Updated" ;
myContext . FinancingProfilesExternals . Add ( addnewFProfile ) ;
myContext . SaveChanges ( ) ;
if ( Session [ "ServiceName" ] . ToString ( ) = = "New" )
{
return RedirectToAction ( "AttachmentsNew" ) ;
}
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
else
{
TempData [ "error" ] = "Error! failed to add financing" ;
var obj = new FinancingRepository ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
return View ( "ShowFinancingProfile" , _birthObject ) ;
}
}
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult PostFinancingProfileChange ( FinancingProfileExternal model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
FinancingProfileExternal addnewFProfile = new FinancingProfileExternal ( ) ;
var checkPExists = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkFExists = myContext . FinancingProfilesExternals . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkPExists ! = null )
{
checkFExists . ProjectCode = ProjectCode ;
checkFExists . CompanyTIN = CompanyTIN ;
checkFExists . AddedBy = Username ;
checkFExists . LocalEquity = model . LocalEquity ;
checkFExists . LocalLoan = model . LocalLoan ;
checkFExists . ForeignEquity = model . ForeignEquity ;
checkFExists . SourceCountryEquity = model . SourceCountryEquity ;
checkFExists . ForeignLoan = model . ForeignLoan ;
checkFExists . SourceCountryLoan = model . SourceCountryLoan ;
checkFExists . WorkingCapital = model . WorkingCapital ;
checkFExists . FixedAsset = ( model . LocalEquity + model . LocalLoan + model . ForeignEquity + model . ForeignLoan ) ;
checkFExists . TotalDDI = ( model . LocalEquity + model . LocalLoan ) ;
checkFExists . TotalForeign = model . ForeignEquity + model . ForeignLoan ;
checkFExists . TotalLocal = ( model . LocalEquity + model . LocalLoan ) ;
checkFExists . TotalCapital = ( model . WorkingCapital + model . LocalEquity + model . LocalLoan + model . ForeignEquity + model . ForeignLoan ) ;
checkFExists . MTotalCapital = ( addnewFProfile . TotalCapital * 0.000001 ) ;
checkFExists . MLocalEquity = ( model . LocalEquity * 0.000001 ) ;
checkFExists . MLocalLoan = ( model . LocalLoan * 0.000001 ) ;
checkFExists . MFixedAsset = ( addnewFProfile . FixedAsset * 0.000001 ) ;
checkFExists . MTotalDDI = ( model . LocalEquity + model . LocalLoan ) * ( 0.000001 ) ;
checkFExists . MTotalForeign = ( model . ForeignEquity + model . ForeignLoan ) * ( 0.000001 ) ;
checkFExists . MTotalLocal = ( model . LocalEquity + model . LocalLoan ) * ( 0.000001 ) ;
checkFExists . MForeignEquity = model . ForeignEquity * 0.000001 ;
checkFExists . MForeignLoan = model . ForeignLoan * 0.000001 ;
checkFExists . TotalFDI = ( model . ForeignEquity + model . ForeignLoan ) ;
checkFExists . MInvestmentBreakDown = addnewFProfile . MTotalCapital ;
checkFExists . MWorkingCapital = model . WorkingCapital * 0.000001 ;
checkFExists . MTotalFDI = ( model . ForeignEquity + model . ForeignLoan ) * ( 0.000001 ) ;
checkFExists . ProjectID = 0 ;
checkFExists . Jobs = 0 ;
checkFExists . StepName = "3" ;
checkFExists . CreatedDate = DateTime . Now ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "3" ;
checkSteps . SubmittedStatus = "Not Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
if ( ( Session [ "TypeofOwnership" ] . ToString ( ) = = "Foreign" | | Session [ "TypeofOwnership" ] . ToString ( ) = = "JV" ) & & checkFExists . TotalCapital < 500000 )
{
TempData [ "error" ] = "Total Capital should not be less than $500,000" ;
var obj = new FinancingRepository ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
return View ( "ShowFinancingProfile" , _birthObject ) ;
}
if ( Session [ "TypeofOwnership" ] . ToString ( ) = = "Local" & & checkFExists . TotalCapital < 100000 )
{
TempData [ "error" ] = "Total Capital should not be less than $100,000" ;
var obj = new FinancingRepository ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
return View ( "ShowFinancingProfile" , _birthObject ) ;
}
TempData [ "success" ] = "Financial Information Successfully Updated" ;
myContext . SaveChanges ( ) ;
if ( Session [ "ServiceName" ] . ToString ( ) = = "New" )
{
return RedirectToAction ( "AttachmentsNew" ) ;
}
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
else
{
TempData [ "error" ] = "Error! failed to add financing" ;
var obj = new FinancingRepository ( ) ;
var _birthObject = obj . CreateCountry ( ) ;
return View ( "ShowFinancingProfile" , _birthObject ) ;
}
}
public ActionResult PostFinancingProfileChangeExpansion ( FinancingProfileExternal model )
{
var Username = Session [ "CompanyEmail" ] . ToString ( ) ;
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var CompanyTIN = Session [ "CompanyTIN" ] . ToString ( ) ;
FinancingProfileExternal addnewFProfile = new FinancingProfileExternal ( ) ;
var checkPExists = myContext . ProjectProfilesExternal . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var checkFExists = myContext . FinancingProfilesExternals . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkPExists ! = null )
{
checkFExists . ProjectCode = ProjectCode ;
checkFExists . CompanyTIN = CompanyTIN ;
checkFExists . AddedBy = Username ;
checkFExists . LocalEquity = model . LocalEquity ;
checkFExists . LocalLoan = model . LocalLoan ;
checkFExists . ForeignEquity = model . ForeignEquity ;
checkFExists . SourceCountryEquity = model . SourceCountryEquity ;
checkFExists . ForeignLoan = model . ForeignLoan ;
checkFExists . SourceCountryLoan = model . SourceCountryLoan ;
checkFExists . WorkingCapital = model . WorkingCapital ;
checkFExists . FixedAsset = ( model . LocalEquity + model . LocalLoan + model . ForeignEquity + model . ForeignLoan ) ;
checkFExists . TotalDDI = ( model . LocalEquity + model . LocalLoan ) ;
checkFExists . TotalForeign = model . ForeignEquity + model . ForeignLoan ;
checkFExists . TotalLocal = ( model . LocalEquity + model . LocalLoan ) ;
checkFExists . TotalCapital = ( model . WorkingCapital + model . LocalEquity + model . LocalLoan + model . ForeignEquity + model . ForeignLoan ) ;
checkFExists . MTotalCapital = ( addnewFProfile . TotalCapital * 0.000001 ) ;
checkFExists . MLocalEquity = ( model . LocalEquity * 0.000001 ) ;
checkFExists . MLocalLoan = ( model . LocalLoan * 0.000001 ) ;
checkFExists . MFixedAsset = ( addnewFProfile . FixedAsset * 0.000001 ) ;
checkFExists . MTotalDDI = ( model . LocalEquity + model . LocalLoan ) * ( 0.000001 ) ;
checkFExists . MTotalForeign = ( model . ForeignEquity + model . ForeignLoan ) * ( 0.000001 ) ;
checkFExists . MTotalLocal = ( model . LocalEquity + model . LocalLoan ) * ( 0.000001 ) ;
checkFExists . MForeignEquity = model . ForeignEquity * 0.000001 ;
checkFExists . MForeignLoan = model . ForeignLoan * 0.000001 ;
checkFExists . TotalFDI = ( model . ForeignEquity + model . ForeignLoan ) ;
checkFExists . MInvestmentBreakDown = addnewFProfile . MTotalCapital ;
checkFExists . MWorkingCapital = model . WorkingCapital * 0.000001 ;
checkFExists . MTotalFDI = ( model . ForeignEquity + model . ForeignLoan ) * ( 0.000001 ) ;
checkFExists . ProjectID = 0 ;
checkFExists . Jobs = 0 ;
checkFExists . StepName = "3" ;
checkFExists . CreatedDate = DateTime . Now ;
var checkSteps = myContext . StepsManagements . Where ( t = > t . ProjectCode = = ProjectCode . ToString ( ) ) . SingleOrDefault ( ) ;
checkSteps . StepNo = "3" ;
checkSteps . SubmittedStatus = "Not Submitted" ;
checkSteps . UpdatedDate = DateTime . Now ;
TempData [ "success" ] = "Financial Information Successfully Updated" ;
myContext . SaveChanges ( ) ;
if ( Session [ "ServiceName" ] . ToString ( ) = = "New" )
{
return RedirectToAction ( "AttachmentsNew" ) ;
}
return RedirectToAction ( "AttachmentsExpansion" ) ;
}
else
{
TempData [ "success" ] = "Project profile page" ;
var obj = new ProjectRepository ( ) ;
var _birthObject = obj . CreateLocation ( ) ;
return View ( "ProjectDetails" , _birthObject ) ;
}
}
public string GenerateINo ( )
{
Random Ino = new Random ( ) ;
long ran_no = Ino . Next ( 1 , 10000 ) ;
DateTime now = DateTime . Now ;
return "TIC" + now . Year + "-" + ran_no . ToString ( ) + now . Month + now . Day ;
}
public string GenerateINoCN ( )
{
Random Ino = new Random ( ) ;
long ran_no = Ino . Next ( 1 , 100 ) ;
DateTime now = DateTime . Now ;
return ran_no . ToString ( ) ;
}
public ActionResult GetCountry ( )
{
var repo = new Countries ( ) ;
IEnumerable < SelectListItem > regions = repo . GetCountries ( ) ;
return Json ( regions , JsonRequestBehavior . AllowGet ) ;
}
[HttpGet]
public ActionResult GetRegions ( long CountryID )
{
if ( ! string . IsNullOrWhiteSpace ( CountryID . ToString ( ) ) )
{
var repo = new RegionRepository ( ) ;
IEnumerable < SelectListItem > regions = repo . GetRegions ( CountryID ) ;
return Json ( regions , JsonRequestBehavior . AllowGet ) ;
}
return null ;
}
public ActionResult GetSubSector ( string SectorName )
{
if ( ! string . IsNullOrWhiteSpace ( SectorName . ToString ( ) ) )
{
var repo = new SubSectorsRepository ( ) ;
IEnumerable < SelectListItem > sub_Sector = repo . GetSubSectors ( SectorName ) ;
return Json ( sub_Sector , JsonRequestBehavior . AllowGet ) ;
}
return null ;
}
[HttpGet]
public ActionResult GetRegionsD ( long CountryID )
{
if ( ! string . IsNullOrWhiteSpace ( CountryID . ToString ( ) ) )
{
var repo = new RegionRepository ( ) ;
IEnumerable < SelectListItem > regions = repo . GetRegionsD ( CountryID ) ;
return Json ( regions , JsonRequestBehavior . AllowGet ) ;
}
return null ;
}
[HttpGet]
public ActionResult GetDistricts ( string RegionName )
{
if ( ! string . IsNullOrWhiteSpace ( RegionName ) )
{
var repo = new DistrictRepository ( ) ;
IEnumerable < SelectListItem > regions = repo . GetDistrictsNameByRegion ( RegionName ) ;
return Json ( regions , JsonRequestBehavior . AllowGet ) ;
}
return null ;
}
[HttpGet]
public ActionResult GetWard ( string DistrictName )
{
if ( ! string . IsNullOrWhiteSpace ( DistrictName . ToString ( ) ) )
{
var repo = new WardRepository ( ) ;
IEnumerable < SelectListItem > regions = repo . GetWardOfBirth ( DistrictName ) ;
return Json ( regions , JsonRequestBehavior . AllowGet ) ;
}
return null ;
}
public ActionResult DisplayInvoice ( )
{
return new ViewAsPdf ( ) ;
}
public ActionResult DisplayInvoiceTransfer ( )
{
return new ViewAsPdf ( ) ;
}
public ActionResult Regenerate ( string Id )
{
Session [ "ProjectCode" ] = Id ;
return RedirectToAction ( "DisplayPDF" ) ;
}
2025-11-22 04:41:21 +00:00
public ActionResult DownloadInvoice ( long? invoiceId )
{
if ( ! invoiceId . HasValue )
{
TempData [ "PaymentError" ] = "Invoice ID is required." ;
return RedirectToAction ( "ApplicationStatus" ) ;
}
try
{
2025-11-24 20:04:40 +00:00
// Get invoice from tblInvoice using strongly-typed query
var invoice = myContext . Database . SqlQuery < InvoiceDisplay > (
2025-11-22 04:41:21 +00:00
"SELECT InvoiceID, ApplicationCode, ApplicationID FROM tblInvoice WHERE InvoiceID = @p0" ,
2025-11-24 20:04:40 +00:00
new System . Data . SqlClient . SqlParameter ( "@p0" , invoiceId . Value ) ) . FirstOrDefault ( ) ;
2025-11-22 04:41:21 +00:00
2025-11-24 20:04:40 +00:00
if ( invoice = = null | | string . IsNullOrEmpty ( invoice . ApplicationCode ) )
2025-11-22 04:41:21 +00:00
{
2025-11-24 20:04:40 +00:00
TempData [ "PaymentError" ] = "Invoice not found or invalid." ;
2025-11-22 04:41:21 +00:00
return RedirectToAction ( "ApplicationStatus" ) ;
}
2025-11-24 20:04:40 +00:00
// Set ProjectCode and InvoiceID in session for DisplayPDF
Session [ "ProjectCode" ] = invoice . ApplicationCode ;
Session [ "InvoiceID" ] = invoiceId . Value ; // Store specific invoice ID to use in DisplayPDF
2025-11-22 04:41:21 +00:00
return RedirectToAction ( "DisplayPDF" ) ;
}
catch ( Exception ex )
{
TempData [ "PaymentError" ] = "Error loading invoice: " + ex . Message ;
return RedirectToAction ( "ApplicationStatus" ) ;
}
}
2025-11-15 11:14:31 +00:00
public ActionResult RegenerateTransfer ( string Id )
{
Session [ "ProjectCode" ] = Id ;
return RedirectToAction ( "DisplayInvoiceTransfer" ) ;
}
public async Task < ActionResult > DisplayPDF ( )
{
2025-11-24 20:04:40 +00:00
if ( Session [ "ProjectCode" ] = = null )
{
TempData [ "PaymentError" ] = "Project code is required." ;
return RedirectToAction ( "ApplicationStatus" ) ;
}
2025-11-15 11:14:31 +00:00
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
2025-11-24 20:04:40 +00:00
// Use FirstOrDefault instead of SingleOrDefault to handle multiple rows
var checkIfExist = myContext . ApplicationManagers . FirstOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
if ( checkIfExist = = null )
{
TempData [ "PaymentError" ] = "Application not found." ;
return RedirectToAction ( "ApplicationStatus" ) ;
}
// Use specific invoice ID from session if available (from DownloadInvoice),
// otherwise use the one from ApplicationManagers
long? invoiceIdToUse = Session [ "InvoiceID" ] as long? ;
if ( ! invoiceIdToUse . HasValue )
{
invoiceIdToUse = checkIfExist . InvoiceID ;
}
else
{
// Clear the session invoice ID after using it
Session . Remove ( "InvoiceID" ) ;
}
2025-11-15 11:14:31 +00:00
2025-11-24 20:04:40 +00:00
if ( ! invoiceIdToUse . HasValue )
{
TempData [ "PaymentError" ] = "Invoice ID not found." ;
return RedirectToAction ( "ApplicationStatus" ) ;
}
2025-11-15 11:14:31 +00:00
2025-11-24 20:04:40 +00:00
var InvoiceID = invoiceIdToUse . Value ;
2025-11-15 11:14:31 +00:00
using ( var client = new HttpClient ( ) )
{
client . DefaultRequestHeaders . Accept . Clear ( ) ;
client . DefaultRequestHeaders . Accept . Add ( new MediaTypeWithQualityHeaderValue ( "application/json" ) ) ;
HttpResponseMessage responseMessage = await client . GetAsync ( "http://192.168.2.31:8090/tic/invoice-gen/" + InvoiceID ) ;
var responseJson = await responseMessage . Content . ReadAsStringAsync ( ) ;
var jObject = JObject . Parse ( responseJson ) ;
var checkresult = jObject . GetValue ( "resultcode" ) . ToString ( ) ;
if ( checkresult = = "0" )
{
2025-11-24 20:04:40 +00:00
Session [ "ControlNo" ] = jObject . SelectToken ( "result.ControlNo" ) ? . Value < string > ( ) ;
Session [ "QRCode" ] = jObject . SelectToken ( "result.QRCode" ) ? . Value < string > ( ) ;
Session [ "SubServiceName" ] = jObject . SelectToken ( "result.SubServiceName" ) ? . Value < string > ( ) ;
Session [ "FullName" ] = jObject . SelectToken ( "result.FullName" ) ? . Value < string > ( ) ;
2025-11-15 11:14:31 +00:00
Session [ "CompanyName" ] = checkIfExist . CompanyName ;
2025-11-24 20:04:40 +00:00
Session [ "PhoneNo" ] = jObject . SelectToken ( "result.PhoneNo" ) ? . Value < string > ( ) ;
Session [ "Amount" ] = jObject . SelectToken ( "result.Amount" ) ? . Value < string > ( ) ;
Session [ "BillDescription" ] = jObject . SelectToken ( "result.SubServiceName" ) ? . Value < string > ( ) ;
Session [ "Currency" ] = jObject . SelectToken ( "result.Currency" ) ? . Value < string > ( ) ;
Session [ "ExpireDate" ] = jObject . SelectToken ( "result.ExpireDate" ) ? . Value < string > ( ) ;
2025-11-15 11:14:31 +00:00
Session [ "PrintedDate" ] = DateTime . Now . ToString ( "dd-MM-yyyy" ) ;
2025-11-24 20:04:40 +00:00
// Calculate AmountinWords from the actual invoice amount from API, not from COIPrice
if ( ! string . IsNullOrEmpty ( Session [ "Amount" ] ? . ToString ( ) ) )
{
if ( decimal . TryParse ( Session [ "Amount" ] . ToString ( ) , out decimal invoiceAmount ) )
{
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( invoiceAmount ) ;
}
else
{
// Fallback: use COIPrice calculation if parsing fails
ExchangeRate exchangeRate = myContext . ExchangeRates . FirstOrDefault ( t = > t . Currency = = checkIfExist . Currency ) ;
COIPrice coiPrice = myContext . COIPrices . FirstOrDefault ( t = > t . ApplicationType = = checkIfExist . ServiceName ) ;
if ( exchangeRate ! = null & & coiPrice ! = null )
{
decimal Price = coiPrice . Price * exchangeRate . Rate ;
Session [ "AmountinWords" ] = CurrencyUtils . ToWords ( Price ) ;
}
}
}
2025-11-15 11:14:31 +00:00
2025-11-24 20:04:40 +00:00
return RedirectToAction ( "DisplayInvoice" , "NewCOI" ) ;
2025-11-15 11:14:31 +00:00
}
if ( checkresult = = "Failure" )
{
2025-11-24 20:04:40 +00:00
var Reslt = jObject . GetValue ( "message" ) ? . ToString ( ) ;
ViewData [ "Notfound" ] = Reslt ? ? "Invoice generation failed." ;
2025-11-15 11:14:31 +00:00
return View ( "NotFoundApp" ) ;
}
return View ( "NotFoundApp" ) ;
}
}
public async Task < ActionResult > DisplayPDFTransfer ( )
{
var ProjectCode = Session [ "ProjectCode" ] . ToString ( ) ;
var checkIfExist = myContext . ApplicationManagers . SingleOrDefault ( t = > t . ProjectCode = = ProjectCode ) ;
var InvoiceID = checkIfExist . InvoiceID ;
using ( var client = new HttpClient ( ) )
{
client . DefaultRequestHeaders . Accept . Clear ( ) ;
client . DefaultRequestHeaders . Accept . Add ( new MediaTypeWithQualityHeaderValue ( "application/json" ) ) ;
HttpResponseMessage responseMessage = await client . GetAsync ( "http://192.168.2.31:8090/tic/invoice-gen/" + InvoiceID ) ;
var responseJson = await responseMessage . Content . ReadAsStringAsync ( ) ;
var jObject = JObject . Parse ( responseJson ) ;
var checkresult = jObject . GetValue ( "resultcode" ) . ToString ( ) ;
if ( checkresult = = "0" )
{
Session [ "ControlNo" ] = jObject . SelectToken ( "result.ControlNo" ) . Value < string > ( ) ;
Session [ "QRCode" ] = jObject . SelectToken ( "result.QRCode" ) . Value < string > ( ) ;
Session [ "SubServiceName" ] = jObject . SelectToken ( "result.SubServiceName" ) . Value < string > ( ) ;
Session [ "FullName" ] = jObject . SelectToken ( "result.FullName" ) . Value < string > ( ) ;
Session [ "PhoneNo" ] = jObject . SelectToken ( "result.PhoneNo" ) . Value < string > ( ) ;
Session [ "Amount" ] = jObject . SelectToken ( "result.Amount" ) . Value < string > ( ) ;
Session [ "BillDescription" ] = jObject . SelectToken ( "result.SubServiceName" ) . Value < string > ( ) ;
Session [ "Currency" ] = jObject . SelectToken ( "result.Currency" ) . Value < string > ( ) ;
Session [ "ExpireDate" ] = jObject . SelectToken ( "result.ExpireDate" ) . Value < string > ( ) ;
Session [ "PrintedDate" ] = DateTime . Now . ToString ( "dd-MM-yyyy" ) ;
return RedirectToAction ( "DisplayInvoiceTransfer" , "NewCOI" ) ;
}
if ( checkresult = = "Failure" )
{
var Reslt = jObject . GetValue ( "message" ) . ToString ( ) ;
ViewData [ "Notfound" ] = Reslt . ToString ( ) ;
return View ( "NotFoundApp" ) ;
}
return View ( "NotFoundApp" ) ;
}
}
}
}