Ejemplo n.º 1
0
        public string GetMember(string noapm)
        {
            AuditPlanningMemorandum apm = db.AuditPlanningMemorandums.Where(p => p.NomerAPM.Equals(noapm)).FirstOrDefault();

            if (apm != null)
            {
                Preliminary pre = apm.Preliminary;
                //var memberId = pre.EngagementActivity.MemberID;
                //var teamleaderId = pre.EngagementActivity.TeamLeaderID;
                //var supervisorId = pre.EngagementActivity.SupervisorID;
                //var picId = pre.EngagementActivity.PICID;
                var    memberId     = apm.MemberID;
                var    teamleaderId = apm.TeamLeaderID;
                var    supervisorId = apm.SupervisorID;
                var    picId        = apm.PICID;
                string memberName   = memberId;
                string nomerapm     = apm.NomerAPM;
                //string engagement = pre.EngagementActivity.Name;
                string engagement = "";
                if (apm.ActualEngagement != "" && apm.ActualEngagement != null)
                {
                    engagement = apm.ActualEngagement;
                }
                else
                {
                    engagement = pre.EngagementActivity.Name;
                }
                string activity     = pre.Activity.Name;
                string apmStartDate = apm.Date_Start.ToShortDateString();
                string apmEndDate   = apm.Date_End.ToShortDateString();
                if (teamleaderId == "" || supervisorId == "" || picId == "")
                {
                    //string memberName = "";
                    string teamleaderName = "";
                    string supervisorName = "";
                    string picName        = "";
                    string names          = teamleaderName + "," + supervisorName + "," + picName;
                    return(names + "," + memberName + "," + nomerapm + "," + engagement + "," + activity + ',' + apmStartDate + ',' + apmEndDate);
                }
                else
                {
                    //string memberName = db.Employees.Find(memberId).Name;
                    string teamleaderName = teamleaderId;
                    string supervisorName = supervisorId;
                    string picName        = picId;
                    string names          = teamleaderName + "," + supervisorName + "," + picName;
                    return(names + "," + memberName + "," + nomerapm + "," + engagement + "," + activity + ',' + apmStartDate + ',' + apmEndDate);
                }
            }
            else
            {
                return(",,,,,,");
            }
        }
        private bool sentSingleEmailPrelim(string userToSentEmail, Preliminary preliminary)
        {
            string   baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
            Employee emp     = db.Employees.Where(p => p.Name.Equals(userToSentEmail)).FirstOrDefault();

            if (emp != null)
            {
                string emailContent = "Dear {0}, <BR/><BR/>Preliminary Survey : {1} need your approval. Please click on this <a href=\"{2}\" title=\"Preliminary Survey\">link</a> to show the Preliminary Survey.<BR/><BR/><BR/> Regards,<BR/><BR/> ePatria Team";
                string urlPrelim    = baseUrl + "/Preliminaries/Details/" + preliminary.PreliminaryID;
                emailTransact.SentEmailApproval(emp.Email, emp.Name, preliminary.NomorPreliminarySurvey, emailContent, urlPrelim);
            }
            return(true);
        }
        public ActionResult DeleteConfirmed(int id)
        {
            db.Configuration.ProxyCreationEnabled = false;
            string      username    = User.Identity.Name;
            Preliminary preliminary = db.Preliminaries.Find(id);

            Preliminary emp = new Preliminary();

            db.Preliminaries.Remove(preliminary);
            db.SaveChanges();
            auditTransact.CreateAuditTrail("Delete", id, "Preliminary", preliminary, emp, username);
            TempData["message"] = "Preliminary successfully deleted!";
            return(RedirectToAction("Index"));
        }
        // GET: Preliminaries/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Preliminary preliminary = db.Preliminaries.Find(id);

            if (preliminary == null)
            {
                return(HttpNotFound());
            }
            return(View(preliminary));
        }
        // GET: Preliminaries/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Preliminary preliminary = db.Preliminaries.Find(id);

            /*Employee emp = getEmployeeByUserName(User.Identity.Name);
             * ViewBag.pic = false;
             * ViewBag.supervisor = false;
             * ViewBag.teamleader = false;
             * ViewBag.member = false;
             * if (preliminary.EngagementActivity.PICID != null)
             * {
             *  if (preliminary.EngagementActivity.PICID.Equals(emp.Name))
             *      ViewBag.pic = true;
             * }
             * if (preliminary.EngagementActivity.SupervisorID != null)
             * {
             *  if (preliminary.EngagementActivity.SupervisorID.Equals(emp.Name))
             *      ViewBag.supervisor = true;
             * }
             * if (preliminary.EngagementActivity.TeamLeaderID != null)
             * {
             *  if (preliminary.EngagementActivity.TeamLeaderID.Equals(emp.Name))
             *      ViewBag.teamleader = true;
             * }
             * if (preliminary.EngagementActivity.MemberID != null)
             * {
             *  if (preliminary.EngagementActivity.MemberID.Contains(emp.Name))
             *      ViewBag.member = true;
             * }*/
            List <string>         newFilesName = new List <string>();
            List <string>         paths        = new List <string>();
            UrlHelper             url          = Url;
            HttpServerUtilityBase server       = Server;
            var  pre      = preliminary.NomorPreliminarySurvey.Split('/')[0];
            var  no       = preliminary.NomorPreliminarySurvey.Split('/')[1];
            bool getFiles = filesTransact.getFiles(pre + no, out newFilesName, out paths, url, server);

            ViewBag.newFilesName = newFilesName;
            ViewBag.paths        = paths;
            if (preliminary == null)
            {
                return(HttpNotFound());
            }
            return(View(preliminary));
        }
        public string GetMember(string nopre)
        {
            Preliminary pre = db.Preliminaries.Where(p => p.NomorPreliminarySurvey.Equals(nopre)).FirstOrDefault();

            if (pre != null)
            {
                var        memberId     = pre.MemberID;
                var        teamleaderId = pre.TeamLeaderID;
                var        supervisorId = pre.SupervisorID;
                var        picId        = pre.PICID;
                var        activityid   = pre.Activity.ActivityID;
                var        engagement   = pre.EngagementActivity.Name;
                string     memberName   = memberId;
                string     activity     = db.Activities.Find(activityid).Name;
                Walktrough wt           = db.Walktroughs.Where(p => p.PreliminaryID == pre.PreliminaryID).FirstOrDefault();
                string     wlkStartDate = wt.Date_Start.ToShortDateString();
                string     wlkEndDate   = wt.Date_End.ToShortDateString();
                if (teamleaderId == "" || supervisorId == "" || picId == "")
                {
                    //string memberName = "";
                    string teamleaderName = "Null";
                    string supervisorName = "Null";
                    string picName        = "Null";
                    string memberName1    = "Null";
                    string names          = teamleaderName + "," + supervisorName + "," + picName;
                    return(names + "," + memberName1 + "," + activity + "," + engagement + ',' + wlkStartDate + ',' + wlkEndDate);
                }
                else
                {
                    //string memberName = db.Employees.Find(memberId).Name;
                    //string teamleaderName = db.Employees.Find(teamleaderId).Name;
                    //string supervisorName = db.Employees.Find(supervisorId).Name;
                    //string picName = db.Employees.Find(picId).Name;
                    string teamleaderName = teamleaderId;
                    string supervisorName = supervisorId;
                    string picName        = picId;
                    string names          = teamleaderName + "," + supervisorName + "," + picName;
                    return(names + "," + memberName + "," + activity + "," + engagement + ',' + wlkStartDate + ',' + wlkEndDate);
                }
            }
            else
            {
                return(",,,,,,");
            }
        }
        // GET: Preliminaries/Create
        public ActionResult Create()
        {
            AnnualPlanningServices activity = new AnnualPlanningServices();
            var activities = activity.GetAnnualPlanning().Where(p => p.Approval_Status == "Approve");

            IEnumerable <SelectListItem> activityid = activities
                                                      .Select(d => new SelectListItem
            {
                Value = d.ActivityID.ToString(),
                Text  = d.Activity.Name
            });

            ViewBag.ActivityID = activityid;

            ActivityServices act = new ActivityServices();
            var acts             = act.GetActivity().Where(p => p.Status == "Approve");

            IEnumerable <SelectListItem> actid = acts
                                                 .Select(d => new SelectListItem
            {
                Value = d.ActivityID.ToString(),
                Text  = d.Name
            });

            ViewBag.UnActivityID = actid;


            string prelimNo = String.Empty;

            Preliminary prelims = db.Preliminaries.OrderByDescending(p => p.PreliminaryID).FirstOrDefault();

            if (prelims != null)
            {
                int nopre = Convert.ToInt32(prelims.NomorPreliminarySurvey.Split('/')[1]) + 1;
                prelimNo = Convert.ToString("Preliminary/" + nopre);
            }
            else
            {
                prelimNo = Convert.ToString("Preliminary/" + 1);
            }

            ViewBag.preliminaryno = prelimNo;

            return(View());
        }
        // GET: AuditPlanningMemorandums/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            AuditPlanningMemorandum auditPlanningMemorandum = db.AuditPlanningMemorandums.Find(id);
            List <string>           newFilesName            = new List <string>();
            List <string>           paths = new List <string>();
            UrlHelper             url     = Url;
            HttpServerUtilityBase server  = Server;

            var getFiles = filesTransact.getFiles(auditPlanningMemorandum.NomerAPM.Replace("/", ""), out newFilesName, out paths, url, server);

            ViewBag.newFilesName = newFilesName;
            ViewBag.paths        = paths;
            if (auditPlanningMemorandum == null)
            {
                return(HttpNotFound());
            }

            PreliminaryServices no = new PreliminaryServices();
            var noap = no.GetPreliminary().Where(p => p.PreliminaryID == auditPlanningMemorandum.PreliminaryID);

            var memberId = db.AuditPlanningMemorandums.Find(auditPlanningMemorandum.AuditPlanningMemorandumID).MemberID;

            ViewBag.memberName = memberId;

            ViewBag.activid    = db.Activities.Where(p => p.ActivityID.Equals(auditPlanningMemorandum.ActivityID)).Select(p => p.Name).FirstOrDefault();
            ViewBag.supervisor = auditPlanningMemorandum.SupervisorID;
            ViewBag.leader     = auditPlanningMemorandum.TeamLeaderID;
            ViewBag.pic        = auditPlanningMemorandum.PICID;
            ViewBag.member     = auditPlanningMemorandum.MemberID;

            ViewBag.nomer = db.Preliminaries.Where(p => p.PreliminaryID.Equals(auditPlanningMemorandum.PreliminaryID)).Select(p => p.NomorPreliminarySurvey).FirstOrDefault();
            Preliminary pre = db.Preliminaries.Where(p => p.PreliminaryID.Equals(auditPlanningMemorandum.PreliminaryID)).FirstOrDefault();

            ViewBag.enggname = pre.EngagementActivity.Name;
            return(View(auditPlanningMemorandum));
        }
        private bool sentEmailPrelim(Preliminary preliminary, string user)
        {
            string          baseUrl = Request.Url.GetLeftPart(UriPartial.Authority);
            List <string>   UserIds = Request.GetOwinContext().GetUserManager <ApplicationRoleManager>().Roles.Where(p => p.Name.Equals(user.Trim())).FirstOrDefault().Users.Select(p => p.UserId).ToList();
            List <Employee> EmpList = new List <Employee>();

            if (UserIds.Count() > 0)
            {
                var users = Request.GetOwinContext().GetUserManager <ApplicationUserManager>().Users.Where(p => (UserIds.Contains(p.Id))).ToList();
                foreach (var userr in users)
                {
                    Employee emp = db.Employees.Where(p => p.Email.Equals(userr.Email)).FirstOrDefault();
                    if (emp != null)
                    {
                        string emailContent = "Dear {0}, <BR/><BR/>Preliminary Survey : {1} need your approval. Please click on this <a href=\"{2}\" title=\"Preliminary Survey\">link</a> to show the Preliminary Survey.<BR/><BR/><BR/> Regards,<BR/><BR/> ePatria Team";
                        string urlPrelim    = baseUrl + "/Preliminaries/Details/" + preliminary.PreliminaryID;
                        emailTransact.SentEmailApproval(emp.Email, emp.Name, preliminary.NomorPreliminarySurvey, emailContent, urlPrelim);
                    }
                }
            }
            return(true);
        }
Ejemplo n.º 10
0
        public ActionResult UpdateRCMStatus(int rcmId, string status, int walktroughId, int prelimID)
        {
            //var RCM = db.RiskControlMatrixs.Find(rcmId);
            string username = User.Identity.Name;

            db.Configuration.ProxyCreationEnabled = false;
            RiskControlMatrix oldData = db.RiskControlMatrixs.AsNoTracking().Where(p => p.RiskControlMatrixID.Equals(rcmId)).FirstOrDefault();
            RiskControlMatrix risk    = db.RiskControlMatrixs.Find(rcmId);
            Preliminary       prelim  = db.Preliminaries.Find(prelimID);

            if (status == "Draft")
            {
                risk.Status = HelperController.GetStatusSendback(db, "RCM", risk.Status);
            }
            else
            {
                risk.Status = status;
            }


            auditTransact.CreateAuditTrail("Update", risk.WalktroughID, "RiskControlMatrix", oldData, risk, username);
            db.Entry(risk).State = EntityState.Modified;
            db.SaveChanges();
            if (status.Contains("Pending for Approve"))
            {
                string user            = status.Split('y')[1];
                string userToSentEmail = String.Empty;
                if (user.Trim() == "CIA")
                {
                    userToSentEmail = prelim.PICID;
                    if (userToSentEmail != null)
                    {
                        sentSingleEmailRCM(userToSentEmail, risk, walktroughId);
                    }
                    else
                    {
                        sentEmailRCM(risk, user.Trim(), walktroughId);
                    }
                }
                else if (user.Trim() == "Pengawas")
                {
                    userToSentEmail = prelim.SupervisorID;
                    if (userToSentEmail != null)
                    {
                        sentSingleEmailRCM(userToSentEmail, risk, walktroughId);
                    }
                    else
                    {
                        sentEmailRCM(risk, user.Trim(), walktroughId);
                    }
                }
                else if (user.Trim() == "Ketua Tim")
                {
                    userToSentEmail = prelim.TeamLeaderID;
                    if (userToSentEmail != null)
                    {
                        sentSingleEmailRCM(userToSentEmail, risk, walktroughId);
                    }
                    else
                    {
                        sentEmailRCM(risk, user.Trim(), walktroughId);
                    }
                }
                else if (user.Trim() == "Member")
                {
                    userToSentEmail = prelim.MemberID;
                    if (userToSentEmail != null)
                    {
                        sentSingleEmailRCM(userToSentEmail, risk, walktroughId);
                    }
                    else
                    {
                        sentEmailRCM(risk, user.Trim(), walktroughId);
                    }
                }
            }

            var        listStatus           = db.RiskControlMatrixs.Where(p => p.WalktroughID.Equals(walktroughId)).Select(p => new { RCMStatus = p.Status }).ToList();
            SelectList listStatusSelectList = new SelectList(listStatus, "RCMStatus", "RCMStatus", 0);

            return(Json(listStatusSelectList));
        }
Ejemplo n.º 11
0
        public async Task <ActionResult> UpdateBPM(string submit, int BPMID, int WalktroughID, int PrelimID)
        {
            string username = User.Identity.Name;

            db.Configuration.ProxyCreationEnabled = false;
            BPM         oldData  = db.BPMs.AsNoTracking().Where(p => p.BPMID.Equals(BPMID)).FirstOrDefault();
            BPM         bpm      = db.BPMs.Find(BPMID);
            int?        prelimId = PrelimID;
            Preliminary prelim   = db.Preliminaries.Find(prelimId);

            string user = submit.Contains("By") ? submit.Split('y')[1] : String.Empty;

            if (submit == "Save")
            {
                bpm.Status = "Draft";
            }
            else if (submit == "Send Back")
            {
                bpm.Status = HelperController.GetStatusSendback(db, "BPM", bpm.Status);
            }
            else if (submit == "Approve")
            {
                bpm.Status = "Approve";
            }
            else if (submit == "Submit For Review By" + user)
            {
                bpm.Status = "Pending for Review by" + user;
            }
            else if (submit == "Submit For Approve By" + user)
            {
                bpm.Status = "Pending for Approve by" + user;
                string userToSentEmail = String.Empty;
                if (user.Trim() == "CIA")
                {
                    userToSentEmail = prelim.PICID;
                    if (userToSentEmail != null)
                    {
                        sentSingleEmailBPM(userToSentEmail, bpm, WalktroughID);
                    }
                    else
                    {
                        sentEmailBPM(bpm, user.Trim(), WalktroughID);
                    }
                }
                else if (user.Trim() == "Pengawas")
                {
                    userToSentEmail = prelim.SupervisorID;
                    if (userToSentEmail != null)
                    {
                        sentSingleEmailBPM(userToSentEmail, bpm, WalktroughID);
                    }
                    else
                    {
                        sentEmailBPM(bpm, user.Trim(), WalktroughID);
                    }
                }
                else if (user.Trim() == "Ketua Tim")
                {
                    userToSentEmail = prelim.TeamLeaderID;
                    if (userToSentEmail != null)
                    {
                        sentSingleEmailBPM(userToSentEmail, bpm, WalktroughID);
                    }
                    else
                    {
                        sentEmailBPM(bpm, user.Trim(), WalktroughID);
                    }
                }
                else if (user.Trim() == "Member")
                {
                    userToSentEmail = prelim.MemberID;
                    if (userToSentEmail != null)
                    {
                        sentSingleEmailBPM(userToSentEmail, bpm, WalktroughID);
                    }
                    else
                    {
                        sentEmailBPM(bpm, user.Trim(), WalktroughID);
                    }
                }
            }

            auditTransact.CreateAuditTrail("Update", bpm.WalktroughID, "BusinessProces", oldData, bpm, username);
            db.Entry(bpm).State = EntityState.Modified;
            await db.SaveChangesAsync();

            TempData["message"] = "BPM successfully updated!";
            return(RedirectToAction("Create", new { id = bpm.WalktroughID }));
        }
        public ActionResult Update(string submit, [Bind(Include = "PreliminaryID,Type,Status,NomorPreliminarySurvey,Date_Start,Date_End,ReviewMasterID,ActivityID,EmployeeID,EngagementID,PICID,SupervisorID,TeamLeaderID,MemberID")] Preliminary preliminary, IEnumerable <HttpPostedFileBase> files)
        {
            if (ModelState.IsValid)
            {
                int i = 0;
                HttpServerUtilityBase server       = Server;
                List <string>         newFilesName = new List <string>();
                List <string>         paths        = new List <string>();
                UrlHelper             url          = Url;
                List <string>         keepImages   = new List <string>();
                //object imagesTemp = Session["Images"];
                var sessionImages = Session["Images"];
                if (sessionImages != null)
                {
                    Array arrKeepImages = (Array)sessionImages;
                    foreach (var arrKeepImage in arrKeepImages)
                    {
                        keepImages.Add(arrKeepImage.ToString());
                    }
                    var           pre          = preliminary.NomorPreliminarySurvey.Split('/')[0];
                    var           no           = preliminary.NomorPreliminarySurvey.Split('/')[1];
                    bool          getFiles     = filesTransact.getFiles(pre + no, out newFilesName, out paths, url, server);
                    List <string> deletedFiles = paths.Except(keepImages).ToList();
                    bool          deleteFiles  = filesTransact.deleteFiles(deletedFiles, server);

                    i = filesTransact.getLastNumberOfFiles(pre + no, server);
                }
                foreach (var file in files)
                {
                    if (file != null)
                    {
                        i = i + 1;
                        var  pre     = preliminary.NomorPreliminarySurvey.Split('/')[0];
                        var  no      = preliminary.NomorPreliminarySurvey.Split('/')[1];
                        bool addFile = filesTransact.addFile(pre + no, i, file, server);
                    }
                }
                Session.Remove("Images");

                string user = submit.Contains("By")  ? submit.Split('y')[1] : String.Empty;
                if (submit == "Save")
                {
                    preliminary.Status = "Draft";
                }
                else if (submit == "Send Back")
                {
                    preliminary.Status = HelperController.GetStatusSendback(db, "Preliminary Survey", preliminary.Status);
                }
                else if (submit == "Approve")
                {
                    preliminary.Status = "Approve";
                    Walktrough walktrough = new Walktrough();
                    walktrough.PreliminaryID = preliminary.PreliminaryID;
                    walktrough.ActivityID    = preliminary.ActivityID;
                    walktrough.Date_Start    = preliminary.Date_Start;
                    walktrough.Date_End      = preliminary.Date_End;
                    walktrough.Status        = "Approve";
                    db.Walktroughs.Add(walktrough);
                }
                else if (submit == "Submit For Review By" + user)
                {
                    preliminary.Status = "Pending for Review by" + user;
                }
                else if (submit == "Submit For Approve By" + user)
                {
                    preliminary.Status = "Pending for Approve by" + user;
                    string userToSentEmail = String.Empty;
                    if (user.Trim() == "CIA")
                    {
                        userToSentEmail = preliminary.PICID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailPrelim(userToSentEmail, preliminary);
                        }
                        else
                        {
                            sentEmailPrelim(preliminary, user.Trim());
                        }
                    }
                    else if (user.Trim() == "Pengawas")
                    {
                        userToSentEmail = preliminary.SupervisorID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailPrelim(userToSentEmail, preliminary);
                        }
                        else
                        {
                            sentEmailPrelim(preliminary, user.Trim());
                        }
                    }
                    else if (user.Trim() == "Ketua Tim")
                    {
                        userToSentEmail = preliminary.TeamLeaderID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailPrelim(userToSentEmail, preliminary);
                        }
                        else
                        {
                            sentEmailPrelim(preliminary, user.Trim());
                        }
                    }
                    else if (user.Trim() == "Member")
                    {
                        userToSentEmail = preliminary.MemberID;
                        if (userToSentEmail != null)
                        {
                            sentSingleEmailPrelim(userToSentEmail, preliminary);
                        }
                        else
                        {
                            sentEmailPrelim(preliminary, user.Trim());
                        }
                    }
                }
                string username = User.Identity.Name;
                db.Configuration.ProxyCreationEnabled = false;
                Preliminary oldData = db.Preliminaries.AsNoTracking().Where(p => p.PreliminaryID.Equals(preliminary.PreliminaryID)).FirstOrDefault();
                auditTransact.CreateAuditTrail("Update", preliminary.PreliminaryID, "Preliminary", oldData, preliminary, username);
                db.Entry(preliminary).State = EntityState.Modified;
                db.SaveChanges();
                TempData["message"] = "Preliminary successfully updated!";
                return(RedirectToAction("Index"));
            }
            ViewBag.ActivityID = new SelectList(db.Activities, "ActivityID", "Name", preliminary.ActivityID);
            ViewBag.EmployeeID = new SelectList(db.Employees, "EmployeeID", "Type", preliminary.EmployeeID);
            return(View(preliminary));
        }
        // GET: Preliminaries/Edit/5
        public ActionResult Edit(int?id)
        {
            //if (id == null)
            //{
            //    return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            //}
            Preliminary preliminary = db.Preliminaries.Find(id);

            List <string>         newFilesName = new List <string>();
            List <string>         paths        = new List <string>();
            UrlHelper             url          = Url;
            HttpServerUtilityBase server       = Server;
            var pre      = preliminary.NomorPreliminarySurvey.Split('/')[0];
            var no       = preliminary.NomorPreliminarySurvey.Split('/')[1];
            var getFiles = filesTransact.getFiles(pre + no, out newFilesName, out paths, url, server);

            ViewBag.newFilesName = newFilesName;
            ViewBag.paths        = paths;

            if (preliminary.Type == "Planned")
            {
                AnnualPlanningServices activity = new AnnualPlanningServices();
                var activities = activity.GetAnnualPlanning().Where(p => p.ActivityID == preliminary.ActivityID);

                IEnumerable <SelectListItem> activityid = activities
                                                          .Select(d => new SelectListItem
                {
                    Value = d.ActivityID.ToString(),
                    Text  = d.Activity.Name
                });
                ViewBag.ActivityID = activityid;

                EngagementActivityServices Eng = new EngagementActivityServices();
                var Engs = Eng.GetEngagementActivity().Where(p => p.EngagementID == preliminary.EngagementID);

                IEnumerable <SelectListItem> EngID = Engs
                                                     .Select(d => new SelectListItem
                {
                    Value = d.EngagementID.ToString(),
                    Text  = d.Name
                });
                ViewBag.EngagementID = EngID;
            }
            else
            {
                int enggID = db.EngagementActivities.Find(preliminary.EngagementID).EngagementID;
                ViewBag.EnggaID = enggID;
                string EngName = db.EngagementActivities.Find(preliminary.EngagementID).Name;
                ViewBag.EngagementName = EngName;

                ActivityServices activity = new ActivityServices();
                var activities            = activity.GetActivity().Where(p => p.ActivityID == preliminary.ActivityID);

                IEnumerable <SelectListItem> activityid = activities
                                                          .Select(d => new SelectListItem
                {
                    Value = d.ActivityID.ToString(),
                    Text  = d.Name
                });
                ViewBag.UnActivityID = activityid;

                //ViewBag.UnActivityID = new SelectList(db.Activities, "ActivityID", "Name");
            }

            return(View(preliminary));
        }
        public ActionResult Create(string noprelim, int?ActivityID, string EngagementNameNull, string EngagementName, int?UnActivityID, int?engid, [Bind(Include = "PreliminaryID,Type,Status,NomorPreliminarySurvey,Date_Start,Date_End,EmployeeID,EngagementID,PICID,SupervisorID,TeamLeaderID,MemberID")] Preliminary preliminary, IEnumerable <HttpPostedFileBase> files, string submit, string[] member,
                                   string pic, string supervisor, string leader, string[] members)
        {
            if (ModelState.IsValid)
            {
                if (member != null)
                {
                    foreach (var mem in member)
                    {
                        preliminary.EmployeeID += mem + ";";
                    }
                }

                preliminary.PICID        = pic;
                preliminary.SupervisorID = supervisor;
                preliminary.TeamLeaderID = leader;
                if (members != null)
                {
                    foreach (var mem in members)
                    {
                        preliminary.MemberID += mem + ";";
                    }
                }

                HttpServerUtilityBase server = Server;
                int a = 0;
                if (engid == 0 && a < ActivityID)
                {
                    EngagementActivity engagement = new EngagementActivity();

                    engagement.ActivityID = ActivityID.Value;
                    engagement.Name       = EngagementNameNull;
                    engagement.Date_Start = null;
                    engagement.Date_End   = null;
                    db.EngagementActivities.Add(engagement);
                    db.SaveChanges();

                    preliminary.ActivityID             = ActivityID.Value;
                    preliminary.EngagementID           = engagement.EngagementID;
                    preliminary.NomorPreliminarySurvey = noprelim;
                    int i = 0;
                    foreach (var file in files)
                    {
                        if (file != null)
                        {
                            i = i + 1;
                            var  pre     = preliminary.NomorPreliminarySurvey.Split('/')[0];
                            var  no      = preliminary.NomorPreliminarySurvey.Split('/')[1];
                            bool addFile = filesTransact.addFile(pre + no, i, file, server);
                        }
                    }

                    string user = submit.Contains("By") ? submit.Split('y')[1] : String.Empty;
                    if (submit == "Save")
                    {
                        preliminary.Status = "Draft";
                    }
                    else if (submit == "Send Back")
                    {
                        preliminary.Status = HelperController.GetStatusSendback(db, "Preliminary Survey", preliminary.Status);
                    }
                    else if (submit == "Approve")
                    {
                        preliminary.Status = "Approve";
                    }
                    else if (submit == "Submit For Review By" + user)
                    {
                        preliminary.Status = "Pending for Review by" + user;
                    }
                    else if (submit == "Submit For Approve By" + user)
                    {
                        preliminary.Status = "Pending for Approve by" + user;
                        string userToSentEmail = String.Empty;
                        if (user.Trim() == "CIA")
                        {
                            userToSentEmail = preliminary.PICID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                        else if (user.Trim() == "Pengawas")
                        {
                            userToSentEmail = preliminary.SupervisorID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                        else if (user.Trim() == "Ketua Tim")
                        {
                            userToSentEmail = preliminary.TeamLeaderID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                        else if (user.Trim() == "Member")
                        {
                            userToSentEmail = preliminary.MemberID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                    }
                    db.Preliminaries.Add(preliminary);
                    db.SaveChanges();
                    string      username = User.Identity.Name;
                    Preliminary pr       = new Preliminary();
                    auditTransact.CreateAuditTrail("Create", preliminary.PreliminaryID, "Preliminary", pr, preliminary, username);

                    ReviewRelationMaster rrm = new ReviewRelationMaster();
                    string page = "prelim";
                    rrm.Description = page + preliminary.PreliminaryID;
                    db.ReviewRelationMasters.Add(rrm);
                    db.SaveChanges();
                }
                else
                if (preliminary.Type == "UnPlanned")
                {
                    EngagementActivity engagement = new EngagementActivity();


                    engagement.ActivityID = UnActivityID.Value;
                    engagement.Name       = EngagementName;
                    engagement.Date_Start = null;
                    engagement.Date_End   = null;
                    db.EngagementActivities.Add(engagement);
                    db.SaveChanges();

                    preliminary.ActivityID             = UnActivityID.Value;
                    preliminary.EngagementID           = engagement.EngagementID;
                    preliminary.NomorPreliminarySurvey = noprelim;
                    int i = 0;
                    foreach (var file in files)
                    {
                        if (file != null)
                        {
                            i = i + 1;
                            var  pre     = preliminary.NomorPreliminarySurvey.Split('/')[0];
                            var  no      = preliminary.NomorPreliminarySurvey.Split('/')[1];
                            bool addFile = filesTransact.addFile(pre + no, i, file, server);
                        }
                    }

                    string user = submit.Contains("By") ? submit.Split('y')[1] : String.Empty;
                    if (submit == "Save")
                    {
                        preliminary.Status = "Draft";
                    }
                    else if (submit == "Send Back")
                    {
                        preliminary.Status = HelperController.GetStatusSendback(db, "Preliminary Survey", preliminary.Status);
                    }
                    else if (submit == "Approve")
                    {
                        preliminary.Status = "Approve";
                    }
                    else if (submit == "Submit For Review By" + user)
                    {
                        preliminary.Status = "Pending for Review by" + user;
                    }
                    else if (submit == "Submit For Approve By" + user)
                    {
                        preliminary.Status = "Pending for Approve by" + user;
                        string userToSentEmail = String.Empty;
                        if (user.Trim() == "CIA")
                        {
                            userToSentEmail = preliminary.PICID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                        else if (user.Trim() == "Pengawas")
                        {
                            userToSentEmail = preliminary.SupervisorID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                        else if (user.Trim() == "Ketua Tim")
                        {
                            userToSentEmail = preliminary.TeamLeaderID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                        else if (user.Trim() == "Member")
                        {
                            userToSentEmail = preliminary.MemberID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                    }
                    db.Preliminaries.Add(preliminary);
                    db.SaveChanges();
                    string      username = User.Identity.Name;
                    Preliminary pr       = new Preliminary();
                    auditTransact.CreateAuditTrail("Create", preliminary.PreliminaryID, "Preliminary", pr, preliminary, username);
                    ReviewRelationMaster rrm = new ReviewRelationMaster();
                    string page = "prelim";
                    rrm.Description = page + preliminary.PreliminaryID;
                    db.ReviewRelationMasters.Add(rrm);

                    db.SaveChanges();
                }
                else //Type == "Planned"
                {
                    EngagementActivity engagement = new EngagementActivity();

                    preliminary.ActivityID             = ActivityID.Value;
                    preliminary.EngagementID           = engid;
                    preliminary.NomorPreliminarySurvey = noprelim;
                    int i = 0;
                    foreach (var file in files)
                    {
                        if (file != null)
                        {
                            i = i + 1;
                            var  pre     = preliminary.NomorPreliminarySurvey.Split('/')[0];
                            var  no      = preliminary.NomorPreliminarySurvey.Split('/')[1];
                            bool addFile = filesTransact.addFile(pre + no, i, file, server);
                        }
                    }

                    string user = submit.Contains("By") ? submit.Split('y')[1] : String.Empty;
                    if (submit == "Save")
                    {
                        preliminary.Status = "Draft";
                    }
                    else if (submit == "Send Back")
                    {
                        preliminary.Status = HelperController.GetStatusSendback(db, "Preliminary Survey", preliminary.Status);
                    }
                    else if (submit == "Approve")
                    {
                        preliminary.Status = "Approve";
                    }
                    else if (submit == "Submit For Review By" + user)
                    {
                        preliminary.Status = "Pending for Review by" + user;
                    }
                    else if (submit == "Submit For Approve By" + user)
                    {
                        preliminary.Status = "Pending for Approve by" + user;
                        string userToSentEmail = String.Empty;
                        if (user.Trim() == "CIA")
                        {
                            userToSentEmail = preliminary.PICID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                        else if (user.Trim() == "Pengawas")
                        {
                            userToSentEmail = preliminary.SupervisorID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                        else if (user.Trim() == "Ketua Tim")
                        {
                            userToSentEmail = preliminary.TeamLeaderID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                        else if (user.Trim() == "Member")
                        {
                            userToSentEmail = preliminary.MemberID;
                            if (userToSentEmail != null)
                            {
                                sentSingleEmailPrelim(userToSentEmail, preliminary);
                            }
                            else
                            {
                                sentEmailPrelim(preliminary, user.Trim());
                            }
                        }
                    }
                    db.Preliminaries.Add(preliminary);
                    db.SaveChanges();
                    string      username = User.Identity.Name;
                    Preliminary pr       = new Preliminary();
                    auditTransact.CreateAuditTrail("Create", preliminary.PreliminaryID, "Preliminary", pr, preliminary, username);
                    ReviewRelationMaster rrm = new ReviewRelationMaster();
                    string page = "prelim";
                    rrm.Description = page + preliminary.PreliminaryID;
                    db.ReviewRelationMasters.Add(rrm);
                    db.SaveChanges();
                }
                TempData["message"] = "Preliminary successfully created!";
                return(RedirectToAction("Index"));
            }



            return(View(preliminary));
        }