Example #1
0
        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));
        }
Example #2
0
        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));
            }
        }