public ActionResult SubmitERProposal(OperatorERProposalViewModel _ERApplication, string FileRef) { ViewBag.Title = "Submit Proposal"; string[] userdata = Session["UserData"] as string[]; string dt = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss").Replace("/", "").Replace(":", "").Replace(" ", ""); _ERApplication.ERApplications.AppId = "ERAPPID" + dt; _ERApplication.ERApplications.ERScreeningDetail.ReportDocumentPath = FileRef; if (!string.IsNullOrEmpty(_ERApplication.EGRTechniqueId)) { _ERApplication.ERApplications.ERTechniquesId = _ERApplication.EGRTechniqueId; } else if (!string.IsNullOrEmpty(_ERApplication.EORTechniqueId)) { _ERApplication.ERApplications.ERTechniquesId = _ERApplication.EORTechniqueId; } else { _ERApplication.ERApplications.ERTechniquesId = null; } _ERApplication.ERApplications.MassiveFracking = MassiveUHC.AcidFracking; if (!TryValidateModel(_ERApplication.ERApplications)) { ViewBag.RefId = FileRef; _ERApplication.FieldTypes = FieldTypeContext.Collection().ToList(); _ERApplication.UHCProductionMethods = UHCProductionMethodContext.Collection().ToList(); _ERApplication.eRScreeningInstitutes = ERScreeningInstituteContext.Collection().ToList(); _ERApplication.eRTechniques = ERTechniquesContext.Collection().ToList(); return(View(_ERApplication)); } ERApplicationContext.Insert(_ERApplication.ERApplications); string auditstatus = StatusMasterContext.Collection().Where(status => status.Status == "Application Submitted").FirstOrDefault().CustStatusId; string CERuserrole = UserRoleType.ConsultantEnhancedRecovery.GetDisplayName(); string CER = UserAccountContext.Collection().Where(x => x.UserRole == CERuserrole).FirstOrDefault().Id; AuditTrails auditTrails = new AuditTrails() { ERApplicationId = _ERApplication.ERApplications.Id, FileRefId = FileRef, StatusId = auditstatus, SenderId = userdata[0], //ReceiverId = CER, // Consultant Enhanced Recovery Is_Active = true, }; List <string> lst = new List <string>() { userdata[0], CER // Consultant Enhanced Recovery }; foreach (string x in lst) { ERAppActiveUsers eRAppActiveUsers = new ERAppActiveUsers() { ERApplicationId = _ERApplication.ERApplications.Id, UserAccountId = x, Dept_Id = null, Is_Active = true, Status = null }; ERAppActiveUsersContext.Insert(eRAppActiveUsers); } AuditTrailContext.Insert(auditTrails); using (TransactionScope scope = new TransactionScope()) { ERApplicationContext.Commit(); ERAppActiveUsersContext.Commit(); AuditTrailContext.Commit(); scope.Complete(); } return(Json("Application Ref. No :" + _ERApplication.ERApplications.AppId, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> ApplicationActionSubmit(ForwardAppViewModel forwardAppViewModel, string appid) { ForwardApplication forwardApplication; ERAppActiveUsers eRAppActiveUsers; string[] arr = Session["UserData"] as string[]; bool modelIsValid = false; string msg = "ERROR"; forwardAppViewModel.Comment.ERApplicationId = appid; forwardAppViewModel.Comment.UserAccountId = arr[0]; string[] reciverlist = forwardAppViewModel.ReciverIdSelectList != null ? forwardAppViewModel.ReciverIdSelectList : null; if (reciverlist != null && forwardAppViewModel.ForwardApplication.FileStatus == FileStatus.Forward) { var userlist = forwardAppViewModel.ReciverIdSelectList.Except(ERAppActiveUsersContext.Collection().Where(x => x.ERApplicationId == appid).Select(y => y.UserAccountId).ToList()); foreach (string user in userlist) { eRAppActiveUsers = new ERAppActiveUsers() { ERApplicationId = appid, UserAccountId = user, Dept_Id = null, Is_Active = true, Status = null }; ERAppActiveUsersContext.Insert(eRAppActiveUsers); } } string userid = arr[0]; string senderid = ""; string auditstatus = ""; switch (forwardAppViewModel.ForwardApplication.FileStatus) { case FileStatus.Forward: auditstatus = "S102"; msg = "Successfully Forward Application To Selected Users"; break; case FileStatus.Recommended: auditstatus = "S105"; senderid = ForwardApplicationContext.Collection().Where(x => x.Reciever == userid && x.ERApplicationId == appid && (x.FileStatus == FileStatus.Forward || x.FileStatus == FileStatus.ReviewAgain) && x.Is_Active == true).FirstOrDefault().Sender; reciverlist = new string[] { senderid }; msg = "Successfully Application Recommended"; break; case FileStatus.CommentBack: auditstatus = "S109"; senderid = ForwardApplicationContext.Collection().Where(x => x.Reciever == userid && x.ERApplicationId == appid && (x.FileStatus == FileStatus.Forward || x.FileStatus == FileStatus.ReviewAgain) && x.Is_Active == true).FirstOrDefault().Sender; reciverlist = new string[] { senderid }; msg = "Successfully Comment Back"; if (arr[2] == UserRoleType.DG.ToString()) { await ForwardApplicationContext.Collection().Where(x => x.ERApplicationId == appid && x.Sender == senderid && x.Reciever == userid && (x.FileStatus == FileStatus.Forward || x.FileStatus == FileStatus.ReviewAgain) && x.Is_Active == true).ForEachAsync(x => x.Is_Active = false); await AuditTrailsContext.Collection().Where(x => x.ERApplicationId == appid && x.SenderId == senderid && x.ReceiverId == userid && x.Is_Active == true).ForEachAsync(x => x.Is_Active = false); } else { await ForwardApplicationContext.Collection().Where(x => x.ERApplicationId == appid && x.Sender == senderid && (x.FileStatus == FileStatus.Forward || x.FileStatus == FileStatus.ReviewAgain) && x.Is_Active == true).ForEachAsync(x => x.Is_Active = false); await ForwardApplicationContext.Collection().Where(x => x.ERApplicationId == appid && x.FileStatus == FileStatus.Recommended && x.Reciever == senderid && x.Is_Active == true).ForEachAsync(d => d.Is_Active = false); await AuditTrailsContext.Collection().Where(x => x.ERApplicationId == appid && x.StatusId == "S105" && x.Is_Active == true).ForEachAsync(d => d.Is_Active = false); await AuditTrailsContext.Collection().Where(x => x.ERApplicationId == appid && x.SenderId == senderid && x.Is_Active == true).ForEachAsync(x => x.Is_Active = false); } break; case FileStatus.ReviewAgain: string DGID = UserAccountContext.Collection().Where(x => x.UserRole == UserRoleType.DG.ToString()).FirstOrDefault().Id; int countdgid = ERAppActiveUsersContext.Collection().Where(x => x.UserAccountId == DGID && x.ERApplicationId == appid && x.Is_Active == true).Count(); if (countdgid > 0) { reciverlist = new string[] { DGID }; } else { reciverlist = ForwardApplicationContext.Collection().Where(x => x.ERApplicationId == appid && x.Sender == userid && (x.FileStatus == FileStatus.Forward || x.FileStatus == FileStatus.ReviewAgain) && x.Is_Active == false).Select(d => d.Reciever).Distinct().ToArray(); if (reciverlist == null || reciverlist.Length == 0) { return(Json("NCR", JsonRequestBehavior.AllowGet)); } } auditstatus = "S106"; msg = "Comment Resolved Successfully"; break; default: return(Json(msg, JsonRequestBehavior.AllowGet)); } foreach (string x in reciverlist) { forwardApplication = new ForwardApplication() { Reciever = x, Sender = arr[0], FileRef = forwardAppViewModel.ForwardApplication.FileRef, CommentRefId = forwardAppViewModel.Comment.Id, // Subject = forwardAppViewModel.ForwardApplication.Subject, ERApplicationId = appid, Is_Active = true, FileStatus = forwardAppViewModel.ForwardApplication.FileStatus }; ForwardApplicationContext.Insert(forwardApplication); AuditTrails auditTrails = new AuditTrails() { ERApplicationId = appid, FileRefId = forwardAppViewModel.ForwardApplication.FileRef, StatusId = auditstatus, // QueryDetailsId = null, SenderId = arr[0], ReceiverId = x, Is_Active = true, }; AuditTrailsContext.Insert(auditTrails); } modelIsValid = TryValidateModel(forwardAppViewModel.Comment); if (modelIsValid) { commentContext.Insert(forwardAppViewModel.Comment); using (TransactionScope scope = new TransactionScope()) { commentContext.Commit(); ERAppActiveUsersContext.Commit(); ForwardApplicationContext.Commit(); AuditTrailsContext.Commit(); scope.Complete(); return(Json(msg, JsonRequestBehavior.AllowGet)); } } else { msg = "ERROR"; return(Json(msg, JsonRequestBehavior.AllowGet)); } }