tiseza_oss_live/Controllers/NewCOIController.cs

4214 lines
208 KiB
C#

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;
using System.Data.SqlClient;
using System.Data;
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()
{
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");
}
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");
}
}
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;
}
}
public ActionResult Payment(ApplicationManager model)
{
try
{
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.";
EnsurePaymentSessionDefaults();
return View("Payment");
}
var Username = Session["CompanyEmail"].ToString();
var ProjectCode = Session["ProjectCode"].ToString();
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
}
}
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.";
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();
return View("Payment");
}
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;
// Use precomputed amount from tblService or fallback (saved in TempData earlier)
decimal amountToUse;
if (TempData["PreAmountTZS"] != null && decimal.TryParse(TempData["PreAmountTZS"].ToString(), out amountToUse))
{
inv.Amount = amountToUse;
Session["Amount"] = amountToUse.ToString("0");
Session["AmountinWords"] = CurrencyUtils.ToWords(amountToUse) + " Tanzanian Shillings";
Session["Currency"] = model.Currency;
}
else
{
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
if (serviceName.Equals("Expansion", StringComparison.OrdinalIgnoreCase))
{
return View("PaymentExpansion");
}
return View("Payment");
}
string saveErrX;
if (!TrySaveInvoice(myContext, inv, checkIfCompany, out saveErrX))
{
ViewBag.Error = "Could not save invoice. " + saveErrX;
EnsurePaymentSessionDefaults(model.Currency);
return View("Payment");
}
if (serviceName.Equals("Expansion", StringComparison.OrdinalIgnoreCase))
{
return View("PaymentExpansion");
}
return View("Payment");
}
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;
return View("Payment");
}
}
catch (Exception ex)
{
ViewBag.Error = "Error processing payment. " + ex.Message;
EnsurePaymentSessionDefaults();
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");
}
// 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");
}
// Find the parent application using ProjectCode
var parentApplication = myContext.ApplicationManagers
.Where(a => a.ProjectCode == code)
.OrderByDescending(a => a.CreatedDate)
.FirstOrDefault();
if (parentApplication == null)
{
TempData["PaymentError"] = "Parent application not found for this project code.";
EnsurePaymentSessionDefaults("TZS");
return RedirectToAction("Payment");
}
// Resolve additional amount and GFSCode from tblService (ServiceName='Additional_Amount', Currency='TZS', Status='1')
decimal addAmount = 0m;
string gfsCode = "142201370002"; // Default fallback
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 > 0m)
{
addAmount = feeRow.Fee.Value;
if (!string.IsNullOrWhiteSpace(feeRow.GFSCode))
gfsCode = feeRow.GFSCode;
}
}
catch
{
// handled below
}
if (addAmount <= 0m)
{
var err = "Fee not configured in tblService for ServiceName='Additional_Amount', Currency='TZS'.";
TempData["PaymentError"] = err;
EnsurePaymentSessionDefaults("TZS");
return RedirectToAction("Payment");
}
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
}
if (existingInvoiceId.HasValue)
{
try
{
var invoiceDetails = myContext.Database.SqlQuery<dynamic>(
"SELECT Amount, Currency FROM tblInvoice WHERE InvoiceID = @p0",
existingInvoiceId.Value).FirstOrDefault();
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)
{
TempData["PaymentError"] = "Error retrieving existing invoice: " + ex.Message;
EnsurePaymentSessionDefaults("TZS");
return RedirectToAction("Payment");
}
}
string billItemRefNo = "BILL-" + DateTime.Now.ToString("yyyyMMddHHmmss") + "-" + code;
int serviceTypeID = 11;
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)";
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)
{
TempData["PaymentError"] = "Error creating additional payment invoice: " + ex.Message;
EnsurePaymentSessionDefaults("TZS");
return RedirectToAction("Payment");
}
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;
ViewBag.HideInvoiceGrid = true;
TempData["HidePaidInvoices"] = true;
TempData["AdditionalContext"] = true;
return View("Payment");
}
catch (Exception ex)
{
TempData["PaymentError"] = "Error creating additional payment invoice: " + ex.Message;
EnsurePaymentSessionDefaults("TZS");
return RedirectToAction("Payment");
}
}
public async Task<ActionResult> GenerateControlNo()
{
await Task.Delay(4000);
return View();
}
[ValidateAntiForgeryToken]
[HttpPost]
public async Task<ActionResult> ProceControlNumber()
{
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");
}
var getPDetails = myContext.ApplicationManagers
.Where(t => t.ProjectCode == ProjectCode)
.OrderByDescending(t => t.CreatedDate)
.FirstOrDefault();
if (getPDetails == null)
{
TempData["PaymentError"] = "No invoice found for this project. Create an invoice first.";
return RedirectToAction("Payment", "NewCOI");
}
ExchangeRate exchangeRate = myContext.ExchangeRates
.FirstOrDefault(t => t.Currency == getPDetails.Currency);
if(exchangeRate != null){
Session["EqAmount"] = exchangeRate.Rate * getPDetails.Amount;
} else {
TempData["error"] = "Couldn\'t process control number. Contact Administrators";
return RedirectToAction("GenerateControlNo", "NewCOI");
}
try
{
getPDetails.UpdatedDate = DateTime.Now;
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var mymodel = new mymodel
{
gepgCtrlno = new gepgCtrlno()
{
BillId = getPDetails.InvoiceID.ToString(),
BillAmt = getPDetails.Amount.ToString(),
BillEqvAmt = Session["EqAmount"].ToString(),
BillExprDt = DateTime.Now.AddDays(30).ToString("yyyy-MM-ddTHH:mm:ss"),
PyrId = getPDetails.CompanyName.ToString(),
PyrName = getPDetails.CompanyName.ToString(),
BillGenDt = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss"),
PyrCellNum = getPDetails.MobileNo.ToString(),
Ccy = getPDetails.Currency.ToString(),
BillDesc = getPDetails.ServiceName.ToString(),
BillItems = new BillItems
{
BillItem = new List<BillItem>
{
new BillItem { BillItemRef = getPDetails.InvoiceID.ToString() , BillItemAmt=getPDetails.Amount.ToString(), BillItemEqvAmt=Session["EqAmount"].ToString(), GfsCode="142201370002"}
}
},
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);
return RedirectToAction("GenerateControlNo", "NewCOI");
}
}
catch (Exception ex)
{
var getGepgResponse = myContext.ApplicationManagers
.Where(t => t.ProjectCode == ProjectCode)
.OrderByDescending(t => t.CreatedDate)
.FirstOrDefault();
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)
{
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("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");
}
public ActionResult DownloadInvoice(long? invoiceId)
{
if (!invoiceId.HasValue)
{
TempData["PaymentError"] = "Invoice ID is required.";
return RedirectToAction("ApplicationStatus");
}
try
{
// Get invoice from tblInvoice to get ApplicationCode
var invoice = myContext.Database.SqlQuery<dynamic>(
"SELECT InvoiceID, ApplicationCode, ApplicationID FROM tblInvoice WHERE InvoiceID = @p0",
invoiceId.Value).FirstOrDefault();
if (invoice == null)
{
TempData["PaymentError"] = "Invoice not found.";
return RedirectToAction("ApplicationStatus");
}
// Set ProjectCode in session and redirect to DisplayPDF
Session["ProjectCode"] = invoice.ApplicationCode;
return RedirectToAction("DisplayPDF");
}
catch (Exception ex)
{
TempData["PaymentError"] = "Error loading invoice: " + ex.Message;
return RedirectToAction("ApplicationStatus");
}
}
public ActionResult RegenerateTransfer(string Id)
{
Session["ProjectCode"] = Id;
return RedirectToAction("DisplayInvoiceTransfer");
}
public async Task<ActionResult> DisplayPDF()
{
var ProjectCode = Session["ProjectCode"].ToString();
var checkIfExist = myContext.ApplicationManagers.SingleOrDefault(t => t.ProjectCode == ProjectCode);
// Changes to remove hardcoded exchange rates
ExchangeRate exchangeRate = myContext.ExchangeRates.SingleOrDefault(t => t.Currency ==checkIfExist.Currency);
COIPrice coiPrice = myContext.COIPrices.SingleOrDefault(t => t.ApplicationType == checkIfExist.ServiceName);
decimal Price = coiPrice.Price * exchangeRate.Rate;
Session["AmountinWords"] = CurrencyUtils.ToWords(Price);
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["CompanyName"] = checkIfExist.CompanyName;
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("DisplayInvoice", "NewCOI");
}
if (checkresult == "Failure")
{
var Reslt = jObject.GetValue("message").ToString();
ViewData["Notfound"] = Reslt.ToString();
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");
}
}
}
}